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

Side by Side Diff: cc/layer_impl.cc

Issue 11308153: Migrate most of cc/ from WebKit::WebTransformationMatrix to gfx::Transform (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased to tip of tree and addressed feedback 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 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/layer_impl.h" 5 #include "cc/layer_impl.h"
6 6
7 #include "base/debug/trace_event.h" 7 #include "base/debug/trace_event.h"
8 #include "base/stringprintf.h" 8 #include "base/stringprintf.h"
9 #include "cc/debug_border_draw_quad.h" 9 #include "cc/debug_border_draw_quad.h"
10 #include "cc/debug_colors.h" 10 #include "cc/debug_colors.h"
11 #include "cc/layer_sorter.h" 11 #include "cc/layer_sorter.h"
12 #include "cc/layer_tree_host_impl.h" 12 #include "cc/layer_tree_host_impl.h"
13 #include "cc/math_util.h" 13 #include "cc/math_util.h"
14 #include "cc/proxy.h" 14 #include "cc/proxy.h"
15 #include "cc/quad_sink.h" 15 #include "cc/quad_sink.h"
16 #include "cc/scrollbar_animation_controller.h" 16 #include "cc/scrollbar_animation_controller.h"
17 #include "third_party/skia/include/core/SkImageFilter.h" 17 #include "third_party/skia/include/core/SkImageFilter.h"
18 #include "ui/gfx/point_conversions.h" 18 #include "ui/gfx/point_conversions.h"
19 #include "ui/gfx/rect_conversions.h" 19 #include "ui/gfx/rect_conversions.h"
20 20
21 using WebKit::WebTransformationMatrix; 21 using gfx::Transform;
22 22
23 namespace cc { 23 namespace cc {
24 24
25 LayerImpl::LayerImpl(int id) 25 LayerImpl::LayerImpl(int id)
26 : m_parent(0) 26 : m_parent(0)
27 , m_maskLayerId(-1) 27 , m_maskLayerId(-1)
28 , m_replicaLayerId(-1) 28 , m_replicaLayerId(-1)
29 , m_layerId(id) 29 , m_layerId(id)
30 , m_layerTreeHostImpl(0) 30 , m_layerTreeHostImpl(0)
31 , m_anchorPoint(0.5, 0.5) 31 , m_anchorPoint(0.5, 0.5)
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
229 return unscrolled; 229 return unscrolled;
230 } 230 }
231 231
232 InputHandlerClient::ScrollStatus LayerImpl::tryScroll(const gfx::PointF& screenS pacePoint, InputHandlerClient::ScrollInputType type) const 232 InputHandlerClient::ScrollStatus LayerImpl::tryScroll(const gfx::PointF& screenS pacePoint, InputHandlerClient::ScrollInputType type) const
233 { 233 {
234 if (shouldScrollOnMainThread()) { 234 if (shouldScrollOnMainThread()) {
235 TRACE_EVENT0("cc", "LayerImpl::tryScroll: Failed shouldScrollOnMainThrea d"); 235 TRACE_EVENT0("cc", "LayerImpl::tryScroll: Failed shouldScrollOnMainThrea d");
236 return InputHandlerClient::ScrollOnMainThread; 236 return InputHandlerClient::ScrollOnMainThread;
237 } 237 }
238 238
239 if (!screenSpaceTransform().isInvertible()) { 239 if (!screenSpaceTransform().IsInvertible()) {
240 TRACE_EVENT0("cc", "LayerImpl::tryScroll: Ignored nonInvertibleTransform "); 240 TRACE_EVENT0("cc", "LayerImpl::tryScroll: Ignored nonInvertibleTransform ");
241 return InputHandlerClient::ScrollIgnored; 241 return InputHandlerClient::ScrollIgnored;
242 } 242 }
243 243
244 if (!nonFastScrollableRegion().IsEmpty()) { 244 if (!nonFastScrollableRegion().IsEmpty()) {
245 bool clipped = false; 245 bool clipped = false;
246 gfx::PointF hitTestPointInContentSpace = MathUtil::projectPoint(screenSp aceTransform().inverse(), screenSpacePoint, clipped); 246 gfx::PointF hitTestPointInContentSpace = MathUtil::projectPoint(MathUtil ::inverse(screenSpaceTransform()), screenSpacePoint, clipped);
247 gfx::PointF hitTestPointInLayerSpace = gfx::ScalePoint(hitTestPointInCon tentSpace, 1 / contentsScaleX(), 1 / contentsScaleY()); 247 gfx::PointF hitTestPointInLayerSpace = gfx::ScalePoint(hitTestPointInCon tentSpace, 1 / contentsScaleX(), 1 / contentsScaleY());
248 if (!clipped && nonFastScrollableRegion().Contains(gfx::ToRoundedPoint(h itTestPointInLayerSpace))) { 248 if (!clipped && nonFastScrollableRegion().Contains(gfx::ToRoundedPoint(h itTestPointInLayerSpace))) {
249 TRACE_EVENT0("cc", "LayerImpl::tryScroll: Failed nonFastScrollableRe gion"); 249 TRACE_EVENT0("cc", "LayerImpl::tryScroll: Failed nonFastScrollableRe gion");
250 return InputHandlerClient::ScrollOnMainThread; 250 return InputHandlerClient::ScrollOnMainThread;
251 } 251 }
252 } 252 }
253 253
254 if (type == InputHandlerClient::Wheel && haveWheelEventHandlers()) { 254 if (type == InputHandlerClient::Wheel && haveWheelEventHandlers()) {
255 TRACE_EVENT0("cc", "LayerImpl::tryScroll: Failed wheelEventHandlers"); 255 TRACE_EVENT0("cc", "LayerImpl::tryScroll: Failed wheelEventHandlers");
256 return InputHandlerClient::ScrollOnMainThread; 256 return InputHandlerClient::ScrollOnMainThread;
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
301 } 301 }
302 302
303 str->append(indentStr); 303 str->append(indentStr);
304 base::StringAppendF(str, "position: %f, %f\n", m_position.x(), m_position.y( )); 304 base::StringAppendF(str, "position: %f, %f\n", m_position.x(), m_position.y( ));
305 305
306 str->append(indentStr); 306 str->append(indentStr);
307 base::StringAppendF(str, "contentsOpaque: %d\n", m_contentsOpaque); 307 base::StringAppendF(str, "contentsOpaque: %d\n", m_contentsOpaque);
308 308
309 str->append(indentStr); 309 str->append(indentStr);
310 base::StringAppendF(str, "drawTransform: %f, %f, %f, %f // %f, %f, %f, %f // %f, %f, %f, %f // %f, %f, %f, %f\n", 310 base::StringAppendF(str, "drawTransform: %f, %f, %f, %f // %f, %f, %f, %f // %f, %f, %f, %f // %f, %f, %f, %f\n",
311 m_drawTransform.m11(), m_drawTransform.m12(), m_drawTransform.m13(), m_d rawTransform.m14(), 311 m_drawTransform.matrix().getDouble(0, 0), m_drawTransform.matrix().getDo uble(1, 0), m_drawTransform.matrix().getDouble(2, 0), m_drawTransform.matrix().g etDouble(3, 0),
danakj 2012/11/24 02:34:54 I think these should be (0,0) (0,1) etc.. invert t
shawnsingh 2012/11/24 02:56:14 Just to clarify, This patch doesn't change the way
danakj 2012/11/24 03:20:09 Ya, It used to output in or order, and we should d
danakj 2012/11/24 03:24:11 s/or order/row order/.
312 m_drawTransform.m21(), m_drawTransform.m22(), m_drawTransform.m23(), m_d rawTransform.m24(), 312 m_drawTransform.matrix().getDouble(0, 1), m_drawTransform.matrix().getDo uble(1, 1), m_drawTransform.matrix().getDouble(2, 1), m_drawTransform.matrix().g etDouble(3, 1),
313 m_drawTransform.m31(), m_drawTransform.m32(), m_drawTransform.m33(), m_d rawTransform.m34(), 313 m_drawTransform.matrix().getDouble(0, 2), m_drawTransform.matrix().getDo uble(1, 2), m_drawTransform.matrix().getDouble(2, 2), m_drawTransform.matrix().g etDouble(3, 2),
314 m_drawTransform.m41(), m_drawTransform.m42(), m_drawTransform.m43(), m_d rawTransform.m44()); 314 m_drawTransform.matrix().getDouble(0, 3), m_drawTransform.matrix().getDo uble(1, 3), m_drawTransform.matrix().getDouble(2, 3), m_drawTransform.matrix().g etDouble(3, 3));
315 315
316 str->append(indentStr); 316 str->append(indentStr);
317 base::StringAppendF(str, "drawsContent: %s\n", m_drawsContent ? "yes" : "no" ); 317 base::StringAppendF(str, "drawsContent: %s\n", m_drawsContent ? "yes" : "no" );
318 } 318 }
319 319
320 void sortLayers(std::vector<LayerImpl*>::iterator first, std::vector<LayerImpl*> ::iterator end, LayerSorter* layerSorter) 320 void sortLayers(std::vector<LayerImpl*>::iterator first, std::vector<LayerImpl*> ::iterator end, LayerSorter* layerSorter)
321 { 321 {
322 TRACE_EVENT0("cc", "LayerImpl::sortLayers"); 322 TRACE_EVENT0("cc", "LayerImpl::sortLayers");
323 layerSorter->sort(first, end); 323 layerSorter->sort(first, end);
324 } 324 }
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
426 float LayerImpl::opacity() const 426 float LayerImpl::opacity() const
427 { 427 {
428 return m_opacity; 428 return m_opacity;
429 } 429 }
430 430
431 void LayerImpl::setOpacityFromAnimation(float opacity) 431 void LayerImpl::setOpacityFromAnimation(float opacity)
432 { 432 {
433 setOpacity(opacity); 433 setOpacity(opacity);
434 } 434 }
435 435
436 const WebKit::WebTransformationMatrix& LayerImpl::transform() const 436 const gfx::Transform& LayerImpl::transform() const
437 { 437 {
438 return m_transform; 438 return m_transform;
439 } 439 }
440 440
441 void LayerImpl::setTransformFromAnimation(const WebTransformationMatrix& transfo rm) 441 void LayerImpl::setTransformFromAnimation(const Transform& transform)
442 { 442 {
443 setTransform(transform); 443 setTransform(transform);
444 } 444 }
445 445
446 void LayerImpl::setBounds(const gfx::Size& bounds) 446 void LayerImpl::setBounds(const gfx::Size& bounds)
447 { 447 {
448 if (m_bounds == bounds) 448 if (m_bounds == bounds)
449 return; 449 return;
450 450
451 m_bounds = bounds; 451 m_bounds = bounds;
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
588 588
589 void LayerImpl::setPreserves3D(bool preserves3D) 589 void LayerImpl::setPreserves3D(bool preserves3D)
590 { 590 {
591 if (m_preserves3D == preserves3D) 591 if (m_preserves3D == preserves3D)
592 return; 592 return;
593 593
594 m_preserves3D = preserves3D; 594 m_preserves3D = preserves3D;
595 noteLayerPropertyChangedForSubtree(); 595 noteLayerPropertyChangedForSubtree();
596 } 596 }
597 597
598 void LayerImpl::setSublayerTransform(const WebTransformationMatrix& sublayerTran sform) 598 void LayerImpl::setSublayerTransform(const Transform& sublayerTransform)
599 { 599 {
600 if (m_sublayerTransform == sublayerTransform) 600 if (m_sublayerTransform == sublayerTransform)
601 return; 601 return;
602 602
603 m_sublayerTransform = sublayerTransform; 603 m_sublayerTransform = sublayerTransform;
604 // sublayer transform does not affect the current layer; it affects only its children. 604 // sublayer transform does not affect the current layer; it affects only its children.
605 noteLayerPropertyChangedForDescendants(); 605 noteLayerPropertyChangedForDescendants();
606 } 606 }
607 607
608 void LayerImpl::setTransform(const WebTransformationMatrix& transform) 608 void LayerImpl::setTransform(const Transform& transform)
609 { 609 {
610 if (m_transform == transform) 610 if (m_transform == transform)
611 return; 611 return;
612 612
613 m_transform = transform; 613 m_transform = transform;
614 m_layerSurfacePropertyChanged = true; 614 m_layerSurfacePropertyChanged = true;
615 } 615 }
616 616
617 bool LayerImpl::transformIsAnimating() const 617 bool LayerImpl::transformIsAnimating() const
618 { 618 {
(...skipping 30 matching lines...) Expand all
649 649
650 void LayerImpl::setScrollDelta(const gfx::Vector2dF& scrollDelta) 650 void LayerImpl::setScrollDelta(const gfx::Vector2dF& scrollDelta)
651 { 651 {
652 if (m_scrollDelta == scrollDelta) 652 if (m_scrollDelta == scrollDelta)
653 return; 653 return;
654 654
655 m_scrollDelta = scrollDelta; 655 m_scrollDelta = scrollDelta;
656 noteLayerPropertyChangedForSubtree(); 656 noteLayerPropertyChangedForSubtree();
657 } 657 }
658 658
659 void LayerImpl::setImplTransform(const WebKit::WebTransformationMatrix& transfor m) 659 void LayerImpl::setImplTransform(const gfx::Transform& transform)
660 { 660 {
661 if (m_implTransform == transform) 661 if (m_implTransform == transform)
662 return; 662 return;
663 663
664 m_implTransform = transform; 664 m_implTransform = transform;
665 noteLayerPropertyChangedForSubtree(); 665 noteLayerPropertyChangedForSubtree();
666 } 666 }
667 667
668 void LayerImpl::setDoubleSided(bool doubleSided) 668 void LayerImpl::setDoubleSided(bool doubleSided)
669 { 669 {
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
724 724
725 void LayerImpl::setVerticalScrollbarLayer(ScrollbarLayerImpl* scrollbarLayer) 725 void LayerImpl::setVerticalScrollbarLayer(ScrollbarLayerImpl* scrollbarLayer)
726 { 726 {
727 if (!m_scrollbarAnimationController) 727 if (!m_scrollbarAnimationController)
728 m_scrollbarAnimationController = ScrollbarAnimationController::create(th is); 728 m_scrollbarAnimationController = ScrollbarAnimationController::create(th is);
729 m_scrollbarAnimationController->setVerticalScrollbarLayer(scrollbarLayer); 729 m_scrollbarAnimationController->setVerticalScrollbarLayer(scrollbarLayer);
730 m_scrollbarAnimationController->updateScrollOffset(this); 730 m_scrollbarAnimationController->updateScrollOffset(this);
731 } 731 }
732 732
733 } // namespace cc 733 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698