diff options
author | 2015-02-03 15:02:43 -0800 | |
---|---|---|
committer | 2015-02-03 15:02:43 -0800 | |
commit | 74a11753604768bf461b80cabb66060e8564d82c (patch) | |
tree | a05ea0f59d44fe6b200505a69408fbd96406ca54 /src/gpu/gl/GrGLProgram.cpp | |
parent | bf015c34e4c36467dfef385893f375b68718450e (diff) |
Move DstCopy on gpu into the GrXferProcessor.
BUG=skia:
Review URL: https://codereview.chromium.org/885923002
Diffstat (limited to 'src/gpu/gl/GrGLProgram.cpp')
-rw-r--r-- | src/gpu/gl/GrGLProgram.cpp | 35 |
1 files changed, 4 insertions, 31 deletions
diff --git a/src/gpu/gl/GrGLProgram.cpp b/src/gpu/gl/GrGLProgram.cpp index ad63dc4ea7..eebcf6b2f3 100644 --- a/src/gpu/gl/GrGLProgram.cpp +++ b/src/gpu/gl/GrGLProgram.cpp @@ -61,10 +61,6 @@ void GrGLProgram::abandon() { void GrGLProgram::initSamplerUniforms() { GL_CALL(UseProgram(fProgramID)); GrGLint texUnitIdx = 0; - if (fBuiltinUniformHandles.fDstCopySamplerUni.isValid()) { - fProgramDataManager.setSampler(fBuiltinUniformHandles.fDstCopySamplerUni, texUnitIdx); - fDstCopyTexUnit = texUnitIdx++; - } this->initSamplers(fGeometryProcessor.get(), &texUnitIdx); if (fXferProcessor.get()) { this->initSamplers(fXferProcessor.get(), &texUnitIdx); @@ -107,38 +103,15 @@ void GrGLProgram::setData(const GrPrimitiveProcessor& primProc, const GrPipeline const GrBatchTracker& batchTracker) { this->setRenderTargetState(primProc, pipeline); - const GrDeviceCoordTexture* dstCopy = pipeline.getDstCopy(); - if (dstCopy) { - if (fBuiltinUniformHandles.fDstCopyTopLeftUni.isValid()) { - fProgramDataManager.set2f(fBuiltinUniformHandles.fDstCopyTopLeftUni, - static_cast<GrGLfloat>(dstCopy->offset().fX), - static_cast<GrGLfloat>(dstCopy->offset().fY)); - fProgramDataManager.set2f(fBuiltinUniformHandles.fDstCopyScaleUni, - 1.f / dstCopy->texture()->width(), - 1.f / dstCopy->texture()->height()); - GrGLTexture* texture = static_cast<GrGLTexture*>(dstCopy->texture()); - static GrTextureParams kParams; // the default is clamp, nearest filtering. - fGpu->bindTexture(fDstCopyTexUnit, kParams, texture); - } else { - SkASSERT(!fBuiltinUniformHandles.fDstCopyScaleUni.isValid()); - SkASSERT(!fBuiltinUniformHandles.fDstCopySamplerUni.isValid()); - } - } else { - SkASSERT(!fBuiltinUniformHandles.fDstCopyTopLeftUni.isValid()); - SkASSERT(!fBuiltinUniformHandles.fDstCopyScaleUni.isValid()); - SkASSERT(!fBuiltinUniformHandles.fDstCopySamplerUni.isValid()); - } - // we set the textures, and uniforms for installed processors in a generic way, but subclasses // of GLProgram determine how to set coord transforms fGeometryProcessor->fGLProc->setData(fProgramDataManager, primProc, batchTracker); this->bindTextures(fGeometryProcessor.get(), primProc); - if (fXferProcessor.get()) { - const GrXferProcessor& xp = *pipeline.getXferProcessor(); - fXferProcessor->fGLProc->setData(fProgramDataManager, xp); - this->bindTextures(fXferProcessor.get(), xp); - } + const GrXferProcessor& xp = *pipeline.getXferProcessor(); + fXferProcessor->fGLProc->setData(fProgramDataManager, xp); + this->bindTextures(fXferProcessor.get(), xp); + this->setFragmentData(primProc, pipeline); // Some of GrGLProgram subclasses need to update state here |