|
|
|
@ -34,6 +34,7 @@ util_RGBA g_clear_col = {1.f,1.f,1.f,1.f}; |
|
|
|
// forward declarations
|
|
|
|
// forward declarations
|
|
|
|
void openglDebugCallback(GLenum source, GLenum type, GLuint id, GLenum severity, |
|
|
|
void openglDebugCallback(GLenum source, GLenum type, GLuint id, GLenum severity, |
|
|
|
GLsizei length, const GLchar* message, const void* userParam); |
|
|
|
GLsizei length, const GLchar* message, const void* userParam); |
|
|
|
|
|
|
|
bool initDebugRenderGroup(render_state* rs); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// interface
|
|
|
|
// interface
|
|
|
|
@ -128,6 +129,11 @@ renInit(render_state* rs) |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!initDebugRenderGroup(rs)) { |
|
|
|
|
|
|
|
LOG(ERROR) << "Error initializing debug render group\n"; |
|
|
|
|
|
|
|
return false; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
g_clear_col.R = CLEAR_COL_R; |
|
|
|
g_clear_col.R = CLEAR_COL_R; |
|
|
|
g_clear_col.B = CLEAR_COL_B; |
|
|
|
g_clear_col.B = CLEAR_COL_B; |
|
|
|
g_clear_col.G = CLEAR_COL_G; |
|
|
|
g_clear_col.G = CLEAR_COL_G; |
|
|
|
@ -147,39 +153,6 @@ renFreeBuffers(render_state* rs) |
|
|
|
rgFree(rs->debug_render_group); |
|
|
|
rgFree(rs->debug_render_group); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
bool |
|
|
|
|
|
|
|
renCreateScene(render_state* rs, Entity* entities, uint32 entity_count) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
// entities
|
|
|
|
|
|
|
|
#if 0 |
|
|
|
|
|
|
|
for (uint i = 0; i < entity_count; i++) { |
|
|
|
|
|
|
|
rgInitEntity(&entities[i]); |
|
|
|
|
|
|
|
entities[i].ren_group->shader = rs->default_shader; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
// debug draw vertices
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
uint debug_buf_len = 12; // 4 vertices, 3 floats per vertex
|
|
|
|
|
|
|
|
rs->debug_render_group = rgInitSingle(rs->default_shader, debug_buf_len, true, 0, GL_LINE_LOOP); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (rs->debug_render_group == nullptr) |
|
|
|
|
|
|
|
return false; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
gl_buffer& debug_vertex_buf = rs->debug_render_group->render_objects[0]->vertex_buffer; |
|
|
|
|
|
|
|
gl_buffer& debug_normal_buf = rs->debug_render_group->render_objects[0]->normal_buffer; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (uint i = 0; i < debug_buf_len; i += 3) { |
|
|
|
|
|
|
|
debug_normal_buf.buffer[i] = 0.f; |
|
|
|
|
|
|
|
debug_normal_buf.buffer[i + 1] = 0.f; |
|
|
|
|
|
|
|
debug_normal_buf.buffer[i + 2] = 1.f; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
rgInitGLFloatBuffer(&debug_vertex_buf, GL_DYNAMIC_DRAW, GL_ARRAY_BUFFER); |
|
|
|
|
|
|
|
rgInitGLFloatBuffer(&debug_normal_buf, GL_STATIC_DRAW, GL_ARRAY_BUFFER); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return true; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void |
|
|
|
void |
|
|
|
renRenderFrame(render_state* rs, hexgrid& hg, Entity* entities, uint32 entity_count) |
|
|
|
renRenderFrame(render_state* rs, hexgrid& hg, Entity* entities, uint32 entity_count) |
|
|
|
{ |
|
|
|
{ |
|
|
|
@ -235,3 +208,26 @@ openglDebugCallback(GLenum source, GLenum type, GLuint id, GLenum severity, |
|
|
|
<< ", message: " << message << "\n"; |
|
|
|
<< ", message: " << message << "\n"; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool |
|
|
|
|
|
|
|
initDebugRenderGroup(render_state* rs) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
uint debug_buf_len = 12; // 4 vertices, 3 floats per vertex
|
|
|
|
|
|
|
|
rs->debug_render_group = rgInitSingle(rs->default_shader, debug_buf_len, true, 0, GL_LINE_LOOP); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (rs->debug_render_group == nullptr) |
|
|
|
|
|
|
|
return false; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
gl_buffer& debug_vertex_buf = rs->debug_render_group->render_objects[0]->vertex_buffer; |
|
|
|
|
|
|
|
gl_buffer& debug_normal_buf = rs->debug_render_group->render_objects[0]->normal_buffer; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (uint i = 0; i < debug_buf_len; i += 3) { |
|
|
|
|
|
|
|
debug_normal_buf.buffer[i] = 0.f; |
|
|
|
|
|
|
|
debug_normal_buf.buffer[i + 1] = 0.f; |
|
|
|
|
|
|
|
debug_normal_buf.buffer[i + 2] = 1.f; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
rgInitGLFloatBuffer(&debug_vertex_buf, GL_DYNAMIC_DRAW, GL_ARRAY_BUFFER); |
|
|
|
|
|
|
|
rgInitGLFloatBuffer(&debug_normal_buf, GL_STATIC_DRAW, GL_ARRAY_BUFFER); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return true; |
|
|
|
|
|
|
|
} |
|
|
|
|