diff options
Diffstat (limited to 'WebCore/platform/graphics/win/WKCACFLayerRenderer.h')
-rw-r--r-- | WebCore/platform/graphics/win/WKCACFLayerRenderer.h | 14 |
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; |