3 #include "SDL_opengl.h"
8 void View::Translate(Real x, Real y)
16 void View::ScaleAroundPoint(Real x, Real y, Real scaleAmt)
18 // Convert to local coords.
24 Debug("Mouse wheel event %f %f %f\n", Float(x), Float(y), Float(scaleAmt));
26 Real top = y - m_bounds.y;
27 Real left = x - m_bounds.x;
32 m_bounds.x = x - left;
34 m_bounds.w *= scaleAmt;
35 m_bounds.h *= scaleAmt;
40 // Draw some grid lines at fixed pixel positions
41 glMatrixMode(GL_PROJECTION);
43 glOrtho(0.0, 1.0, 1.0, 0.0, -1.f, 1.f);
44 glMatrixMode(GL_MODELVIEW);
47 glColor4f(0.9,0.9,0.9,0.1);
48 const float num_lines = 50.0;
49 for (float i = 0; i < num_lines; ++i)
52 glVertex2f(i*(1.0/num_lines), 0.0);
53 glVertex2f(i*(1.0/num_lines), 1.0);
56 glVertex2f(0.0,i*(1.0/num_lines));
57 glVertex2f(1.0,i*(1.0/num_lines));
65 static bool debug_output_done = false;
66 if (!debug_output_done)
68 m_document.DebugDumpObjects();
69 debug_output_done = true;
73 //DrawGrid(); // Draw the gridlines
75 glMatrixMode(GL_PROJECTION);
77 glOrtho(Float(m_bounds.x), Float(m_bounds.x)+Float(m_bounds.w), Float(m_bounds.y) + Float(m_bounds.h), Float(m_bounds.y), -1.f, 1.f);
78 glMatrixMode(GL_MODELVIEW);
81 if (m_colour.a < 1.0f)
84 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
86 glColor4f(m_colour.r, m_colour.g, m_colour.b, m_colour.a);
88 for (unsigned id = 0; id < m_document.ObjectCount(); ++id)
90 if (m_document.m_objects.types[id] != RECT_FILLED)
92 Rect obj_bounds = m_document.m_objects.bounds[id];
93 glVertex2f(Float(obj_bounds.x), Float(obj_bounds.y));
94 glVertex2f(Float(obj_bounds.x) + Float(obj_bounds.w), Float(obj_bounds.y));
95 glVertex2f(Float(obj_bounds.x) + Float(obj_bounds.w), Float(obj_bounds.y) + Float(obj_bounds.h));
96 glVertex2f(Float(obj_bounds.x), Float(obj_bounds.y) + Float(obj_bounds.h));
101 for (unsigned id = 0; id < m_document.ObjectCount(); ++id)
103 if (m_document.m_objects.types[id] != RECT_OUTLINE)
105 Rect obj_bounds = m_document.m_objects.bounds[id];
106 glBegin(GL_LINE_LOOP);
107 glVertex2f(Float(obj_bounds.x), Float(obj_bounds.y));
108 glVertex2f(Float(obj_bounds.x) + Float(obj_bounds.w), Float(obj_bounds.y));
109 glVertex2f(Float(obj_bounds.x) + Float(obj_bounds.w), Float(obj_bounds.y) + Float(obj_bounds.h));
110 glVertex2f(Float(obj_bounds.x), Float(obj_bounds.y) + Float(obj_bounds.h));
114 if (m_colour.a < 1.0f)