| Index: src/gpu/gl/GrGLGeometryProcessor.h
|
| diff --git a/src/gpu/gl/GrGLGeometryProcessor.h b/src/gpu/gl/GrGLGeometryProcessor.h
|
| index da6c34731445c4c0dcd45912be8a5c5d18a2f66d..e8b16afe338672fdb08dec62e1c63235ba3676be 100644
|
| --- a/src/gpu/gl/GrGLGeometryProcessor.h
|
| +++ b/src/gpu/gl/GrGLGeometryProcessor.h
|
| @@ -8,126 +8,10 @@
|
| #ifndef GrGLGeometryProcessor_DEFINED
|
| #define GrGLGeometryProcessor_DEFINED
|
|
|
| -#include "GrGLProcessor.h"
|
| +#include "GrGLPrimitiveProcessor.h"
|
|
|
| -class GrBatchTracker;
|
| -class GrFragmentProcessor;
|
| -class GrGLGPBuilder;
|
| -
|
| -class GrGLPrimitiveProcessor {
|
| -public:
|
| - GrGLPrimitiveProcessor() : fViewMatrixName(NULL) { fViewMatrix = SkMatrix::InvalidMatrix(); }
|
| - virtual ~GrGLPrimitiveProcessor() {}
|
| -
|
| - typedef GrGLProgramDataManager::UniformHandle UniformHandle;
|
| - typedef GrGLProcessor::TextureSamplerArray TextureSamplerArray;
|
| -
|
| - typedef SkSTArray<2, const GrCoordTransform*, true> ProcCoords;
|
| - typedef SkSTArray<8, ProcCoords> TransformsIn;
|
| - typedef SkSTArray<8, GrGLProcessor::TransformedCoordsArray> TransformsOut;
|
| -
|
| - struct EmitArgs {
|
| - EmitArgs(GrGLGPBuilder* pb,
|
| - const GrPrimitiveProcessor& gp,
|
| - const GrBatchTracker& bt,
|
| - const char* outputColor,
|
| - const char* outputCoverage,
|
| - const TextureSamplerArray& samplers,
|
| - const TransformsIn& transformsIn,
|
| - TransformsOut* transformsOut)
|
| - : fPB(pb)
|
| - , fGP(gp)
|
| - , fBT(bt)
|
| - , fOutputColor(outputColor)
|
| - , fOutputCoverage(outputCoverage)
|
| - , fSamplers(samplers)
|
| - , fTransformsIn(transformsIn)
|
| - , fTransformsOut(transformsOut) {}
|
| - GrGLGPBuilder* fPB;
|
| - const GrPrimitiveProcessor& fGP;
|
| - const GrBatchTracker& fBT;
|
| - const char* fOutputColor;
|
| - const char* fOutputCoverage;
|
| - const TextureSamplerArray& fSamplers;
|
| - const TransformsIn& fTransformsIn;
|
| - TransformsOut* fTransformsOut;
|
| - };
|
| -
|
| - /**
|
| - * This is similar to emitCode() in the base class, except it takes a full shader builder.
|
| - * This allows the effect subclass to emit vertex code.
|
| - */
|
| - virtual void emitCode(EmitArgs&) = 0;
|
| -
|
| -
|
| - /** A GrGLPrimitiveProcessor instance can be reused with any GrGLPrimitiveProcessor that
|
| - produces the same stage key; this function reads data from a GrGLPrimitiveProcessor and
|
| - uploads any uniform variables required by the shaders created in emitCode(). The
|
| - GrPrimitiveProcessor parameter is guaranteed to be of the same type that created this
|
| - GrGLPrimitiveProcessor and to have an identical processor key as the one that created this
|
| - GrGLPrimitiveProcessor. */
|
| - virtual void setData(const GrGLProgramDataManager&,
|
| - const GrPrimitiveProcessor&,
|
| - const GrBatchTracker&) = 0;
|
| -
|
| - static SkMatrix GetTransformMatrix(const SkMatrix& localMatrix, const GrCoordTransform&);
|
| -
|
| -protected:
|
| - /** a helper which can setup vertex, constant, or uniform color depending on inputType.
|
| - * This function will only do the minimum required to emit the correct shader code. If
|
| - * inputType == attribute, then colorAttr must not be NULL. Likewise, if inputType == Uniform
|
| - * then colorUniform must not be NULL.
|
| - */
|
| - void setupColorPassThrough(GrGLGPBuilder* pb,
|
| - GrGPInput inputType,
|
| - const char* inputName,
|
| - const GrGeometryProcessor::Attribute* colorAttr,
|
| - UniformHandle* colorUniform);
|
| -
|
| - const char* uViewM() const { return fViewMatrixName; }
|
| -
|
| - /** a helper function to setup the uniform handle for the uniform view matrix */
|
| - void addUniformViewMatrix(GrGLGPBuilder*);
|
| -
|
| -
|
| - /** a helper function to upload a uniform viewmatrix.
|
| - * TODO we can remove this function when we have deferred geometry in place
|
| - */
|
| - void setUniformViewMatrix(const GrGLProgramDataManager&,
|
| - const SkMatrix& viewMatrix);
|
| -
|
| - class ShaderVarHandle {
|
| - public:
|
| - bool isValid() const { return fHandle > -1; }
|
| - ShaderVarHandle() : fHandle(-1) {}
|
| - ShaderVarHandle(int value) : fHandle(value) { SkASSERT(this->isValid()); }
|
| - int handle() const { SkASSERT(this->isValid()); return fHandle; }
|
| - UniformHandle convertToUniformHandle() {
|
| - SkASSERT(this->isValid());
|
| - return GrGLProgramDataManager::UniformHandle::CreateFromUniformIndex(fHandle);
|
| - }
|
| -
|
| - private:
|
| - int fHandle;
|
| - };
|
| -
|
| - struct Transform {
|
| - Transform() : fType(kVoid_GrSLType) { fCurrentValue = SkMatrix::InvalidMatrix(); }
|
| - ShaderVarHandle fHandle;
|
| - SkMatrix fCurrentValue;
|
| - GrSLType fType;
|
| - };
|
| -
|
| - SkSTArray<8, SkSTArray<2, Transform, true> > fInstalledTransforms;
|
| -
|
| -private:
|
| - UniformHandle fViewMatrixUniform;
|
| - SkMatrix fViewMatrix;
|
| - const char* fViewMatrixName;
|
| -};
|
| -
|
| -class GrGLPathRendering;
|
| class GrGLVertexBuilder;
|
| +
|
| /**
|
| * If a GL effect needs a GrGLFullShaderBuilder* object to emit vertex code, then it must inherit
|
| * from this class. Since paths don't have vertices, this class is only meant to be used internally
|
| @@ -189,40 +73,4 @@ private:
|
| typedef GrGLPrimitiveProcessor INHERITED;
|
| };
|
|
|
| -class GrGLGpu;
|
| -
|
| -class GrGLPathProcessor : public GrGLPrimitiveProcessor {
|
| -public:
|
| - GrGLPathProcessor(const GrPathProcessor&, const GrBatchTracker&);
|
| -
|
| - static void GenKey(const GrPathProcessor&,
|
| - const GrBatchTracker& bt,
|
| - const GrGLCaps&,
|
| - GrProcessorKeyBuilder* b);
|
| -
|
| - void emitCode(EmitArgs&) SK_OVERRIDE;
|
| -
|
| - virtual void emitTransforms(GrGLGPBuilder*, const TransformsIn&, TransformsOut*) = 0;
|
| -
|
| - virtual void resolveSeparableVaryings(GrGLGpu* gpu, GrGLuint programId) {}
|
| -
|
| - void setData(const GrGLProgramDataManager&,
|
| - const GrPrimitiveProcessor&,
|
| - const GrBatchTracker&) SK_OVERRIDE;
|
| -
|
| - virtual void setTransformData(const GrPrimitiveProcessor&,
|
| - int index,
|
| - const SkTArray<const GrCoordTransform*, true>& transforms,
|
| - GrGLPathRendering*,
|
| - GrGLuint programID) = 0;
|
| -
|
| - virtual void didSetData(GrGLPathRendering*) {}
|
| -
|
| -private:
|
| - UniformHandle fColorUniform;
|
| - GrColor fColor;
|
| -
|
| - typedef GrGLPrimitiveProcessor INHERITED;
|
| -};
|
| -
|
| #endif
|
|
|