]> git.sur5r.net Git - fstl/blobdiff - src/canvas.cpp
Derived App from QApplication
[fstl] / src / canvas.cpp
index a5509c0f478a5a2163a74e0624fa384482325a97..91db4d71ebd33ae83e9dfd6fcf6606408c54627b 100644 (file)
@@ -23,7 +23,6 @@ Canvas::~Canvas()
 void Canvas::load_mesh(Mesh* m)
 {
     mesh = new GLMesh(m);
-    /*
     center = QVector3D(m->xmin() + m->xmax(),
                        m->ymin() + m->ymax(),
                        m->zmin() + m->zmax()) / 2;
@@ -31,12 +30,17 @@ void Canvas::load_mesh(Mesh* m)
                 pow(m->xmax() - m->xmin(), 2) +
                 pow(m->ymax() - m->ymin(), 2) +
                 pow(m->zmax() - m->zmin(), 2));
-    */
     update();
 
     delete m;
 }
 
+void Canvas::set_status(const QString &s)
+{
+    status = s;
+    update();
+}
+
 void Canvas::initializeGL()
 {
     mesh_shader.addShaderFromSourceFile(QGLShader::Vertex, ":/gl/mesh.vert");
@@ -44,19 +48,26 @@ 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);
+    painter.setRenderHint(QPainter::Antialiasing);
+    if (!status.isNull())
+        painter.drawText(10, height() - 10, status);
 }
 
+
 void Canvas::draw_mesh()
 {
     mesh_shader.bind();