Title: [125833] trunk/Source/WebCore
- Revision
- 125833
- Author
- [email protected]
- Date
- 2012-08-16 17:47:25 -0700 (Thu, 16 Aug 2012)
Log Message
Unreviewed, rolling out r125804.
http://trac.webkit.org/changeset/125804
https://bugs.webkit.org/show_bug.cgi?id=94234
Made threaded tests in performance_browser_tests start timing
out on Chromium GPU bots
* platform/graphics/chromium/Canvas2DLayerBridge.cpp:
(AcceleratedDeviceContext):
(WebCore::AcceleratedDeviceContext::AcceleratedDeviceContext):
(WebCore::AcceleratedDeviceContext::prepareForDraw):
(WebCore):
(WebCore::Canvas2DLayerBridge::~Canvas2DLayerBridge):
(WebCore::Canvas2DLayerBridge::skCanvas):
* platform/graphics/chromium/Canvas2DLayerBridge.h:
(Canvas2DLayerBridge):
* platform/graphics/skia/ImageBufferSkia.cpp:
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (125832 => 125833)
--- trunk/Source/WebCore/ChangeLog 2012-08-17 00:29:35 UTC (rev 125832)
+++ trunk/Source/WebCore/ChangeLog 2012-08-17 00:47:25 UTC (rev 125833)
@@ -1,3 +1,23 @@
+2012-08-16 Kenneth Russell <[email protected]>
+
+ Unreviewed, rolling out r125804.
+ http://trac.webkit.org/changeset/125804
+ https://bugs.webkit.org/show_bug.cgi?id=94234
+
+ Made threaded tests in performance_browser_tests start timing
+ out on Chromium GPU bots
+
+ * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
+ (AcceleratedDeviceContext):
+ (WebCore::AcceleratedDeviceContext::AcceleratedDeviceContext):
+ (WebCore::AcceleratedDeviceContext::prepareForDraw):
+ (WebCore):
+ (WebCore::Canvas2DLayerBridge::~Canvas2DLayerBridge):
+ (WebCore::Canvas2DLayerBridge::skCanvas):
+ * platform/graphics/chromium/Canvas2DLayerBridge.h:
+ (Canvas2DLayerBridge):
+ * platform/graphics/skia/ImageBufferSkia.cpp:
+
2012-08-16 Adam Barth <[email protected]>
Rename DOMWindow::clear to something more descriptive
Modified: trunk/Source/WebCore/platform/graphics/chromium/Canvas2DLayerBridge.cpp (125832 => 125833)
--- trunk/Source/WebCore/platform/graphics/chromium/Canvas2DLayerBridge.cpp 2012-08-17 00:29:35 UTC (rev 125832)
+++ trunk/Source/WebCore/platform/graphics/chromium/Canvas2DLayerBridge.cpp 2012-08-17 00:47:25 UTC (rev 125833)
@@ -31,6 +31,8 @@
#include "GraphicsContext3D.h"
#include "GraphicsContext3DPrivate.h"
#include "LayerRendererChromium.h" // For GLC() macro.
+#include "SkCanvas.h"
+#include "SkDeferredCanvas.h"
#include "TraceEvent.h"
#include <public/WebCompositor.h>
#include <public/WebGraphicsContext3D.h>
@@ -41,6 +43,31 @@
namespace WebCore {
+class AcceleratedDeviceContext : public SkDeferredCanvas::DeviceContext {
+public:
+ AcceleratedDeviceContext(WebGraphicsContext3D* context, WebExternalTextureLayer layer, bool useDoubleBuffering)
+ : m_layer(layer)
+ , m_context()
+ , m_useDoubleBuffering(useDoubleBuffering)
+ {
+ ASSERT(context);
+ ASSERT(!layer.isNull());
+ m_context = context;
+ }
+
+ virtual void prepareForDraw()
+ {
+ if (!m_useDoubleBuffering)
+ m_layer.willModifyTexture();
+ m_context->makeContextCurrent();
+ }
+
+private:
+ WebExternalTextureLayer m_layer;
+ WebGraphicsContext3D* m_context;
+ bool m_useDoubleBuffering;
+};
+
Canvas2DLayerBridge::Canvas2DLayerBridge(PassRefPtr<GraphicsContext3D> context, const IntSize& size, DeferralMode deferralMode, unsigned textureId)
: m_deferralMode(deferralMode)
// FIXME: We currently turn off double buffering when canvas rendering is
@@ -74,10 +101,9 @@
m_layer.setRateLimitContext(!WebKit::WebCompositor::threadingEnabled() || m_useDoubleBuffering);
}
+
Canvas2DLayerBridge::~Canvas2DLayerBridge()
{
- if (SkDeferredCanvas* deferred = deferredCanvas())
- deferred->setNotificationClient(0);
m_layer.setTextureId(0);
if (m_useDoubleBuffering) {
m_context->makeContextCurrent();
@@ -87,28 +113,11 @@
m_layer.clearClient();
}
-SkDeferredCanvas* Canvas2DLayerBridge::deferredCanvas()
-{
- if (m_deferralMode == Deferred)
- return static_cast<SkDeferredCanvas*>(m_canvas);
- return 0;
-}
-
-void Canvas2DLayerBridge::prepareForDraw()
-{
- ASSERT(deferredCanvas());
- if (!m_useDoubleBuffering)
- m_layer.willModifyTexture();
- m_context->makeContextCurrent();
-}
-
SkCanvas* Canvas2DLayerBridge::skCanvas(SkDevice* device)
{
- ASSERT(!m_canvas);
if (m_deferralMode == Deferred) {
- SkDeferredCanvas* deferred = new SkDeferredCanvas(device);
- deferred->setNotificationClient(this);
- m_canvas = deferred;
+ SkAutoTUnref<AcceleratedDeviceContext> deviceContext(new AcceleratedDeviceContext(context(), m_layer, m_useDoubleBuffering));
+ m_canvas = new SkDeferredCanvas(device, deviceContext.get());
} else
m_canvas = new SkCanvas(device);
Modified: trunk/Source/WebCore/platform/graphics/chromium/Canvas2DLayerBridge.h (125832 => 125833)
--- trunk/Source/WebCore/platform/graphics/chromium/Canvas2DLayerBridge.h 2012-08-17 00:29:35 UTC (rev 125832)
+++ trunk/Source/WebCore/platform/graphics/chromium/Canvas2DLayerBridge.h 2012-08-17 00:47:25 UTC (rev 125833)
@@ -29,12 +29,14 @@
#include "GraphicsContext3D.h"
#include "ImageBuffer.h" // For DeferralMode enum.
#include "IntSize.h"
-#include "SkDeferredCanvas.h"
#include <public/WebExternalTextureLayer.h>
#include <public/WebExternalTextureLayerClient.h>
#include <wtf/PassOwnPtr.h>
#include <wtf/RefPtr.h>
+class SkCanvas;
+class SkDevice;
+
namespace WebKit {
class WebGraphicsContext3D;
}
@@ -43,7 +45,7 @@
class LayerChromium;
-class Canvas2DLayerBridge : public WebKit::WebExternalTextureLayerClient, public SkDeferredCanvas::NotificationClient {
+class Canvas2DLayerBridge : public WebKit::WebExternalTextureLayerClient {
WTF_MAKE_NONCOPYABLE(Canvas2DLayerBridge);
public:
static PassOwnPtr<Canvas2DLayerBridge> create(PassRefPtr<GraphicsContext3D> context, const IntSize& size, DeferralMode deferralMode, unsigned textureId)
@@ -57,9 +59,6 @@
virtual unsigned prepareTexture(WebKit::WebTextureUpdater&) OVERRIDE;
virtual WebKit::WebGraphicsContext3D* context() OVERRIDE;
- // SkDeferredCanvas::NotificationClient implementation
- virtual void prepareForDraw();
-
SkCanvas* skCanvas(SkDevice*);
WebKit::WebLayer* layer();
void contextAcquired();
@@ -68,7 +67,6 @@
private:
Canvas2DLayerBridge(PassRefPtr<GraphicsContext3D>, const IntSize&, DeferralMode, unsigned textureId);
- SkDeferredCanvas* deferredCanvas();
DeferralMode m_deferralMode;
bool m_useDoubleBuffering;
Modified: trunk/Source/WebCore/platform/graphics/skia/ImageBufferSkia.cpp (125832 => 125833)
--- trunk/Source/WebCore/platform/graphics/skia/ImageBufferSkia.cpp 2012-08-17 00:29:35 UTC (rev 125832)
+++ trunk/Source/WebCore/platform/graphics/skia/ImageBufferSkia.cpp 2012-08-17 00:47:25 UTC (rev 125833)
@@ -46,6 +46,7 @@
#include "PlatformContextSkia.h"
#include "SharedGraphicsContext3D.h"
#include "SkColorPriv.h"
+#include "SkDeferredCanvas.h"
#include "SkGpuDevice.h"
#include "SkiaUtils.h"
#include "WEBPImageEncoder.h"
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes