diff options
author | piman@chromium.org <piman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-12 19:51:22 +0000 |
---|---|---|
committer | piman@chromium.org <piman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-12 19:51:22 +0000 |
commit | 9193034b79e3dea131a859e136302cf5ec3e44ff (patch) | |
tree | cc0250a101b32c945172ae4108e1ad1b26474a37 /content/common/gpu/client/webgraphicscontext3d_command_buffer_impl.cc | |
parent | 6dfa3014196eb06386074ea2a15906921ce12e4f (diff) | |
download | chromium_src-9193034b79e3dea131a859e136302cf5ec3e44ff.zip chromium_src-9193034b79e3dea131a859e136302cf5ec3e44ff.tar.gz chromium_src-9193034b79e3dea131a859e136302cf5ec3e44ff.tar.bz2 |
Fix --single-process mode issues with GpuChannelHostFactory
GpuChannelHostFactory itself is no longer a singleton, we pass it explicitly to
WebGraphicsContext3DCommandBufferImpl. That prevents RenderThreadImpl and
BrowserGpuChannelHostFactory from stomping on each other in --single-process
mode
BUG=117594
TEST=see bug
Review URL: http://codereview.chromium.org/9667012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@126194 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/common/gpu/client/webgraphicscontext3d_command_buffer_impl.cc')
-rw-r--r-- | content/common/gpu/client/webgraphicscontext3d_command_buffer_impl.cc | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/content/common/gpu/client/webgraphicscontext3d_command_buffer_impl.cc b/content/common/gpu/client/webgraphicscontext3d_command_buffer_impl.cc index c2f6d60..6ce0afa 100644 --- a/content/common/gpu/client/webgraphicscontext3d_command_buffer_impl.cc +++ b/content/common/gpu/client/webgraphicscontext3d_command_buffer_impl.cc @@ -48,8 +48,10 @@ void ClearSharedContexts() { WebGraphicsContext3DCommandBufferImpl::WebGraphicsContext3DCommandBufferImpl( int surface_id, const GURL& active_url, + GpuChannelHostFactory* factory, const base::WeakPtr<WebGraphicsContext3DSwapBuffersClient>& swap_client) : initialize_failed_(false), + factory_(factory), context_(NULL), gl_(NULL), host_(NULL), @@ -88,8 +90,7 @@ bool WebGraphicsContext3DCommandBufferImpl::Initialize( const WebGraphicsContext3D::Attributes& attributes) { DCHECK(!context_); TRACE_EVENT0("gpu", "WebGfxCtx3DCmdBfrImpl::initialize"); - GpuChannelHostFactory* factory = GpuChannelHostFactory::instance(); - if (!factory) + if (!factory_) return false; if (attributes.preferDiscreteGPU) @@ -99,7 +100,7 @@ bool WebGraphicsContext3DCommandBufferImpl::Initialize( // Note similar code in Pepper PlatformContext3DImpl::Init. do { - host_ = factory->EstablishGpuChannelSync( + host_ = factory_->EstablishGpuChannelSync( content:: CAUSE_FOR_GPU_LAUNCH_WEBGRAPHICSCONTEXT3DCOMMANDBUFFERIMPL_INITIALIZE); if (!host_) @@ -1113,8 +1114,7 @@ void WebGraphicsContext3DCommandBufferImpl::deleteTexture(WebGLId texture) { } bool WebGraphicsContext3DCommandBufferImpl::ShouldUseSwapClient() { - GpuChannelHostFactory* factory = GpuChannelHostFactory::instance(); - return factory && factory->IsMainThread() && swap_client_.get(); + return factory_ && factory_->IsMainThread() && swap_client_.get(); } void WebGraphicsContext3DCommandBufferImpl::OnSwapBuffersComplete() { |