35 lines
1001 B
C
35 lines
1001 B
C
/**
|
|
* Copyright (c) 2025 Dominic Masters
|
|
*
|
|
* This software is released under the MIT License.
|
|
* https://opensource.org/licenses/MIT
|
|
*/
|
|
|
|
#pragma once
|
|
#include "ecs/ecscomponent.h"
|
|
#include "display/mesh/mesh.h"
|
|
|
|
typedef struct {
|
|
mesh_t *mesh;
|
|
} meshrenderer_t;
|
|
|
|
extern meshrenderer_t MESH_RENDERER_DATA[ECS_ENTITY_COUNT_MAX];
|
|
extern ecscomponent_t MESH_RENDERER_COMPONENT;
|
|
|
|
#define meshRendererAdd(id) \
|
|
((meshrenderer_t*)ecsComponentDataAdd(&MESH_RENDERER_COMPONENT, id))
|
|
#define meshRendererGet(id) \
|
|
((meshrenderer_t*)ecsComponentDataGet(&MESH_RENDERER_COMPONENT, id))
|
|
#define meshRendererHas(id) \
|
|
(ecsComponentDataHas(&MESH_RENDERER_COMPONENT, id))
|
|
#define meshRendererRemove(id) \
|
|
ecsComponentDataRemove(&MESH_RENDERER_COMPONENT, id)
|
|
#define meshRendererGetAll(out) \
|
|
ecsComponentGetAll(&MESH_RENDERER_COMPONENT, out)
|
|
|
|
/**
|
|
* Draw the mesh for the given entity.
|
|
*
|
|
* @param id The ID of the entity with the mesh renderer component.
|
|
*/
|
|
void meshRendererDraw(const ecsid_t id); |