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

Side by Side Diff: chrome/browser/android/compositor/layer/tab_layer.cc

Issue 2293573002: Add tinted static UI resource cache (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: nit Created 4 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
OLDNEW
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 "chrome/browser/android/compositor/layer/tab_layer.h" 5 #include "chrome/browser/android/compositor/layer/tab_layer.h"
6 6
7 #include "base/i18n/rtl.h" 7 #include "base/i18n/rtl.h"
8 #include "base/memory/ptr_util.h" 8 #include "base/memory/ptr_util.h"
9 #include "cc/layers/layer.h" 9 #include "cc/layers/layer.h"
10 #include "cc/layers/layer_collections.h" 10 #include "cc/layers/layer_collections.h"
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 bool inset_border) { 146 bool inset_border) {
147 if (alpha <= 0) { 147 if (alpha <= 0) {
148 layer_->SetHideLayerAndSubtree(true); 148 layer_->SetHideLayerAndSubtree(true);
149 return; 149 return;
150 } 150 }
151 151
152 layer_->SetHideLayerAndSubtree(false); 152 layer_->SetHideLayerAndSubtree(false);
153 153
154 // Grab required resources 154 // Grab required resources
155 ui::ResourceManager::Resource* border_resource = 155 ui::ResourceManager::Resource* border_resource =
156 resource_manager_->GetResource(ui::ANDROID_RESOURCE_TYPE_STATIC, 156 resource_manager_->GetStaticResourceWithTint(border_resource_id,
157 border_resource_id); 157 toolbar_background_color);
158 ui::ResourceManager::Resource* border_inner_shadow_resource = 158 ui::ResourceManager::Resource* border_inner_shadow_resource =
159 resource_manager_->GetResource(ui::ANDROID_RESOURCE_TYPE_STATIC, 159 resource_manager_->GetResource(ui::ANDROID_RESOURCE_TYPE_STATIC,
160 border_inner_shadow_resource_id); 160 border_inner_shadow_resource_id);
161 ui::ResourceManager::Resource* shadow_resource = 161 ui::ResourceManager::Resource* shadow_resource =
162 resource_manager_->GetResource(ui::ANDROID_RESOURCE_TYPE_STATIC, 162 resource_manager_->GetResource(ui::ANDROID_RESOURCE_TYPE_STATIC,
163 shadow_resource_id); 163 shadow_resource_id);
164 ui::ResourceManager::Resource* contour_resource = 164 ui::ResourceManager::Resource* contour_resource =
165 resource_manager_->GetResource(ui::ANDROID_RESOURCE_TYPE_STATIC, 165 resource_manager_->GetResource(ui::ANDROID_RESOURCE_TYPE_STATIC,
166 contour_resource_id); 166 contour_resource_id);
167 ui::ResourceManager::Resource* close_btn_resource = 167 ui::ResourceManager::Resource* close_btn_resource =
168 resource_manager_->GetResource(ui::ANDROID_RESOURCE_TYPE_STATIC, 168 resource_manager_->GetStaticResourceWithTint(close_button_resource_id,
169 close_button_resource_id); 169 close_button_color);
170 ui::ResourceManager::Resource* back_logo_resource = nullptr; 170 ui::ResourceManager::Resource* back_logo_resource = nullptr;
171 171
172 DecorationTitle* title_layer = nullptr; 172 DecorationTitle* title_layer = nullptr;
173 173
174 //---------------------------------------------------------------------------- 174 //----------------------------------------------------------------------------
175 // Handle Border Scaling (Upscale/Downscale everything until final scaling) 175 // Handle Border Scaling (Upscale/Downscale everything until final scaling)
176 //---------------------------------------------------------------------------- 176 //----------------------------------------------------------------------------
177 width /= border_scale; 177 width /= border_scale;
178 height /= border_scale; 178 height /= border_scale;
179 shadow_x /= border_scale; 179 shadow_x /= border_scale;
(...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after
471 contour_shadow_->SetBounds(contour_size); 471 contour_shadow_->SetBounds(contour_size);
472 contour_shadow_->SetOpacity(contour_alpha); 472 contour_shadow_->SetOpacity(contour_alpha);
473 } 473 }
474 474
475 front_border_->SetHideLayerAndSubtree(!border_visible); 475 front_border_->SetHideLayerAndSubtree(!border_visible);
476 if (border_visible) { 476 if (border_visible) {
477 front_border_->SetPosition(border_position); 477 front_border_->SetPosition(border_position);
478 front_border_->SetBounds(border_size); 478 front_border_->SetBounds(border_size);
479 front_border_->SetOpacity(border_alpha); 479 front_border_->SetOpacity(border_alpha);
480 front_border_->SetNearestNeighbor(toolbar_visible); 480 front_border_->SetNearestNeighbor(toolbar_visible);
481
482 if (toolbar_background_color != toolbar_background_color_) {
483 toolbar_background_color_ = toolbar_background_color;
484 front_border_->SetFilters(
485 *createSolidColorFilter(toolbar_background_color).get());
486 }
487 } 481 }
488 482
489 front_border_inner_shadow_->SetHideLayerAndSubtree( 483 front_border_inner_shadow_->SetHideLayerAndSubtree(
490 !border_inner_shadow_visible); 484 !border_inner_shadow_visible);
491 if (border_inner_shadow_visible) { 485 if (border_inner_shadow_visible) {
492 front_border_inner_shadow_->SetPosition(border_inner_shadow_position); 486 front_border_inner_shadow_->SetPosition(border_inner_shadow_position);
493 front_border_inner_shadow_->SetBounds(border_inner_shadow_size); 487 front_border_inner_shadow_->SetBounds(border_inner_shadow_size);
494 front_border_inner_shadow_->SetOpacity(border_inner_shadow_alpha); 488 front_border_inner_shadow_->SetOpacity(border_inner_shadow_alpha);
495 } 489 }
496 490
(...skipping 18 matching lines...) Expand all
515 title_position.y() + 509 title_position.y() +
516 (title_size.height() - title_layer->size().height()) / 2.f); 510 (title_size.height() - title_layer->size().height()) / 2.f);
517 511
518 title_->SetPosition(vertically_centered_position); 512 title_->SetPosition(vertically_centered_position);
519 title_layer->setBounds(title_size); 513 title_layer->setBounds(title_size);
520 title_layer->setOpacity(border_alpha); 514 title_layer->setOpacity(border_alpha);
521 } 515 }
522 516
523 close_button_->SetHideLayerAndSubtree(!close_btn_visible); 517 close_button_->SetHideLayerAndSubtree(!close_btn_visible);
524 if (close_btn_visible) { 518 if (close_btn_visible) {
525
526 if (close_button_color != close_button_color_) {
527 close_button_color_ = close_button_color;
528 close_button_->SetFilters(
529 *createSolidColorFilter(close_button_color).get());
530 }
531
532 close_button_->SetPosition(close_button_position); 519 close_button_->SetPosition(close_button_position);
533 close_button_->SetBounds(close_button_size); 520 close_button_->SetBounds(close_button_size);
534 // Non-linear alpha looks better. 521 // Non-linear alpha looks better.
535 close_button_->SetOpacity(close_alpha * close_alpha * border_alpha); 522 close_button_->SetOpacity(close_alpha * close_alpha * border_alpha);
536 } 523 }
537 524
538 if (content_visible && attach_content) { 525 if (content_visible && attach_content) {
539 { 526 {
540 // content_ and back_logo_ Transforms 527 // content_ and back_logo_ Transforms
541 gfx::Transform transform; 528 gfx::Transform transform;
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
621 // than 1. 608 // than 1.
622 if (brightness != brightness_) { 609 if (brightness != brightness_) {
623 brightness_ = brightness; 610 brightness_ = brightness;
624 cc::FilterOperations filters; 611 cc::FilterOperations filters;
625 if (brightness_ < 1.f) 612 if (brightness_ < 1.f)
626 filters.Append(cc::FilterOperation::CreateBrightnessFilter(brightness_)); 613 filters.Append(cc::FilterOperation::CreateBrightnessFilter(brightness_));
627 layer_->SetFilters(filters); 614 layer_->SetFilters(filters);
628 } 615 }
629 } 616 }
630 617
631 std::unique_ptr<cc::FilterOperations> TabLayer::createSolidColorFilter(
632 int color) {
633 std::unique_ptr<cc::FilterOperations> filters =
634 base::WrapUnique(new cc::FilterOperations());
635 SkScalar colorMatrix[] = {
636 SkColorGetR(color) / 255.0f, 0, 0, 0, 0,
637 0, SkColorGetG(color) / 255.0f, 0, 0, 0,
638 0, 0, SkColorGetB(color) / 255.0f, 0, 0,
639 0, 0, 0, 1, 0,
640 };
641 filters->Append(cc::FilterOperation::CreateColorMatrixFilter(colorMatrix));
642 return filters;
643 }
644
645 scoped_refptr<cc::Layer> TabLayer::layer() { 618 scoped_refptr<cc::Layer> TabLayer::layer() {
646 return layer_; 619 return layer_;
647 } 620 }
648 621
649 TabLayer::TabLayer(bool incognito, 622 TabLayer::TabLayer(bool incognito,
650 ui::ResourceManager* resource_manager, 623 ui::ResourceManager* resource_manager,
651 LayerTitleCache* layer_title_cache, 624 LayerTitleCache* layer_title_cache,
652 TabContentManager* tab_content_manager) 625 TabContentManager* tab_content_manager)
653 : incognito_(incognito), 626 : incognito_(incognito),
654 toolbar_background_color_(0),
655 close_button_color_(0),
656 resource_manager_(resource_manager), 627 resource_manager_(resource_manager),
657 layer_title_cache_(layer_title_cache), 628 layer_title_cache_(layer_title_cache),
658 layer_(cc::Layer::Create()), 629 layer_(cc::Layer::Create()),
659 toolbar_layer_(ToolbarLayer::Create(resource_manager)), 630 toolbar_layer_(ToolbarLayer::Create(resource_manager)),
660 title_(cc::Layer::Create()), 631 title_(cc::Layer::Create()),
661 content_(ContentLayer::Create(tab_content_manager)), 632 content_(ContentLayer::Create(tab_content_manager)),
662 side_padding_(cc::SolidColorLayer::Create()), 633 side_padding_(cc::SolidColorLayer::Create()),
663 bottom_padding_(cc::SolidColorLayer::Create()), 634 bottom_padding_(cc::SolidColorLayer::Create()),
664 close_button_(cc::UIResourceLayer::Create()), 635 close_button_(cc::UIResourceLayer::Create()),
665 front_border_(cc::NinePatchLayer::Create()), 636 front_border_(cc::NinePatchLayer::Create()),
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
707 title_->AddChild(layer); 678 title_->AddChild(layer);
708 } 679 }
709 } 680 }
710 681
711 if (title) 682 if (title)
712 title->SetUIResourceIds(); 683 title->SetUIResourceIds();
713 } 684 }
714 685
715 } // namespace android 686 } // namespace android
716 } // namespace chrome 687 } // namespace chrome
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698