diff --git a/src/renderer.cpp b/src/renderer.cpp index de2c761..c412d93 100644 --- a/src/renderer.cpp +++ b/src/renderer.cpp @@ -129,22 +129,24 @@ renRenderFrame(render_state* rs) rs->clear_col.A); 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++) { render_group& rg = rs->render_groups[i]; - for (uint j = 0; j < rg.entity_count; j++) { - entity& e = rg.entities[j]; + if (rg.shader.type == SIMPLE_SHADER) { + for (uint j = 0; j < rg.entity_count; j++) { + entity& e = rg.entities[j]; - if (rg.shader.type == SIMPLE_SHADER) { roDrawSimple(e.simple_ro, rs->cam, *rg.shader.simple_shader, e.draw_mode); } + } + + if (rg.shader.type == DEFAULT_SHADER) { + for (uint j = 0; j < rg.entity_count; j++) { + entity& e = rg.entities[j]; - if (rg.shader.type == DEFAULT_SHADER) { for (uint k = 0; k < e.ro_count; k++) { roDraw(e.render_objs[k], rs->cam,