"Rendering" QGraphicsDropShadowEffect in another thread ?
-
Hey, is it possible getting a QGraphicsDropShadowEffect "rendered" in another thread than e.g. QGraphicsWidget?
I have a QGraphicsWidget (within a "container" QGraphicsWidget with QGraphicsLinearLayout) streched 100% of the view's width, but when I resize the view (and therefore also the "container's" gemoetry => also the main QGraphicsWidget's geometry which the effect is enabled on) it takes a lot of time and it looks a bit "shaky"
But I have absolutely no idea how I should do it with the two threads ...
Hope someones have an idea =)
-
All GUI elements have to be handled solely the main thread. It's a hard and fast rule.
-
So I'll always have this kind of delay when I resize the window?
Is it possible to disable the effect when I begin resizing the window and reactivate the effect when the resizing is done? (Is there a event-handler for this?)
-
The sad truth is that the whole graphics effects stuff is simply broken in Qt4. You need OpenGL and shaders to properly do a drop shadow in real time. Try to cheat as much as you can, for instance replace the effect with some kind of semi-transparent image while you're resizing, then set the effect back.
-
Is there any tutorial for a drop-shadow with OpenGL and shaders?
(I've never done some opengl stuff :D)