Index: ui/compositor/compositor.cc |
diff --git a/ui/compositor/compositor.cc b/ui/compositor/compositor.cc |
index 31f47c7d0a715531384d08827ba91eb8d4f5517e..0402fdd52bb03b22f638a3f10aa0cd6fa3c976cb 100644 |
--- a/ui/compositor/compositor.cc |
+++ b/ui/compositor/compositor.cc |
@@ -63,6 +63,43 @@ void ContextFactory::SetInstance(ContextFactory* instance) { |
g_context_factory = instance; |
} |
+// Adapts a pure WebGraphicsContext3D into a WebCompositorOutputSurface. |
jonathan.backer
2012/10/26 20:31:03
Feels like this should have been in an anon namesp
ajuma
2012/10/29 17:02:26
Done.
|
+class WebGraphicsContextToOutputSurfaceAdapter : |
+ public WebKit::WebCompositorOutputSurface { |
+public: |
+ explicit WebGraphicsContextToOutputSurfaceAdapter( |
+ WebKit::WebGraphicsContext3D* context) |
+ : context3D_(context) |
+ , client_(NULL) { |
+ } |
+ |
+ virtual bool bindToClient( |
+ WebKit::WebCompositorOutputSurfaceClient* client) OVERRIDE { |
+ DCHECK(client); |
+ if (!context3D_->makeContextCurrent()) |
+ return false; |
+ client_ = client; |
+ return true; |
+ } |
+ |
+ virtual const Capabilities& capabilities() const OVERRIDE { |
+ return capabilities_; |
+ } |
+ |
+ virtual WebKit::WebGraphicsContext3D* context3D() const OVERRIDE { |
+ return context3D_.get(); |
+ } |
+ |
+ virtual void sendFrameToParentCompositor( |
+ const WebKit::WebCompositorFrame&) OVERRIDE { |
+ } |
+ |
+private: |
+ scoped_ptr<WebKit::WebGraphicsContext3D> context3D_; |
+ Capabilities capabilities_; |
+ WebKit::WebCompositorOutputSurfaceClient* client_; |
+}; |
+ |
DefaultContextFactory::DefaultContextFactory() { |
} |
@@ -87,6 +124,12 @@ WebKit::WebGraphicsContext3D* DefaultContextFactory::CreateContext( |
return CreateContextCommon(compositor, false); |
} |
+WebKit::WebCompositorOutputSurface* DefaultContextFactory::CreateOutputSurface( |
+ Compositor* compositor) { |
+ return new WebGraphicsContextToOutputSurfaceAdapter( |
+ CreateContext(compositor)); |
+} |
+ |
WebKit::WebGraphicsContext3D* DefaultContextFactory::CreateOffscreenContext() { |
return CreateContextCommon(NULL, true); |
} |
@@ -327,48 +370,6 @@ void Compositor::applyScrollAndScale(const WebKit::WebSize& scrollDelta, |
float scaleFactor) { |
} |
-// Adapts a pure WebGraphicsContext3D into a WebCompositorOutputSurface. |
-class WebGraphicsContextToOutputSurfaceAdapter : |
- public WebKit::WebCompositorOutputSurface { |
-public: |
- explicit WebGraphicsContextToOutputSurfaceAdapter( |
- WebKit::WebGraphicsContext3D* context) |
- : m_context3D(context) |
- , m_client(0) |
- { |
- } |
- |
- virtual bool bindToClient( |
- WebKit::WebCompositorOutputSurfaceClient* client) OVERRIDE |
- { |
- DCHECK(client); |
- if (!m_context3D->makeContextCurrent()) |
- return false; |
- m_client = client; |
- return true; |
- } |
- |
- virtual const Capabilities& capabilities() const OVERRIDE |
- { |
- return m_capabilities; |
- } |
- |
- virtual WebKit::WebGraphicsContext3D* context3D() const OVERRIDE |
- { |
- return m_context3D.get(); |
- } |
- |
- virtual void sendFrameToParentCompositor( |
- const WebKit::WebCompositorFrame&) OVERRIDE |
- { |
- } |
- |
-private: |
- scoped_ptr<WebKit::WebGraphicsContext3D> m_context3D; |
- Capabilities m_capabilities; |
- WebKit::WebCompositorOutputSurfaceClient* m_client; |
-}; |
- |
WebKit::WebCompositorOutputSurface* Compositor::createOutputSurface() { |
if (test_compositor_enabled) { |
ui::TestWebGraphicsContext3D* test_context = |
@@ -376,8 +377,7 @@ WebKit::WebCompositorOutputSurface* Compositor::createOutputSurface() { |
test_context->Initialize(); |
return new WebGraphicsContextToOutputSurfaceAdapter(test_context); |
} else { |
- return new WebGraphicsContextToOutputSurfaceAdapter( |
- ContextFactory::GetInstance()->CreateContext(this)); |
+ return ContextFactory::GetInstance()->CreateOutputSurface(this); |
} |
} |