OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/browser/renderer_host/compositor_impl_android.h" | 5 #include "content/browser/renderer_host/compositor_impl_android.h" |
6 | 6 |
7 #include <android/bitmap.h> | 7 #include <android/bitmap.h> |
8 #include <android/native_window_jni.h> | 8 #include <android/native_window_jni.h> |
9 | 9 |
10 #include "base/android/jni_android.h" | 10 #include "base/android/jni_android.h" |
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
199 needs_composite_(false), | 199 needs_composite_(false), |
200 needs_animate_(false), | 200 needs_animate_(false), |
201 will_composite_immediately_(false), | 201 will_composite_immediately_(false), |
202 composite_on_vsync_trigger_(DO_NOT_COMPOSITE), | 202 composite_on_vsync_trigger_(DO_NOT_COMPOSITE), |
203 pending_swapbuffers_(0U), | 203 pending_swapbuffers_(0U), |
204 weak_factory_(this) { | 204 weak_factory_(this) { |
205 DCHECK(client); | 205 DCHECK(client); |
206 DCHECK(root_window); | 206 DCHECK(root_window); |
207 ImageTransportFactoryAndroid::AddObserver(this); | 207 ImageTransportFactoryAndroid::AddObserver(this); |
208 root_window->AttachCompositor(this); | 208 root_window->AttachCompositor(this); |
| 209 system_ui_resource_manager_.SetUIResourceProvider(&ui_resource_provider_); |
209 } | 210 } |
210 | 211 |
211 CompositorImpl::~CompositorImpl() { | 212 CompositorImpl::~CompositorImpl() { |
212 root_window_->DetachCompositor(); | 213 root_window_->DetachCompositor(); |
213 ImageTransportFactoryAndroid::RemoveObserver(this); | 214 ImageTransportFactoryAndroid::RemoveObserver(this); |
214 // Clean-up any surface references. | 215 // Clean-up any surface references. |
215 SetSurface(NULL); | 216 SetSurface(NULL); |
216 } | 217 } |
217 | 218 |
218 void CompositorImpl::PostComposite(CompositingTrigger trigger) { | 219 void CompositorImpl::PostComposite(CompositingTrigger trigger) { |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
329 pending_swapbuffers_++; | 330 pending_swapbuffers_++; |
330 | 331 |
331 // Need to track vsync to avoid compositing more than once per frame. | 332 // Need to track vsync to avoid compositing more than once per frame. |
332 root_window_->RequestVSyncUpdate(); | 333 root_window_->RequestVSyncUpdate(); |
333 } | 334 } |
334 | 335 |
335 void CompositorImpl::OnGpuChannelEstablished() { | 336 void CompositorImpl::OnGpuChannelEstablished() { |
336 ScheduleComposite(); | 337 ScheduleComposite(); |
337 } | 338 } |
338 | 339 |
339 UIResourceProvider& CompositorImpl::GetUIResourceProvider() { | 340 ui::UIResourceProvider& CompositorImpl::GetUIResourceProvider() { |
340 return ui_resource_provider_; | 341 return ui_resource_provider_; |
341 } | 342 } |
342 | 343 |
| 344 ui::SystemUIResourceManager& CompositorImpl::GetSystemUIResourceManager() { |
| 345 return system_ui_resource_manager_; |
| 346 } |
| 347 |
343 void CompositorImpl::SetRootLayer(scoped_refptr<cc::Layer> root_layer) { | 348 void CompositorImpl::SetRootLayer(scoped_refptr<cc::Layer> root_layer) { |
344 root_layer_->RemoveAllChildren(); | 349 root_layer_->RemoveAllChildren(); |
345 if (root_layer) | 350 if (root_layer) |
346 root_layer_->AddChild(root_layer); | 351 root_layer_->AddChild(root_layer); |
347 } | 352 } |
348 | 353 |
349 void CompositorImpl::SetWindowSurface(ANativeWindow* window) { | 354 void CompositorImpl::SetWindowSurface(ANativeWindow* window) { |
350 GpuSurfaceTracker* tracker = GpuSurfaceTracker::Get(); | 355 GpuSurfaceTracker* tracker = GpuSurfaceTracker::Get(); |
351 | 356 |
352 if (window_) { | 357 if (window_) { |
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
617 } | 622 } |
618 | 623 |
619 void CompositorImpl::SetNeedsAnimate() { | 624 void CompositorImpl::SetNeedsAnimate() { |
620 if (!host_) | 625 if (!host_) |
621 return; | 626 return; |
622 | 627 |
623 host_->SetNeedsAnimate(); | 628 host_->SetNeedsAnimate(); |
624 } | 629 } |
625 | 630 |
626 } // namespace content | 631 } // namespace content |
OLD | NEW |