X-Git-Url: https://git.ucc.asn.au/?p=ipdf%2Fcode.git;a=blobdiff_plain;f=src%2Fscreen.h;h=d918dd1afc2a9fd0b604b46468939d1e4c247c7f;hp=44dd2c723be7ea089fdc962c4c7bd8a826bc2571;hb=bf0f1cab25fa460ad4716ca60c11abab78a52cbd;hpb=b1786b24148036a4d9402cc12ea97466072e988d diff --git a/src/screen.h b/src/screen.h index 44dd2c7..d918dd1 100644 --- a/src/screen.h +++ b/src/screen.h @@ -5,6 +5,10 @@ #include +#include "stb_truetype.h" +#include "graphicsbuffer.h" +#include "shaderprogram.h" + namespace IPDF { /* @@ -30,6 +34,12 @@ namespace IPDF int ViewportWidth() const { return m_viewport_width; } int ViewportHeight() const { return m_viewport_height; } + // Debug Font handling + void DebugFontInit(const char *font_name, float font_size = 12); + void DebugFontClear(); + void DebugFontPrint(const char *str); + void DebugFontPrintF(const char *fmt, ...); + // Handle mouse input. typedef std::function MouseHandler; void SetMouseHandler(MouseHandler handler) @@ -51,6 +61,7 @@ namespace IPDF void RenderBMP(const char * filename) const; private: void ResizeViewport(int width, int height); + void DebugFontFlush(); MouseHandler m_mouse_handler; int m_last_mouse_x; @@ -60,6 +71,18 @@ namespace IPDF int m_viewport_height; SDL_Window *m_window; SDL_GLContext m_gl_context; + ShaderProgram m_texture_prog; + GLint m_colour_uniform_location; + GraphicsBuffer m_viewport_ubo; + stbtt_bakedchar m_debug_font_rects[96]; + unsigned int m_debug_font_atlas; + float m_debug_font_x; + float m_debug_font_y; + float m_debug_font_size; + GraphicsBuffer m_debug_font_vertices; + GraphicsBuffer m_debug_font_indices; + int m_debug_font_vertex_head; + int m_debug_font_index_head; }; }