]> git.sur5r.net Git - fstl/commitdiff
Painting status string as text
authorMatt Keeter <matt.j.keeter@gmail.com>
Sun, 9 Mar 2014 17:06:56 +0000 (10:06 -0700)
committerMatt Keeter <matt.j.keeter@gmail.com>
Sun, 9 Mar 2014 17:06:56 +0000 (10:06 -0700)
src/canvas.cpp
src/canvas.h

index 39081b07554366626e61bf7185117f5f61994e32..98c0a296247617b3ba93a504f527dee2caa96b69 100644 (file)
@@ -35,6 +35,12 @@ void Canvas::load_mesh(Mesh* m)
     delete m;
 }
 
+void Canvas::set_status(const QString &s)
+{
+    status = s;
+    update();
+}
+
 void Canvas::initializeGL()
 {
     mesh_shader.addShaderFromSourceFile(QGLShader::Vertex, ":/gl/mesh.vert");
@@ -42,19 +48,25 @@ void Canvas::initializeGL()
     mesh_shader.link();
 
     backdrop = new Backdrop();
-
-    glClearColor(0.0, 0.0, 0.0, 0.0);
-    glEnable(GL_DEPTH_TEST);
 }
 
-void Canvas::paintGL()
+void Canvas::paintEvent(QPaintEvent *event)
 {
+    Q_UNUSED(event);
+
+    glClearColor(0.0, 0.0, 0.0, 0.0);
     glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+    glEnable(GL_DEPTH_TEST);
 
     backdrop->draw();
     if (mesh)  draw_mesh();
+
+    QPainter painter(this);
+    if (!status.isNull())
+        painter.drawText(10, height() - 10, status);
 }
 
+
 void Canvas::draw_mesh()
 {
     mesh_shader.bind();
index c094e5b228d1238129f593907fd151c53d1ae682..6507dca5b0d166872cd27c0a255376aa20399c38 100644 (file)
@@ -18,10 +18,11 @@ public:
     Canvas(const QGLFormat& format, QWidget* parent=0);
 
     void initializeGL();
-    void paintGL();
+    void paintEvent(QPaintEvent* event);
     ~Canvas();
 
 public slots:
+    void set_status(const QString& s);
     void load_mesh(Mesh* m);
 
 
@@ -49,6 +50,7 @@ private:
     float yaw;
 
     QPoint mouse_pos;
+    QString status;
 };
 
 #endif // CANVAS_H