| Index: include/gpu/GrProcessorStage.h
|
| diff --git a/include/gpu/GrEffectStage.h b/include/gpu/GrProcessorStage.h
|
| similarity index 71%
|
| rename from include/gpu/GrEffectStage.h
|
| rename to include/gpu/GrProcessorStage.h
|
| index b42d309d4b24c91e893a308a684c613c53a73a07..1485ca7cd197805a301f3bb7c402e9f3dc84c4b6 100644
|
| --- a/include/gpu/GrEffectStage.h
|
| +++ b/include/gpu/GrProcessorStage.h
|
| @@ -8,12 +8,13 @@
|
|
|
|
|
|
|
| -#ifndef GrEffectStage_DEFINED
|
| -#define GrEffectStage_DEFINED
|
| +#ifndef GrProcessorStage_DEFINED
|
| +#define GrProcessorStage_DEFINED
|
|
|
| -#include "GrBackendEffectFactory.h"
|
| +#include "GrBackendProcessorFactory.h"
|
| #include "GrCoordTransform.h"
|
| -#include "GrEffect.h"
|
| +#include "GrProcessor.h"
|
| +#include "GrGeometryProcessor.h"
|
| #include "GrProgramElementRef.h"
|
| #include "SkMatrix.h"
|
| #include "SkShader.h"
|
| @@ -23,27 +24,27 @@
|
| // is immutable, and only owns pending execution refs. This requries removing the common base
|
| // class from GrDrawState and GrOptDrawState called GrRODrawState and converting to GrOptDrawState
|
| // when draws are enqueued in the GrInOrderDrawBuffer.
|
| -class GrEffectStage {
|
| +class GrProcessorStage {
|
| public:
|
| - explicit GrEffectStage(const GrEffect* effect)
|
| - : fEffect(SkRef(effect)) {
|
| + explicit GrProcessorStage(const GrProcessor* proc)
|
| + : fProc(SkRef(proc)) {
|
| fCoordChangeMatrixSet = false;
|
| }
|
|
|
| - GrEffectStage(const GrEffectStage& other) {
|
| + GrProcessorStage(const GrProcessorStage& other) {
|
| fCoordChangeMatrixSet = other.fCoordChangeMatrixSet;
|
| if (other.fCoordChangeMatrixSet) {
|
| fCoordChangeMatrix = other.fCoordChangeMatrix;
|
| }
|
| - fEffect.initAndRef(other.fEffect);
|
| + fProc.initAndRef(other.fProc);
|
| }
|
|
|
| - static bool AreCompatible(const GrEffectStage& a, const GrEffectStage& b,
|
| + static bool AreCompatible(const GrProcessorStage& a, const GrProcessorStage& b,
|
| bool usingExplicitLocalCoords) {
|
| - SkASSERT(a.fEffect.get());
|
| - SkASSERT(b.fEffect.get());
|
| + SkASSERT(a.fProc.get());
|
| + SkASSERT(b.fProc.get());
|
|
|
| - if (!a.getEffect()->isEqual(*b.getEffect())) {
|
| + if (!a.getProcessor()->isEqual(*b.getProcessor())) {
|
| return false;
|
| }
|
|
|
| @@ -87,7 +88,7 @@ public:
|
| SkMatrix fCoordChangeMatrix;
|
| SkDEBUGCODE(mutable uint32_t fEffectUniqueID;)
|
|
|
| - friend class GrEffectStage;
|
| + friend class GrProcessorStage;
|
| };
|
|
|
| /**
|
| @@ -102,7 +103,7 @@ public:
|
| savedCoordChange->fCoordChangeMatrix = fCoordChangeMatrix;
|
| }
|
| SkASSERT(SK_InvalidUniqueID == savedCoordChange->fEffectUniqueID);
|
| - SkDEBUGCODE(savedCoordChange->fEffectUniqueID = fEffect->getUniqueID();)
|
| + SkDEBUGCODE(savedCoordChange->fEffectUniqueID = fProc->getUniqueID();)
|
| }
|
|
|
| /**
|
| @@ -113,12 +114,12 @@ public:
|
| if (fCoordChangeMatrixSet) {
|
| fCoordChangeMatrix = savedCoordChange.fCoordChangeMatrix;
|
| }
|
| - SkASSERT(savedCoordChange.fEffectUniqueID == fEffect->getUniqueID());
|
| + SkASSERT(savedCoordChange.fEffectUniqueID == fProc->getUniqueID());
|
| SkDEBUGCODE(savedCoordChange.fEffectUniqueID = SK_InvalidUniqueID);
|
| }
|
|
|
| /**
|
| - * Gets the matrix representing all changes of coordinate system since the GrEffect was
|
| + * Gets the matrix representing all changes of coordinate system since the GrProcessor was
|
| * installed in the stage.
|
| */
|
| const SkMatrix& getCoordChangeMatrix() const {
|
| @@ -130,7 +131,7 @@ public:
|
| }
|
|
|
| bool isPerspectiveCoordTransform(int matrixIndex, bool useExplicitLocalCoords) const {
|
| - const GrCoordTransform& coordTransform = this->getEffect()->coordTransform(matrixIndex);
|
| + const GrCoordTransform& coordTransform = this->getProcessor()->coordTransform(matrixIndex);
|
| SkMatrix::TypeMask type0 = coordTransform.getMatrix().getType();
|
| SkMatrix::TypeMask type1 = SkMatrix::kIdentity_Mask;
|
| if (kLocal_GrCoordSet == coordTransform.sourceCoords()) {
|
| @@ -146,14 +147,32 @@ public:
|
| }
|
| }
|
|
|
| - const GrEffect* getEffect() const { return fEffect.get(); }
|
| + const GrProcessor* getProcessor() const { return fProc.get(); }
|
|
|
| - void convertToPendingExec() { fEffect.convertToPendingExec(); }
|
| + void convertToPendingExec() { fProc.convertToPendingExec(); }
|
|
|
| private:
|
| - bool fCoordChangeMatrixSet;
|
| - SkMatrix fCoordChangeMatrix;
|
| - GrProgramElementRef<const GrEffect> fEffect;
|
| + bool fCoordChangeMatrixSet;
|
| + SkMatrix fCoordChangeMatrix;
|
| + GrProgramElementRef<const GrProcessor> fProc;
|
| +};
|
| +
|
| +class GrFragmentStage : public GrProcessorStage {
|
| +public:
|
| + GrFragmentStage(const GrFragmentProcessor* fp) : GrProcessorStage(fp) {}
|
| +
|
| + const GrFragmentProcessor* getFragmentProcessor() const {
|
| + return static_cast<const GrFragmentProcessor*>(this->getProcessor());
|
| + }
|
| +};
|
| +
|
| +class GrGeometryStage : public GrProcessorStage {
|
| +public:
|
| + GrGeometryStage(const GrGeometryProcessor* gp) : GrProcessorStage(gp) {}
|
| +
|
| + const GrGeometryProcessor* getGeometryProcessor() const {
|
| + return static_cast<const GrGeometryProcessor*>(this->getProcessor());
|
| + }
|
| };
|
|
|
| #endif
|
|
|