X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=src%2Fcanvas.cpp;h=930fd2cde13402b6c0b2bbd37eb803103fdf6a6f;hb=41d81ccd8f85da838b4ba41c7a5d2f55157ef349;hp=91db4d71ebd33ae83e9dfd6fcf6606408c54627b;hpb=f49d27216e6ed855fef440d2e8b15c556af6dc37;p=fstl diff --git a/src/canvas.cpp b/src/canvas.cpp index 91db4d7..930fd2c 100644 --- a/src/canvas.cpp +++ b/src/canvas.cpp @@ -10,7 +10,7 @@ Canvas::Canvas(const QGLFormat& format, QWidget *parent) : QGLWidget(format, parent), mesh(NULL), - scale(1), tilt(90), yaw(0) + scale(1), tilt(90), yaw(0), status(" ") { // Nothing to do here } @@ -41,6 +41,12 @@ void Canvas::set_status(const QString &s) update(); } +void Canvas::clear_status() +{ + status = ""; + update(); +} + void Canvas::initializeGL() { mesh_shader.addShaderFromSourceFile(QGLShader::Vertex, ":/gl/mesh.vert"); @@ -61,10 +67,11 @@ void Canvas::paintEvent(QPaintEvent *event) backdrop->draw(); if (mesh) draw_mesh(); + if (status.isNull()) return; + QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); - if (!status.isNull()) - painter.drawText(10, height() - 10, status); + painter.drawText(10, height() - 10, status); } @@ -107,11 +114,11 @@ QMatrix4x4 Canvas::view_matrix() const QMatrix4x4 m; if (width() > height()) { - m.scale(height() / float(width()), 1, 0.5); + m.scale(-height() / float(width()), 1, 0.5); } else { - m.scale(1, width() / float(height()), 0.5); + m.scale(-1, width() / float(height()), 0.5); } return m; } @@ -139,7 +146,7 @@ void Canvas::mouseMoveEvent(QMouseEvent* event) { auto p = event->pos(); auto d = p - mouse_pos; - yaw = fmod(yaw + d.x(), 360); + yaw = fmod(yaw - d.x(), 360); tilt = fmax(0, fmin(180, tilt - d.y())); mouse_pos = p; update();