Flutter Engine
The Flutter Engine
Public Member Functions | Public Attributes | List of all members
GrShaderCaps Struct Reference

#include <GrShaderCaps.h>

Inheritance diagram for GrShaderCaps:
SkSL::ShaderCaps

Public Member Functions

 GrShaderCaps ()
 
void dumpJSON (SkJSONWriter *) const
 
const char * noperspectiveInterpolationExtensionString () const
 
const char * sampleVariablesExtensionString () const
 
void applyOptionsOverrides (const GrContextOptions &options)
 
- Public Member Functions inherited from SkSL::ShaderCaps
bool mustEnableAdvBlendEqs () const
 
bool mustDeclareFragmentShaderOutput () const
 
const char * shaderDerivativeExtensionString () const
 
const char * externalTextureExtensionString () const
 
const char * secondExternalTextureExtensionString () const
 
SkSL::Version supportedSkSLVerion () const
 
bool supportsDistanceFieldText () const
 

Public Attributes

bool fDstReadInShaderSupport = false
 
bool fPreferFlatInterpolation = false
 
bool fVertexIDSupport = false
 
bool fNonconstantArrayIndexSupport = false
 
bool fBitManipulationSupport = false
 
bool fHalfIs32Bits = false
 
bool fHasLowFragmentPrecision = false
 
bool fReducedShaderMode = false
 
bool fRequiresLocalOutputColorForFBFetch = false
 
bool fMustObfuscateUniformColor = false
 
bool fMustWriteToFragColor = false
 
bool fAvoidDfDxForGradientsWhenPossible = false
 
const char * fSecondaryOutputExtensionString = nullptr
 
const char * fNoPerspectiveInterpolationExtensionString = nullptr
 
const char * fSampleVariablesExtensionString = nullptr
 
const char * fFBFetchExtensionString = nullptr
 
int fMaxFragmentSamplers = 0
 
- Public Attributes inherited from SkSL::ShaderCaps
SkSL::GLSLGeneration fGLSLGeneration = SkSL::GLSLGeneration::k330
 
bool fDualSourceBlendingSupport = false
 
bool fShaderDerivativeSupport = false
 
bool fExplicitTextureLodSupport = false
 
bool fIntegerSupport = false
 
bool fNonsquareMatrixSupport = false
 
bool fInverseHyperbolicSupport = false
 
bool fFBFetchSupport = false
 
bool fFBFetchNeedsCustomOutput = false
 
bool fUsesPrecisionModifiers = false
 
bool fFlatInterpolationSupport = false
 
bool fNoPerspectiveInterpolationSupport = false
 
bool fSampleMaskSupport = false
 
bool fExternalTextureSupport = false
 
bool fFloatIs32Bits = true
 
bool fInfinitySupport = false
 
bool fBuiltinFMASupport = true
 
bool fBuiltinDeterminantSupport = true
 
bool fCanUseVoidInSequenceExpressions = true
 
bool fCanUseMinAndAbsTogether = true
 
bool fCanUseFractForNegativeValues = true
 
bool fMustForceNegatedAtanParamToFloat = false
 
bool fMustForceNegatedLdexpParamToMultiply = false
 
bool fAtan2ImplementedAsAtanYOverX = false
 
bool fMustDoOpBetweenFloorAndAbs = false
 
bool fMustGuardDivisionEvenAfterExplicitZeroCheck = false
 
bool fCanUseFragCoord = true
 
bool fAddAndTrueToLoopCondition = false
 
bool fUnfoldShortCircuitAsTernary = false
 
bool fEmulateAbsIntFunction = false
 
bool fRewriteDoWhileLoops = false
 
bool fRewriteSwitchStatements = false
 
bool fRemovePowWithConstantExponent = false
 
bool fNoDefaultPrecisionForExternalSamplers = false
 
bool fRewriteMatrixVectorMultiply = false
 
bool fRewriteMatrixComparisons = false
 
bool fRemoveConstFromFunctionParameters = false
 
bool fPerlinNoiseRoundingFix = false
 
