#pragma once #include #include #include "camera.h" #include "lights.h" #include "mesh.h" #include "shader_program.h" struct render_object { glm::mat4 node_xform; GLuint tex_id; GLuint vertex_buffer_id; GLuint normal_buffer_id; GLuint uv_buffer_id; GLuint index_buffer_id; uint index_buffer_count; }; struct simple_render_object { GLuint vertex_buffer_id; GLuint vertex_color_buffer_id; uint vertex_count; }; bool roInit(mesh_info* mi_in, render_object& ro_out); bool roInitSimpleMesh(simple_mesh& mesh_in, simple_render_object& ro_out); void roFree(render_object& ro); void roFreeSimple(simple_render_object& ro); void roDraw(render_object& ro, camera& cam, default_shader_program& shader, light_group* lights); void roDrawSimple(simple_render_object& ro, camera& cam, simple_shader_program& shader, GLenum draw_mode);