X-Git-Url: https://git.ucc.asn.au/?p=ipdf%2Fcode.git;a=blobdiff_plain;f=src%2Fscreen.h;h=66590e717bd238046d30b27f3ac18cbe08ebf70e;hp=e6418265b522bdf2a8dcdb51cf529c52158d4bab;hb=45806117a53330b9f0c9c60310d79c56e960fd1f;hpb=67fb91aae1fc5315f462d6b5818806f154e9e687 diff --git a/src/screen.h b/src/screen.h index e641826..66590e7 100644 --- a/src/screen.h +++ b/src/screen.h @@ -5,6 +5,8 @@ #include +#include "stb_truetype.h" + namespace IPDF { /* @@ -20,6 +22,9 @@ namespace IPDF // Returns 'false' if the program should quit. bool PumpEvents(); + // Clears the screen to a given colour. + void Clear(float r=1.0, float g=1.0, float b=1.0, float a=1.0); + // Finishes rendering a frame, and presents it on the screen. void Present(); @@ -27,6 +32,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) @@ -57,6 +68,11 @@ namespace IPDF int m_viewport_height; SDL_Window *m_window; SDL_GLContext m_gl_context; + 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; }; }