summaryrefslogtreecommitdiffstats
path: root/WebCore/platform/graphics/win/WKCACFLayerRenderer.h
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/platform/graphics/win/WKCACFLayerRenderer.h')
-rw-r--r--WebCore/platform/graphics/win/WKCACFLayerRenderer.h14
1 files changed, 10 insertions, 4 deletions
diff --git a/WebCore/platform/graphics/win/WKCACFLayerRenderer.h b/WebCore/platform/graphics/win/WKCACFLayerRenderer.h
index 259c52f..1ff955a 100644
--- a/WebCore/platform/graphics/win/WKCACFLayerRenderer.h
+++ b/WebCore/platform/graphics/win/WKCACFLayerRenderer.h
@@ -49,12 +49,18 @@ namespace WebCore {
class WKCACFRootLayer;
+class WKCACFLayerRendererClient {
+public:
+ virtual ~WKCACFLayerRendererClient() { }
+ virtual bool shouldRender() const = 0;
+};
+
// FIXME: Currently there is a WKCACFLayerRenderer for each WebView and each
// has its own CARenderOGLContext and Direct3DDevice9, which is inefficient.
// (https://bugs.webkit.org/show_bug.cgi?id=31855)
class WKCACFLayerRenderer : public Noncopyable {
public:
- static PassOwnPtr<WKCACFLayerRenderer> create();
+ static PassOwnPtr<WKCACFLayerRenderer> create(WKCACFLayerRendererClient*);
~WKCACFLayerRenderer();
static bool acceleratedCompositingAvailable();
@@ -77,7 +83,7 @@ protected:
WKCACFLayer* rootLayer() const;
private:
- WKCACFLayerRenderer();
+ WKCACFLayerRenderer(WKCACFLayerRendererClient*);
void renderTimerFired(Timer<WKCACFLayerRenderer>*);
@@ -94,10 +100,10 @@ private:
void render(const Vector<CGRect>& dirtyRects = Vector<CGRect>());
void paint();
- bool m_triedToCreateD3DRenderer;
+ WKCACFLayerRendererClient* m_client;
+ bool m_mightBeAbleToCreateDeviceLater;
COMPtr<IDirect3DDevice9> m_d3dDevice;
RefPtr<WKCACFRootLayer> m_rootLayer;
- RefPtr<WKCACFLayer> m_viewLayer;
RefPtr<WKCACFLayer> m_scrollLayer;
RefPtr<WKCACFLayer> m_rootChildLayer;
RefPtr<WKCACFLayer> m_clipLayer;