Vertex shading on scene while painting



  • Hi,
    I have a task of painting a heat map using some data points. The problem stems from my inability paint using a rectangle with vertex shading on a QGraphicsScene.
    I read through http://doc.qt.io/qt-5/qtgui-openglwindow-example.html, but maybe I was just unable to understand it.

    Might someone be able to link me to an example for drawing a rectangle with vertex shader having 4 different colors at its vertices?



  • @Ankit.Jain Well, you can subclass a QGraphicsItem and implement the paint() function of it. There you can draw using OpenGL functions if the painters paint engine is of the OpenGL type. If you pass a QGLwidget or these days a QOpenGLWidget to the setViewport() function of a QGraphicsView that is what you will get. I have done this with a QGLWidget and it worked well but I must admit I have not yet used a QOpenGLWidget in this way.
    Why not give it a try it is quite easy to do for a simple rectangular object.
    you can find how to do it here.



  • @kenchan Thanks for the idea. I had no idea that normal gl functions could be used with QOpenGLWidget. The answer turned out to be a bit easier after that. There is a function grabFramebuffer() which directly returns the image. Thanks again


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.