Patch Qt on OSX for fixing the opengl qpainter engine
ClosedPublic

Authored by Nim on Sep 12 2016, 7:08 PM.

Details

Summary

QT Changes:
https://codereview.qt-project.org/#/c/166202
https://bugreports.qt.io/browse/QTBUG-33535

This change allows a user to paint on a QOpenGLWidget with a QPainter,
whenever an OpenGL3+ Core Profile format is used or enforced (such as
on macOS).

  • Core Profile shaders add that use modern keywords (in, out, etc.).
  • Paint engine binds a single VAO and two VBOs.
  • Vertex and texture data is uploaded to VBO instead of directly to the GPU.

Krita Changes:

  • Request OpenGL 3.2 Core Profile
  • Draw our canvas using VAO's if possible
  • Homogenised shaders with appropriate versions
  • Shader loading happens outside of canvas
  • Duplicate shader loading code removed
  • Rename supportsGLSL13
  • Added Qt patch for ext_qt, see above

Diff Detail

Repository
R37 Krita
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.
Nim updated this revision to Diff 6672.Sep 12 2016, 7:08 PM
Nim retitled this revision from to Patch Qt on OSX for fixing the opengl qpainter engine.
Nim updated this object.
rempt accepted this revision.Sep 13 2016, 8:56 AM
rempt edited edge metadata.

Okay, I've built on Windows, OSX and Linux. Only OSX had the patched version of Qt, but everything still works fine everywhere, so please merge to master.

This revision is now accepted and ready to land.Sep 13 2016, 8:56 AM
This revision was automatically updated to reflect the committed changes.