Index: include/gpu/effects/GrPorterDuffXferProcessor.h |
diff --git a/include/gpu/effects/GrPorterDuffXferProcessor.h b/include/gpu/effects/GrPorterDuffXferProcessor.h |
index e47ec1e9048b9d3cd4de3863362a69cdcfce7853..80e8ef65735ab48ff4913c719adc52f25fc35e7f 100644 |
--- a/include/gpu/effects/GrPorterDuffXferProcessor.h |
+++ b/include/gpu/effects/GrPorterDuffXferProcessor.h |
@@ -12,105 +12,8 @@ |
#include "GrXferProcessor.h" |
#include "SkXfermode.h" |
-class GrDrawTargetCaps; |
class GrProcOptInfo; |
-class GrPorterDuffXferProcessor : public GrXferProcessor { |
-public: |
- static GrXferProcessor* Create(GrBlendCoeff srcBlend, GrBlendCoeff dstBlend, |
- GrColor constant, const GrDeviceCoordTexture* dstCopy, |
- bool willReadDstColor) { |
- return SkNEW_ARGS(GrPorterDuffXferProcessor, (srcBlend, dstBlend, constant, dstCopy, |
- willReadDstColor)); |
- } |
- |
- ~GrPorterDuffXferProcessor() SK_OVERRIDE; |
- |
- const char* name() const SK_OVERRIDE { return "Porter Duff"; } |
- |
- GrGLXferProcessor* createGLInstance() const SK_OVERRIDE; |
- |
- bool hasSecondaryOutput() const SK_OVERRIDE; |
- |
- /////////////////////////////////////////////////////////////////////////// |
- /// @name Stage Output Types |
- //// |
- |
- enum PrimaryOutputType { |
- kNone_PrimaryOutputType, |
- kColor_PrimaryOutputType, |
- kCoverage_PrimaryOutputType, |
- // Modulate color and coverage, write result as the color output. |
- kModulate_PrimaryOutputType, |
- }; |
- |
- enum SecondaryOutputType { |
- // There is no secondary output |
- kNone_SecondaryOutputType, |
- // Writes coverage as the secondary output. Only set if dual source blending is supported |
- // and primary output is kModulate. |
- kCoverage_SecondaryOutputType, |
- // Writes coverage * (1 - colorA) as the secondary output. Only set if dual source blending |
- // is supported and primary output is kModulate. |
- kCoverageISA_SecondaryOutputType, |
- // Writes coverage * (1 - colorRGBA) as the secondary output. Only set if dual source |
- // blending is supported and primary output is kModulate. |
- kCoverageISC_SecondaryOutputType, |
- |
- kSecondaryOutputTypeCnt, |
- }; |
- |
- PrimaryOutputType primaryOutputType() const { return fPrimaryOutputType; } |
- SecondaryOutputType secondaryOutputType() const { return fSecondaryOutputType; } |
- |
- GrXferProcessor::OptFlags getOptimizations(const GrProcOptInfo& colorPOI, |
- const GrProcOptInfo& coveragePOI, |
- bool doesStencilWrite, |
- GrColor* overrideColor, |
- const GrDrawTargetCaps& caps) SK_OVERRIDE; |
- |
- void getBlendInfo(GrXferProcessor::BlendInfo* blendInfo) const SK_OVERRIDE { |
- blendInfo->fSrcBlend = fSrcBlend; |
- blendInfo->fDstBlend = fDstBlend; |
- blendInfo->fBlendConstant = fBlendConstant; |
- } |
- |
-private: |
- GrPorterDuffXferProcessor(GrBlendCoeff srcBlend, GrBlendCoeff dstBlend, GrColor constant, |
- const GrDeviceCoordTexture* dstCopy, bool willReadDstColor); |
- |
- void onGetGLProcessorKey(const GrGLCaps& caps, GrProcessorKeyBuilder* b) const SK_OVERRIDE; |
- |
- bool onIsEqual(const GrXferProcessor& xpBase) const SK_OVERRIDE { |
- const GrPorterDuffXferProcessor& xp = xpBase.cast<GrPorterDuffXferProcessor>(); |
- if (fSrcBlend != xp.fSrcBlend || |
- fDstBlend != xp.fDstBlend || |
- fBlendConstant != xp.fBlendConstant || |
- fPrimaryOutputType != xp.fPrimaryOutputType || |
- fSecondaryOutputType != xp.fSecondaryOutputType) { |
- return false; |
- } |
- return true; |
- } |
- |
- GrXferProcessor::OptFlags internalGetOptimizations(const GrProcOptInfo& colorPOI, |
- const GrProcOptInfo& coveragePOI, |
- bool doesStencilWrite); |
- |
- void calcOutputTypes(GrXferProcessor::OptFlags blendOpts, const GrDrawTargetCaps& caps, |
- bool hasSolidCoverage); |
- |
- GrBlendCoeff fSrcBlend; |
- GrBlendCoeff fDstBlend; |
- GrColor fBlendConstant; |
- PrimaryOutputType fPrimaryOutputType; |
- SecondaryOutputType fSecondaryOutputType; |
- |
- typedef GrXferProcessor INHERITED; |
-}; |
- |
-/////////////////////////////////////////////////////////////////////////////// |
- |
class GrPorterDuffXPFactory : public GrXPFactory { |
public: |
static GrXPFactory* Create(SkXfermode::Mode mode); |