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