LDKAssetManager
typedef struct LDKAssetManager LDKAssetManager;
typedef struct LDKAssetManager LDKAssetManager;
typedef struct LDKMeshData{
LDKMeshVertex *vertices;
u32 vertex_count;
u32 *indices;
u32 index_count;
bool has_tangents;
}LDKMeshData;
typedef struct LDKMeshMaterialSlot{
char name[LDK_MESH_MATERIAL_SLOT_NAME_CAPACITY];
}LDKMeshMaterialSlot;
typedef struct LDKMeshNode{
char name[LDK_MESH_NODE_NAME_CAPACITY];
i32 parent_index;
i32 mesh_index;
Vec3 local_position;
Quat local_rotation;
Vec3 local_scale;
}LDKMeshNode;
typedef enum LDKMeshPrimitive{
LDK_MESH_PRIMITIVE_CUBE=0,
LDK_MESH_PRIMITIVE_CONE,
LDK_MESH_PRIMITIVE_SPHERE,
LDK_MESH_PRIMITIVE_CAPSULE,
LDK_MESH_PRIMITIVE_PLANE,
LDK_MESH_PRIMITIVE_QUAD,
LDK_MESH_PRIMITIVE_COUNT
}LDKMeshPrimitive;
typedef struct LDKMeshSubmesh{
u32 first_index;
u32 index_count;
u32 material_slot;
}LDKMeshSubmesh;
typedef struct LDKMeshVertex{
Vec3 position;
Vec3 normal;
Vec2 uv;
u32 color;
Vec4 tangent;
}LDKMeshVertex;
#define LDK_MESH_INDEX_NONE(-1)
#define LDK_MESH_MATERIAL_SLOT_NAME_CAPACITY 128u
#define LDK_MESH_NAME_CAPACITY 128u
#define LDK_MESH_NODE_NAME_CAPACITY 128u
#define LDK_MESH_NODE_NONE(-1)
Destroy the mesh data.
LDK_API void ldk_mesh_data_destroy(LDKMeshData *mesh);
LDKMeshData *meshReturns the shared asset for a built-in primitive mesh. The asset is created lazily and reused for subsequent requests while it remains alive in the supplied asset manager.
LDK_API LDKAssetMesh ldk_mesh_primitive_asset_get(
LDKAssetManager *manager,
LDKMeshPrimitive primitive
);
LDKAssetManager *managerLDKMeshPrimitive primitiveHandle to the requested object or resource.
Create the mesh primitive.
LDK_API bool ldk_mesh_primitive_create(
LDKMeshPrimitive primitive,
LDKMeshData *out_mesh
);
LDKMeshPrimitive primitiveLDKMeshData *out_meshTrue if the operation succeeds; false otherwise.