Draft: [RFC] Proof-of-concept canvas using QQuickWidget
I decided to make this experiment to reimplement the canvas using a QQuickWidget
. This is not the canvas ported to QtQuick2/QML, but only rendering is moved into the QQuickWindow
hierarchy as an underlay. The approach is similar to https://doc.qt.io/archives/qt-5.12/qtquick-scenegraph-openglunderqml-example.html.
The reason I chose this approach is that it can keep the current QWidget input stack. This allows us to experiment with rendering the canvas and stuff with a QQuickItem
(probably QQuickFramebufferObject
) and porting other canvas-related things over, without having to worry about the input handling now.
When running with this patch, you can set the environment variable KIS_GLCANVAS
to gl
or quick
switch between the old KisOpenGLCanvas2
and KisQuickWidgetCanvas
. The default is quick
.
Please review the 3rd commit for the actual changes. The first two commits are just juggling to keep the git blame history.
Task ref: https://phabricator.kde.org/T13339
Current issues:
-
Doesn't render correctly with FBO (SolveduseFBOForToolOutlineRendering
) so I've disabled it. I haven't been able to figure out what's the issue. - Performance is really bad with ANGLE
- Partial redraw not implemented.