| Index: src/gpu/gl/builders/GrGLFragmentOnlyProgramBuilder.cpp
|
| diff --git a/src/gpu/gl/builders/GrGLFragmentOnlyProgramBuilder.cpp b/src/gpu/gl/builders/GrGLFragmentOnlyProgramBuilder.cpp
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..3ad6b446c1523d76b7e45f5555bdd7ee5f5e4d30
|
| --- /dev/null
|
| +++ b/src/gpu/gl/builders/GrGLFragmentOnlyProgramBuilder.cpp
|
| @@ -0,0 +1,39 @@
|
| +/*
|
| + * Copyright 2014 Google Inc.
|
| + *
|
| + * Use of this source code is governed by a BSD-style license that can be
|
| + * found in the LICENSE file.
|
| + */
|
| +
|
| +#include "GrGLFragmentOnlyProgramBuilder.h"
|
| +#include "../GrGpuGL.h"
|
| +
|
| +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();
|
| +}
|
|
|