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];
}