Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(89)

Side by Side Diff: cc/trees/layer_tree_host.cc

Issue 23805002: [cc] Enable specifying a overhang/gutter texture. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Incorporate review feedback Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « cc/trees/layer_tree_host.h ('k') | cc/trees/layer_tree_host_impl.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 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 "cc/trees/layer_tree_host.h" 5 #include "cc/trees/layer_tree_host.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <stack> 8 #include <stack>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
135 if (!output_surface) 135 if (!output_surface)
136 return false; 136 return false;
137 137
138 proxy_ = proxy.Pass(); 138 proxy_ = proxy.Pass();
139 proxy_->Start(output_surface.Pass()); 139 proxy_->Start(output_surface.Pass());
140 return true; 140 return true;
141 } 141 }
142 142
143 LayerTreeHost::~LayerTreeHost() { 143 LayerTreeHost::~LayerTreeHost() {
144 TRACE_EVENT0("cc", "LayerTreeHost::~LayerTreeHost"); 144 TRACE_EVENT0("cc", "LayerTreeHost::~LayerTreeHost");
145
146 overhang_ui_resource_.reset();
147
145 if (root_layer_.get()) 148 if (root_layer_.get())
146 root_layer_->SetLayerTreeHost(NULL); 149 root_layer_->SetLayerTreeHost(NULL);
147 150
148 if (proxy_) { 151 if (proxy_) {
149 DCHECK(proxy_->IsMainThread()); 152 DCHECK(proxy_->IsMainThread());
150 proxy_->Stop(); 153 proxy_->Stop();
151 } 154 }
152 155
153 s_num_layer_tree_instances--; 156 s_num_layer_tree_instances--;
154 RateLimiterMap::iterator it = rate_limiters_.begin(); 157 RateLimiterMap::iterator it = rate_limiters_.begin();
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after
362 } 365 }
363 366
364 if (!ui_resource_request_queue_.empty()) { 367 if (!ui_resource_request_queue_.empty()) {
365 sync_tree->set_ui_resource_request_queue(ui_resource_request_queue_); 368 sync_tree->set_ui_resource_request_queue(ui_resource_request_queue_);
366 ui_resource_request_queue_.clear(); 369 ui_resource_request_queue_.clear();
367 // Process any ui resource requests in the queue. For impl-side-painting, 370 // Process any ui resource requests in the queue. For impl-side-painting,
368 // the queue is processed in LayerTreeHostImpl::ActivatePendingTree. 371 // the queue is processed in LayerTreeHostImpl::ActivatePendingTree.
369 if (!settings_.impl_side_painting) 372 if (!settings_.impl_side_painting)
370 sync_tree->ProcessUIResourceRequestQueue(); 373 sync_tree->ProcessUIResourceRequestQueue();
371 } 374 }
375 if (overhang_ui_resource_) {
376 host_impl->SetOverhangUIResource(
377 overhang_ui_resource_->id(),
378 overhang_ui_resource_->GetSize());
379 }
372 380
373 DCHECK(!sync_tree->ViewportSizeInvalid()); 381 DCHECK(!sync_tree->ViewportSizeInvalid());
374 382
375 if (new_impl_tree_has_no_evicted_resources) { 383 if (new_impl_tree_has_no_evicted_resources) {
376 if (sync_tree->ContentsTexturesPurged()) 384 if (sync_tree->ContentsTexturesPurged())
377 sync_tree->ResetContentsTexturesPurged(); 385 sync_tree->ResetContentsTexturesPurged();
378 } 386 }
379 387
380 if (!settings_.impl_side_painting) { 388 if (!settings_.impl_side_painting) {
381 // If we're not in impl-side painting, the tree is immediately 389 // If we're not in impl-side painting, the tree is immediately
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after
616 min_page_scale_factor == min_page_scale_factor_ && 624 min_page_scale_factor == min_page_scale_factor_ &&
617 max_page_scale_factor == max_page_scale_factor_) 625 max_page_scale_factor == max_page_scale_factor_)
618 return; 626 return;
619 627
620 page_scale_factor_ = page_scale_factor; 628 page_scale_factor_ = page_scale_factor;
621 min_page_scale_factor_ = min_page_scale_factor; 629 min_page_scale_factor_ = min_page_scale_factor;
622 max_page_scale_factor_ = max_page_scale_factor; 630 max_page_scale_factor_ = max_page_scale_factor;
623 SetNeedsCommit(); 631 SetNeedsCommit();
624 } 632 }
625 633
634 void LayerTreeHost::SetOverhangBitmap(const SkBitmap& bitmap) {
635 DCHECK(bitmap.width() && bitmap.height());
636 DCHECK_EQ(bitmap.bytesPerPixel(), 4);
637
638 scoped_refptr<UIResourceBitmap> overhang_ui_bitmap(UIResourceBitmap::Create(
639 new uint8_t[bitmap.width() * bitmap.height() * bitmap.bytesPerPixel()],
640 UIResourceBitmap::RGBA8,
641 gfx::Size(bitmap.width(), bitmap.height())));
642 bitmap.copyPixelsTo(
643 overhang_ui_bitmap->GetPixels(),
644 bitmap.width() * bitmap.height() * bitmap.bytesPerPixel(),
645 bitmap.width() * bitmap.bytesPerPixel());
646 overhang_ui_resource_ = ScopedUIResource::Create(this, overhang_ui_bitmap);
647 }
648
626 void LayerTreeHost::SetVisible(bool visible) { 649 void LayerTreeHost::SetVisible(bool visible) {
627 if (visible_ == visible) 650 if (visible_ == visible)
628 return; 651 return;
629 visible_ = visible; 652 visible_ = visible;
630 if (!visible) 653 if (!visible)
631 ReduceMemoryUsage(); 654 ReduceMemoryUsage();
632 proxy_->SetVisible(visible); 655 proxy_->SetVisible(visible);
633 } 656 }
634 657
635 void LayerTreeHost::SetLatencyInfo(const ui::LatencyInfo& latency_info) { 658 void LayerTreeHost::SetLatencyInfo(const ui::LatencyInfo& latency_info) {
(...skipping 531 matching lines...) Expand 10 before | Expand all | Expand 10 after
1167 void LayerTreeHost::DidLoseUIResources() { 1190 void LayerTreeHost::DidLoseUIResources() {
1168 // When output surface is lost, we need to recreate the resource. 1191 // When output surface is lost, we need to recreate the resource.
1169 for (UIResourceClientMap::iterator iter = ui_resource_client_map_.begin(); 1192 for (UIResourceClientMap::iterator iter = ui_resource_client_map_.begin();
1170 iter != ui_resource_client_map_.end(); 1193 iter != ui_resource_client_map_.end();
1171 ++iter) { 1194 ++iter) {
1172 UIResourceLost(iter->first); 1195 UIResourceLost(iter->first);
1173 } 1196 }
1174 } 1197 }
1175 1198
1176 } // namespace cc 1199 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host.h ('k') | cc/trees/layer_tree_host_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698