|
|
|
|
@ -12,36 +12,36 @@ struct Entity;
|
|
|
|
|
// TODO: can these structs be used as opaque pointers?
|
|
|
|
|
struct gl_buffer |
|
|
|
|
{ |
|
|
|
|
GLuint buffer_id = 0; |
|
|
|
|
size_t buffer_len = 0; // NOTE: number of elements in buffer
|
|
|
|
|
GLfloat* buffer = nullptr; |
|
|
|
|
GLuint buffer_id; |
|
|
|
|
size_t buffer_len; // NOTE: number of elements in buffer
|
|
|
|
|
GLfloat* buffer; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
struct gl_index_buffer |
|
|
|
|
{ |
|
|
|
|
GLuint buffer_id = 0; |
|
|
|
|
size_t buffer_len = 0; |
|
|
|
|
uint* buffer = nullptr; |
|
|
|
|
GLuint buffer_id; |
|
|
|
|
size_t buffer_len; |
|
|
|
|
uint* buffer; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
struct rg_shader_program |
|
|
|
|
{ |
|
|
|
|
GLuint program_id = 0; |
|
|
|
|
GLuint program_id; |
|
|
|
|
|
|
|
|
|
GLuint model_matrix_id = 0; |
|
|
|
|
GLuint view_matrix_id = 0; |
|
|
|
|
GLuint projection_matrix_id = 0; |
|
|
|
|
GLuint normal_matrix_id = 0; |
|
|
|
|
GLuint model_matrix_id; |
|
|
|
|
GLuint view_matrix_id; |
|
|
|
|
GLuint projection_matrix_id; |
|
|
|
|
GLuint normal_matrix_id; |
|
|
|
|
|
|
|
|
|
GLuint vertex_array_id = 0; |
|
|
|
|
GLuint sampler_id = 0; |
|
|
|
|
GLuint num_lights_id = 0; |
|
|
|
|
GLuint vertex_array_id; |
|
|
|
|
GLuint sampler_id; |
|
|
|
|
GLuint num_lights_id; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
struct render_object |
|
|
|
|
{ |
|
|
|
|
bool use_texture = false; |
|
|
|
|
GLuint tex_id = 0; |
|
|
|
|
bool use_texture; |
|
|
|
|
GLuint tex_id; |
|
|
|
|
|
|
|
|
|
gl_buffer vertex_buffer; |
|
|
|
|
gl_buffer normal_buffer; |
|
|
|
|
@ -51,11 +51,11 @@ struct render_object
|
|
|
|
|
|
|
|
|
|
struct render_group |
|
|
|
|
{ |
|
|
|
|
uint num_objects = 0; |
|
|
|
|
render_object** render_objects = nullptr; |
|
|
|
|
uint num_objects; |
|
|
|
|
render_object** render_objects; |
|
|
|
|
rg_shader_program shader; |
|
|
|
|
bool use_normals = false; |
|
|
|
|
bool draw_indexed = false; |
|
|
|
|
bool use_normals; |
|
|
|
|
bool draw_indexed; |
|
|
|
|
GLenum draw_mode = GL_TRIANGLES; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|