Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1601)

Unified Diff: content/browser/renderer_host/image_transport_factory.cc

Issue 17447007: Change WGC3DInProcessCBImpl factories to return a base class pointer. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/test/pixel_test.cc ('k') | content/browser/renderer_host/image_transport_factory_android.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/renderer_host/image_transport_factory.cc
diff --git a/content/browser/renderer_host/image_transport_factory.cc b/content/browser/renderer_host/image_transport_factory.cc
index 4e27a799a6c07302fce5d64c52ad7db61fd5d72e..72d6860bcc55ea9d3e40303fe087c8c5fe349fe0 100644
--- a/content/browser/renderer_host/image_transport_factory.cc
+++ b/content/browser/renderer_host/image_transport_factory.cc
@@ -485,12 +485,12 @@ class BrowserCompositorOutputSurface
public base::NonThreadSafe {
public:
BrowserCompositorOutputSurface(
- WebGraphicsContext3DCommandBufferImpl* context,
+ scoped_ptr<WebKit::WebGraphicsContext3D> context,
int surface_id,
BrowserCompositorOutputSurfaceProxy* output_surface_proxy,
base::MessageLoopProxy* compositor_message_loop,
base::WeakPtr<ui::Compositor> compositor)
- : OutputSurface(scoped_ptr<WebKit::WebGraphicsContext3D>(context)),
+ : OutputSurface(context.Pass()),
surface_id_(surface_id),
output_surface_proxy_(output_surface_proxy),
compositor_message_loop_(compositor_message_loop),
@@ -628,23 +628,28 @@ class GpuProcessTransportFactory
DCHECK(per_compositor_data_.empty());
}
- virtual WebGraphicsContext3DCommandBufferImpl* CreateOffscreenContext()
- OVERRIDE {
+ scoped_ptr<WebGraphicsContext3DCommandBufferImpl>
+ CreateOffscreenCommandBufferContext() {
base::WeakPtr<WebGraphicsContext3DSwapBuffersClient> swap_client;
return CreateContextCommon(swap_client, 0);
}
+ virtual scoped_ptr<WebKit::WebGraphicsContext3D> CreateOffscreenContext()
+ OVERRIDE {
+ return CreateOffscreenCommandBufferContext()
+ .PassAs<WebKit::WebGraphicsContext3D>();
+ }
+
virtual cc::OutputSurface* CreateOutputSurface(
ui::Compositor* compositor) OVERRIDE {
PerCompositorData* data = per_compositor_data_[compositor];
if (!data)
data = CreatePerCompositorData(compositor);
- WebGraphicsContext3DCommandBufferImpl* context =
- CreateContextCommon(data->swap_client->AsWeakPtr(),
- data->surface_id);
BrowserCompositorOutputSurface* surface =
new BrowserCompositorOutputSurface(
- context,
+ CreateContextCommon(data->swap_client->AsWeakPtr(),
+ data->surface_id)
+ .PassAs<WebKit::WebGraphicsContext3D>(),
per_compositor_data_[compositor]->surface_id,
output_surface_proxy_.get(),
base::MessageLoopProxy::current(),
@@ -818,7 +823,7 @@ class GpuProcessTransportFactory
return data;
}
- WebGraphicsContext3DCommandBufferImpl* CreateContextCommon(
+ scoped_ptr<WebGraphicsContext3DCommandBufferImpl> CreateContextCommon(
const base::WeakPtr<WebGraphicsContext3DSwapBuffersClient>& swap_client,
int surface_id) {
WebKit::WebGraphicsContext3D::Attributes attrs;
@@ -839,8 +844,8 @@ class GpuProcessTransportFactory
attrs,
false,
CAUSE_FOR_GPU_LAUNCH_WEBGRAPHICSCONTEXT3DCOMMANDBUFFERIMPL_INITIALIZE))
- return NULL;
- return context.release();
+ return scoped_ptr<WebGraphicsContext3DCommandBufferImpl>();
+ return context.Pass();
}
// Crash given that we are unable to show any UI whatsoever. On Windows we
@@ -873,7 +878,7 @@ class GpuProcessTransportFactory
virtual scoped_ptr<WebGraphicsContext3DCommandBufferImpl>
CreateOffscreenContext3d() OVERRIDE {
- return make_scoped_ptr(factory_->CreateOffscreenContext());
+ return factory_->CreateOffscreenCommandBufferContext();
}
virtual void OnLostContext() OVERRIDE {
@@ -917,7 +922,7 @@ class GpuProcessTransportFactory
virtual scoped_ptr<WebGraphicsContext3DCommandBufferImpl>
CreateOffscreenContext3d() OVERRIDE {
- return make_scoped_ptr(factory_->CreateOffscreenContext());
+ return factory_->CreateOffscreenCommandBufferContext();
}
private:
@@ -996,8 +1001,9 @@ class SoftwareContextFactory : public ui::ContextFactory {
public:
SoftwareContextFactory() {}
virtual ~SoftwareContextFactory() {}
- virtual WebKit::WebGraphicsContext3D* CreateOffscreenContext() OVERRIDE {
- return NULL;
+ virtual scoped_ptr<WebKit::WebGraphicsContext3D> CreateOffscreenContext()
+ OVERRIDE {
+ return scoped_ptr<WebKit::WebGraphicsContext3D>();
}
virtual cc::OutputSurface* CreateOutputSurface(
ui::Compositor* compositor) OVERRIDE {
« no previous file with comments | « cc/test/pixel_test.cc ('k') | content/browser/renderer_host/image_transport_factory_android.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698