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

Side by Side Diff: cc/layer_sorter_unittest.cc

Issue 11418197: Move temporary MathUtil wrappers to permanent home in gfx::Transform (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: 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
« no previous file with comments | « no previous file | cc/layer_tree_host_common.cc » ('j') | ui/gfx/transform.cc » ('J')
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_sorter.h" 5 #include "cc/layer_sorter.h"
6 6
7 #include "cc/layer_impl.h" 7 #include "cc/layer_impl.h"
8 #include "cc/math_util.h" 8 #include "cc/math_util.h"
9 #include "cc/single_thread_proxy.h" 9 #include "cc/single_thread_proxy.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 LayerSorter::ABCompareResult overlapResult; 57 LayerSorter::ABCompareResult overlapResult;
58 const float zThreshold = 0.1f; 58 const float zThreshold = 0.1f;
59 float weight = 0; 59 float weight = 0;
60 60
61 gfx::Transform perspectiveMatrix; 61 gfx::Transform perspectiveMatrix;
62 perspectiveMatrix.ApplyPerspectiveDepth(1000); 62 perspectiveMatrix.ApplyPerspectiveDepth(1000);
63 63
64 // Two layers forming a right angle with a perspective viewing transform. 64 // Two layers forming a right angle with a perspective viewing transform.
65 gfx::Transform leftFaceMatrix; 65 gfx::Transform leftFaceMatrix;
66 leftFaceMatrix.Translate3d(-1, 0, -5); 66 leftFaceMatrix.Translate3d(-1, 0, -5);
67 MathUtil::rotateAxisAngle(&leftFaceMatrix, 0, 1, 0, -90); 67 leftFaceMatrix.RotateAbout(gfx::Vector3dF::YAxis(), -90);
68 leftFaceMatrix.Translate(-1, -1); 68 leftFaceMatrix.Translate(-1, -1);
69 LayerShape leftFace(2, 2, perspectiveMatrix * leftFaceMatrix); 69 LayerShape leftFace(2, 2, perspectiveMatrix * leftFaceMatrix);
70 gfx::Transform frontFaceMatrix; 70 gfx::Transform frontFaceMatrix;
71 frontFaceMatrix.Translate3d(0, 0, -4); 71 frontFaceMatrix.Translate3d(0, 0, -4);
72 frontFaceMatrix.Translate(-1, -1); 72 frontFaceMatrix.Translate(-1, -1);
73 LayerShape frontFace(2, 2, perspectiveMatrix * frontFaceMatrix); 73 LayerShape frontFace(2, 2, perspectiveMatrix * frontFaceMatrix);
74 74
75 overlapResult = LayerSorter::checkOverlap(&frontFace, &leftFace, zThreshold, weight); 75 overlapResult = LayerSorter::checkOverlap(&frontFace, &leftFace, zThreshold, weight);
76 EXPECT_EQ(LayerSorter::BBeforeA, overlapResult); 76 EXPECT_EQ(LayerSorter::BBeforeA, overlapResult);
77 } 77 }
78 78
79 TEST(LayerSorterTest, IntersectingLayerOverlap) 79 TEST(LayerSorterTest, IntersectingLayerOverlap)
80 { 80 {
81 LayerSorter::ABCompareResult overlapResult; 81 LayerSorter::ABCompareResult overlapResult;
82 const float zThreshold = 0.1f; 82 const float zThreshold = 0.1f;
83 float weight = 0; 83 float weight = 0;
84 84
85 gfx::Transform perspectiveMatrix; 85 gfx::Transform perspectiveMatrix;
86 perspectiveMatrix.ApplyPerspectiveDepth(1000); 86 perspectiveMatrix.ApplyPerspectiveDepth(1000);
87 87
88 // Intersecting layers. An explicit order will be returned based on relative z 88 // Intersecting layers. An explicit order will be returned based on relative z
89 // values at the overlapping features but the weight returned should be zero . 89 // values at the overlapping features but the weight returned should be zero .
90 gfx::Transform frontFaceMatrix; 90 gfx::Transform frontFaceMatrix;
91 frontFaceMatrix.Translate3d(0, 0, -4); 91 frontFaceMatrix.Translate3d(0, 0, -4);
92 frontFaceMatrix.Translate(-1, -1); 92 frontFaceMatrix.Translate(-1, -1);
93 LayerShape frontFace(2, 2, perspectiveMatrix * frontFaceMatrix); 93 LayerShape frontFace(2, 2, perspectiveMatrix * frontFaceMatrix);
94 94
95 gfx::Transform throughMatrix; 95 gfx::Transform throughMatrix;
96 throughMatrix.Translate3d(0, 0, -4); 96 throughMatrix.Translate3d(0, 0, -4);
97 MathUtil::rotateAxisAngle(&throughMatrix, 0, 1, 0, 45); 97 throughMatrix.RotateAbout(gfx::Vector3dF(0, 1, 0), 45);
danakj 2012/11/28 00:42:12 yaxis?
98 throughMatrix.Translate(-1, -1); 98 throughMatrix.Translate(-1, -1);
99 LayerShape rotatedFace(2, 2, perspectiveMatrix * throughMatrix); 99 LayerShape rotatedFace(2, 2, perspectiveMatrix * throughMatrix);
100 overlapResult = LayerSorter::checkOverlap(&frontFace, &rotatedFace, zThresho ld, weight); 100 overlapResult = LayerSorter::checkOverlap(&frontFace, &rotatedFace, zThresho ld, weight);
101 EXPECT_NE(LayerSorter::None, overlapResult); 101 EXPECT_NE(LayerSorter::None, overlapResult);
102 EXPECT_EQ(0, weight); 102 EXPECT_EQ(0, weight);
103 } 103 }
104 104
105 TEST(LayerSorterTest, LayersAtAngleOverlap) 105 TEST(LayerSorterTest, LayersAtAngleOverlap)
106 { 106 {
107 LayerSorter::ABCompareResult overlapResult; 107 LayerSorter::ABCompareResult overlapResult;
(...skipping 16 matching lines...) Expand all
124 transformA.Translate3d(-6, 0, 1); 124 transformA.Translate3d(-6, 0, 1);
125 transformA.Translate(-4, -10); 125 transformA.Translate(-4, -10);
126 LayerShape layerA(8, 20, transformA); 126 LayerShape layerA(8, 20, transformA);
127 127
128 gfx::Transform transformB; 128 gfx::Transform transformB;
129 transformB.Translate3d(6, 0, -1); 129 transformB.Translate3d(6, 0, -1);
130 transformB.Translate(-4, -10); 130 transformB.Translate(-4, -10);
131 LayerShape layerB(8, 20, transformB); 131 LayerShape layerB(8, 20, transformB);
132 132
133 gfx::Transform transformC; 133 gfx::Transform transformC;
134 MathUtil::rotateAxisAngle(&transformC, 0, 1, 0, 40); 134 transformC.RotateAbout(gfx::Vector3dF::YAxis(), 40);
135 transformC.Translate(-4, -10); 135 transformC.Translate(-4, -10);
136 LayerShape layerC(8, 20, transformC); 136 LayerShape layerC(8, 20, transformC);
137 137
138 overlapResult = LayerSorter::checkOverlap(&layerA, &layerC, zThreshold, weig ht); 138 overlapResult = LayerSorter::checkOverlap(&layerA, &layerC, zThreshold, weig ht);
139 EXPECT_EQ(LayerSorter::ABeforeB, overlapResult); 139 EXPECT_EQ(LayerSorter::ABeforeB, overlapResult);
140 overlapResult = LayerSorter::checkOverlap(&layerC, &layerB, zThreshold, weig ht); 140 overlapResult = LayerSorter::checkOverlap(&layerC, &layerB, zThreshold, weig ht);
141 EXPECT_EQ(LayerSorter::ABeforeB, overlapResult); 141 EXPECT_EQ(LayerSorter::ABeforeB, overlapResult);
142 overlapResult = LayerSorter::checkOverlap(&layerA, &layerB, zThreshold, weig ht); 142 overlapResult = LayerSorter::checkOverlap(&layerA, &layerB, zThreshold, weig ht);
143 EXPECT_EQ(LayerSorter::None, overlapResult); 143 EXPECT_EQ(LayerSorter::None, overlapResult);
144 } 144 }
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
253 ASSERT_EQ(static_cast<size_t>(5), layerList.size()); 253 ASSERT_EQ(static_cast<size_t>(5), layerList.size());
254 EXPECT_EQ(3, layerList[0]->id()); 254 EXPECT_EQ(3, layerList[0]->id());
255 EXPECT_EQ(4, layerList[1]->id()); 255 EXPECT_EQ(4, layerList[1]->id());
256 EXPECT_EQ(1, layerList[2]->id()); 256 EXPECT_EQ(1, layerList[2]->id());
257 EXPECT_EQ(2, layerList[3]->id()); 257 EXPECT_EQ(2, layerList[3]->id());
258 EXPECT_EQ(5, layerList[4]->id()); 258 EXPECT_EQ(5, layerList[4]->id());
259 } 259 }
260 260
261 } // namespace 261 } // namespace
262 } // namespace cc 262 } // namespace cc
OLDNEW
« no previous file with comments | « no previous file | cc/layer_tree_host_common.cc » ('j') | ui/gfx/transform.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698