138 glEnable(GL_DEPTH_TEST); |
138 glEnable(GL_DEPTH_TEST); |
139 glClear(GL_DEPTH_BUFFER_BIT); |
139 glClear(GL_DEPTH_BUFFER_BIT); |
140 |
140 |
141 // Sprites |
141 // Sprites |
142 // ------- |
142 // ------- |
143 // TODO: implement view matrix for 2D worlds |
|
144 shader = &asc_active_window->glctx.shader.sprite.program; |
143 shader = &asc_active_window->glctx.shader.sprite.program; |
145 glUseProgram(shader->id); |
144 glUseProgram(shader->id); |
146 glUniformMatrix4fv(shader->projection, 1, |
145 glUniformMatrix4fv(shader->projection, 1, |
147 GL_FALSE, camera->projection); |
146 GL_FALSE, camera->projection); |
|
147 glUniformMatrix4fv(shader->view, 1, |
|
148 GL_FALSE, camera->view); |
148 |
149 |
149 // render opaque sprites from front to back |
150 // render opaque sprites from front to back |
150 glDisable(GL_BLEND); |
151 glDisable(GL_BLEND); |
151 render_iter = cxListBackwardsIterator(render_group[ASC_RENDER_GROUP_SPRITE_OPAQUE]); |
152 render_iter = cxListBackwardsIterator(render_group[ASC_RENDER_GROUP_SPRITE_OPAQUE]); |
152 cx_foreach(AscSprite const *, node, render_iter) { |
153 cx_foreach(AscSprite const *, node, render_iter) { |