Allow setting type of Real at compilation time
[ipdf/code.git] / src / view.cpp
index cd4cc35..d8a875b 100644 (file)
@@ -11,17 +11,19 @@ void View::Translate(Real x, Real y)
        y *= m_bounds.h;
        m_bounds.x += x;
        m_bounds.y += y;
+       Debug("View Bounds => %s", m_bounds.Str().c_str());
 }
 
 void View::ScaleAroundPoint(Real x, Real y, Real scaleAmt)
 {
+       // x and y are coordinates in the window
        // Convert to local coords.
        x *= m_bounds.w;
        y *= m_bounds.h;
        x += m_bounds.x;
        y += m_bounds.y;
        
-       Debug("Mouse wheel event %f %f %f\n", Float(x), Float(y), Float(scaleAmt));
+       //Debug("Mouse wheel event %f %f %f\n", Float(x), Float(y), Float(scaleAmt));
        
        Real top = y - m_bounds.y;
        Real left = x - m_bounds.x;
@@ -33,6 +35,7 @@ void View::ScaleAroundPoint(Real x, Real y, Real scaleAmt)
        m_bounds.y = y - top;
        m_bounds.w *= scaleAmt;
        m_bounds.h *= scaleAmt;
+       Debug("View Bounds => %s", m_bounds.Str().c_str());
 }
 
 void View::DrawGrid()
@@ -69,10 +72,8 @@ void View::Render()
                debug_output_done = true;
        }
 
-       glClearColor(1.f,1.f,1.f,1.f);
-       glClear(GL_COLOR_BUFFER_BIT);
 
-       DrawGrid(); // Draw the gridlines
+       //DrawGrid(); // Draw the gridlines
 
        glMatrixMode(GL_PROJECTION);
        glLoadIdentity();
@@ -80,11 +81,16 @@ void View::Render()
        glMatrixMode(GL_MODELVIEW);
        glLoadIdentity();
 
+       if (m_colour.a < 1.0f)
+       {
+               glEnable(GL_BLEND);
+               glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+       }
        glColor4f(m_colour.r, m_colour.g, m_colour.b, m_colour.a);
        glBegin(GL_QUADS);
        for (unsigned id = 0; id < m_document.ObjectCount(); ++id)
        {
-               if (m_document.m_objects.types[id] == RECT_FILLED)
+               if (m_document.m_objects.types[id] != RECT_FILLED)
                        continue;
                Rect obj_bounds = m_document.m_objects.bounds[id];
                glVertex2f(Float(obj_bounds.x), Float(obj_bounds.y));
@@ -97,7 +103,7 @@ void View::Render()
        
        for (unsigned id = 0; id < m_document.ObjectCount(); ++id)
        {
-               if (m_document.m_objects.types[id] == RECT_OUTLINE)
+               if (m_document.m_objects.types[id] != RECT_OUTLINE)
                        continue;
                Rect obj_bounds = m_document.m_objects.bounds[id];
                glBegin(GL_LINE_LOOP);
@@ -108,4 +114,9 @@ void View::Render()
                glEnd();
        }
 
+       if (m_colour.a < 1.0f)
+       {
+               glDisable(GL_BLEND);
+       }
+
 }

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