#pragma once #include "demo3d_bsp.h" #include "pxl8_gfx.h" #include "pxl8_mesh.h" #ifdef __cplusplus extern "C" { #endif typedef struct demo3d_bsp_render_state { pxl8_gfx_material* materials; pxl8_mesh* mesh; u8* render_face_flags; u32 num_materials; u32 num_faces; bool exterior; } demo3d_bsp_render_state; demo3d_bsp_render_state* demo3d_bsp_render_state_create(u32 num_faces); void demo3d_bsp_render_state_destroy(demo3d_bsp_render_state* state); void demo3d_bsp_render(pxl8_gfx* gfx, const demo3d_bsp* bsp, demo3d_bsp_render_state* state, const pxl8_gfx_draw_opts* opts); void demo3d_bsp_set_material(demo3d_bsp_render_state* state, u16 material_id, const pxl8_gfx_material* material); #ifdef __cplusplus } #endif