#pragma once #include "scene_graph.h" #include "../Rendering/renderer.h" #include "../Rendering/mesh.h" #include "../Rendering/material.h" #include "../Rendering/shader.h" #include "../Rendering/texture.h" #ifdef __cplusplus extern "C" { #endif typedef enum { MESH_NONE = 0, MESH_CUBE = 1, MESH_SPHERE = 2, MESH_PLANE = 3, MESH_OBJ = 4 } MeshType; typedef struct { MeshType type; Mesh* mesh; Material* material; char path[256]; } MeshRenderer; void scene_node_set_mesh_renderer(SceneNode* node, MeshRenderer* renderer); MeshRenderer* scene_node_get_mesh_renderer(SceneNode* node); void scene_render_node(SceneNode* node, Renderer* r); void scene_render(Scene* scene, Renderer* r); MeshRenderer* mesh_renderer_create(MeshType type, Mesh* mesh, Material* material); void mesh_renderer_destroy(MeshRenderer* mr); void scene_destroy_renderers(Scene* scene); #ifdef __cplusplus } #endif