Painting status string as text

This commit is contained in:
Matt Keeter 2014-03-09 10:06:56 -07:00
parent 87b19e0607
commit 06c048eb72
2 changed files with 19 additions and 5 deletions

View file

@ -35,6 +35,12 @@ void Canvas::load_mesh(Mesh* m)
delete m; delete m;
} }
void Canvas::set_status(const QString &s)
{
status = s;
update();
}
void Canvas::initializeGL() void Canvas::initializeGL()
{ {
mesh_shader.addShaderFromSourceFile(QGLShader::Vertex, ":/gl/mesh.vert"); mesh_shader.addShaderFromSourceFile(QGLShader::Vertex, ":/gl/mesh.vert");
@ -42,19 +48,25 @@ void Canvas::initializeGL()
mesh_shader.link(); mesh_shader.link();
backdrop = new Backdrop(); 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); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glEnable(GL_DEPTH_TEST);
backdrop->draw(); backdrop->draw();
if (mesh) draw_mesh(); if (mesh) draw_mesh();
QPainter painter(this);
if (!status.isNull())
painter.drawText(10, height() - 10, status);
} }
void Canvas::draw_mesh() void Canvas::draw_mesh()
{ {
mesh_shader.bind(); mesh_shader.bind();

View file

@ -18,10 +18,11 @@ public:
Canvas(const QGLFormat& format, QWidget* parent=0); Canvas(const QGLFormat& format, QWidget* parent=0);
void initializeGL(); void initializeGL();
void paintGL(); void paintEvent(QPaintEvent* event);
~Canvas(); ~Canvas();
public slots: public slots:
void set_status(const QString& s);
void load_mesh(Mesh* m); void load_mesh(Mesh* m);
@ -49,6 +50,7 @@ private:
float yaw; float yaw;
QPoint mouse_pos; QPoint mouse_pos;
QString status;
}; };
#endif // CANVAS_H #endif // CANVAS_H