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

Unified Diff: cc/gl_renderer.cc

Issue 11774005: Migrate more functions from MathUtil to gfx::Transform (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: try to fix double/float conversion errors Created 7 years, 11 months 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/draw_quad_unittest.cc ('k') | cc/layer_sorter_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/gl_renderer.cc
diff --git a/cc/gl_renderer.cc b/cc/gl_renderer.cc
index 83827a296b184abc2f360c137e00de636e88e5ae..e9fe3fc7e0a8361dc77b60c8fa1277cf8eff99fb 100644
--- a/cc/gl_renderer.cc
+++ b/cc/gl_renderer.cc
@@ -519,7 +519,8 @@ void GLRenderer::drawRenderPassQuad(DrawingFrame& frame, const RenderPassDrawQua
gfx::Transform quadRectMatrix;
quadRectTransform(&quadRectMatrix, quad->quadTransform(), quad->rect);
- gfx::Transform contentsDeviceTransform = MathUtil::to2dTransform(frame.windowMatrix * frame.projectionMatrix * quadRectMatrix);
+ gfx::Transform contentsDeviceTransform = frame.windowMatrix * frame.projectionMatrix * quadRectMatrix;
+ contentsDeviceTransform.FlattenTo2d();
// Can only draw surface if device matrix is invertible.
gfx::Transform contentsDeviceTransformInverse(gfx::Transform::kSkipInitialization);
@@ -665,7 +666,7 @@ void GLRenderer::drawRenderPassQuad(DrawingFrame& frame, const RenderPassDrawQua
GLC(context(), context()->uniform3fv(shaderEdgeLocation, 8, edge));
}
- // Map device space quad to surface space. contentsDeviceTransform has no 3d component since it was generated with to2dTransform() so we don't need to project.
+ // Map device space quad to surface space. contentsDeviceTransform has no 3d component since it was flattened, so we don't need to project.
gfx::QuadF surfaceQuad = MathUtil::mapQuad(contentsDeviceTransformInverse, deviceLayerEdges.ToQuadF(), clipped);
DCHECK(!clipped);
@@ -770,7 +771,8 @@ void GLRenderer::drawTileQuad(const DrawingFrame& frame, const TileDrawQuad* qua
gfx::QuadF localQuad;
- gfx::Transform deviceTransform = MathUtil::to2dTransform(frame.windowMatrix * frame.projectionMatrix * quad->quadTransform());
+ gfx::Transform deviceTransform = frame.windowMatrix * frame.projectionMatrix * quad->quadTransform();
+ deviceTransform.FlattenTo2d();
if (!deviceTransform.IsInvertible())
return;
@@ -861,7 +863,7 @@ void GLRenderer::drawTileQuad(const DrawingFrame& frame, const TileDrawQuad* qua
// Create device space quad.
LayerQuad deviceQuad(leftEdge, topEdge, rightEdge, bottomEdge);
- // Map device space quad to local space. deviceTransform has no 3d component since it was generated with to2dTransform() so we don't need to project.
+ // Map device space quad to local space. deviceTransform has no 3d component since it was flattened, so we don't need to project.
// We should have already checked that the transform was uninvertible above.
gfx::Transform inverseDeviceTransform(gfx::Transform::kSkipInitialization);
bool didInvert = deviceTransform.GetInverse(&inverseDeviceTransform);
« no previous file with comments | « cc/draw_quad_unittest.cc ('k') | cc/layer_sorter_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698