| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "android_webview/browser/hardware_renderer.h" | 5 #include "android_webview/browser/hardware_renderer.h" |
| 6 | 6 |
| 7 #include "android_webview/browser/aw_gl_surface.h" | 7 #include "android_webview/browser/aw_gl_surface.h" |
| 8 #include "android_webview/browser/deferred_gpu_command_service.h" | 8 #include "android_webview/browser/deferred_gpu_command_service.h" |
| 9 #include "android_webview/browser/parent_output_surface.h" | 9 #include "android_webview/browser/parent_output_surface.h" |
| 10 #include "android_webview/browser/shared_renderer_state.h" | 10 #include "android_webview/browser/shared_renderer_state.h" |
| (...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 246 gl_surface_->SetBackingFrameBufferObject(framebuffer_binding_ext); | 246 gl_surface_->SetBackingFrameBufferObject(framebuffer_binding_ext); |
| 247 { | 247 { |
| 248 base::AutoReset<bool> frame_resetter(&viewport_clip_valid_for_dcheck_, | 248 base::AutoReset<bool> frame_resetter(&viewport_clip_valid_for_dcheck_, |
| 249 true); | 249 true); |
| 250 layer_tree_host_->SetNeedsRedrawRect(clip_); | 250 layer_tree_host_->SetNeedsRedrawRect(clip_); |
| 251 layer_tree_host_->Composite(gfx::FrameTime::Now()); | 251 layer_tree_host_->Composite(gfx::FrameTime::Now()); |
| 252 } | 252 } |
| 253 gl_surface_->ResetBackingFrameBufferObject(); | 253 gl_surface_->ResetBackingFrameBufferObject(); |
| 254 } | 254 } |
| 255 | 255 |
| 256 void HardwareRenderer::RequestNewOutputSurface(bool fallback) { | 256 void HardwareRenderer::RequestNewOutputSurface() { |
| 257 // Android webview does not support losing output surface. | |
| 258 DCHECK(!fallback); | |
| 259 scoped_refptr<cc::ContextProvider> context_provider = | 257 scoped_refptr<cc::ContextProvider> context_provider = |
| 260 CreateContext(gl_surface_, | 258 CreateContext(gl_surface_, |
| 261 DeferredGpuCommandService::GetInstance()); | 259 DeferredGpuCommandService::GetInstance()); |
| 262 scoped_ptr<ParentOutputSurface> output_surface_holder( | 260 scoped_ptr<ParentOutputSurface> output_surface_holder( |
| 263 new ParentOutputSurface(context_provider)); | 261 new ParentOutputSurface(context_provider)); |
| 264 output_surface_ = output_surface_holder.get(); | 262 output_surface_ = output_surface_holder.get(); |
| 265 layer_tree_host_->SetOutputSurface(output_surface_holder.Pass()); | 263 layer_tree_host_->SetOutputSurface(output_surface_holder.Pass()); |
| 266 } | 264 } |
| 267 | 265 |
| 266 void HardwareRenderer::DidFailToInitializeOutputSurface() { |
| 267 RequestNewOutputSurface(); |
| 268 } |
| 269 |
| 268 void HardwareRenderer::UnusedResourcesAreAvailable() { | 270 void HardwareRenderer::UnusedResourcesAreAvailable() { |
| 269 cc::ReturnedResourceArray returned_resources; | 271 cc::ReturnedResourceArray returned_resources; |
| 270 resource_collection_->TakeUnusedResourcesForChildCompositor( | 272 resource_collection_->TakeUnusedResourcesForChildCompositor( |
| 271 &returned_resources); | 273 &returned_resources); |
| 272 shared_renderer_state_->InsertReturnedResourcesOnRT(returned_resources); | 274 shared_renderer_state_->InsertReturnedResourcesOnRT(returned_resources); |
| 273 } | 275 } |
| 274 | 276 |
| 275 } // namespace android_webview | 277 } // namespace android_webview |
| OLD | NEW |