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

Side by Side Diff: ui/compositor/layer.cc

Issue 11418040: gfx::Transform API clean-up (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 1 month 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
OLDNEW
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 "ui/compositor/layer.h" 5 #include "ui/compositor/layer.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/debug/trace_event.h" 10 #include "base/debug/trace_event.h"
(...skipping 597 matching lines...) Expand 10 before | Expand all | Expand 10 after
608 gfx::Point3F p(*point); 608 gfx::Point3F p(*point);
609 transform.TransformPointReverse(p); 609 transform.TransformPointReverse(p);
610 *point = gfx::ToFlooredPoint(p.AsPointF()); 610 *point = gfx::ToFlooredPoint(p.AsPointF());
611 return result; 611 return result;
612 } 612 }
613 613
614 bool Layer::GetTransformRelativeTo(const Layer* ancestor, 614 bool Layer::GetTransformRelativeTo(const Layer* ancestor,
615 gfx::Transform* transform) const { 615 gfx::Transform* transform) const {
616 const Layer* p = this; 616 const Layer* p = this;
617 for (; p && p != ancestor; p = p->parent()) { 617 for (; p && p != ancestor; p = p->parent()) {
618 gfx::Transform translation;
619 translation.Translate(static_cast<float>(p->bounds().x()),
620 static_cast<float>(p->bounds().y()));
618 if (p->transform().HasChange()) 621 if (p->transform().HasChange())
619 transform->ConcatTransform(p->transform()); 622 *transform = translation * p->transform() * *transform;
620 transform->ConcatTranslate(static_cast<float>(p->bounds().x()), 623 else
621 static_cast<float>(p->bounds().y())); 624 *transform = translation * *transform;
622 } 625 }
623 return p == ancestor; 626 return p == ancestor;
624 } 627 }
625 628
626 void Layer::SetBoundsImmediately(const gfx::Rect& bounds) { 629 void Layer::SetBoundsImmediately(const gfx::Rect& bounds) {
627 if (bounds == bounds_) 630 if (bounds == bounds_)
628 return; 631 return;
629 632
630 base::Closure closure; 633 base::Closure closure;
631 if (delegate_) 634 if (delegate_)
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
774 gfx::Transform scale_translate; 777 gfx::Transform scale_translate;
775 scale_translate.matrix().set3x3(device_scale_factor_, 0, 0, 778 scale_translate.matrix().set3x3(device_scale_factor_, 0, 0,
776 0, device_scale_factor_, 0, 779 0, device_scale_factor_, 0,
777 0, 0, 1); 780 0, 0, 1);
778 // Start with the inverse matrix of above. 781 // Start with the inverse matrix of above.
779 gfx::Transform transform; 782 gfx::Transform transform;
780 transform.matrix().set3x3(1.0f / device_scale_factor_, 0, 0, 783 transform.matrix().set3x3(1.0f / device_scale_factor_, 0, 0,
781 0, 1.0f / device_scale_factor_, 0, 784 0, 1.0f / device_scale_factor_, 0,
782 0, 0, 1); 785 0, 0, 1);
783 transform.ConcatTransform(transform_); 786 transform.ConcatTransform(transform_);
784 transform.ConcatTranslate(bounds_.x(), bounds_.y()); 787 gfx::Transform translate;
788 translate.Translate(bounds_.x(), bounds_.y());
789 transform.ConcatTransform(translate);
785 transform.ConcatTransform(scale_translate); 790 transform.ConcatTransform(scale_translate);
786 web_layer_->setTransform(transform.matrix()); 791 web_layer_->setTransform(transform.matrix());
787 } 792 }
788 793
789 void Layer::RecomputeDrawsContentAndUVRect() { 794 void Layer::RecomputeDrawsContentAndUVRect() {
790 DCHECK(web_layer_); 795 DCHECK(web_layer_);
791 bool should_draw = type_ != LAYER_NOT_DRAWN; 796 bool should_draw = type_ != LAYER_NOT_DRAWN;
792 if (!web_layer_is_accelerated_) { 797 if (!web_layer_is_accelerated_) {
793 if (type_ != LAYER_SOLID_COLOR) { 798 if (type_ != LAYER_SOLID_COLOR) {
794 web_layer_->setDrawsContent(should_draw); 799 web_layer_->setDrawsContent(should_draw);
(...skipping 14 matching lines...) Expand all
809 static_cast<float>(size.width())/texture_size.width(), 814 static_cast<float>(size.width())/texture_size.width(),
810 static_cast<float>(size.height())/texture_size.height()); 815 static_cast<float>(size.height())/texture_size.height());
811 texture_layer_->setUVRect(rect); 816 texture_layer_->setUVRect(rect);
812 817
813 gfx::Size size_in_pixel = ConvertSizeToPixel(this, size); 818 gfx::Size size_in_pixel = ConvertSizeToPixel(this, size);
814 web_layer_->setBounds(size_in_pixel); 819 web_layer_->setBounds(size_in_pixel);
815 } 820 }
816 } 821 }
817 822
818 } // namespace ui 823 } // namespace ui
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698