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