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

Side by Side Diff: cc/layer_sorter.cc

Issue 11369018: cc: Switch from WebCore::FloatPoint3D to gfx::Point3F and gfx::Vector3dF in the compositor (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Missing base files 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 "config.h" 5 #include "config.h"
6 6
7 #include "cc/layer_sorter.h" 7 #include "cc/layer_sorter.h"
8 8
9 #include <deque> 9 #include <deque>
10 #include <limits> 10 #include <limits>
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 projectedQuad.setP1(clippedQuad[0]); 172 projectedQuad.setP1(clippedQuad[0]);
173 projectedQuad.setP2(clippedQuad[1]); 173 projectedQuad.setP2(clippedQuad[1]);
174 projectedQuad.setP3(clippedQuad[2]); 174 projectedQuad.setP3(clippedQuad[2]);
175 if (numVerticesInClippedQuad >= 4) 175 if (numVerticesInClippedQuad >= 4)
176 projectedQuad.setP4(clippedQuad[3]); 176 projectedQuad.setP4(clippedQuad[3]);
177 else 177 else
178 projectedQuad.setP4(clippedQuad[2]); // this will be a degenerate quad t hat is actually a triangle. 178 projectedQuad.setP4(clippedQuad[2]); // this will be a degenerate quad t hat is actually a triangle.
179 179
180 // Compute the normal of the layer's plane. 180 // Compute the normal of the layer's plane.
181 bool clipped = false; 181 bool clipped = false;
182 FloatPoint3D c1 = MathUtil::mapPoint(drawTransform, FloatPoint3D(0, 0, 0), c lipped); 182 gfx::Point3F c1 = MathUtil::mapPoint(drawTransform, gfx::Point3F(0, 0, 0), c lipped);
183 FloatPoint3D c2 = MathUtil::mapPoint(drawTransform, FloatPoint3D(0, 1, 0), c lipped); 183 gfx::Point3F c2 = MathUtil::mapPoint(drawTransform, gfx::Point3F(0, 1, 0), c lipped);
184 FloatPoint3D c3 = MathUtil::mapPoint(drawTransform, FloatPoint3D(1, 0, 0), c lipped); 184 gfx::Point3F c3 = MathUtil::mapPoint(drawTransform, gfx::Point3F(1, 0, 0), c lipped);
185 // FIXME: Deal with clipping. 185 // FIXME: Deal with clipping.
186 FloatPoint3D c12 = c2 - c1; 186 gfx::Vector3dF c12 = c2 - c1;
187 FloatPoint3D c13 = c3 - c1; 187 gfx::Vector3dF c13 = c3 - c1;
188 layerNormal = c13.cross(c12); 188 layerNormal = gfx::CrossProduct(c13, c12);
189 189
190 transformOrigin = c1; 190 transformOrigin = c1;
191 } 191 }
192 192
193 LayerShape::~LayerShape() 193 LayerShape::~LayerShape()
194 { 194 {
195 } 195 }
196 196
197 // Returns the Z coordinate of a point on the layer that projects 197 // Returns the Z coordinate of a point on the layer that projects
198 // to point p which lies on the z = 0 plane. It does it by computing the 198 // to point p which lies on the z = 0 plane. It does it by computing the
199 // intersection of a line starting from p along the Z axis and the plane 199 // intersection of a line starting from p along the Z axis and the plane
200 // of the layer. 200 // of the layer.
201 float LayerShape::layerZFromProjectedPoint(const gfx::PointF& p) const 201 float LayerShape::layerZFromProjectedPoint(const gfx::PointF& p) const
202 { 202 {
203 const FloatPoint3D zAxis(0, 0, 1); 203 gfx::Vector3dF zAxis(0, 0, 1);
204 FloatPoint3D w = FloatPoint3D(cc::FloatPoint(p)) - transformOrigin; 204 gfx::Vector3dF w = gfx::Point3F(p) - transformOrigin;
205 205
206 float d = layerNormal.dot(zAxis); 206 float d = gfx::DotProduct(layerNormal, zAxis);
207 float n = -layerNormal.dot(w); 207 float n = -gfx::DotProduct(layerNormal, w);
208 208
209 // Check if layer is parallel to the z = 0 axis which will make it 209 // Check if layer is parallel to the z = 0 axis which will make it
210 // invisible and hence returning zero is fine. 210 // invisible and hence returning zero is fine.
211 if (!d) 211 if (!d)
212 return 0; 212 return 0;
213 213
214 // The intersection point would be given by: 214 // The intersection point would be given by:
215 // p + (n / d) * u but since we are only interested in the 215 // p + (n / d) * u but since we are only interested in the
216 // z coordinate and p's z coord is zero, all we need is the value of n/d. 216 // z coordinate and p's z coord is zero, all we need is the value of n/d.
217 return n / d; 217 return n / d;
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
407 *it = sortedList[count++]->layer; 407 *it = sortedList[count++]->layer;
408 408
409 DVLOG(2) << "Sorting end ----"; 409 DVLOG(2) << "Sorting end ----";
410 410
411 m_nodes.clear(); 411 m_nodes.clear();
412 m_edges.clear(); 412 m_edges.clear();
413 m_activeEdges.clear(); 413 m_activeEdges.clear();
414 } 414 }
415 415
416 } 416 }
OLDNEW
« cc/cc.gyp ('K') | « cc/layer_sorter.h ('k') | cc/math_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698