summaryrefslogtreecommitdiff
path: root/src/rendering/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/rendering/include')
-rw-r--r--src/rendering/include/engine/rendering/rendering.h23
1 files changed, 21 insertions, 2 deletions
diff --git a/src/rendering/include/engine/rendering/rendering.h b/src/rendering/include/engine/rendering/rendering.h
index 7b67248..ed066d6 100644
--- a/src/rendering/include/engine/rendering/rendering.h
+++ b/src/rendering/include/engine/rendering/rendering.h
@@ -28,8 +28,20 @@ typedef struct {
v2_i32 coord;
} Sprite;
+typedef enum {
+ //GL_COMPUTE_SHADER, GL_VERTEX_SHADER, GL_TESS_CONTROL_SHADER, GL_TESS_EVALUATION_SHADER, GL_GEOMETRY_SHADER, GL_FRAGMENT_SHADER
+ Shader_Error,
+ Shader_Program, /* Collection of shaders */
+ Shader_Vertex,
+ Shader_Tessellation,
+ Shader_Geometry,
+ Shader_Fragment,
+ Shader_Compute,
+} ShaderType;
+
typedef struct {
/* Shader proram */
+ ShaderType type;
u32 program;
} Shader;
@@ -71,7 +83,7 @@ typedef enum {
RenderDrawCallType_Sprite,
RenderDrawCallType_Model,
} RenderDrawCallType;
-//
+
typedef struct {
RenderDrawCallType type;
union {
@@ -90,6 +102,13 @@ typedef struct {
} data;
} RenderDrawCall;
-RenderObject RenderObject_new(float* model, usize sz, float* uv, usize uv_sz);
+RenderObject RenderObject_new(float* model, Shader* shader, usize sz, float* uv, usize uv_sz);
+
+Shader compile_shader(const char* file_path, const ShaderType shader_type);
+Shader compose_shader(Shader *shaders, usize shaders_len);
+
+u32 ComposeShader(u32 *shaders, usize shaders_len);
+
+ShaderType guess_shadertype_from_filename(const char *restrict fname);
#endif