#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_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, model->num_indices, GL_UNSIGNED_INT, 0); }