8#ifndef GrGLSLFragmentShaderBuilder_DEFINED
9#define GrGLSLFragmentShaderBuilder_DEFINED
55 char fPadding[4] = {};
99 void enableSecondaryOutput();
100 const char* getPrimaryColorOutputName()
const;
101 const char* getSecondaryColorOutputName()
const;
102 bool primaryColorOutputIsInOut()
const;
107 bool fHasReadDstColorThisStage_DebugOnly =
false;
109 void debugOnly_resetPerStageVerification() {
110 fHasReadDstColorThisStage_DebugOnly =
false;
114 static const char* DeclaredColorOutputName() {
return "sk_FragColor"; }
115 static const char* DeclaredSecondaryColorOutputName() {
return "fsSecondaryColorOut"; }
121 inline static constexpr const char kDstColorName[] =
"_dstColor";
123 bool fPrimaryColorIsInOut =
false;
124 bool fSetupFragPosition =
false;
125 bool fHasSecondaryOutput =
false;
126 bool fHasModifiedSampleMask =
false;
127 bool fForceHighPrecision =
false;
#define GR_MAKE_BITFIELD_CLASS_OPS(X)
GrGLSLFPFragmentBuilder()
virtual const char * dstColor()=0
virtual void forceHighPrecision()=0
@ kInsidePerPrimitiveBranch
void enableAdvancedBlendEquationIfNeeded(skgpu::BlendEquation) override
bool hasSecondaryOutput() const override
void onFinalize() override
const char * dstColor() override
void forceHighPrecision() override
virtual bool hasSecondaryOutput() const =0
GrGLSLXPFragmentBuilder()
virtual const char * dstColor()=0
virtual void enableAdvancedBlendEquationIfNeeded(skgpu::BlendEquation)=0