Browse Source

remove renCreateScene, and init debug render_group separately

master
cinnaboot 8 years ago
parent
commit
2a1419f959
  1. 1
      TODO.md
  2. 6
      src/hexgame.cpp
  3. 62
      src/renderer.cpp
  4. 2
      src/renderer.h

1
TODO.md

@ -4,7 +4,6 @@
- add interface to render_group for glBindBuffer->glBufferSubData? - add interface to render_group for glBindBuffer->glBufferSubData?
- hexgrid.cpp then wouldn't need to call gl functions directly - hexgrid.cpp then wouldn't need to call gl functions directly
- init HexGrid render groups in hgInit and remove slCreateHexRenderGroups - init HexGrid render groups in hgInit and remove slCreateHexRenderGroups
- remove renCreateScene, and put initDebug renderGroup somewhere
- position entities on grid hexes - position entities on grid hexes
- pathfinding - pathfinding
- assimp animation - assimp animation

6
src/hexgame.cpp

@ -137,12 +137,6 @@ init()
return false; return false;
} }
if (!renCreateScene(g_render_state, g_game_state->entities, g_game_state->entity_count))
{
LOG(ERROR) << "Error in vertex data, exiting\n";
return false;
}
#if defined(_WIN32) #if defined(_WIN32)
LOG(DEBUG) << "TODO: Test SDL_Delay frame timer in win32\n"; LOG(DEBUG) << "TODO: Test SDL_Delay frame timer in win32\n";

62
src/renderer.cpp

@ -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;
}

2
src/renderer.h

@ -53,8 +53,6 @@ bool renInit(render_state* rs);
void renFreeBuffers(render_state* rs); void renFreeBuffers(render_state* rs);
bool renCreateScene(render_state* rs, Entity* entities, uint32 entity_count);
void renRenderFrame(render_state* rs, hexgrid& hg, Entity* entities, uint32 entity_count); void renRenderFrame(render_state* rs, hexgrid& hg, Entity* entities, uint32 entity_count);
void renRenderDebug(render_state* rs, std::vector<Point> &vertices); void renRenderDebug(render_state* rs, std::vector<Point> &vertices);

Loading…
Cancel
Save