[Development] QBackingStore and alien widgets

Rafael Roquetto rafael.roquetto at kdab.com
Fri May 3 14:02:55 CEST 2013


On Fri, May 03, 2013 at 07:57:08AM +0200, Samuel Rødal wrote:
> On 05/02/2013 11:11 PM, Rafael Roquetto wrote:
<snip>
> The backing store is designed to be a back buffer representing the 
> entire widget hierarchy for a given top-level widget. A widget signals 
> that it wants to be repainted by calling update() with a region, and any 
> widget whose bounds intersect that region will receive a paintEvent() 
> whose QPainter will paint to the corresponding regions in the backing store.
> 
> Now, even though the backing store is represented by a single buffer,
> child widgets might be native (if winId() has been called on them for
> instance). In early 4.x days all child widgets were actually native,
> before the introduction of alien widgets (which mean non-native widgets,
> makes sense no? :)). That typically means that the child widget will
> have its own buffer _in_ the windowing system. However, it doesn't need
> to have its own backing store, since QBackingStore::flush() can be told
> which widget (or QWindow really since any native QWidget has a QWindow)
> to flush to.
> 
> So yeah, even though on QNX every native widget has its own buffer in 
> the windowing system (which is the case on X11 etc as well), I don't see 
> why you would need multiple backing stores. Just make sure that the 
> contents of the backing store can be flushed to those buffers in your 
> QPlatformBackingStore::flush() implementation.
> 

I get it now. Thank you very much for your explanation, Samuel.

Regards,
Rafael

-- 
Rafael Roquetto | rafael.roquetto at kdab.com | Software Engineer
Klarälvdalens Datakonsult AB, a KDAB Group company
Tel. Sweden (HQ) +46-563-540090, USA +1-866-777-KDAB(5322)
KDAB - Qt Experts - Platform-independent software solutions
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 3721 bytes
Desc: not available
URL: <http://lists.qt-project.org/pipermail/development/attachments/20130503/e3fdb2aa/attachment.bin>


More information about the Development mailing list