Summary: | [Qt] Canvas doesn't animate on OpenVG backend | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Janne Koskinen <koshuin> | ||||||||
Component: | Canvas | Assignee: | Andreas Kling <kling> | ||||||||
Status: | RESOLVED FIXED | ||||||||||
Severity: | Critical | CC: | ademar, jason.barron, jpetsovits, kling, laszlo.gombos, mdelaney7, suresh.voruganti, tonikitoo | ||||||||
Priority: | P1 | Keywords: | Qt, QtTriaged | ||||||||
Version: | 528+ (Nightly build) | ||||||||||
Hardware: | S60 Hardware | ||||||||||
OS: | S60 3rd edition | ||||||||||
Attachments: |
|
Description
Janne Koskinen
2010-11-18 00:42:32 PST
Created attachment 74213 [details]
patch for QtWebkit2.1 branch
Adding my fix suggestion to QtWebkit2.1 branch. Trunk will need a the patch to be modified and I'm hoping that someone would come up with better solution.
Whole issue is that VGImage of canvas in Graphics memory won't get updated when pixmap is drawn to. Issue comes from QPainter context that we use here doesn't get end() and state is not flushed. VGImage to be created a flag recreate needs to be set. Simplest way (and cheapest) is to call paintEngine() i.e. what the patch does.
Originating bug is QT-4002. Andreas, what do you think ? (In reply to comment #3) > Andreas, what do you think ? I'm fine with putting this hack on the 2.1 branch. The OpenVG paint engine should ultimately be fixed in Qt though. The initial patch/hack was pushed to QtWebKit-2.1: http://gitorious.org/webkit/qtwebkit/commit/fcda7935a66d4fec886503fa666cb37379247cb5 Ademar, bug is in open state, even though fix cherry picked to Qtwebkit 2.1, can you resolve the issue? (In reply to comment #6) > Ademar, bug is in open state, even though fix cherry picked to Qtwebkit 2.1, can you resolve the issue? Yes. It was agreed that a hack/workaround would be pushed to 2.1, but the real fix on trunk is pending, see comment #4 and comment #5. It should be blocking bug 32653 (patches pending trunk inclusion) though, fixed. Created attachment 88838 [details]
Proposed patch
Proposal for trunk, use ImageBuffer's drawsUsingCopy() mechanism for OpenVG-backed pixmaps.
Comment on attachment 88838 [details]
Proposed patch
Ugly, but no choice :)
Sorry for the delay, but we have a fix for this in Qt's OpenVG graphics system now using something similar to the OpenGL fix Andreas made: http://pastebin.com/Lb6T14Sz Submitted to Qt 4.7.4. It will forcefully upload the canvas to a VGImage as long as there is still a painter open on it. Closing as this is fixed in Qt 4.7.4 per Jason's comment. |