using System; using System.Runtime.InteropServices; namespace Raylib_cs { /// Material map index public enum MaterialMapIndex { /// /// MAP_DIFFUSE /// MATERIAL_MAP_ALBEDO = 0, /// /// MAP_SPECULAR /// MATERIAL_MAP_METALNESS = 1, MATERIAL_MAP_NORMAL = 2, MATERIAL_MAP_ROUGHNESS = 3, 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 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 struct Material { /// /// Material shader /// public Shader shader; /// /// Material maps (MaterialMap *) /// public IntPtr maps; /// /// Material generic parameters (if required, float *) /// public IntPtr param; } }