Bezier bounds rectangles are calculated correctly
[ipdf/code.git] / src / screen.cpp
index fdda252..27675d5 100644 (file)
@@ -16,6 +16,8 @@ using namespace std;
 
 static void opengl_debug_callback(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* msg, const void *data)
 {
+       // Don't print out gl Errors we generated.
+       if (source == GL_DEBUG_SOURCE_APPLICATION) return;
        Error("OpenGL Error (%d): %s", id, msg);
 }
 
@@ -89,6 +91,7 @@ Screen::Screen()
 
        m_debug_font_atlas = 0;
 
+       m_view = NULL;
        ResizeViewport(800, 600);
 
        Clear();
@@ -145,7 +148,7 @@ bool Screen::PumpEvents()
                        m_last_mouse_y = evt.motion.y;
                        if (m_mouse_handler)
                        {
-                               m_mouse_handler(evt.motion.x, evt.motion.y,evt.motion.state, 0);
+                               m_mouse_handler(evt.motion.x, evt.motion.y,evt.motion.state, 0, this, m_view);
                        }
                        break;
                case SDL_MOUSEBUTTONDOWN:
@@ -154,13 +157,13 @@ bool Screen::PumpEvents()
                        m_last_mouse_y = evt.button.y;
                        if (m_mouse_handler)
                        {
-                               m_mouse_handler(evt.button.x, evt.button.y, evt.button.state?evt.button.button:0, 0);
+                               m_mouse_handler(evt.button.x, evt.button.y, evt.button.state?evt.button.button:0, 0, this, m_view);
                        }
                        break;
                case SDL_MOUSEWHEEL:
                        if (m_mouse_handler)
                        {
-                               m_mouse_handler(m_last_mouse_x, m_last_mouse_y, 0, evt.wheel.y);
+                               m_mouse_handler(m_last_mouse_x, m_last_mouse_y, 0, evt.wheel.y, this, m_view);
                        }
                        break;
                case SDL_KEYDOWN:
@@ -390,11 +393,13 @@ void Screen::DebugFontInit(const char *name, float font_size)
 
        m_debug_font_vertices.SetUsage(GraphicsBuffer::BufferUsageStreamDraw);
        m_debug_font_vertices.SetType(GraphicsBuffer::BufferTypeVertex);
-       m_debug_font_vertices.Upload(8192, nullptr);
+       m_debug_font_vertices.SetName("m_debug_font_vertices");
+       m_debug_font_vertices.Upload(8192,NULL);
        m_debug_font_vertex_head = 0;
 
        m_debug_font_indices.SetUsage(GraphicsBuffer::BufferUsageStreamDraw);
        m_debug_font_indices.SetType(GraphicsBuffer::BufferTypeIndex);
+       m_debug_font_indices.SetName("m_debug_font_indices");
        m_debug_font_indices.Resize(500);
        m_debug_font_index_head = 0;
 }
@@ -408,7 +413,7 @@ void Screen::DebugFontClear()
 
 void Screen::DebugFontFlush()
 {
-       
+       glPushDebugGroup(GL_DEBUG_SOURCE_APPLICATION, 40, -1, "Screen::DebugFontFlush()");      
                
        glEnable(GL_BLEND);
        glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
@@ -436,16 +441,20 @@ void Screen::DebugFontFlush()
        m_debug_font_indices.Invalidate();
        m_debug_font_vertex_head = 0;
        m_debug_font_index_head = 0;
+
+       glPopDebugGroup();
 }
 
+struct fontvertex
+{
+       float x, y, s, t;
+};
+
 void Screen::DebugFontPrint(const char* str)
 {
        if (!m_debug_font_atlas) return;
 
-       struct fontvertex
-       {
-               float x, y, s, t;
-       };
+       glPushDebugGroup(GL_DEBUG_SOURCE_APPLICATION, 41, -1, "Screen::DebugFontPrint()");
 
        BufferBuilder<fontvertex> vertexData(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), m_debug_font_vertices.GetSize() - m_debug_font_vertex_head*sizeof(float));
        BufferBuilder<uint16_t> indexData(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), m_debug_font_indices.GetSize() - m_debug_font_index_head*sizeof(uint16_t));
@@ -458,6 +467,7 @@ void Screen::DebugFontPrint(const char* str)
                        m_debug_font_vertices.UnMap();
                        DebugFontFlush();
                        DebugFontPrint(str);
+                       glPopDebugGroup();
                        return;
                }
                if (*str >= 32 && (unsigned char)(*str) < 128) {
@@ -490,6 +500,7 @@ void Screen::DebugFontPrint(const char* str)
        }
        m_debug_font_indices.UnMap();
        m_debug_font_vertices.UnMap();
+       glPopDebugGroup();
        //DebugFontFlush();
 }
 

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