| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "content/renderer/gpu/renderer_gl_context.h" | 5 #include "content/renderer/gpu/renderer_gl_context.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/debug/trace_event.h" | 8 #include "base/debug/trace_event.h" |
| 9 #include "base/lazy_instance.h" | 9 #include "base/lazy_instance.h" |
| 10 #include "base/memory/ref_counted.h" | 10 #include "base/memory/ref_counted.h" |
| (...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 251 last_error_ = SUCCESS; | 251 last_error_ = SUCCESS; |
| 252 return old_error; | 252 return old_error; |
| 253 } else { | 253 } else { |
| 254 // All command buffer errors are unrecoverable. The error is treated as a | 254 // All command buffer errors are unrecoverable. The error is treated as a |
| 255 // lost context: destroy the context and create another one. | 255 // lost context: destroy the context and create another one. |
| 256 return CONTEXT_LOST; | 256 return CONTEXT_LOST; |
| 257 } | 257 } |
| 258 } | 258 } |
| 259 | 259 |
| 260 bool RendererGLContext::IsCommandBufferContextLost() { | 260 bool RendererGLContext::IsCommandBufferContextLost() { |
| 261 // If the channel shut down unexpectedly, let that supersede the |
| 262 // command buffer's state. |
| 263 if (channel_->state() == GpuChannelHost::kLost) |
| 264 return true; |
| 261 gpu::CommandBuffer::State state = command_buffer_->GetLastState(); | 265 gpu::CommandBuffer::State state = command_buffer_->GetLastState(); |
| 262 return state.error == gpu::error::kLostContext; | 266 return state.error == gpu::error::kLostContext; |
| 263 } | 267 } |
| 264 | 268 |
| 265 CommandBufferProxy* RendererGLContext::GetCommandBufferProxy() { | 269 CommandBufferProxy* RendererGLContext::GetCommandBufferProxy() { |
| 266 return command_buffer_; | 270 return command_buffer_; |
| 267 } | 271 } |
| 268 | 272 |
| 269 bool RendererGLContext::SetSurfaceVisible(bool visible) { | 273 bool RendererGLContext::SetSurfaceVisible(bool visible) { |
| 270 return GetCommandBufferProxy()->SetSurfaceVisible(visible); | 274 return GetCommandBufferProxy()->SetSurfaceVisible(visible); |
| (...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 460 void RendererGLContext::OnContextLost() { | 464 void RendererGLContext::OnContextLost() { |
| 461 if (!context_lost_callback_.is_null()) { | 465 if (!context_lost_callback_.is_null()) { |
| 462 RendererGLContext::ContextLostReason reason = kUnknown; | 466 RendererGLContext::ContextLostReason reason = kUnknown; |
| 463 if (command_buffer_) { | 467 if (command_buffer_) { |
| 464 reason = ConvertReason( | 468 reason = ConvertReason( |
| 465 command_buffer_->GetLastState().context_lost_reason); | 469 command_buffer_->GetLastState().context_lost_reason); |
| 466 } | 470 } |
| 467 context_lost_callback_.Run(reason); | 471 context_lost_callback_.Run(reason); |
| 468 } | 472 } |
| 469 } | 473 } |
| OLD | NEW |