#pragma once #include #include #include "camera.h" #include "lights.h" #include "mesh.h" #include "shader_program.h" struct render_objects; //struct simple_render_object; render_objects* roInitModel(mesh_group meshes); render_objects* roInitSimpleMesh(simple_mesh& mesh_in, GLenum draw_mode); void roFree(render_objects* r_objs); void roTranslate(render_objects* r_objs, glm::mat4 xform); void roScale(render_object* ro, glm::mat4 xform); void roRotate(render_object* ro, glm::mat4 xform); // TODO: we probably want to re-introduce a world_transform matrix here again // so we can do: projection * view * world_transform * model_transform // that way model animations and world orientation/position can be separated void roDraw(render_objects* r_ojbs, camera& cam, shader_wrapper sw, light_group* lights); #if 0 void roDrawSimple(simple_render_object* ro, camera& cam, simple_shader_program& shader, GLenum draw_mode); #endif