A small OpenGL 3+ renderer and game engine
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

49 lines
875 B

#pragma once
#include <GL/glew.h>
#include <glm/glm.hpp>
#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);