| 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 #include <stdint.h> | 9 #include <stdint.h> |
| 10 #include <unordered_set> | 10 #include <unordered_set> |
| (...skipping 482 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 493 cc::LayerTreeHost::InitParams params; | 493 cc::LayerTreeHost::InitParams params; |
| 494 params.client = this; | 494 params.client = this; |
| 495 params.shared_bitmap_manager = HostSharedBitmapManager::current(); | 495 params.shared_bitmap_manager = HostSharedBitmapManager::current(); |
| 496 params.gpu_memory_buffer_manager = BrowserGpuMemoryBufferManager::current(); | 496 params.gpu_memory_buffer_manager = BrowserGpuMemoryBufferManager::current(); |
| 497 params.task_graph_runner = g_task_graph_runner.Pointer(); | 497 params.task_graph_runner = g_task_graph_runner.Pointer(); |
| 498 params.main_task_runner = base::ThreadTaskRunnerHandle::Get(); | 498 params.main_task_runner = base::ThreadTaskRunnerHandle::Get(); |
| 499 params.settings = &settings; | 499 params.settings = &settings; |
| 500 params.animation_host = cc::AnimationHost::CreateMainInstance(); | 500 params.animation_host = cc::AnimationHost::CreateMainInstance(); |
| 501 host_ = cc::LayerTreeHost::CreateSingleThreaded(this, ¶ms); | 501 host_ = cc::LayerTreeHost::CreateSingleThreaded(this, ¶ms); |
| 502 DCHECK(!host_->visible()); | 502 DCHECK(!host_->visible()); |
| 503 host_->SetRootLayer(root_window_->GetLayer()); | 503 host_->GetLayerTree()->SetRootLayer(root_window_->GetLayer()); |
| 504 host_->set_surface_client_id(surface_id_allocator_->client_id()); | 504 host_->set_surface_client_id(surface_id_allocator_->client_id()); |
| 505 host_->SetViewportSize(size_); | 505 host_->GetLayerTree()->SetViewportSize(size_); |
| 506 host_->set_has_transparent_background(has_transparent_background_); | 506 host_->GetLayerTree()->set_has_transparent_background( |
| 507 host_->SetDeviceScaleFactor(device_scale_factor_); | 507 has_transparent_background_); |
| 508 host_->GetLayerTree()->SetDeviceScaleFactor(device_scale_factor_); |
| 508 | 509 |
| 509 if (needs_animate_) | 510 if (needs_animate_) |
| 510 host_->SetNeedsAnimate(); | 511 host_->SetNeedsAnimate(); |
| 511 } | 512 } |
| 512 | 513 |
| 513 void CompositorImpl::SetVisible(bool visible) { | 514 void CompositorImpl::SetVisible(bool visible) { |
| 514 TRACE_EVENT1("cc", "CompositorImpl::SetVisible", "visible", visible); | 515 TRACE_EVENT1("cc", "CompositorImpl::SetVisible", "visible", visible); |
| 515 if (!visible) { | 516 if (!visible) { |
| 516 DCHECK(host_->visible()); | 517 DCHECK(host_->visible()); |
| 517 host_->SetVisible(false); | 518 host_->SetVisible(false); |
| 518 if (!host_->output_surface_lost()) | 519 if (!host_->output_surface_lost()) |
| 519 host_->ReleaseOutputSurface(); | 520 host_->ReleaseOutputSurface(); |
| 520 pending_swapbuffers_ = 0; | 521 pending_swapbuffers_ = 0; |
| 521 display_.reset(); | 522 display_.reset(); |
| 522 } else { | 523 } else { |
| 523 host_->SetVisible(true); | 524 host_->SetVisible(true); |
| 524 if (output_surface_request_pending_) | 525 if (output_surface_request_pending_) |
| 525 HandlePendingOutputSurfaceRequest(); | 526 HandlePendingOutputSurfaceRequest(); |
| 526 } | 527 } |
| 527 } | 528 } |
| 528 | 529 |
| 529 void CompositorImpl::setDeviceScaleFactor(float factor) { | 530 void CompositorImpl::setDeviceScaleFactor(float factor) { |
| 530 device_scale_factor_ = factor; | 531 device_scale_factor_ = factor; |
| 531 if (host_) | 532 if (host_) |
| 532 host_->SetDeviceScaleFactor(factor); | 533 host_->GetLayerTree()->SetDeviceScaleFactor(factor); |
| 533 } | 534 } |
| 534 | 535 |
| 535 void CompositorImpl::SetWindowBounds(const gfx::Size& size) { | 536 void CompositorImpl::SetWindowBounds(const gfx::Size& size) { |
| 536 if (size_ == size) | 537 if (size_ == size) |
| 537 return; | 538 return; |
| 538 | 539 |
| 539 size_ = size; | 540 size_ = size; |
| 540 if (host_) | 541 if (host_) |
| 541 host_->SetViewportSize(size); | 542 host_->GetLayerTree()->SetViewportSize(size); |
| 542 if (display_) | 543 if (display_) |
| 543 display_->Resize(size); | 544 display_->Resize(size); |
| 544 root_window_->GetLayer()->SetBounds(size); | 545 root_window_->GetLayer()->SetBounds(size); |
| 545 } | 546 } |
| 546 | 547 |
| 547 void CompositorImpl::SetHasTransparentBackground(bool flag) { | 548 void CompositorImpl::SetHasTransparentBackground(bool flag) { |
| 548 has_transparent_background_ = flag; | 549 has_transparent_background_ = flag; |
| 549 if (host_) | 550 if (host_) |
| 550 host_->set_has_transparent_background(flag); | 551 host_->GetLayerTree()->set_has_transparent_background(flag); |
| 551 } | 552 } |
| 552 | 553 |
| 553 void CompositorImpl::SetNeedsComposite() { | 554 void CompositorImpl::SetNeedsComposite() { |
| 554 if (!host_->visible()) | 555 if (!host_->visible()) |
| 555 return; | 556 return; |
| 556 TRACE_EVENT0("compositor", "Compositor::SetNeedsComposite"); | 557 TRACE_EVENT0("compositor", "Compositor::SetNeedsComposite"); |
| 557 host_->SetNeedsAnimate(); | 558 host_->SetNeedsAnimate(); |
| 558 } | 559 } |
| 559 | 560 |
| 560 void CompositorImpl::UpdateLayerTreeHost() { | 561 void CompositorImpl::UpdateLayerTreeHost() { |
| (...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 775 void CompositorImpl::SetNeedsAnimate() { | 776 void CompositorImpl::SetNeedsAnimate() { |
| 776 needs_animate_ = true; | 777 needs_animate_ = true; |
| 777 if (!host_->visible()) | 778 if (!host_->visible()) |
| 778 return; | 779 return; |
| 779 | 780 |
| 780 TRACE_EVENT0("compositor", "Compositor::SetNeedsAnimate"); | 781 TRACE_EVENT0("compositor", "Compositor::SetNeedsAnimate"); |
| 781 host_->SetNeedsAnimate(); | 782 host_->SetNeedsAnimate(); |
| 782 } | 783 } |
| 783 | 784 |
| 784 } // namespace content | 785 } // namespace content |
| OLD | NEW |