Index: cc/gl_renderer.cc |
diff --git a/cc/gl_renderer.cc b/cc/gl_renderer.cc |
index e8454ccbf19edba2721f2f2b13abc6cf23992a5d..94f8d83124f945b5118af3f5b1d07a7bbcdc5fba 100644 |
--- a/cc/gl_renderer.cc |
+++ b/cc/gl_renderer.cc |
@@ -43,7 +43,6 @@ using namespace std; |
using WebKit::WebGraphicsContext3D; |
using WebKit::WebGraphicsMemoryAllocation; |
using WebKit::WebSharedGraphicsContext3D; |
-using WebKit::WebTransformationMatrix; |
namespace cc { |
@@ -329,9 +328,9 @@ void GLRenderer::drawDebugBorderQuad(const DrawingFrame& frame, const DebugBorde |
// Use the full quadRect for debug quads to not move the edges based on partial swaps. |
const gfx::Rect& layerRect = quad->rect; |
- WebTransformationMatrix renderMatrix = quad->quadTransform(); |
- renderMatrix.translate(0.5 * layerRect.width() + layerRect.x(), 0.5 * layerRect.height() + layerRect.y()); |
- renderMatrix.scaleNonUniform(layerRect.width(), layerRect.height()); |
+ gfx::Transform renderMatrix = quad->quadTransform(); |
+ renderMatrix.Translate(0.5 * layerRect.width() + layerRect.x(), 0.5 * layerRect.height() + layerRect.y()); |
+ renderMatrix.Scale(layerRect.width(), layerRect.height()); |
GLRenderer::toGLMatrix(&glMatrix[0], frame.projectionMatrix * renderMatrix); |
GLC(context(), context()->uniformMatrix4fv(program->vertexShader().matrixLocation(), 1, false, &glMatrix[0])); |
@@ -435,8 +434,8 @@ static SkBitmap applyImageFilter(GLRenderer* renderer, SkImageFilter* filter, Sc |
scoped_ptr<ScopedResource> GLRenderer::drawBackgroundFilters( |
DrawingFrame& frame, const RenderPassDrawQuad* quad, |
const WebKit::WebFilterOperations& filters, |
- const WebTransformationMatrix& contentsDeviceTransform, |
- const WebTransformationMatrix& contentsDeviceTransformInverse) |
+ const gfx::Transform& contentsDeviceTransform, |
+ const gfx::Transform& contentsDeviceTransformInverse) |
{ |
// This method draws a background filter, which applies a filter to any pixels behind the quad and seen through its background. |
// The algorithm works as follows: |
@@ -492,10 +491,10 @@ scoped_ptr<ScopedResource> GLRenderer::drawBackgroundFilters( |
if (usingBackgroundTexture) { |
// Copy the readback pixels from device to the background texture for the surface. |
- WebTransformationMatrix deviceToFramebufferTransform; |
- deviceToFramebufferTransform.translate(quad->rect.width() / 2.0, quad->rect.height() / 2.0); |
- deviceToFramebufferTransform.scale3d(quad->rect.width(), quad->rect.height(), 1); |
- deviceToFramebufferTransform.multiply(contentsDeviceTransformInverse); |
+ gfx::Transform deviceToFramebufferTransform; |
+ deviceToFramebufferTransform.Translate(quad->rect.width() / 2.0, quad->rect.height() / 2.0); |
+ deviceToFramebufferTransform.Scale3d(quad->rect.width(), quad->rect.height(), 1); |
+ deviceToFramebufferTransform.PreconcatTransform(contentsDeviceTransformInverse); |
copyTextureToFramebuffer(frame, filteredDeviceBackgroundTextureId, deviceRect, deviceToFramebufferTransform); |
} |
@@ -517,15 +516,15 @@ void GLRenderer::drawRenderPassQuad(DrawingFrame& frame, const RenderPassDrawQua |
if (!renderPass) |
return; |
- WebTransformationMatrix quadRectMatrix; |
+ gfx::Transform quadRectMatrix; |
quadRectTransform(&quadRectMatrix, quad->quadTransform(), quad->rect); |
- WebTransformationMatrix contentsDeviceTransform = (frame.windowMatrix * frame.projectionMatrix * quadRectMatrix).to2dTransform(); |
+ gfx::Transform contentsDeviceTransform = MathUtil::to2dTransform(frame.windowMatrix * frame.projectionMatrix * quadRectMatrix); |
// Can only draw surface if device matrix is invertible. |
- if (!contentsDeviceTransform.isInvertible()) |
+ if (!contentsDeviceTransform.IsInvertible()) |
return; |
- WebTransformationMatrix contentsDeviceTransformInverse = contentsDeviceTransform.inverse(); |
+ gfx::Transform contentsDeviceTransformInverse = MathUtil::inverse(contentsDeviceTransform); |
scoped_ptr<ScopedResource> backgroundTexture = drawBackgroundFilters( |
frame, quad, renderPass->background_filters, |
contentsDeviceTransform, contentsDeviceTransformInverse); |
@@ -749,8 +748,8 @@ void GLRenderer::drawTileQuad(const DrawingFrame& frame, const TileDrawQuad* qua |
gfx::QuadF localQuad; |
- WebTransformationMatrix deviceTransform = WebTransformationMatrix(frame.windowMatrix * frame.projectionMatrix * quad->quadTransform()).to2dTransform(); |
- if (!deviceTransform.isInvertible()) |
+ gfx::Transform deviceTransform = MathUtil::to2dTransform(frame.windowMatrix * frame.projectionMatrix * quad->quadTransform()); |
+ if (!deviceTransform.IsInvertible()) |
return; |
bool clipped = false; |
@@ -840,7 +839,7 @@ void GLRenderer::drawTileQuad(const DrawingFrame& frame, const TileDrawQuad* qua |
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. |
- WebTransformationMatrix deviceTransformInverse = deviceTransform.inverse(); |
+ gfx::Transform deviceTransformInverse = MathUtil::inverse(deviceTransform); |
localQuad = MathUtil::mapQuad(deviceTransformInverse, deviceQuad.ToQuadF(), clipped); |
// We should not DCHECK(!clipped) here, because anti-aliasing inflation may cause deviceQuad to become |
@@ -1063,24 +1062,9 @@ void GLRenderer::ensureScissorTestDisabled() |
m_isScissorEnabled = false; |
} |
-void GLRenderer::toGLMatrix(float* flattened, const WebTransformationMatrix& m) |
+void GLRenderer::toGLMatrix(float* glMatrix, const gfx::Transform& transform) |
{ |
- flattened[0] = m.m11(); |
- flattened[1] = m.m12(); |
- flattened[2] = m.m13(); |
- flattened[3] = m.m14(); |
- flattened[4] = m.m21(); |
- flattened[5] = m.m22(); |
- flattened[6] = m.m23(); |
- flattened[7] = m.m24(); |
- flattened[8] = m.m31(); |
- flattened[9] = m.m32(); |
- flattened[10] = m.m33(); |
- flattened[11] = m.m34(); |
- flattened[12] = m.m41(); |
- flattened[13] = m.m42(); |
- flattened[14] = m.m43(); |
- flattened[15] = m.m44(); |
+ transform.matrix().asColMajorf(glMatrix); |
} |
void GLRenderer::setShaderQuadF(const gfx::QuadF& quad, int quadLocation) |
@@ -1106,9 +1090,9 @@ void GLRenderer::setShaderOpacity(float opacity, int alphaLocation) |
GLC(m_context, m_context->uniform1f(alphaLocation, opacity)); |
} |
-void GLRenderer::drawQuadGeometry(const DrawingFrame& frame, const WebKit::WebTransformationMatrix& drawTransform, const gfx::RectF& quadRect, int matrixLocation) |
+void GLRenderer::drawQuadGeometry(const DrawingFrame& frame, const gfx::Transform& drawTransform, const gfx::RectF& quadRect, int matrixLocation) |
{ |
- WebTransformationMatrix quadRectMatrix; |
+ gfx::Transform quadRectMatrix; |
quadRectTransform(&quadRectMatrix, drawTransform, quadRect); |
static float glMatrix[16]; |
toGLMatrix(&glMatrix[0], frame.projectionMatrix * quadRectMatrix); |
@@ -1117,7 +1101,7 @@ void GLRenderer::drawQuadGeometry(const DrawingFrame& frame, const WebKit::WebTr |
GLC(m_context, m_context->drawElements(GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, 0)); |
} |
-void GLRenderer::copyTextureToFramebuffer(const DrawingFrame& frame, int textureId, const gfx::Rect& rect, const WebTransformationMatrix& drawMatrix) |
+void GLRenderer::copyTextureToFramebuffer(const DrawingFrame& frame, int textureId, const gfx::Rect& rect, const gfx::Transform& drawMatrix) |
{ |
const RenderPassProgram* program = renderPassProgram(); |