Arbint class with += and -= operators
[ipdf/code.git] / src / screen.h
index 66590e7..9666c32 100644 (file)
@@ -6,6 +6,8 @@
 #include <functional>
 
 #include "stb_truetype.h"
+#include "graphicsbuffer.h"
+#include "shaderprogram.h"
 
 namespace IPDF
 {
@@ -57,22 +59,44 @@ namespace IPDF
 
                void ScreenShot(const char * filename) const;
                void RenderBMP(const char * filename) const;
+               void RenderPixels(int x, int y, int w, int h, uint8_t * pixels) const;
+
+
+
+               // Returns the CPU time (in seconds) it took to render the last completed frame.
+               double GetLastFrameTimeCPU() const { return m_last_frame_time / SDL_GetPerformanceFrequency(); }
+               // Returns the GPU time (in seconds) it took to render the last completed frame.
+               double GetLastFrameTimeGPU() const;
        private:
                void ResizeViewport(int width, int height);
+               void DebugFontFlush();
                
                MouseHandler m_mouse_handler;
                int m_last_mouse_x;
                int m_last_mouse_y;
 
+               double m_last_frame_time;
+               double m_frame_begin_time;
+               GLuint m_frame_gpu_timer;
+               GLuint m_last_frame_gpu_timer;
+
                int m_viewport_width;
                int m_viewport_height;
                SDL_Window *m_window;
                SDL_GLContext m_gl_context;
+               ShaderProgram m_texture_prog;
+               ShaderProgram m_font_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;
        };
 
 }

UCC git Repository :: git.ucc.asn.au