summaryrefslogtreecommitdiff
path: root/src/rendering
diff options
context:
space:
mode:
author0scar <qgt268@alumni.ku.dk>2024-02-11 11:27:49 +0000
committer0scar <qgt268@alumni.ku.dk>2024-02-11 11:27:49 +0000
commitb04b041f61fe6f0664d5d037b8a26e43b7b99a75 (patch)
tree738c377a251266433450c4c9c19a0f12a41d210d /src/rendering
parentd398c8917f890ae29d5c76ddb223b707aa9b16c5 (diff)
Add RenderObject constructor
Diffstat (limited to 'src/rendering')
-rw-r--r--src/rendering/src/gl.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/rendering/src/gl.c b/src/rendering/src/gl.c
index b66aef8..390e42b 100644
--- a/src/rendering/src/gl.c
+++ b/src/rendering/src/gl.c
@@ -115,3 +115,34 @@ GLuint LoadShaders(
return ProgramID;
}
+
+/* Prototype it for now, */
+GLuint LoadShaders(
+ const GladGLContext* gl,
+ const char * vertex_file_path,
+ const char * fragment_file_path);
+
+RenderObject RenderObject_new() {
+ GladGLContext *gl = GLOBAL_PLATFORM->window->context;
+ RenderObject o;
+
+ static const float quad[8] = {
+ 0.f, 0.f,
+ 1.f, 0.f,
+ 1.f, 1.f,
+ 0.f, 1.f,
+ };
+
+ // TODO: implement index buffer!
+
+ gl->GenVertexArrays(1, &(o.vao));
+ gl->BindVertexArray(o.vao);
+
+ gl->GenBuffers(1, &(o.vbo));
+ gl->BindBuffer(GL_ARRAY_BUFFER, o.vbo);
+ gl->BufferData(GL_ARRAY_BUFFER, sizeof(quad), quad, GL_STATIC_DRAW);
+
+ o.shader.program = LoadShaders(gl, "shader.vertexshader", "shader.fragmentshader");
+
+ return o;
+}