| 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);
|
|
|