#ifndef SABRE_RENDER_H
#define SABRE_RENDER_H
struct render_data;
typedef enum shader_id
{
SHADER_MAIN_VS,
SHADER_MAIN_FS,
SHADER_RENDER_CS,
SHADER_HASHER_CS,
SHADER_ID_COUNT
} shader_id;
typedef struct view_data
{
int ScreenWidth;
int ScreenHeight;
TODO
float* CamTransform;
float* CamPos;
} view_data;
typedef struct shader_data
{
const char** Code;
} shader_data;
extern render_data*
CreateRenderData(const svo* Scene,
const view_data* ViewData,
const shader_data* Shaders);
extern void
UpdateRenderScene(const svo* Scene, render_data* RenderDataOut);
extern bool
UpdateRenderShaders(const svo* Scene,
const shader_data* Shaders,
u32 ChangeMsk,
render_data* Out);
extern u64
DrawScene(const render_data* R, const view_data* ViewData);
extern void
DeleteRenderData(render_data* R);
extern bool
DEBUGOutputRenderShaderAssembly(const render_data* R, FILE* OutFile);
#endif