using System.Runtime.InteropServices; namespace Raylib_cs; /// /// Material map index /// public enum MaterialMapIndex { /// /// NOTE: Same as MATERIAL_MAP_DIFFUSE /// Albedo = 0, /// /// NOTE: Same as MATERIAL_MAP_SPECULAR /// Metalness, Normal, Roughness, Occlusion, Emission, Height, /// /// NOTE: Uses GL_TEXTURE_CUBE_MAP /// Cubemap, /// /// NOTE: Uses GL_TEXTURE_CUBE_MAP /// Irradiance, /// /// NOTE: Uses GL_TEXTURE_CUBE_MAP /// Prefilter, Brdf, Diffuse = Albedo, Specular = Metalness, } /// /// Material texture map /// [StructLayout(LayoutKind.Sequential)] public partial struct MaterialMap { /// /// Material map texture /// public Texture2D Texture; /// /// Material map color /// public Color Color; /// /// Material map value /// public float Value; } /// /// Material type (generic) /// [StructLayout(LayoutKind.Sequential)] public unsafe partial struct Material { /// /// Material shader /// public Shader Shader; //TODO: convert /// /// Material maps /// public MaterialMap* Maps; /// /// Material generic parameters (if required) /// public fixed float Param[4]; }