+
+ m_texture_prog.Use();
+ m_viewport_ubo.Bind();
+ m_debug_font_vertices.Bind();
+ m_debug_font_indices.Bind();
+ glUniform4f(m_colour_uniform_location, 0,0,0,1);
+ glEnableVertexAttribArray(0);
+ glEnableVertexAttribArray(1);
+ glEnable(GL_PRIMITIVE_RESTART);
+ glPrimitiveRestartIndex(65535);
+ glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 4*sizeof(float), (void*)(2*sizeof(float)));
+ glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 4*sizeof(float), 0);
+ glDrawElements(GL_TRIANGLE_STRIP, m_debug_font_index_head, GL_UNSIGNED_SHORT, 0);
+ glDisable(GL_PRIMITIVE_RESTART);
+ glDisableVertexAttribArray(1);
+ glDisableVertexAttribArray(0);
+
+ glDisable(GL_BLEND);
+
+ m_debug_font_vertex_head = 0;
+ m_debug_font_index_head = 0;
+}
+
+void Screen::DebugFontPrint(const char* str)
+{
+ if (!m_debug_font_atlas) return;
+
+ float *vertexData = (float*)m_debug_font_vertices.MapRange(m_debug_font_vertex_head*sizeof(float), m_debug_font_vertices.GetSize() - m_debug_font_vertex_head*sizeof(float), false, true, true);
+ uint16_t *indexData = (uint16_t*)m_debug_font_indices.MapRange(m_debug_font_index_head*sizeof(uint16_t), m_debug_font_indices.GetSize() - m_debug_font_index_head*sizeof(uint16_t), false, true, true);