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

Unified Diff: cc/layers/scrollbar_layer.cc

Issue 18341009: Refactor cc scrollbar layers to separate solid-color vs desktop. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address tfarina@'s comments. Created 7 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: cc/layers/scrollbar_layer.cc
diff --git a/cc/layers/scrollbar_layer.cc b/cc/layers/scrollbar_layer.cc
index f2c46a82202a200833511ae8750b4f5b44a637e4..ace27f969c73b47a95bc4deae995973bfa71c6d0 100644
--- a/cc/layers/scrollbar_layer.cc
+++ b/cc/layers/scrollbar_layer.cc
@@ -34,8 +34,8 @@ scoped_refptr<ScrollbarLayer> ScrollbarLayer::Create(
ScrollbarLayer::ScrollbarLayer(
scoped_ptr<Scrollbar> scrollbar,
int scroll_layer_id)
- : scrollbar_(scrollbar.Pass()),
- scroll_layer_id_(scroll_layer_id),
+ : ScrollbarLayerBase(scroll_layer_id, scrollbar->Orientation()),
+ scrollbar_(scrollbar.Pass()),
texture_format_(GL_INVALID_ENUM) {
if (!scrollbar_->IsOverlay())
SetShouldScrollOnMainThread(true);
@@ -43,31 +43,26 @@ ScrollbarLayer::ScrollbarLayer(
ScrollbarLayer::~ScrollbarLayer() {}
-void ScrollbarLayer::SetScrollLayerId(int id) {
- if (id == scroll_layer_id_)
- return;
-
- scroll_layer_id_ = id;
- SetNeedsFullTreeSync();
-}
-
bool ScrollbarLayer::OpacityCanAnimateOnImplThread() const {
return scrollbar_->IsOverlay();
}
-ScrollbarOrientation ScrollbarLayer::Orientation() const {
- return scrollbar_->Orientation();
-}
+ScrollbarLayerBase* ScrollbarLayer::ToScrollbarLayerBase() { return this; }
int ScrollbarLayer::MaxTextureSize() {
DCHECK(layer_tree_host());
return layer_tree_host()->GetRendererCapabilities().max_texture_size;
}
-float ScrollbarLayer::ClampScaleToMaxTextureSize(float scale) {
- if (layer_tree_host()->settings().solid_color_scrollbars)
- return scale;
+void ScrollbarLayer::SetScrollLayerId(int id) {
+ if (id == scroll_layer_id_)
+ return;
+ scroll_layer_id_ = id;
+ SetNeedsFullTreeSync();
+}
+
+float ScrollbarLayer::ClampScaleToMaxTextureSize(float scale) {
// If the scaled content_bounds() is bigger than the max texture size of the
// device, we need to clamp it by rescaling, since content_bounds() is used
// below to set the texture size.
@@ -104,21 +99,7 @@ void ScrollbarLayer::PushPropertiesTo(LayerImpl* layer) {
ScrollbarLayerImpl* scrollbar_layer = static_cast<ScrollbarLayerImpl*>(layer);
- if (layer_tree_host() &&
- layer_tree_host()->settings().solid_color_scrollbars) {
- int thickness_override =
- layer_tree_host()->settings().solid_color_scrollbar_thickness_dip;
- if (thickness_override != -1) {
- scrollbar_layer->set_thumb_thickness(thickness_override);
- } else {
- if (Orientation() == HORIZONTAL)
- scrollbar_layer->set_thumb_thickness(bounds().height());
- else
- scrollbar_layer->set_thumb_thickness(bounds().width());
- }
- } else {
- scrollbar_layer->set_thumb_thickness(thumb_thickness_);
- }
+ scrollbar_layer->set_thumb_thickness(thumb_thickness_);
scrollbar_layer->set_thumb_length(thumb_length_);
if (Orientation() == HORIZONTAL) {
scrollbar_layer->set_track_start(track_rect_.x());
@@ -139,10 +120,6 @@ void ScrollbarLayer::PushPropertiesTo(LayerImpl* layer) {
scrollbar_layer->set_thumb_resource_id(0);
}
-ScrollbarLayer* ScrollbarLayer::ToScrollbarLayer() {
- return this;
-}
-
void ScrollbarLayer::SetLayerTreeHost(LayerTreeHost* host) {
if (!host || host != layer_tree_host()) {
track_updater_ = NULL;
@@ -174,9 +151,6 @@ class ScrollbarPartPainter : public LayerPainter {
};
void ScrollbarLayer::CreateUpdaterIfNeeded() {
- if (layer_tree_host()->settings().solid_color_scrollbars)
- return;
-
texture_format_ =
layer_tree_host()->GetRendererCapabilities().best_texture_format;
@@ -211,9 +185,6 @@ void ScrollbarLayer::UpdatePart(CachingBitmapContentLayerUpdater* painter,
LayerUpdater::Resource* resource,
gfx::Rect rect,
ResourceUpdateQueue* queue) {
- if (layer_tree_host()->settings().solid_color_scrollbars)
- return;
-
// Skip painting and uploading if there are no invalidations and
// we already have valid texture data.
if (resource->texture()->have_backing_texture() &&
@@ -265,9 +236,6 @@ gfx::Rect ScrollbarLayer::ScrollbarLayerRectToContentRect(
void ScrollbarLayer::SetTexturePriorities(
const PriorityCalculator& priority_calc) {
- if (layer_tree_host()->settings().solid_color_scrollbars)
- return;
-
if (content_bounds().IsEmpty())
return;
DCHECK_LE(content_bounds().width(), MaxTextureSize());
@@ -293,9 +261,6 @@ void ScrollbarLayer::Update(ResourceUpdateQueue* queue,
const OcclusionTracker* occlusion) {
track_rect_ = scrollbar_->TrackRect();
- if (layer_tree_host()->settings().solid_color_scrollbars)
- return;
-
{
base::AutoReset<bool> ignore_set_needs_commit(&ignore_set_needs_commit_,
true);

Powered by Google App Engine
This is Rietveld 408576698