summaryrefslogtreecommitdiff
path: root/src/engine/M_render.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/M_render.c')
-rw-r--r--src/engine/M_render.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/engine/M_render.c b/src/engine/M_render.c
new file mode 100644
index 0000000..1d83ceb
--- /dev/null
+++ b/src/engine/M_render.c
@@ -0,0 +1,17 @@
+#include "M_render.h"
+
+void M_setupProjection(float fov, float aspect_ratio, M_RenderInfo *render_info)
+{
+ glm_perspective(fov, aspect_ratio, 0.01f, 10.0f, render_info->projection_matrix);
+}
+
+void M_drawObject(M_RenderInfo *render_info, M_Camera *camera, M_Object *obj)
+{
+ glUseProgram(obj->shader->prog);
+ glUniformMatrix4fv(obj->shader->transform_loc, 1, GL_FALSE, (float*)obj->transform);
+ M_cameraViewMatrix(camera);
+ glUniformMatrix4fv(obj->shader->view_loc, 1, GL_FALSE, (float*)camera->view_matrix);
+ glUniformMatrix4fv(obj->shader->projection_loc, 1, GL_FALSE, (float*)render_info->projection_matrix);
+
+ glDrawElements(GL_TRIANGLES, obj->model->num_indices, GL_UNSIGNED_INT, 0);
+}