Allow setting type of Real at compilation time
[ipdf/code.git] / src / view.cpp
index 3c6e2f5..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,8 +72,6 @@ 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
 
@@ -80,6 +81,11 @@ 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)
@@ -108,4 +114,9 @@ void View::Render()
                glEnd();
        }
 
+       if (m_colour.a < 1.0f)
+       {
+               glDisable(GL_BLEND);
+       }
+
 }

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