| Index: src/gpu/gl/GrGLXferProcessor.cpp
|
| diff --git a/src/gpu/gl/GrGLXferProcessor.cpp b/src/gpu/gl/GrGLXferProcessor.cpp
|
| index 657da41274af0d8f3a7e19c559340d79d7afa668..b707a3f632047d4892518d42f55f1b2454bcc83f 100644
|
| --- a/src/gpu/gl/GrGLXferProcessor.cpp
|
| +++ b/src/gpu/gl/GrGLXferProcessor.cpp
|
| @@ -12,8 +12,8 @@
|
| #include "gl/builders/GrGLProgramBuilder.h"
|
|
|
| void GrGLXferProcessor::emitCode(const EmitArgs& args) {
|
| - if (args.fXP.getDstCopyTexture()) {
|
| - bool topDown = kTopLeft_GrSurfaceOrigin == args.fXP.getDstCopyTexture()->origin();
|
| + if (args.fXP.getDstTexture()) {
|
| + bool topDown = kTopLeft_GrSurfaceOrigin == args.fXP.getDstTexture()->origin();
|
|
|
| GrGLXPFragmentBuilder* fsBuilder = args.fPB->getFragmentShaderBuilder();
|
|
|
| @@ -27,24 +27,24 @@ void GrGLXferProcessor::emitCode(const EmitArgs& args) {
|
|
|
| const char* dstColor = fsBuilder->dstColor();
|
|
|
| - const char* dstCopyTopLeftName;
|
| - const char* dstCopyCoordScaleName;
|
| + const char* dstTopLeftName;
|
| + const char* dstCoordScaleName;
|
|
|
| - fDstCopyTopLeftUni = args.fPB->addUniform(GrGLProgramBuilder::kFragment_Visibility,
|
| - kVec2f_GrSLType,
|
| - kDefault_GrSLPrecision,
|
| - "DstCopyUpperLeft",
|
| - &dstCopyTopLeftName);
|
| - fDstCopyScaleUni = args.fPB->addUniform(GrGLProgramBuilder::kFragment_Visibility,
|
| - kVec2f_GrSLType,
|
| - kDefault_GrSLPrecision,
|
| - "DstCopyCoordScale",
|
| - &dstCopyCoordScaleName);
|
| + fDstTopLeftUni = args.fPB->addUniform(GrGLProgramBuilder::kFragment_Visibility,
|
| + kVec2f_GrSLType,
|
| + kDefault_GrSLPrecision,
|
| + "DstTextureUpperLeft",
|
| + &dstTopLeftName);
|
| + fDstScaleUni = args.fPB->addUniform(GrGLProgramBuilder::kFragment_Visibility,
|
| + kVec2f_GrSLType,
|
| + kDefault_GrSLPrecision,
|
| + "DstTextureCoordScale",
|
| + &dstCoordScaleName);
|
| const char* fragPos = fsBuilder->fragmentPosition();
|
|
|
| fsBuilder->codeAppend("// Read color from copy of the destination.\n");
|
| fsBuilder->codeAppendf("vec2 _dstTexCoord = (%s.xy - %s) * %s;",
|
| - fragPos, dstCopyTopLeftName, dstCopyCoordScaleName);
|
| + fragPos, dstTopLeftName, dstCoordScaleName);
|
|
|
| if (!topDown) {
|
| fsBuilder->codeAppend("_dstTexCoord.y = 1.0 - _dstTexCoord.y;");
|
| @@ -59,18 +59,18 @@ void GrGLXferProcessor::emitCode(const EmitArgs& args) {
|
| }
|
|
|
| void GrGLXferProcessor::setData(const GrGLProgramDataManager& pdm, const GrXferProcessor& xp) {
|
| - if (xp.getDstCopyTexture()) {
|
| - if (fDstCopyTopLeftUni.isValid()) {
|
| - pdm.set2f(fDstCopyTopLeftUni, static_cast<GrGLfloat>(xp.dstCopyTextureOffset().fX),
|
| - static_cast<GrGLfloat>(xp.dstCopyTextureOffset().fY));
|
| - pdm.set2f(fDstCopyScaleUni, 1.f / xp.getDstCopyTexture()->width(),
|
| - 1.f / xp.getDstCopyTexture()->height());
|
| + if (xp.getDstTexture()) {
|
| + if (fDstTopLeftUni.isValid()) {
|
| + pdm.set2f(fDstTopLeftUni, static_cast<GrGLfloat>(xp.dstTextureOffset().fX),
|
| + static_cast<GrGLfloat>(xp.dstTextureOffset().fY));
|
| + pdm.set2f(fDstScaleUni, 1.f / xp.getDstTexture()->width(),
|
| + 1.f / xp.getDstTexture()->height());
|
| } else {
|
| - SkASSERT(!fDstCopyScaleUni.isValid());
|
| + SkASSERT(!fDstScaleUni.isValid());
|
| }
|
| } else {
|
| - SkASSERT(!fDstCopyTopLeftUni.isValid());
|
| - SkASSERT(!fDstCopyScaleUni.isValid());
|
| + SkASSERT(!fDstTopLeftUni.isValid());
|
| + SkASSERT(!fDstScaleUni.isValid());
|
| }
|
| this->onSetData(pdm, xp);
|
| }
|
|
|