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

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: Patch for landing Created 8 years 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/layer_impl.h ('k') | cc/layer_impl_unittest.cc » ('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/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;
22
23 namespace cc { 21 namespace cc {
24 22
25 LayerImpl::LayerImpl(int id) 23 LayerImpl::LayerImpl(int id)
26 : m_parent(0) 24 : m_parent(0)
27 , m_maskLayerId(-1) 25 , m_maskLayerId(-1)
28 , m_replicaLayerId(-1) 26 , m_replicaLayerId(-1)
29 , m_layerId(id) 27 , m_layerId(id)
30 , m_layerTreeHostImpl(0) 28 , m_layerTreeHostImpl(0)
31 , m_anchorPoint(0.5, 0.5) 29 , m_anchorPoint(0.5, 0.5)
32 , m_anchorPointZ(0) 30 , m_anchorPointZ(0)
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
229 return unscrolled; 227 return unscrolled;
230 } 228 }
231 229
232 InputHandlerClient::ScrollStatus LayerImpl::tryScroll(const gfx::PointF& screenS pacePoint, InputHandlerClient::ScrollInputType type) const 230 InputHandlerClient::ScrollStatus LayerImpl::tryScroll(const gfx::PointF& screenS pacePoint, InputHandlerClient::ScrollInputType type) const
233 { 231 {
234 if (shouldScrollOnMainThread()) { 232 if (shouldScrollOnMainThread()) {
235 TRACE_EVENT0("cc", "LayerImpl::tryScroll: Failed shouldScrollOnMainThrea d"); 233 TRACE_EVENT0("cc", "LayerImpl::tryScroll: Failed shouldScrollOnMainThrea d");
236 return InputHandlerClient::ScrollOnMainThread; 234 return InputHandlerClient::ScrollOnMainThread;
237 } 235 }
238 236
239 if (!screenSpaceTransform().isInvertible()) { 237 if (!screenSpaceTransform().IsInvertible()) {
240 TRACE_EVENT0("cc", "LayerImpl::tryScroll: Ignored nonInvertibleTransform "); 238 TRACE_EVENT0("cc", "LayerImpl::tryScroll: Ignored nonInvertibleTransform ");
241 return InputHandlerClient::ScrollIgnored; 239 return InputHandlerClient::ScrollIgnored;
242 } 240 }
243 241
244 if (!nonFastScrollableRegion().IsEmpty()) { 242 if (!nonFastScrollableRegion().IsEmpty()) {
245 bool clipped = false; 243 bool clipped = false;
246 gfx::PointF hitTestPointInContentSpace = MathUtil::projectPoint(screenSp aceTransform().inverse(), screenSpacePoint, clipped); 244 gfx::PointF hitTestPointInContentSpace = MathUtil::projectPoint(MathUtil ::inverse(screenSpaceTransform()), screenSpacePoint, clipped);
247 gfx::PointF hitTestPointInLayerSpace = gfx::ScalePoint(hitTestPointInCon tentSpace, 1 / contentsScaleX(), 1 / contentsScaleY()); 245 gfx::PointF hitTestPointInLayerSpace = gfx::ScalePoint(hitTestPointInCon tentSpace, 1 / contentsScaleX(), 1 / contentsScaleY());
248 if (!clipped && nonFastScrollableRegion().Contains(gfx::ToRoundedPoint(h itTestPointInLayerSpace))) { 246 if (!clipped && nonFastScrollableRegion().Contains(gfx::ToRoundedPoint(h itTestPointInLayerSpace))) {
249 TRACE_EVENT0("cc", "LayerImpl::tryScroll: Failed nonFastScrollableRe gion"); 247 TRACE_EVENT0("cc", "LayerImpl::tryScroll: Failed nonFastScrollableRe gion");
250 return InputHandlerClient::ScrollOnMainThread; 248 return InputHandlerClient::ScrollOnMainThread;
251 } 249 }
252 } 250 }
253 251
254 if (type == InputHandlerClient::Wheel && haveWheelEventHandlers()) { 252 if (type == InputHandlerClient::Wheel && haveWheelEventHandlers()) {
255 TRACE_EVENT0("cc", "LayerImpl::tryScroll: Failed wheelEventHandlers"); 253 TRACE_EVENT0("cc", "LayerImpl::tryScroll: Failed wheelEventHandlers");
256 return InputHandlerClient::ScrollOnMainThread; 254 return InputHandlerClient::ScrollOnMainThread;
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
301 } 299 }
302 300
303 str->append(indentStr); 301 str->append(indentStr);
304 base::StringAppendF(str, "position: %f, %f\n", m_position.x(), m_position.y( )); 302 base::StringAppendF(str, "position: %f, %f\n", m_position.x(), m_position.y( ));
305 303
306 str->append(indentStr); 304 str->append(indentStr);
307 base::StringAppendF(str, "contentsOpaque: %d\n", m_contentsOpaque); 305 base::StringAppendF(str, "contentsOpaque: %d\n", m_contentsOpaque);
308 306
309 str->append(indentStr); 307 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", 308 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(), 309 m_drawTransform.matrix().getDouble(0, 0), m_drawTransform.matrix().getDo uble(0, 1), m_drawTransform.matrix().getDouble(0, 2), m_drawTransform.matrix().g etDouble(0, 3),
312 m_drawTransform.m21(), m_drawTransform.m22(), m_drawTransform.m23(), m_d rawTransform.m24(), 310 m_drawTransform.matrix().getDouble(1, 0), m_drawTransform.matrix().getDo uble(1, 1), m_drawTransform.matrix().getDouble(1, 2), m_drawTransform.matrix().g etDouble(1, 3),
313 m_drawTransform.m31(), m_drawTransform.m32(), m_drawTransform.m33(), m_d rawTransform.m34(), 311 m_drawTransform.matrix().getDouble(2, 0), m_drawTransform.matrix().getDo uble(2, 1), m_drawTransform.matrix().getDouble(2, 2), m_drawTransform.matrix().g etDouble(2, 3),
314 m_drawTransform.m41(), m_drawTransform.m42(), m_drawTransform.m43(), m_d rawTransform.m44()); 312 m_drawTransform.matrix().getDouble(3, 0), m_drawTransform.matrix().getDo uble(3, 1), m_drawTransform.matrix().getDouble(3, 2), m_drawTransform.matrix().g etDouble(3, 3));
315 313
316 str->append(indentStr); 314 str->append(indentStr);
317 base::StringAppendF(str, "drawsContent: %s\n", m_drawsContent ? "yes" : "no" ); 315 base::StringAppendF(str, "drawsContent: %s\n", m_drawsContent ? "yes" : "no" );
318 } 316 }
319 317
320 void sortLayers(std::vector<LayerImpl*>::iterator first, std::vector<LayerImpl*> ::iterator end, LayerSorter* layerSorter) 318 void sortLayers(std::vector<LayerImpl*>::iterator first, std::vector<LayerImpl*> ::iterator end, LayerSorter* layerSorter)
321 { 319 {
322 TRACE_EVENT0("cc", "LayerImpl::sortLayers"); 320 TRACE_EVENT0("cc", "LayerImpl::sortLayers");
323 layerSorter->sort(first, end); 321 layerSorter->sort(first, end);
324 } 322 }
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
426 float LayerImpl::opacity() const 424 float LayerImpl::opacity() const
427 { 425 {
428 return m_opacity; 426 return m_opacity;
429 } 427 }
430 428
431 void LayerImpl::setOpacityFromAnimation(float opacity) 429 void LayerImpl::setOpacityFromAnimation(float opacity)
432 { 430 {
433 setOpacity(opacity); 431 setOpacity(opacity);
434 } 432 }
435 433
436 const WebKit::WebTransformationMatrix& LayerImpl::transform() const 434 const gfx::Transform& LayerImpl::transform() const
437 { 435 {
438 return m_transform; 436 return m_transform;
439 } 437 }
440 438
441 void LayerImpl::setTransformFromAnimation(const WebTransformationMatrix& transfo rm) 439 void LayerImpl::setTransformFromAnimation(const gfx::Transform& transform)
442 { 440 {
443 setTransform(transform); 441 setTransform(transform);
444 } 442 }
445 443
446 void LayerImpl::setBounds(const gfx::Size& bounds) 444 void LayerImpl::setBounds(const gfx::Size& bounds)
447 { 445 {
448 if (m_bounds == bounds) 446 if (m_bounds == bounds)
449 return; 447 return;
450 448
451 m_bounds = bounds; 449 m_bounds = bounds;
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
588 586
589 void LayerImpl::setPreserves3D(bool preserves3D) 587 void LayerImpl::setPreserves3D(bool preserves3D)
590 { 588 {
591 if (m_preserves3D == preserves3D) 589 if (m_preserves3D == preserves3D)
592 return; 590 return;
593 591
594 m_preserves3D = preserves3D; 592 m_preserves3D = preserves3D;
595 noteLayerPropertyChangedForSubtree(); 593 noteLayerPropertyChangedForSubtree();
596 } 594 }
597 595
598 void LayerImpl::setSublayerTransform(const WebTransformationMatrix& sublayerTran sform) 596 void LayerImpl::setSublayerTransform(const gfx::Transform& sublayerTransform)
599 { 597 {
600 if (m_sublayerTransform == sublayerTransform) 598 if (m_sublayerTransform == sublayerTransform)
601 return; 599 return;
602 600
603 m_sublayerTransform = sublayerTransform; 601 m_sublayerTransform = sublayerTransform;
604 // sublayer transform does not affect the current layer; it affects only its children. 602 // sublayer transform does not affect the current layer; it affects only its children.
605 noteLayerPropertyChangedForDescendants(); 603 noteLayerPropertyChangedForDescendants();
606 } 604 }
607 605
608 void LayerImpl::setTransform(const WebTransformationMatrix& transform) 606 void LayerImpl::setTransform(const gfx::Transform& transform)
609 { 607 {
610 if (m_transform == transform) 608 if (m_transform == transform)
611 return; 609 return;
612 610
613 m_transform = transform; 611 m_transform = transform;
614 m_layerSurfacePropertyChanged = true; 612 m_layerSurfacePropertyChanged = true;
615 } 613 }
616 614
617 bool LayerImpl::transformIsAnimating() const 615 bool LayerImpl::transformIsAnimating() const
618 { 616 {
(...skipping 30 matching lines...) Expand all
649 647
650 void LayerImpl::setScrollDelta(const gfx::Vector2dF& scrollDelta) 648 void LayerImpl::setScrollDelta(const gfx::Vector2dF& scrollDelta)
651 { 649 {
652 if (m_scrollDelta == scrollDelta) 650 if (m_scrollDelta == scrollDelta)
653 return; 651 return;
654 652
655 m_scrollDelta = scrollDelta; 653 m_scrollDelta = scrollDelta;
656 noteLayerPropertyChangedForSubtree(); 654 noteLayerPropertyChangedForSubtree();
657 } 655 }
658 656
659 void LayerImpl::setImplTransform(const WebKit::WebTransformationMatrix& transfor m) 657 void LayerImpl::setImplTransform(const gfx::Transform& transform)
660 { 658 {
661 if (m_implTransform == transform) 659 if (m_implTransform == transform)
662 return; 660 return;
663 661
664 m_implTransform = transform; 662 m_implTransform = transform;
665 noteLayerPropertyChangedForSubtree(); 663 noteLayerPropertyChangedForSubtree();
666 } 664 }
667 665
668 void LayerImpl::setDoubleSided(bool doubleSided) 666 void LayerImpl::setDoubleSided(bool doubleSided)
669 { 667 {
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
724 722
725 void LayerImpl::setVerticalScrollbarLayer(ScrollbarLayerImpl* scrollbarLayer) 723 void LayerImpl::setVerticalScrollbarLayer(ScrollbarLayerImpl* scrollbarLayer)
726 { 724 {
727 if (!m_scrollbarAnimationController) 725 if (!m_scrollbarAnimationController)
728 m_scrollbarAnimationController = ScrollbarAnimationController::create(th is); 726 m_scrollbarAnimationController = ScrollbarAnimationController::create(th is);
729 m_scrollbarAnimationController->setVerticalScrollbarLayer(scrollbarLayer); 727 m_scrollbarAnimationController->setVerticalScrollbarLayer(scrollbarLayer);
730 m_scrollbarAnimationController->updateScrollOffset(this); 728 m_scrollbarAnimationController->updateScrollOffset(this);
731 } 729 }
732 730
733 } // namespace cc 731 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layer_impl.h ('k') | cc/layer_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698