diff options
author | yoz@chromium.org <yoz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-30 02:06:08 +0000 |
---|---|---|
committer | yoz@chromium.org <yoz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-30 02:06:08 +0000 |
commit | 64437e622c11f77938e41b473bd77421ec2482e1 (patch) | |
tree | 09baeeb57cf7f5d40829051c1d75adb58c7e9393 /webkit/common | |
parent | cb99348010b1e026f4ef4c0d242434731e497dca (diff) | |
download | chromium_src-64437e622c11f77938e41b473bd77421ec2482e1.zip chromium_src-64437e622c11f77938e41b473bd77421ec2482e1.tar.gz chromium_src-64437e622c11f77938e41b473bd77421ec2482e1.tar.bz2 |
Revert 247793 "Ensure GL initialization only happens once, and p..."
due to new static initializers in gl_bindings_autogen_gl.cc
> Ensure GL initialization only happens once, and provide common init path
>
> Currently tests initialize GL by calling into methods that should be
> internal to the gl bindings code. Instead, everyone should go through
> GLSurface::InitializeOneOff.
>
> Also GLSurface::InitializeOneOff early outs if it was already called,
> leading to a pattern of initializing GL all over the place just in case
> and not having a clear idea of where it should be set up. Instead, DCHECK
> that it is not called more than once, and move calls to this method to
> be during process startup for unit test suites instead of mid-test.
>
> This adds two test variants of InitializeOneOff for tests to call, that
> set up OSMesa or Mock GL bindings, via GLSurface::InitializeOneOff.
>
> R=piman, sievers
> BUG=270918
>
> Review URL: https://codereview.chromium.org/135213003
TBR=danakj@chromium.org
Review URL: https://codereview.chromium.org/149953003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@247811 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/common')
-rw-r--r-- | webkit/common/gpu/webgraphicscontext3d_in_process_command_buffer_impl.cc | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/webkit/common/gpu/webgraphicscontext3d_in_process_command_buffer_impl.cc b/webkit/common/gpu/webgraphicscontext3d_in_process_command_buffer_impl.cc index 51cf45d..d04a459 100644 --- a/webkit/common/gpu/webgraphicscontext3d_in_process_command_buffer_impl.cc +++ b/webkit/common/gpu/webgraphicscontext3d_in_process_command_buffer_impl.cc @@ -24,7 +24,7 @@ #include "gpu/command_buffer/client/gles2_lib.h" #include "gpu/skia_bindings/gl_bindings_skia_cmd_buffer.h" #include "ui/gfx/size.h" -#include "ui/gl/gl_implementation.h" +#include "ui/gl/gl_surface.h" using gpu::gles2::GLES2Implementation; using gpu::GLInProcessContext; @@ -74,9 +74,12 @@ scoped_ptr<WebGraphicsContext3DInProcessCommandBufferImpl> WebGraphicsContext3DInProcessCommandBufferImpl::CreateViewContext( const blink::WebGraphicsContext3D::Attributes& attributes, gfx::AcceleratedWidget window) { - DCHECK_NE(gfx::GetGLImplementation(), gfx::kGLImplementationNone); - return make_scoped_ptr(new WebGraphicsContext3DInProcessCommandBufferImpl( + scoped_ptr<WebGraphicsContext3DInProcessCommandBufferImpl> context; + if (gfx::GLSurface::InitializeOneOff()) { + context.reset(new WebGraphicsContext3DInProcessCommandBufferImpl( scoped_ptr< ::gpu::GLInProcessContext>(), attributes, false, window)); + } + return context.Pass(); } // static @@ -84,21 +87,24 @@ scoped_ptr<WebGraphicsContext3DInProcessCommandBufferImpl> WebGraphicsContext3DInProcessCommandBufferImpl::CreateOffscreenContext( const blink::WebGraphicsContext3D::Attributes& attributes) { return make_scoped_ptr(new WebGraphicsContext3DInProcessCommandBufferImpl( - scoped_ptr< ::gpu::GLInProcessContext>(), - attributes, - true, - gfx::kNullAcceleratedWidget)); + scoped_ptr< ::gpu::GLInProcessContext>(), + attributes, + true, + gfx::kNullAcceleratedWidget)) + .Pass(); } scoped_ptr<WebGraphicsContext3DInProcessCommandBufferImpl> WebGraphicsContext3DInProcessCommandBufferImpl::WrapContext( scoped_ptr< ::gpu::GLInProcessContext> context, const blink::WebGraphicsContext3D::Attributes& attributes) { - return make_scoped_ptr(new WebGraphicsContext3DInProcessCommandBufferImpl( - context.Pass(), - attributes, - true /* is_offscreen. Not used. */, - gfx::kNullAcceleratedWidget /* window. Not used. */)); + return make_scoped_ptr( + new WebGraphicsContext3DInProcessCommandBufferImpl( + context.Pass(), + attributes, + true /* is_offscreen. Not used. */, + gfx::kNullAcceleratedWidget /* window. Not used. */)) + .Pass(); } WebGraphicsContext3DInProcessCommandBufferImpl:: |