Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Protected Member Functions | Private Member Functions | Friends | List of all members
skgpu::graphite::PrecompileBase Class Referenceabstract

#include <Precompile.h>

Inheritance diagram for skgpu::graphite::PrecompileBase:
SkRefCnt SkRefCntBase skgpu::graphite::PrecompileBlender skgpu::graphite::PrecompileColorFilter skgpu::graphite::PrecompileMaskFilter skgpu::graphite::PrecompileShader skgpu::graphite::PrecompileBlendModeBlender skgpu::graphite::PrecompileBlendModeColorFilter skgpu::graphite::PrecompileColorSpaceXformColorFilter skgpu::graphite::PrecompileComposeColorFilter skgpu::graphite::PrecompileGaussianColorFilter skgpu::graphite::PrecompileMatrixColorFilter skgpu::graphite::PrecompileTableColorFilter skgpu::graphite::PrecompileWithWorkingFormatColorFilter skgpu::graphite::PrecompileBlurMaskFilter skgpu::graphite::PrecompileBlendShader skgpu::graphite::PrecompileBlurShader skgpu::graphite::PrecompileCTMShader skgpu::graphite::PrecompileColorFilterShader skgpu::graphite::PrecompileColorShader skgpu::graphite::PrecompileCoordClampShader skgpu::graphite::PrecompileEmptyShader skgpu::graphite::PrecompileGradientShader skgpu::graphite::PrecompileImageShader skgpu::graphite::PrecompileLocalMatrixShader skgpu::graphite::PrecompilePerlinNoiseShader skgpu::graphite::PrecompileWorkingColorSpaceShader skgpu::graphite::PrecompileYUVImageShader

Public Types

enum class  Type {
  kBlender , kColorFilter , kImageFilter , kMaskFilter ,
  kShader
}
 

Public Member Functions

 PrecompileBase (Type type)
 
Type type () const
 
virtual int numIntrinsicCombinations () const
 
virtual int numChildCombinations () const
 
int numCombinations () const
 
PrecompileBasePriv priv ()
 
const PrecompileBasePriv priv () const
 
- Public Member Functions inherited from SkRefCntBase
 SkRefCntBase ()
 
virtual ~SkRefCntBase ()
 
bool unique () const
 
void ref () const
 
void unref () const
 

Static Protected Member Functions

template<typename T >
static std::pair< sk_sp< T >, intSelectOption (SkSpan< const sk_sp< T > > options, int desiredOption)
 
template<typename T >
static void AddToKey (const KeyContext &, PaintParamsKeyBuilder *, PipelineDataGatherer *, SkSpan< const sk_sp< T > > options, int desiredOption)
 

Private Member Functions

virtual bool isALocalMatrixShader () const
 
virtual void addToKey (const KeyContext &, PaintParamsKeyBuilder *, PipelineDataGatherer *, int desiredCombination) const =0
 

Friends

class PaintOptions
 
class PrecompileBasePriv
 

Detailed Description

Definition at line 40 of file Precompile.h.

Member Enumeration Documentation

◆ Type

Enumerator
kBlender 
kColorFilter 
kImageFilter 
kMaskFilter 
kShader 

Definition at line 42 of file Precompile.h.

Constructor & Destructor Documentation

◆ PrecompileBase()

skgpu::graphite::PrecompileBase::PrecompileBase ( Type  type)
inline

Definition at line 51 of file Precompile.h.

51: fType(type) {}

Member Function Documentation

◆ addToKey()

virtual void skgpu::graphite::PrecompileBase::addToKey ( const KeyContext ,
PaintParamsKeyBuilder ,
PipelineDataGatherer ,
int  desiredCombination 
) const
privatepure virtual

◆ AddToKey()

template<typename T >
void skgpu::graphite::PrecompileBase::AddToKey ( const KeyContext keyContext,
PaintParamsKeyBuilder builder,
PipelineDataGatherer gatherer,
SkSpan< const sk_sp< T > >  options,
int  desiredOption 
)
staticprotected

Definition at line 111 of file Precompile.h.

115 {
116 auto [option, childOptions] = SelectOption(options, desiredOption);
117 if (option) {
118 option->priv().addToKey(keyContext, builder, gatherer, childOptions);
119 }
120}
const char * options
static std::pair< sk_sp< T >, int > SelectOption(SkSpan< const sk_sp< T > > options, int desiredOption)
Definition Precompile.h:99

◆ isALocalMatrixShader()

virtual bool skgpu::graphite::PrecompileBase::isALocalMatrixShader ( ) const
inlineprivatevirtual

Reimplemented in skgpu::graphite::PrecompileLocalMatrixShader.

Definition at line 86 of file Precompile.h.

86{ return false; }

◆ numChildCombinations()

virtual int skgpu::graphite::PrecompileBase::numChildCombinations ( ) const
inlinevirtual

◆ numCombinations()

int skgpu::graphite::PrecompileBase::numCombinations ( ) const
inline

Definition at line 60 of file Precompile.h.

60 {
61 return this->numIntrinsicCombinations() * this->numChildCombinations();
62 }
virtual int numChildCombinations() const
Definition Precompile.h:58
virtual int numIntrinsicCombinations() const
Definition Precompile.h:57

◆ numIntrinsicCombinations()

virtual int skgpu::graphite::PrecompileBase::numIntrinsicCombinations ( ) const
inlinevirtual

◆ priv() [1/2]

PrecompileBasePriv skgpu::graphite::PrecompileBase::priv ( )
inline

Definition at line 47 of file PrecompileBasePriv.h.

47{ return PrecompileBasePriv(this); }

◆ priv() [2/2]

const PrecompileBasePriv skgpu::graphite::PrecompileBase::priv ( ) const
inline

Definition at line 50 of file PrecompileBasePriv.h.

50 {
51 return PrecompileBasePriv(const_cast<PrecompileBase *>(this));
52}

◆ SelectOption()

template<typename T >
std::pair< sk_sp< T >, int > skgpu::graphite::PrecompileBase::SelectOption ( SkSpan< const sk_sp< T > >  options,
int  desiredOption 
)
staticprotected

Definition at line 99 of file Precompile.h.

100 {
101 for (const sk_sp<T>& option : options) {
102 if (desiredOption < (option ? option->numCombinations() : 1)) {
103 return { option, desiredOption };
104 }
105 desiredOption -= option ? option->numCombinations() : 1;
106 }
107 return { nullptr, 0 };
108}

◆ type()

Type skgpu::graphite::PrecompileBase::type ( ) const
inline

Definition at line 53 of file Precompile.h.

53{ return fType; }

Friends And Related Symbol Documentation

◆ PaintOptions

friend class PaintOptions
friend

Definition at line 83 of file Precompile.h.

◆ PrecompileBasePriv

friend class PrecompileBasePriv
friend

Definition at line 84 of file Precompile.h.


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