bool fMustDeclareFragmentFrontFacing = false
 
const char * fVersionDeclString = ""
 
const char * fShaderDerivativeExtensionString = nullptr
 
const char * fExternalTextureExtensionString = nullptr
 
const char * fSecondExternalTextureExtensionString = nullptr
 
const char * fFBFetchColorName = nullptr
 
const char * fFloatBufferArrayName = nullptr
 
AdvBlendEqInteraction fAdvBlendEqInteraction = kNotSupported_AdvBlendEqInteraction
 

Additional Inherited Members

- Public Types inherited from SkSL::ShaderCaps
enum  AdvBlendEqInteraction { kNotSupported_AdvBlendEqInteraction , kAutomatic_AdvBlendEqInteraction , kGeneralEnable_AdvBlendEqInteraction , kLast_AdvBlendEqInteraction = kGeneralEnable_AdvBlendEqInteraction }
 

Detailed Description

Definition at line 17 of file GrShaderCaps.h.

Constructor & Destructor Documentation

◆ GrShaderCaps()

GrShaderCaps::GrShaderCaps ( )
inline

Definition at line 18 of file GrShaderCaps.h.

18{}

Member Function Documentation

◆ applyOptionsOverrides()

void GrShaderCaps::applyOptionsOverrides ( const GrContextOptions options)

Definition at line 91 of file GrShaderCaps.cpp.

91 {
92 if (options.fDisableDriverCorrectnessWorkarounds) {
116 }
117 if (options.fReducedShaderVariations) {
118 fReducedShaderMode = true;
119 }
120#if defined(GR_TEST_UTILS)
121 if (options.fSuppressDualSourceBlending) {
123 }
124 if (options.fSuppressFramebufferFetch) {
125 fFBFetchSupport = false;
126 }
127#endif
128}
const char * options
#define SkASSERT(cond)
Definition: SkAssert.h:116
bool fMustObfuscateUniformColor
Definition: GrShaderCaps.h:51
bool fRequiresLocalOutputColorForFBFetch
Definition: GrShaderCaps.h:49
bool fMustWriteToFragColor
Definition: GrShaderCaps.h:54
bool fReducedShaderMode
Definition: GrShaderCaps.h:46
bool fMustGuardDivisionEvenAfterExplicitZeroCheck
Definition: SkSLUtil.h:123
bool fRewriteMatrixComparisons
Definition: SkSLUtil.h:142
bool fMustForceNegatedAtanParamToFloat
Definition: SkSLUtil.h:113
bool fPerlinNoiseRoundingFix
Definition: SkSLUtil.h:147
bool fFBFetchSupport
Definition: SkSLUtil.h:93
bool fDualSourceBlendingSupport
Definition: SkSLUtil.h:84
bool fEmulateAbsIntFunction
Definition: SkSLUtil.h:131
bool fMustDeclareFragmentFrontFacing
Definition: SkSLUtil.h:151
bool fCanUseVoidInSequenceExpressions
Definition: SkSLUtil.h:110
bool fUnfoldShortCircuitAsTernary
Definition: SkSLUtil.h:130
bool fRemovePowWithConstantExponent
Definition: SkSLUtil.h:134
bool fRewriteMatrixVectorMultiply
Definition: SkSLUtil.h:140
bool fRewriteDoWhileLoops
Definition: SkSLUtil.h:132
bool fRewriteSwitchStatements
Definition: SkSLUtil.h:133
bool fAddAndTrueToLoopCondition
Definition: SkSLUtil.h:127
bool fMustDoOpBetweenFloorAndAbs
Definition: SkSLUtil.h:120
bool fMustForceNegatedLdexpParamToMultiply
Definition: SkSLUtil.h:114
bool fCanUseFractForNegativeValues
Definition: SkSLUtil.h:112
bool fCanUseFragCoord
Definition: SkSLUtil.h:125
bool fNoDefaultPrecisionForExternalSamplers
Definition: SkSLUtil.h:137
bool fAtan2ImplementedAsAtanYOverX
Definition: SkSLUtil.h:116
bool fCanUseMinAndAbsTogether
Definition: SkSLUtil.h:111

