Title: [121283] trunk
Revision
121283
Author
[email protected]
Date
2012-06-26 13:09:31 -0700 (Tue, 26 Jun 2012)

Log Message

Unreviewed, rolling out r120501.
http://trac.webkit.org/changeset/120501
https://bugs.webkit.org/show_bug.cgi?id=89126

[skia] Fix is too heavy-handed

* platform/graphics/skia/ImageBufferSkia.cpp:
(WebCore::drawNeedsCopy):
* platform/graphics/skia/PlatformContextSkia.cpp:
(WebCore::PlatformContextSkia::PlatformContextSkia):
* platform/graphics/skia/PlatformContextSkia.h:
(PlatformContextSkia):
(WebCore::PlatformContextSkia::isDeferred):
(WebCore::PlatformContextSkia::setDeferred):

Modified Paths

Diff

Modified: trunk/LayoutTests/platform/chromium/TestExpectations (121282 => 121283)


--- trunk/LayoutTests/platform/chromium/TestExpectations	2012-06-26 19:55:32 UTC (rev 121282)
+++ trunk/LayoutTests/platform/chromium/TestExpectations	2012-06-26 20:09:31 UTC (rev 121283)
@@ -3596,6 +3596,8 @@
 BUGWK86592 LINUX : fast/loader/unload-form-about-blank.html = TIMEOUT PASS
 BUGWK86592 LINUX : http/tests/xmlhttprequest/zero-length-response-sync.html = TIMEOUT PASS
 
+BUGWK89126 : platform/chromium/compositing/accelerated-drawing/svg-filters.html = IMAGE
+
 // strange "Unexpected no expected results found" on cr-linux ews
 BUGWK86600 LINUX : http/tests/cache/loaded-from-cache-after-reload-within-iframe.html = MISSING PASS
 BUGWK86600 LINUX : http/tests/cache/loaded-from-cache-after-reload.html = MISSING PASS

Modified: trunk/Source/WebCore/ChangeLog (121282 => 121283)


--- trunk/Source/WebCore/ChangeLog	2012-06-26 19:55:32 UTC (rev 121282)
+++ trunk/Source/WebCore/ChangeLog	2012-06-26 20:09:31 UTC (rev 121283)
@@ -1,3 +1,20 @@
+2012-06-26  James Robinson  <[email protected]>
+
+        Unreviewed, rolling out r120501.
+        http://trac.webkit.org/changeset/120501
+        https://bugs.webkit.org/show_bug.cgi?id=89126
+
+        [skia] Fix is too heavy-handed
+
+        * platform/graphics/skia/ImageBufferSkia.cpp:
+        (WebCore::drawNeedsCopy):
+        * platform/graphics/skia/PlatformContextSkia.cpp:
+        (WebCore::PlatformContextSkia::PlatformContextSkia):
+        * platform/graphics/skia/PlatformContextSkia.h:
+        (PlatformContextSkia):
+        (WebCore::PlatformContextSkia::isDeferred):
+        (WebCore::PlatformContextSkia::setDeferred):
+
 2012-06-26  Julien Chaffraix  <[email protected]>
 
         Crash in FixedTableLayout::layout

Modified: trunk/Source/WebCore/platform/graphics/skia/ImageBufferSkia.cpp (121282 => 121283)


--- trunk/Source/WebCore/platform/graphics/skia/ImageBufferSkia.cpp	2012-06-26 19:55:32 UTC (rev 121282)
+++ trunk/Source/WebCore/platform/graphics/skia/ImageBufferSkia.cpp	2012-06-26 20:09:31 UTC (rev 121283)
@@ -202,12 +202,7 @@
 
 static bool drawNeedsCopy(GraphicsContext* src, GraphicsContext* dst)
 {
-    if (src == dst)
-        return true;
-    // If we're rendering into a deferred canvas, we need to make a deep copy of the source pixels because Skia does not
-    // retain a reference to the actual pixels otherwise. We check if we're drawing into a deferred canvas by seeing if the
-    // device's bitmap configuration is set or not - if it's not, then we must not have a bitmap target yet.
-    return dst->platformContext()->canvas()->getDevice()->config() == SkBitmap::kNo_Config;
+    return dst->platformContext()->isDeferred() || src == dst;
 }
 
 void ImageBuffer::draw(GraphicsContext* context, ColorSpace styleColorSpace, const FloatRect& destRect, const FloatRect& srcRect,

Modified: trunk/Source/WebCore/platform/graphics/skia/PlatformContextSkia.cpp (121282 => 121283)


--- trunk/Source/WebCore/platform/graphics/skia/PlatformContextSkia.cpp	2012-06-26 19:55:32 UTC (rev 121282)
+++ trunk/Source/WebCore/platform/graphics/skia/PlatformContextSkia.cpp	2012-06-26 20:09:31 UTC (rev 121283)
@@ -186,6 +186,7 @@
     , m_trackOpaqueRegion(false)
     , m_printing(false)
     , m_accelerated(false)
+    , m_deferred(false)
     , m_drawingToImageBuffer(false)
 {
     m_stateStack.append(State());

Modified: trunk/Source/WebCore/platform/graphics/skia/PlatformContextSkia.h (121282 => 121283)


--- trunk/Source/WebCore/platform/graphics/skia/PlatformContextSkia.h	2012-06-26 19:55:32 UTC (rev 121282)
+++ trunk/Source/WebCore/platform/graphics/skia/PlatformContextSkia.h	2012-06-26 20:09:31 UTC (rev 121283)
@@ -186,6 +186,12 @@
     bool isAccelerated() const { return m_accelerated; }
     void setAccelerated(bool accelerated) { m_accelerated = accelerated; }
 
+    // True if this context is deferring draw calls to be executed later.
+    // We need to know this for context-to-context draws, in order to know if
+    // the source bitmap needs to be copied.
+    bool isDeferred() const { return m_deferred; }
+    void setDeferred(bool deferred) { m_deferred = deferred; }
+
     void setTrackOpaqueRegion(bool track) { m_trackOpaqueRegion = track; }
 
     // This will be an empty region unless tracking is enabled.
@@ -235,6 +241,7 @@
     FloatSize m_imageResamplingHintDstSize;
     bool m_printing;
     bool m_accelerated;
+    bool m_deferred;
     bool m_drawingToImageBuffer;
 };
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to