|
|
|
@ -129,22 +129,24 @@ renRenderFrame(render_state* rs) |
|
|
|
rs->clear_col.A); |
|
|
|
rs->clear_col.A); |
|
|
|
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); |
|
|
|
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); |
|
|
|
|
|
|
|
|
|
|
|
// TODO: need a nicer way to loop over entities and render_objects
|
|
|
|
|
|
|
|
// eg) entDraw()
|
|
|
|
|
|
|
|
for (uint i = 0; i < rs->render_group_count; i++) { |
|
|
|
for (uint i = 0; i < rs->render_group_count; i++) { |
|
|
|
render_group& rg = rs->render_groups[i]; |
|
|
|
render_group& rg = rs->render_groups[i]; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (rg.shader.type == SIMPLE_SHADER) { |
|
|
|
for (uint j = 0; j < rg.entity_count; j++) { |
|
|
|
for (uint j = 0; j < rg.entity_count; j++) { |
|
|
|
entity& e = rg.entities[j]; |
|
|
|
entity& e = rg.entities[j]; |
|
|
|
|
|
|
|
|
|
|
|
if (rg.shader.type == SIMPLE_SHADER) { |
|
|
|
|
|
|
|
roDrawSimple(e.simple_ro, |
|
|
|
roDrawSimple(e.simple_ro, |
|
|
|
rs->cam, |
|
|
|
rs->cam, |
|
|
|
*rg.shader.simple_shader, |
|
|
|
*rg.shader.simple_shader, |
|
|
|
e.draw_mode); |
|
|
|
e.draw_mode); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (rg.shader.type == DEFAULT_SHADER) { |
|
|
|
if (rg.shader.type == DEFAULT_SHADER) { |
|
|
|
|
|
|
|
for (uint j = 0; j < rg.entity_count; j++) { |
|
|
|
|
|
|
|
entity& e = rg.entities[j]; |
|
|
|
|
|
|
|
|
|
|
|
for (uint k = 0; k < e.ro_count; k++) { |
|
|
|
for (uint k = 0; k < e.ro_count; k++) { |
|
|
|
roDraw(e.render_objs[k], |
|
|
|
roDraw(e.render_objs[k], |
|
|
|
rs->cam, |
|
|
|
rs->cam, |
|
|
|
|