◆ dumpJSON()

void GrShaderCaps::dumpJSON ( SkJSONWriter writer) const

Definition at line 88 of file GrShaderCaps.cpp.

88{ }

◆ noperspectiveInterpolationExtensionString()

const char * GrShaderCaps::noperspectiveInterpolationExtensionString ( ) const
inline

Definition at line 22 of file GrShaderCaps.h.

22 {
25 }
const char * fNoPerspectiveInterpolationExtensionString
Definition: GrShaderCaps.h:66
bool fNoPerspectiveInterpolationSupport
Definition: SkSLUtil.h:97

◆ sampleVariablesExtensionString()

const char * GrShaderCaps::sampleVariablesExtensionString ( ) const
inline

Definition at line 27 of file GrShaderCaps.h.

27 {
30 }
const char * fSampleVariablesExtensionString
Definition: GrShaderCaps.h:67
bool fSampleMaskSupport
Definition: SkSLUtil.h:98

Member Data Documentation

◆ fAvoidDfDxForGradientsWhenPossible

bool GrShaderCaps::fAvoidDfDxForGradientsWhenPossible = false

Definition at line 58 of file GrShaderCaps.h.

◆ fBitManipulationSupport

bool GrShaderCaps::fBitManipulationSupport = false

Definition at line 41 of file GrShaderCaps.h.

◆ fDstReadInShaderSupport

bool GrShaderCaps::fDstReadInShaderSupport = false

Definition at line 34 of file GrShaderCaps.h.

◆ fFBFetchExtensionString

const char* GrShaderCaps::fFBFetchExtensionString = nullptr

Definition at line 69 of file GrShaderCaps.h.

◆ fHalfIs32Bits

bool GrShaderCaps::fHalfIs32Bits = false

Definition at line 42 of file GrShaderCaps.h.

◆ fHasLowFragmentPrecision

bool GrShaderCaps::fHasLowFragmentPrecision = false

Definition at line 43 of file GrShaderCaps.h.

◆ fMaxFragmentSamplers

int GrShaderCaps::fMaxFragmentSamplers = 0

Definition at line 71 of file GrShaderCaps.h.

◆ fMustObfuscateUniformColor

bool GrShaderCaps::fMustObfuscateUniformColor = false

Definition at line 51 of file GrShaderCaps.h.

◆ fMustWriteToFragColor

bool GrShaderCaps::fMustWriteToFragColor = false

Definition at line 54 of file GrShaderCaps.h.

◆ fNonconstantArrayIndexSupport

bool GrShaderCaps::fNonconstantArrayIndexSupport = false

Definition at line 39 of file GrShaderCaps.h.

◆ fNoPerspectiveInterpolationExtensionString

const char* GrShaderCaps::fNoPerspectiveInterpolationExtensionString = nullptr

Definition at line 66 of file GrShaderCaps.h.

◆ fPreferFlatInterpolation

bool GrShaderCaps::fPreferFlatInterpolation = false

Definition at line 35 of file GrShaderCaps.h.

◆ fReducedShaderMode

bool GrShaderCaps::fReducedShaderMode = false

Definition at line 46 of file GrShaderCaps.h.

◆ fRequiresLocalOutputColorForFBFetch

bool GrShaderCaps::fRequiresLocalOutputColorForFBFetch = false

Definition at line 49 of file GrShaderCaps.h.

◆ fSampleVariablesExtensionString

const char* GrShaderCaps::fSampleVariablesExtensionString = nullptr

Definition at line 67 of file GrShaderCaps.h.

◆ fSecondaryOutputExtensionString

const char* GrShaderCaps::fSecondaryOutputExtensionString = nullptr

Definition at line 64 of file GrShaderCaps.h.

◆ fVertexIDSupport

bool GrShaderCaps::fVertexIDSupport = false

Definition at line 36 of file GrShaderCaps.h.


The documentation for this struct was generated from the following files: