How to use QPainter and OpenGL with shaders in parallel with Qt5.9

General Tech Bugs & Fixes 2 years ago

0 1 0 0 0 tuteeHUB earn credit +10 pts

5 Star Rating 1 Rating

Posted on 16 Aug 2022, this text provides information on Bugs & Fixes related to General Tech. Please note that while accuracy is prioritized, the data presented might not be entirely correct or up-to-date. This information is offered for general knowledge and informational purposes only, and should not be considered as a substitute for professional advice.

Take Quiz To Earn Credits!

Turn Your Knowledge into Earnings.

tuteehub_quiz

Answers (1)

Post Answer
profilepic.png
manpreet Tuteehub forum best answer Best Answer 2 years ago

I saw a lot of questions how to use OpenGL with shaders and QPainter in parallel on a QOpenGLWidget. For example Example 1Example 2 and Example 3.

I experienced that there are very many problems, when QPainter, native OpenGL code and shaders are used. Sometimes only the QPainter stuff gets rendered, sometimes only stuff stored in VertexArrayObjects gets rendered or stuff used the "old way" setting vertices with glVertex() gets rendered.

I managed to build a very small solution, which only modifies the usage of QPainter to use every 3 drawing methods in parallel.

The result is, that you can use the QPainter and the shader everywhere in your paintGL()-pipeline of QOpenGLWidget, where you want, without modifying everytime your OpenGL states or start and end nativePainting with your QPainter.

No matter what stage you're at in your education or career, TuteeHub will help you reach the next level that you're aiming for. Simply,Choose a subject/topic and get started in self-paced practice sessions to improve your knowledge and scores.