summaryrefslogtreecommitdiffstats
path: root/webkit/common
diff options
context:
space:
mode:
authoryoz@chromium.org <yoz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-01-30 02:06:08 +0000
committeryoz@chromium.org <yoz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-01-30 02:06:08 +0000
commit64437e622c11f77938e41b473bd77421ec2482e1 (patch)
tree09baeeb57cf7f5d40829051c1d75adb58c7e9393 /webkit/common
parentcb99348010b1e026f4ef4c0d242434731e497dca (diff)
downloadchromium_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.cc30
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::