[Development] QT_XCB_NATIVE_PAINTING makes worse that without of it
Allan Sandfeld Jensen
kde at carewolf.com
Sun Mar 24 13:13:20 CET 2019
On Sonntag, 24. März 2019 11:40:07 CET Uwe Rathmann wrote:
> On 3/24/19 10:41 AM, Allan Sandfeld Jensen wrote:
> > Note though that the recommended way of doing hardware accelerated
> > painting
> > these days with Qt, is using QML or the QtQuick scenegraph from C++.
> > QPainter being so sequential and imperative will never be able to take
> > full advantage of OpenGL because the API wasn't designed for it.
> For an application, where you have to draw a curve of many points, that
> are changing with every frame I don't see how the scenegraph is
> beneficial. And why do you consider imperative vs. declarative being
> relevant here at all ?
Because imperative in the case of QPainter means immediate. The result is
expected to have been committed to the paint device when the call returns. The
creates extra overhead, due to a lot of small OpenGL calls constantly changes
states and issuing short non-batched draw calls. So it is not that declarative
is better, but that we need a non-immediate model, which declarative easily
can be. Note also that if you use the QtQuick scene graph from C++ you are not
programming declarative, you are just using the scene graph we developed to be
more efficient with hardware acceleration, so it would still be imperative,
just less immediate and thus better optimized than the QPainter model.
More information about the Development