RESOLVED FIXED 49377
[Qt][WK2] Implement BackingStore
https://bugs.webkit.org/show_bug.cgi?id=49377
Summary [Qt][WK2] Implement BackingStore
Balazs Kelemen
Reported 2010-11-11 04:56:24 PST
Fill stubbed BackingStore with implmentation!
Attachments
Patch (5.78 KB, patch)
2010-11-11 05:31 PST, Balazs Kelemen
no flags
Balazs Kelemen
Comment 1 2010-11-11 05:10:25 PST
I have a weird problem with implementing this method: PassOwnPtr<GraphicsContext> BackingStore::createGraphicsContext() I need to create a QImage and a QPainter on heap to create the GraphicsContext. Our GC implementation does not own the painter so this would cause a leak. I took a look at the CoreGraphics and Cairo implementation of GC and those owns the platform specific data. Unfortunately we cannot tweak the GC to behave like those because: 1. in some cases we get the painter from the user so we are not allowed to own that 2. there is no way to create a copy from an active painter (active = begin has been called) So what I did in the change that will be uploaded is adding a way to explicitly take off ownership of the painter and the paint device to the GC.
Balazs Kelemen
Comment 2 2010-11-11 05:31:22 PST
Andreas Kling
Comment 3 2010-11-11 07:35:38 PST
Comment on attachment 73601 [details] Patch r=me
Balazs Kelemen
Comment 4 2010-11-11 07:47:52 PST
Comment on attachment 73601 [details] Patch Clearing flags on attachment: 73601 Committed r71821: <http://trac.webkit.org/changeset/71821>
Balazs Kelemen
Comment 5 2010-11-11 07:48:01 PST
All reviewed patches have been landed. Closing bug.
Balazs Kelemen
Comment 6 2010-11-11 08:30:10 PST
Noam, could you take a post review on the patch? Maybe it should be tweaked for performance (maybe the QImage format).
Noam Rosenthal
Comment 7 2010-11-11 08:59:35 PST
Post review looks good!
Andreas Kling
Comment 8 2010-11-11 09:22:40 PST
One thing we might want to look at later is letting QImage align its scanlines on 32-bit boundaries (the default behavior) instead of using the cramped W*H*4 format. It basically just means overriding UpdateChunk::size() and removing the stride (width * 4) arguments to QImage constructors.
Note You need to log in before you can comment on or make changes to this bug.