[Interest] [QGV] Asynchronous painting of millions QGPathItem

Philip Schuchardt vpicaver at gmail.com
Tue Dec 6 23:59:11 CET 2016


I'm pretty sure QPainterPath is reentrant especially since QPainter depends
on QPainterPath and QPainter is reentrant.

On Tue, Dec 6, 2016 at 5:56 PM Ch'Gans <chgans at gna.org> wrote:

> On 7 December 2016 at 01:18, Philip Schuchardt <vpicaver at gmail.com> wrote:
> > Since QGraphicsView can only render in the main gui thread, rendering in
> a
> > separate process will prevent the blocking on the main thread. You could
> > even implement "big pixel" zooming. You zoom in on the visible buffer
> while
> > a back buffer is being rendered in the background by the separate
> process.
> > This approach doesn't optimize the rendering. It just prevents the main
> gui
> > thread from being blocked by the rendering. It would be great if you
> could
> > render QGraphicsScene in a non-gui thread, but as far as I can tell you
> > can't.
>
> I see what you mean now, I forgot about the main gui thread restriction...
>
> So how one know if a GUI Class that is not directly related to QWIdget
> can be used or not outside the main gui thread?
> I'm thinking about classes such as QFontMetric, QPainter, QPixmap, ...
> and generally speaking any off-screen rendering component (inc. PDF,
> ...)
>
> Should the absence of the usual re-entrant note near the top of the
> documentation page be taken as "Main GUI thread only"?
> Eg: QList and QPainter have "Note: All functions in this class are
> reentrant.", but QPainterPath doesn't (!?!).
>
> Chris
>
> >
> > On Tue, Dec 6, 2016 at 4:25 AM Ulf Hermann <ulf.hermann at qt.io> wrote:
> >>
> >> Hello,
> >>
> >> I had a somewhat similar, but not quite the same problem when building
> the
> >> timeline view for the QML profiler in Qt Creator. It's currently usable
> with
> >> up to about 1 million events in the timeline and you can zoom and
> scroll it.
> >> There might be potential for further optimization. I used the Qt Quick
> >> SceneGraph API to directly work with OpenGL geometry. The scene graph
> nodes
> >> are built on demand and then cached and recycled when applicable. You
> can
> >> check out the result in the Qt Creator sources in src/libs/timeline.
> >>
> >> br,
> >> Ulf
> >> _______________________________________________
> >> Interest mailing list
> >> Interest at qt-project.org
> >> http://lists.qt-project.org/mailman/listinfo/interest
> >
> > --
> > Phi|ip
> >
> > _______________________________________________
> > Interest mailing list
> > Interest at qt-project.org
> > http://lists.qt-project.org/mailman/listinfo/interest
> >
>
-- 
Phi|ip
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20161206/79bafc69/attachment.html>


More information about the Interest mailing list