Title: [139864] trunk/Source/WebCore
Revision
139864
Author
[email protected]
Date
2013-01-16 02:59:33 -0800 (Wed, 16 Jan 2013)

Log Message

[TexMap] Composited CSS shaders crash when using non-GL TextureMapper
https://bugs.webkit.org/show_bug.cgi?id=106796

Reviewed by Noam Rosenthal.

Fail gracefully when FilterEffectRenderer fails to build the filter effects.

* platform/graphics/texmap/TextureMapperImageBuffer.cpp:
(WebCore::BitmapTextureImageBuffer::applyFilters):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (139863 => 139864)


--- trunk/Source/WebCore/ChangeLog	2013-01-16 10:47:17 UTC (rev 139863)
+++ trunk/Source/WebCore/ChangeLog	2013-01-16 10:59:33 UTC (rev 139864)
@@ -1,3 +1,15 @@
+2013-01-16  Allan Sandfeld Jensen  <[email protected]>
+
+        [TexMap] Composited CSS shaders crash when using non-GL TextureMapper
+        https://bugs.webkit.org/show_bug.cgi?id=106796
+
+        Reviewed by Noam Rosenthal.
+
+        Fail gracefully when FilterEffectRenderer fails to build the filter effects.
+
+        * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
+        (WebCore::BitmapTextureImageBuffer::applyFilters):
+
 2013-01-15  Vsevolod Vlasov  <[email protected]>
 
         Web Inspector: Store project UISourceCodes in a map with uri as a key for faster lookup.

Modified: trunk/Source/WebCore/platform/graphics/texmap/TextureMapperImageBuffer.cpp (139863 => 139864)


--- trunk/Source/WebCore/platform/graphics/texmap/TextureMapperImageBuffer.cpp	2013-01-16 10:47:17 UTC (rev 139863)
+++ trunk/Source/WebCore/platform/graphics/texmap/TextureMapperImageBuffer.cpp	2013-01-16 10:59:33 UTC (rev 139864)
@@ -171,12 +171,13 @@
     renderer->setSourceImageRect(FloatRect(FloatPoint::zero(), contentTexture.size()));
 
     // The renderer parameter is only needed for CSS shaders and reference filters.
-    renderer->build(0 /*renderer */, filters);
-    renderer->allocateBackingStoreIfNeeded();
-    GraphicsContext* context = renderer->inputContext();
-    context->drawImageBuffer(static_cast<const BitmapTextureImageBuffer&>(contentTexture).m_image.get(), ColorSpaceDeviceRGB, IntPoint::zero());
-    renderer->apply();
-    m_image->context()->drawImageBuffer(renderer->output(), ColorSpaceDeviceRGB, renderer->outputRect());
+    if (renderer->build(0 /*renderer */, filters)) {
+        renderer->allocateBackingStoreIfNeeded();
+        GraphicsContext* context = renderer->inputContext();
+        context->drawImageBuffer(static_cast<const BitmapTextureImageBuffer&>(contentTexture).m_image.get(), ColorSpaceDeviceRGB, IntPoint::zero());
+        renderer->apply();
+        m_image->context()->drawImageBuffer(renderer->output(), ColorSpaceDeviceRGB, renderer->outputRect());
+    }
     return this;
 }
 #endif
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to