| Index: content/common/gpu/client/webgraphicscontext3d_command_buffer_impl.cc
|
| diff --git a/content/common/gpu/client/webgraphicscontext3d_command_buffer_impl.cc b/content/common/gpu/client/webgraphicscontext3d_command_buffer_impl.cc
|
| index 4b91c424cf3e7d477dfb36404b238f138c2264b0..425990c8c752a926f1769e75dad328bffd12394e 100644
|
| --- a/content/common/gpu/client/webgraphicscontext3d_command_buffer_impl.cc
|
| +++ b/content/common/gpu/client/webgraphicscontext3d_command_buffer_impl.cc
|
| @@ -230,6 +230,7 @@ WebGraphicsContext3DCommandBufferImpl::WebGraphicsContext3DCommandBufferImpl(
|
| GpuChannelHost* host,
|
| const Attributes& attributes,
|
| bool bind_generates_resources,
|
| + bool lose_context_when_out_of_memory,
|
| const SharedMemoryLimits& limits,
|
| WebGraphicsContext3DCommandBufferImpl* share_context)
|
| : initialize_failed_(false),
|
| @@ -247,6 +248,7 @@ WebGraphicsContext3DCommandBufferImpl::WebGraphicsContext3DCommandBufferImpl(
|
| initialized_(false),
|
| gl_(NULL),
|
| bind_generates_resources_(bind_generates_resources),
|
| + lose_context_when_out_of_memory_(lose_context_when_out_of_memory),
|
| mem_limits_(limits),
|
| flush_id_(0) {
|
| if (share_context) {
|
| @@ -350,6 +352,8 @@ bool WebGraphicsContext3DCommandBufferImpl::InitializeCommandBuffer(
|
| attribs.push_back(attributes_.antialias ? 1 : 0);
|
| attribs.push_back(FAIL_IF_MAJOR_PERF_CAVEAT);
|
| attribs.push_back(attributes_.failIfMajorPerformanceCaveat ? 1 : 0);
|
| + attribs.push_back(LOSE_CONTEXT_WHEN_OUT_OF_MEMORY);
|
| + attribs.push_back(lose_context_when_out_of_memory_ ? 1 : 0);
|
| attribs.push_back(NONE);
|
|
|
| // Create a proxy to a command buffer in the GPU process.
|
| @@ -424,12 +428,13 @@ bool WebGraphicsContext3DCommandBufferImpl::CreateContext(bool onscreen) {
|
| DCHECK(host_.get());
|
|
|
| // Create the object exposing the OpenGL API.
|
| - real_gl_.reset(new gpu::gles2::GLES2Implementation(
|
| - gles2_helper_.get(),
|
| - gles2_share_group,
|
| - transfer_buffer_.get(),
|
| - bind_generates_resources_,
|
| - command_buffer_.get()));
|
| + real_gl_.reset(
|
| + new gpu::gles2::GLES2Implementation(gles2_helper_.get(),
|
| + gles2_share_group,
|
| + transfer_buffer_.get(),
|
| + bind_generates_resources_,
|
| + lose_context_when_out_of_memory_,
|
| + command_buffer_.get()));
|
| gl_ = real_gl_.get();
|
|
|
| if (!real_gl_->Initialize(
|
| @@ -1191,6 +1196,7 @@ WebGraphicsContext3DCommandBufferImpl*
|
| WebGraphicsContext3DCommandBufferImpl::CreateOffscreenContext(
|
| GpuChannelHost* host,
|
| const WebGraphicsContext3D::Attributes& attributes,
|
| + bool lose_context_when_out_of_memory,
|
| const GURL& active_url,
|
| const SharedMemoryLimits& limits,
|
| WebGraphicsContext3DCommandBufferImpl* share_context) {
|
| @@ -1200,13 +1206,16 @@ WebGraphicsContext3DCommandBufferImpl::CreateOffscreenContext(
|
| if (share_context && share_context->IsCommandBufferContextLost())
|
| return NULL;
|
|
|
| - return new WebGraphicsContext3DCommandBufferImpl(0,
|
| - active_url,
|
| - host,
|
| - attributes,
|
| - false,
|
| - limits,
|
| - share_context);
|
| + bool bind_generates_resources = false;
|
| + return new WebGraphicsContext3DCommandBufferImpl(
|
| + 0,
|
| + active_url,
|
| + host,
|
| + attributes,
|
| + bind_generates_resources,
|
| + lose_context_when_out_of_memory,
|
| + limits,
|
| + share_context);
|
| }
|
|
|
| DELEGATE_TO_GL_5(texImageIOSurface2DCHROMIUM, TexImageIOSurface2DCHROMIUM,
|
|
|