Chromium Code Reviews| Index: cc/gl_renderer.cc |
| diff --git a/cc/gl_renderer.cc b/cc/gl_renderer.cc |
| index 850b8c2931628acc80be4d2ef78700f2cd55e03b..2c066e413bd599f85dd77eef7f7baa75807c0457 100644 |
| --- a/cc/gl_renderer.cc |
| +++ b/cc/gl_renderer.cc |
| @@ -43,7 +43,7 @@ using namespace std; |
| using WebKit::WebGraphicsContext3D; |
| using WebKit::WebGraphicsMemoryAllocation; |
| using WebKit::WebSharedGraphicsContext3D; |
| -using WebKit::WebTransformationMatrix; |
| +using gfx::Transform; |
| namespace cc { |
| @@ -325,9 +325,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()); |
| + Transform renderMatrix = quad->quadTransform(); |
| + renderMatrix.PreconcatTranslate(0.5 * layerRect.width() + layerRect.x(), 0.5 * layerRect.height() + layerRect.y()); |
| + renderMatrix.PreconcatScale(layerRect.width(), layerRect.height()); |
| GLRenderer::toGLMatrix(&glMatrix[0], frame.projectionMatrix * renderMatrix); |
| GLC(context(), context()->uniformMatrix4fv(program->vertexShader().matrixLocation(), 1, false, &glMatrix[0])); |
| @@ -431,8 +431,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 Transform& contentsDeviceTransform, |
| + const 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: |
| @@ -488,10 +488,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); |
| + Transform deviceToFramebufferTransform; |
| + deviceToFramebufferTransform.PreconcatTranslate(quad->rect.width() / 2.0, quad->rect.height() / 2.0); |
| + deviceToFramebufferTransform.PreconcatScale3d(quad->rect.width(), quad->rect.height(), 1); |
| + deviceToFramebufferTransform.PreconcatTransform(contentsDeviceTransformInverse); |
| copyTextureToFramebuffer(frame, filteredDeviceBackgroundTextureId, deviceRect, deviceToFramebufferTransform); |
| } |
| @@ -513,15 +513,15 @@ void GLRenderer::drawRenderPassQuad(DrawingFrame& frame, const RenderPassDrawQua |
| if (!renderPass) |
| return; |
| - WebTransformationMatrix quadRectMatrix; |
| + Transform quadRectMatrix; |
| quadRectTransform(&quadRectMatrix, quad->quadTransform(), quad->rect); |
| - WebTransformationMatrix contentsDeviceTransform = (frame.windowMatrix * frame.projectionMatrix * quadRectMatrix).to2dTransform(); |
| + 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(); |
| + Transform contentsDeviceTransformInverse = MathUtil::inverse(contentsDeviceTransform); |
| scoped_ptr<ScopedResource> backgroundTexture = drawBackgroundFilters( |
| frame, quad, renderPass->background_filters, |
| contentsDeviceTransform, contentsDeviceTransformInverse); |
| @@ -745,8 +745,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()) |
| + Transform deviceTransform = MathUtil::to2dTransform(frame.windowMatrix * frame.projectionMatrix * quad->quadTransform()); |
| + if (!deviceTransform.IsInvertible()) |
| return; |
| bool clipped = false; |
| @@ -836,7 +836,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(); |
| + 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 |
| @@ -1041,24 +1041,24 @@ bool GLRenderer::flippedFramebuffer() const |
| return true; |
| } |
| -void GLRenderer::toGLMatrix(float* flattened, const WebTransformationMatrix& m) |
| +void GLRenderer::toGLMatrix(float* flattened, const Transform& m) |
| { |
|
Ian Vollick
2012/11/21 22:07:09
use SkMatrix44::asColMajorf
|
| - 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(); |
| + flattened[0] = m.matrix().getDouble(0, 0); |
| + flattened[1] = m.matrix().getDouble(1, 0); |
| + flattened[2] = m.matrix().getDouble(2, 0); |
| + flattened[3] = m.matrix().getDouble(3, 0); |
| + flattened[4] = m.matrix().getDouble(0, 1); |
| + flattened[5] = m.matrix().getDouble(1, 1); |
| + flattened[6] = m.matrix().getDouble(2, 1); |
| + flattened[7] = m.matrix().getDouble(3, 1); |
| + flattened[8] = m.matrix().getDouble(0, 2); |
| + flattened[9] = m.matrix().getDouble(1, 2); |
| + flattened[10] = m.matrix().getDouble(2, 2); |
| + flattened[11] = m.matrix().getDouble(3, 2); |
| + flattened[12] = m.matrix().getDouble(0, 3); |
| + flattened[13] = m.matrix().getDouble(1, 3); |
| + flattened[14] = m.matrix().getDouble(2, 3); |
| + flattened[15] = m.matrix().getDouble(3, 3); |
| } |
| void GLRenderer::setShaderQuadF(const gfx::QuadF& quad, int quadLocation) |
| @@ -1084,9 +1084,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; |
| + Transform quadRectMatrix; |
| quadRectTransform(&quadRectMatrix, drawTransform, quadRect); |
| static float glMatrix[16]; |
| toGLMatrix(&glMatrix[0], frame.projectionMatrix * quadRectMatrix); |
| @@ -1095,7 +1095,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 Transform& drawMatrix) |
| { |
| const RenderPassProgram* program = renderPassProgram(); |