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