summaryrefslogtreecommitdiff
path: root/src/rendering
diff options
context:
space:
mode:
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;
+}