diff options
Diffstat (limited to 'src/engine/M_render.c')
| -rw-r--r-- | src/engine/M_render.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/engine/M_render.c b/src/engine/M_render.c index 1d83ceb..9317167 100644 --- a/src/engine/M_render.c +++ b/src/engine/M_render.c @@ -9,9 +9,19 @@ 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_ViewModel *model; + switch (obj->type) { + case M_OBJECT_CUBE: + model = &render_info->global_models[0]; + break; + case M_OBJECT_CUSTOM: + model = obj->model; + break; + } + M_bindViewModel(model); 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); + glDrawElements(GL_TRIANGLES, model->num_indices, GL_UNSIGNED_INT, 0); } |
