| Index: src/gpu/gl/GrGLProgram.cpp
|
| diff --git a/src/gpu/gl/GrGLProgram.cpp b/src/gpu/gl/GrGLProgram.cpp
|
| index 60d97a296976985ff5149a2d01dffbca2df7a85e..9400e54b12c8a40a5082e0cb1616f8d717896a8f 100644
|
| --- a/src/gpu/gl/GrGLProgram.cpp
|
| +++ b/src/gpu/gl/GrGLProgram.cpp
|
| @@ -132,7 +132,7 @@ void GrGLProgram::bindTextures(const GrGLInstalledProc* ip, const GrProcessor& p
|
| ///////////////////////////////////////////////////////////////////////////////
|
|
|
| void GrGLProgram::setData(const GrOptDrawState& optState) {
|
| - this->setMatrixAndRenderTargetHeight(optState);
|
| + this->setRenderTargetState(optState);
|
|
|
| const GrDeviceCoordTexture* dstCopy = optState.getDstCopy();
|
| if (dstCopy) {
|
| @@ -205,37 +205,29 @@ void GrGLProgram::didSetData(GrGpu::DrawType drawType) {
|
| SkASSERT(!GrGpu::IsPathRenderingDrawType(drawType));
|
| }
|
|
|
| -void GrGLProgram::setMatrixAndRenderTargetHeight(const GrOptDrawState& optState) {
|
| +void GrGLProgram::setRenderTargetState(const GrOptDrawState& optState) {
|
| // Load the RT height uniform if it is needed to y-flip gl_FragCoord.
|
| if (fBuiltinUniformHandles.fRTHeightUni.isValid() &&
|
| - fMatrixState.fRenderTargetSize.fHeight != optState.getRenderTarget()->height()) {
|
| + fRenderTargetState.fRenderTargetSize.fHeight != optState.getRenderTarget()->height()) {
|
| fProgramDataManager.set1f(fBuiltinUniformHandles.fRTHeightUni,
|
| SkIntToScalar(optState.getRenderTarget()->height()));
|
| }
|
|
|
| // call subclasses to set the actual view matrix
|
| - this->onSetMatrixAndRenderTargetHeight(optState);
|
| + this->onSetRenderTargetState(optState);
|
| }
|
|
|
| -void GrGLProgram::onSetMatrixAndRenderTargetHeight(const GrOptDrawState& optState) {
|
| +void GrGLProgram::onSetRenderTargetState(const GrOptDrawState& optState) {
|
| const GrRenderTarget* rt = optState.getRenderTarget();
|
| SkISize size;
|
| size.set(rt->width(), rt->height());
|
| - if (fMatrixState.fRenderTargetOrigin != rt->origin() ||
|
| - fMatrixState.fRenderTargetSize != size ||
|
| - !fMatrixState.fViewMatrix.cheapEqualTo(optState.getViewMatrix())) {
|
| - SkASSERT(fBuiltinUniformHandles.fViewMatrixUni.isValid());
|
| -
|
| - fMatrixState.fViewMatrix = optState.getViewMatrix();
|
| - fMatrixState.fRenderTargetSize = size;
|
| - fMatrixState.fRenderTargetOrigin = rt->origin();
|
| -
|
| - GrGLfloat viewMatrix[3 * 3];
|
| - fMatrixState.getGLMatrix<3>(viewMatrix);
|
| - fProgramDataManager.setMatrix3f(fBuiltinUniformHandles.fViewMatrixUni, viewMatrix);
|
| + if (fRenderTargetState.fRenderTargetOrigin != rt->origin() ||
|
| + fRenderTargetState.fRenderTargetSize != size) {
|
| + fRenderTargetState.fRenderTargetSize = size;
|
| + fRenderTargetState.fRenderTargetOrigin = rt->origin();
|
|
|
| GrGLfloat rtAdjustmentVec[4];
|
| - fMatrixState.getRTAdjustmentVec(rtAdjustmentVec);
|
| + fRenderTargetState.getRTAdjustmentVec(rtAdjustmentVec);
|
| fProgramDataManager.set4fv(fBuiltinUniformHandles.fRTAdjustmentUni, 1, rtAdjustmentVec);
|
| }
|
| }
|
| @@ -254,12 +246,13 @@ GrGLNvprProgramBase::GrGLNvprProgramBase(GrGLGpu* gpu,
|
| xferProcessor, fragmentProcessors) {
|
| }
|
|
|
| -void GrGLNvprProgramBase::onSetMatrixAndRenderTargetHeight(const GrOptDrawState& optState) {
|
| +void GrGLNvprProgramBase::onSetRenderTargetState(const GrOptDrawState& optState) {
|
| SkASSERT(GrGpu::IsPathRenderingDrawType(optState.drawType()));
|
| const GrRenderTarget* rt = optState.getRenderTarget();
|
| SkISize size;
|
| size.set(rt->width(), rt->height());
|
| - fGpu->glPathRendering()->setProjectionMatrix(optState.getViewMatrix(), size, rt->origin());
|
| + fGpu->glPathRendering()->setProjectionMatrix(optState.getPrimitiveProcessor()->viewMatrix(),
|
| + size, rt->origin());
|
| }
|
|
|
| /////////////////////////////////////////////////////////////////////////////////////////
|
|
|