diff options
author | jamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-22 04:05:54 +0000 |
---|---|---|
committer | jamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-22 04:05:54 +0000 |
commit | 6ffaaf31e6ed0ba9328d7d01f2ce559047c742ec (patch) | |
tree | 1a60d4e6b1964ae6bf1699b92ad340a73a6b42e2 /content/browser/aura | |
parent | b255a8e0e881d0b610743905fda9ac1b894c00cf (diff) | |
download | chromium_src-6ffaaf31e6ed0ba9328d7d01f2ce559047c742ec.zip chromium_src-6ffaaf31e6ed0ba9328d7d01f2ce559047c742ec.tar.gz chromium_src-6ffaaf31e6ed0ba9328d7d01f2ce559047c742ec.tar.bz2 |
Expose Signal(Query|SyncPoint) via gpu::ContextSupport* instead of WGC3D
This exposes calls to register queries and sync points with callbacks by
a new gpu::ContextSupport interface intended to be used directly by clients
who need this functionality like the compositor instead of having to
go through WebKit::WebGraphicsContext3D. These calls aren't 'proper' OpenGL
as OpenGL doesn't have any notion of callbacks, but are still useful with
our OpenGL implementation.
This also unifies the multiple implementations of these functions a bit.
In particular, now both the in-process and out-of-process contexts check if
the context is lost before dispatching SyncPoint/Query callbacks. Previously
only the in-process implementation did this.
R=piman,sievers
BUG=181120
Review URL: https://codereview.chromium.org/26164003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@230043 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/aura')
-rw-r--r-- | content/browser/aura/gpu_process_transport_factory.cc | 3 | ||||
-rw-r--r-- | content/browser/aura/no_transport_image_transport_factory.cc | 3 | ||||
-rw-r--r-- | content/browser/aura/reflector_impl.cc | 3 |
3 files changed, 6 insertions, 3 deletions
diff --git a/content/browser/aura/gpu_process_transport_factory.cc b/content/browser/aura/gpu_process_transport_factory.cc index 3c78bbd..649dd28 100644 --- a/content/browser/aura/gpu_process_transport_factory.cc +++ b/content/browser/aura/gpu_process_transport_factory.cc @@ -363,7 +363,8 @@ GLHelper* GpuProcessTransportFactory::GetGLHelper() { scoped_refptr<cc::ContextProvider> provider = SharedMainThreadContextProvider(); if (provider.get()) - gl_helper_.reset(new GLHelper(provider->Context3d())); + gl_helper_.reset(new GLHelper(provider->Context3d(), + provider->ContextSupport())); } return gl_helper_.get(); } diff --git a/content/browser/aura/no_transport_image_transport_factory.cc b/content/browser/aura/no_transport_image_transport_factory.cc index c9b8612..496362a 100644 --- a/content/browser/aura/no_transport_image_transport_factory.cc +++ b/content/browser/aura/no_transport_image_transport_factory.cc @@ -78,7 +78,8 @@ scoped_refptr<ui::Texture> NoTransportImageTransportFactory::CreateOwnedTexture( GLHelper* NoTransportImageTransportFactory::GetGLHelper() { if (!gl_helper_) { context_provider_ = context_factory_->SharedMainThreadContextProvider(); - gl_helper_.reset(new GLHelper(context_provider_->Context3d())); + gl_helper_.reset(new GLHelper(context_provider_->Context3d(), + context_provider_->ContextSupport())); } return gl_helper_.get(); } diff --git a/content/browser/aura/reflector_impl.cc b/content/browser/aura/reflector_impl.cc index e4424fc..08f7b0d 100644 --- a/content/browser/aura/reflector_impl.cc +++ b/content/browser/aura/reflector_impl.cc @@ -88,7 +88,8 @@ void ReflectorImpl::ShutdownOnImplThread() { void ReflectorImpl::AttachToOutputSurface( BrowserCompositorOutputSurface* output_surface) { gl_helper_.reset( - new GLHelper(output_surface->context_provider()->Context3d())); + new GLHelper(output_surface->context_provider()->Context3d(), + output_surface->context_provider()->ContextSupport())); output_surface->SetReflector(this); } |