- core/: main entry, types, logging, I/O, RNG - asset/: ase loader, cart, save, embed - gfx/: graphics, animation, atlas, fonts, tilemap, transitions - sfx/: audio - script/: lua/fennel runtime, REPL - hal/: platform abstraction (SDL3) - world/: BSP, world, procedural gen - math/: math utilities - game/: GUI, replay - lua/: Lua API modules
33 lines
950 B
C
33 lines
950 B
C
#pragma once
|
|
|
|
#include "pxl8_3d_camera.h"
|
|
#include "pxl8_math.h"
|
|
#include "pxl8_mesh.h"
|
|
#include "pxl8_types.h"
|
|
|
|
typedef struct pxl8_gfx pxl8_gfx;
|
|
|
|
typedef struct pxl8_3d_uniforms {
|
|
u8 ambient;
|
|
u8 fog_color;
|
|
f32 fog_density;
|
|
f32 time;
|
|
} pxl8_3d_uniforms;
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
void pxl8_3d_begin_frame(pxl8_gfx* gfx, const pxl8_3d_camera* camera, const pxl8_3d_uniforms* uniforms);
|
|
void pxl8_3d_clear(pxl8_gfx* gfx, u8 color);
|
|
void pxl8_3d_clear_depth(pxl8_gfx* gfx);
|
|
void pxl8_3d_draw_line(pxl8_gfx* gfx, pxl8_vec3 v0, pxl8_vec3 v1, u8 color);
|
|
void pxl8_3d_draw_mesh(pxl8_gfx* gfx, const pxl8_mesh* mesh, pxl8_mat4 model, pxl8_material material);
|
|
void pxl8_3d_draw_mesh_wireframe(pxl8_gfx* gfx, const pxl8_mesh* mesh, pxl8_mat4 model, u8 color);
|
|
void pxl8_3d_end_frame(pxl8_gfx* gfx);
|
|
u8* pxl8_3d_get_framebuffer(pxl8_gfx* gfx);
|
|
const pxl8_frustum* pxl8_3d_get_frustum(pxl8_gfx* gfx);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|