Reformat
This commit is contained in:
parent
fb1b8457d6
commit
09e9f611f8
@ -5,16 +5,15 @@
|
|||||||
|
|
||||||
typedef struct shader_repo ShaderRepo;
|
typedef struct shader_repo ShaderRepo;
|
||||||
struct shader_repo {
|
struct shader_repo {
|
||||||
void *shaders[MAX_SHADER_COUNT];
|
void *shaders[MAX_SHADER_COUNT];
|
||||||
VertexShader *vertex_funcs[MAX_SHADER_COUNT];
|
VertexShader *vertex_funcs[MAX_SHADER_COUNT];
|
||||||
FragmentShader *fragment_funcs[MAX_SHADER_COUNT];
|
FragmentShader *fragment_funcs[MAX_SHADER_COUNT];
|
||||||
u64 count;
|
u64 count;
|
||||||
};
|
};
|
||||||
|
|
||||||
internal ShaderRepo g_repository = {0};
|
internal ShaderRepo g_repository = {0};
|
||||||
|
|
||||||
ShaderID register_shader(void *shader, VertexShader *vertex,
|
ShaderID register_shader(void *shader, VertexShader *vertex, FragmentShader *fragment) {
|
||||||
FragmentShader *fragment) {
|
|
||||||
if (g_repository.count + 1 >= MAX_SHADER_COUNT) {
|
if (g_repository.count + 1 >= MAX_SHADER_COUNT) {
|
||||||
return INVALID_SHADER;
|
return INVALID_SHADER;
|
||||||
}
|
}
|
||||||
@ -27,8 +26,7 @@ ShaderID register_shader(void *shader, VertexShader *vertex,
|
|||||||
return (ShaderID){g_repository.count};
|
return (ShaderID){g_repository.count};
|
||||||
}
|
}
|
||||||
|
|
||||||
VertexData run_vertex_shader(ShaderID shader, const VertexData *vert, u8 index,
|
VertexData run_vertex_shader(ShaderID shader, const VertexData *vert, u8 index, const Model *model) {
|
||||||
const Model *model) {
|
|
||||||
if (IS_INVALID_SHADER(shader) || shader.id > g_repository.count || !vert || !model) {
|
if (IS_INVALID_SHADER(shader) || shader.id > g_repository.count || !vert || !model) {
|
||||||
return (VertexData){0};
|
return (VertexData){0};
|
||||||
}
|
}
|
||||||
@ -43,8 +41,8 @@ VertexData run_vertex_shader(ShaderID shader, const VertexData *vert, u8 index,
|
|||||||
return vertex_func(shader_obj, vert, index, model);
|
return vertex_func(shader_obj, vert, index, model);
|
||||||
}
|
}
|
||||||
|
|
||||||
FragmentResult run_fragment_shader(ShaderID shader, const V3f *barycentric,
|
FragmentResult run_fragment_shader(ShaderID shader, const V3f *barycentric, const Colour *colour,
|
||||||
const Colour *colour, const Model *model) {
|
const Model *model) {
|
||||||
if (IS_INVALID_SHADER(shader) || shader.id > g_repository.count || !colour) {
|
if (IS_INVALID_SHADER(shader) || shader.id > g_repository.count || !colour) {
|
||||||
return DISCARDED_FRAGMENT;
|
return DISCARDED_FRAGMENT;
|
||||||
}
|
}
|
||||||
|
@ -24,22 +24,17 @@ struct fragment_result {
|
|||||||
bool discard;
|
bool discard;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define INVALID_SHADER ((ShaderID){0})
|
#define INVALID_SHADER ((ShaderID){0})
|
||||||
#define IS_INVALID_SHADER(ID) (ID.id == 0)
|
#define IS_INVALID_SHADER(ID) (ID.id == 0)
|
||||||
#define DISCARDED_FRAGMENT ((FragmentResult){.discard = true})
|
#define DISCARDED_FRAGMENT ((FragmentResult){.discard = true})
|
||||||
#define DISCARD_FRAGMENT(RESULT) (RESULT.discard)
|
#define DISCARD_FRAGMENT(RESULT) (RESULT.discard)
|
||||||
|
|
||||||
typedef VertexData(VertexShader)(void *shader, const VertexData *vert, u8 index,
|
typedef VertexData(VertexShader)(void *shader, const VertexData *vert, u8 index, const Model *model);
|
||||||
const Model *model);
|
typedef FragmentResult(FragmentShader)(void *shader, const V3f *barycentric, const Colour *colour,
|
||||||
typedef FragmentResult(FragmentShader)(void *shader, const V3f *barycentric,
|
|
||||||
const Colour *colour,
|
|
||||||
const Model *model);
|
const Model *model);
|
||||||
|
|
||||||
ShaderID register_shader(void *shader, VertexShader *vertex,
|
ShaderID register_shader(void *shader, VertexShader *vertex, FragmentShader *fragment);
|
||||||
FragmentShader *fragment);
|
VertexData run_vertex_shader(ShaderID shader, const VertexData *vert, u8 index, const Model *model);
|
||||||
VertexData run_vertex_shader(ShaderID shader, const VertexData *vert, u8 index,
|
FragmentResult run_fragment_shader(ShaderID shader, const V3f *barycentric, const Colour *colour, const Model *model);
|
||||||
const Model *model);
|
|
||||||
FragmentResult run_fragment_shader(ShaderID shader, const V3f *barycentric,
|
|
||||||
const Colour *colour, const Model *model);
|
|
||||||
|
|
||||||
#endif // SHADER_H
|
#endif // SHADER_H
|
||||||
|
Loading…
Reference in New Issue
Block a user