Index: src/gpu/gl/builders/GrGLProgramBuilder.cpp |
diff --git a/src/gpu/gl/builders/GrGLProgramBuilder.cpp b/src/gpu/gl/builders/GrGLProgramBuilder.cpp |
index 279f3a2d53114195cd6eec89819b72bd9da0c963..d3067764418949818a0b69b81676176cd6274257 100644 |
--- a/src/gpu/gl/builders/GrGLProgramBuilder.cpp |
+++ b/src/gpu/gl/builders/GrGLProgramBuilder.cpp |
@@ -326,177 +326,3 @@ void GrGLProgramBuilder::resolveProgramLocations(GrGLuint programId) { |
const GrGLContextInfo& GrGLProgramBuilder::ctxInfo() const { |
return fGpu->ctxInfo(); |
} |
- |
-//////////////////////////////////////////////////////////////////////////////// |
- |
-GrGLFullProgramBuilder::GrGLFullProgramBuilder(GrGpuGL* gpu, |
- const GrGLProgramDesc& desc) |
- : INHERITED(gpu, desc) |
- , fGS(this) |
- , fVS(this) { |
-} |
- |
-void GrGLFullProgramBuilder::emitCodeBeforeEffects(GrGLSLExpr4* color, |
- GrGLSLExpr4* coverage) { |
- fVS.emitCodeBeforeEffects(color, coverage); |
-} |
- |
-void GrGLFullProgramBuilder::emitGeometryProcessor(const GrEffectStage* geometryProcessor, |
- GrGLSLExpr4* coverage) { |
- if (geometryProcessor) { |
- GrGLProgramDesc::EffectKeyProvider geometryProcessorKeyProvider( |
- &this->desc(), GrGLProgramDesc::EffectKeyProvider::kGeometryProcessor_EffectType); |
- fGeometryProcessor.reset(this->createAndEmitEffect( |
- geometryProcessor, |
- geometryProcessorKeyProvider, |
- coverage)); |
- } |
-} |
- |
-void GrGLFullProgramBuilder::emitCodeAfterEffects() { |
- fVS.emitCodeAfterEffects(); |
-} |
- |
-void GrGLFullProgramBuilder::addVarying(GrSLType type, |
- const char* name, |
- const char** vsOutName, |
- const char** fsInName, |
- GrGLShaderVar::Precision fsPrecision) { |
- fVS.addVarying(type, name, vsOutName); |
- |
- SkString* fsInputName = fVS.fOutputs.back().accessName(); |
- |
-#if GR_GL_EXPERIMENTAL_GS |
- if (desc().getHeader().fExperimentalGS) { |
- // TODO let the caller use these names |
- fGS.addVarying(type, fsInputName->c_str(), NULL); |
- fsInputName = fGS.fOutputs.back().accessName(); |
- } |
-#endif |
- fFS.addVarying(type, fsInputName->c_str(), fsInName, fsPrecision); |
-} |
- |
-GrGLFullProgramBuilder::VaryingHandle |
-GrGLFullProgramBuilder::addSeparableVarying(GrSLType type, |
- const char* name, |
- const char** vsOutName, |
- const char** fsInName) { |
- addVarying(type, name, vsOutName, fsInName); |
- SeparableVaryingInfo& varying = fSeparableVaryingInfos.push_back(); |
- varying.fVariable = fFS.fInputs.back(); |
- return VaryingHandle::CreateFromSeparableVaryingIndex(fSeparableVaryingInfos.count() - 1); |
-} |
- |
- |
-GrGLProgramEffects* GrGLFullProgramBuilder::createAndEmitEffects( |
- const GrEffectStage* effectStages[], |
- int effectCnt, |
- const GrGLProgramDesc::EffectKeyProvider& keyProvider, |
- GrGLSLExpr4* inOutFSColor) { |
- |
- GrGLVertexProgramEffectsBuilder programEffectsBuilder(this, effectCnt); |
- this->INHERITED::createAndEmitEffects(&programEffectsBuilder, |
- effectStages, |
- effectCnt, |
- keyProvider, |
- inOutFSColor); |
- return programEffectsBuilder.finish(); |
-} |
- |
-void GrGLFullProgramBuilder::createAndEmitEffect(GrGLProgramEffectsBuilder* programEffectsBuilder, |
- const GrEffectStage* effectStages, |
- const GrGLProgramDesc::EffectKeyProvider& keyProvider, |
- GrGLSLExpr4* fsInOutColor) { |
- GrGLSLExpr4 inColor = *fsInOutColor; |
- GrGLSLExpr4 outColor; |
- |
- SkASSERT(effectStages && effectStages->getEffect()); |
- const GrEffectStage& stage = *effectStages; |
- |
- // Using scope to force ASR destructor to be triggered |
- { |
- CodeStage::AutoStageRestore csar(&fCodeStage, &stage); |
- |
- if (inColor.isZeros()) { |
- SkString inColorName; |
- |
- // Effects have no way to communicate zeros, they treat an empty string as ones. |
- this->nameVariable(&inColorName, '\0', "input"); |
- fFS.codeAppendf("vec4 %s = %s;", inColorName.c_str(), inColor.c_str()); |
- inColor = inColorName; |
- } |
- |
- // create var to hold stage result |
- SkString outColorName; |
- this->nameVariable(&outColorName, '\0', "output"); |
- fFS.codeAppendf("vec4 %s;", outColorName.c_str()); |
- outColor = outColorName; |
- |
- |
- programEffectsBuilder->emitEffect(stage, |
- keyProvider.get(0), |
- outColor.c_str(), |
- inColor.isOnes() ? NULL : inColor.c_str(), |
- fCodeStage.stageIndex()); |
- } |
- |
- *fsInOutColor = outColor; |
-} |
- |
-GrGLProgramEffects* GrGLFullProgramBuilder::createAndEmitEffect( |
- const GrEffectStage* geometryProcessor, |
- const GrGLProgramDesc::EffectKeyProvider& keyProvider, |
- GrGLSLExpr4* inOutFSColor) { |
- |
- GrGLVertexProgramEffectsBuilder programEffectsBuilder(this, 1); |
- this->createAndEmitEffect(&programEffectsBuilder, geometryProcessor, keyProvider, inOutFSColor); |
- return programEffectsBuilder.finish(); |
-} |
- |
-bool GrGLFullProgramBuilder::compileAndAttachShaders(GrGLuint programId, |
- SkTDArray<GrGLuint>* shaderIds) const { |
- return INHERITED::compileAndAttachShaders(programId, shaderIds) |
- && fVS.compileAndAttachShaders(programId, shaderIds) |
-#if GR_GL_EXPERIMENTAL_GS |
- && (!desc().getHeader().fExperimentalGS |
- || fGS.compileAndAttachShaders(programId, shaderIds)) |
-#endif |
- ; |
-} |
- |
-void GrGLFullProgramBuilder::bindProgramLocations(GrGLuint programId) { |
- fVS.bindProgramLocations(programId); |
- INHERITED::bindProgramLocations(programId); |
-} |
- |
-//////////////////////////////////////////////////////////////////////////////// |
- |
-GrGLFragmentOnlyProgramBuilder::GrGLFragmentOnlyProgramBuilder(GrGpuGL* gpu, |
- const GrGLProgramDesc& desc) |
- : INHERITED(gpu, desc) { |
- SkASSERT(!desc.getHeader().fRequiresVertexShader); |
- SkASSERT(gpu->glCaps().pathRenderingSupport()); |
- SkASSERT(GrGLProgramDesc::kAttribute_ColorInput != desc.getHeader().fColorInput); |
- SkASSERT(GrGLProgramDesc::kAttribute_ColorInput != desc.getHeader().fCoverageInput); |
-} |
- |
-int GrGLFragmentOnlyProgramBuilder::addTexCoordSets(int count) { |
- int firstFreeCoordSet = fTexCoordSetCnt; |
- fTexCoordSetCnt += count; |
- SkASSERT(gpu()->glCaps().maxFixedFunctionTextureCoords() >= fTexCoordSetCnt); |
- return firstFreeCoordSet; |
-} |
- |
-GrGLProgramEffects* GrGLFragmentOnlyProgramBuilder::createAndEmitEffects( |
- const GrEffectStage* effectStages[], int effectCnt, |
- const GrGLProgramDesc::EffectKeyProvider& keyProvider, GrGLSLExpr4* inOutFSColor) { |
- |
- GrGLPathTexGenProgramEffectsBuilder pathTexGenEffectsBuilder(this, |
- effectCnt); |
- this->INHERITED::createAndEmitEffects(&pathTexGenEffectsBuilder, |
- effectStages, |
- effectCnt, |
- keyProvider, |
- inOutFSColor); |
- return pathTexGenEffectsBuilder.finish(); |
-} |