| Index: webkit/common/gpu/webgraphicscontext3d_in_process_command_buffer_impl.cc
|
| 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 3c6d608e316e4a58a10475229a2258ae19277b7b..992bcb4ee01b72b6a7b141d139f1272536bdda48 100644
|
| --- a/webkit/common/gpu/webgraphicscontext3d_in_process_command_buffer_impl.cc
|
| +++ b/webkit/common/gpu/webgraphicscontext3d_in_process_command_buffer_impl.cc
|
| @@ -73,20 +73,29 @@ static base::LazyInstance<GLES2Initializer> g_gles2_initializer =
|
| scoped_ptr<WebGraphicsContext3DInProcessCommandBufferImpl>
|
| WebGraphicsContext3DInProcessCommandBufferImpl::CreateViewContext(
|
| const blink::WebGraphicsContext3D::Attributes& attributes,
|
| + bool lose_context_when_out_of_memory,
|
| gfx::AcceleratedWidget window) {
|
| DCHECK_NE(gfx::GetGLImplementation(), gfx::kGLImplementationNone);
|
| + bool is_offscreen = false;
|
| return make_scoped_ptr(new WebGraphicsContext3DInProcessCommandBufferImpl(
|
| - scoped_ptr< ::gpu::GLInProcessContext>(), attributes, false, window));
|
| + scoped_ptr< ::gpu::GLInProcessContext>(),
|
| + attributes,
|
| + lose_context_when_out_of_memory,
|
| + is_offscreen,
|
| + window));
|
| }
|
|
|
| // static
|
| scoped_ptr<WebGraphicsContext3DInProcessCommandBufferImpl>
|
| WebGraphicsContext3DInProcessCommandBufferImpl::CreateOffscreenContext(
|
| - const blink::WebGraphicsContext3D::Attributes& attributes) {
|
| + const blink::WebGraphicsContext3D::Attributes& attributes,
|
| + bool lose_context_when_out_of_memory) {
|
| + bool is_offscreen = true;
|
| return make_scoped_ptr(new WebGraphicsContext3DInProcessCommandBufferImpl(
|
| scoped_ptr< ::gpu::GLInProcessContext>(),
|
| attributes,
|
| - true,
|
| + lose_context_when_out_of_memory,
|
| + is_offscreen,
|
| gfx::kNullAcceleratedWidget));
|
| }
|
|
|
| @@ -94,10 +103,13 @@ scoped_ptr<WebGraphicsContext3DInProcessCommandBufferImpl>
|
| WebGraphicsContext3DInProcessCommandBufferImpl::WrapContext(
|
| scoped_ptr< ::gpu::GLInProcessContext> context,
|
| const blink::WebGraphicsContext3D::Attributes& attributes) {
|
| + bool lose_context_when_out_of_memory = false; // Not used.
|
| + bool is_offscreen = true; // Not used.
|
| return make_scoped_ptr(new WebGraphicsContext3DInProcessCommandBufferImpl(
|
| context.Pass(),
|
| attributes,
|
| - true /* is_offscreen. Not used. */,
|
| + lose_context_when_out_of_memory,
|
| + is_offscreen,
|
| gfx::kNullAcceleratedWidget /* window. Not used. */));
|
| }
|
|
|
| @@ -105,6 +117,7 @@ WebGraphicsContext3DInProcessCommandBufferImpl::
|
| WebGraphicsContext3DInProcessCommandBufferImpl(
|
| scoped_ptr< ::gpu::GLInProcessContext> context,
|
| const blink::WebGraphicsContext3D::Attributes& attributes,
|
| + bool lose_context_when_out_of_memory,
|
| bool is_offscreen,
|
| gfx::AcceleratedWidget window)
|
| : is_offscreen_(is_offscreen),
|
| @@ -116,8 +129,8 @@ WebGraphicsContext3DInProcessCommandBufferImpl::
|
| context_lost_callback_(NULL),
|
| context_lost_reason_(GL_NO_ERROR),
|
| attributes_(attributes),
|
| - flush_id_(0) {
|
| -}
|
| + lose_context_when_out_of_memory_(lose_context_when_out_of_memory),
|
| + flush_id_(0) {}
|
|
|
| WebGraphicsContext3DInProcessCommandBufferImpl::
|
| ~WebGraphicsContext3DInProcessCommandBufferImpl() {
|
| @@ -155,7 +168,9 @@ bool WebGraphicsContext3DInProcessCommandBufferImpl::MaybeInitializeGL() {
|
| gfx::GpuPreference gpu_preference = gfx::PreferDiscreteGpu;
|
|
|
| ::gpu::GLInProcessContextAttribs attrib_struct;
|
| - ConvertAttributes(attributes_, &attrib_struct),
|
| + ConvertAttributes(attributes_, &attrib_struct);
|
| + attrib_struct.lose_context_when_out_of_memory =
|
| + lose_context_when_out_of_memory_;
|
|
|
| context_.reset(GLInProcessContext::CreateContext(
|
| is_offscreen_,
|
|
|