using System; using System.Runtime.InteropServices; namespace Raylib_cs { /// /// Material map index /// public enum MaterialMapIndex { /// /// NOTE: Same as MATERIAL_MAP_DIFFUSE /// MATERIAL_MAP_ALBEDO = 0, /// /// NOTE: Same as MATERIAL_MAP_SPECULAR /// MATERIAL_MAP_METALNESS, MATERIAL_MAP_NORMAL, MATERIAL_MAP_ROUGHNESS, MATERIAL_MAP_OCCLUSION, MATERIAL_MAP_EMISSION, MATERIAL_MAP_HEIGHT, /// /// NOTE: Uses GL_TEXTURE_CUBE_MAP /// MATERIAL_MAP_CUBEMAP, /// /// NOTE: Uses GL_TEXTURE_CUBE_MAP /// MATERIAL_MAP_IRRADIANCE, /// /// NOTE: Uses GL_TEXTURE_CUBE_MAP /// MATERIAL_MAP_PREFILTER, MATERIAL_MAP_BRDF, MATERIAL_MAP_DIFFUSE = MATERIAL_MAP_ALBEDO, MATERIAL_MAP_SPECULAR = MATERIAL_MAP_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]; } }