| 584 | } |
| 585 | |
| 586 | void renderer_flush() { |
| 587 | if(state.render.vert_count <= 0) return; |
| 588 | |
| 589 | // Bind the vertex buffer & shader set the vertex data, bind the textures & draw |
| 590 | glUseProgram(state.render.shader.id); |
| 591 | glBindBuffer(GL_ARRAY_BUFFER, state.render.vbo); |
| 592 | glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(Vertex) * state.render.vert_count, |
| 593 | state.render.verts); |
| 594 | |
| 595 | for(uint32_t i = 0; i < state.render.tex_count; i++) { |
| 596 | glBindTextureUnit(i, state.render.textures[i].id); |
| 597 | state.drawcalls++; |
| 598 | } |
| 599 | |
| 600 | vec2s renderSize = (vec2s){(float)state.dsp_w, (float)state.dsp_h}; |
| 601 | glUniform2fv(glGetUniformLocation(state.render.shader.id, "u_screen_size"), 1, (float*)renderSize.raw); |
| 602 | glBindVertexArray(state.render.vao); |
| 603 | glDrawElements(GL_TRIANGLES, state.render.index_count, GL_UNSIGNED_INT, NULL); |
| 604 | } |
| 605 | |
| 606 | LfTextProps text_render_simple(vec2s pos, const char* text, LfFont font, LfColor font_color, bool no_render) { |
| 607 | return lf_text_render(pos, text, font, font_color, -1, (vec2s){-1, -1}, no_render, false, -1, -1); |
no outgoing calls
no test coverage detected