Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | List of all members
skgpu::graphite::PrecompileGradientShader Class Reference
Inheritance diagram for skgpu::graphite::PrecompileGradientShader:
skgpu::graphite::PrecompileShader skgpu::graphite::PrecompileBase SkRefCnt SkRefCntBase

Public Member Functions

 PrecompileGradientShader (SkShaderBase::GradientType type)
 
- Public Member Functions inherited from skgpu::graphite::PrecompileShader
 PrecompileShader ()
 
virtual bool isConstant (int desiredCombination) const
 
sk_sp< PrecompileShadermakeWithLocalMatrix ()
 
sk_sp< PrecompileShadermakeWithColorFilter (sk_sp< PrecompileColorFilter >)
 
sk_sp< PrecompileShadermakeWithWorkingColorSpace (sk_sp< SkColorSpace >)
 
sk_sp< PrecompileShadermakeWithCTM ()
 
- Public Member Functions inherited from skgpu::graphite::PrecompileBase
 PrecompileBase (Type type)
 
Type type () 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
 

Private Member Functions

int numIntrinsicCombinations () const override
 
void addToKey (const KeyContext &keyContext, PaintParamsKeyBuilder *builder, PipelineDataGatherer *gatherer, int desiredCombination) const override
 

Additional Inherited Members

- Public Types inherited from skgpu::graphite::PrecompileBase
enum class  Type {
  kBlender , kColorFilter , kImageFilter , kMaskFilter ,
  kShader
}
 
- Static Protected Member Functions inherited from skgpu::graphite::PrecompileBase
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)
 

Detailed Description

Definition at line 563 of file FactoryFunctions.cpp.

Constructor & Destructor Documentation

◆ PrecompileGradientShader()

skgpu::graphite::PrecompileGradientShader::PrecompileGradientShader ( SkShaderBase::GradientType  type)
inline

Definition at line 565 of file FactoryFunctions.cpp.

565: fType(type) {}

Member Function Documentation

◆ addToKey()

void skgpu::graphite::PrecompileGradientShader::addToKey ( const KeyContext keyContext,
PaintParamsKeyBuilder builder,
PipelineDataGatherer gatherer,
int  desiredCombination 
) const
inlineoverrideprivatevirtual

Implements skgpu::graphite::PrecompileBase.

Definition at line 578 of file FactoryFunctions.cpp.

581 {
582 const int intrinsicCombination = desiredCombination / this->numChildCombinations();
583 SkDEBUGCODE(int childCombination = desiredCombination % this->numChildCombinations();)
584 SkASSERT(intrinsicCombination < kNumStopVariants);
585 SkASSERT(childCombination == 0);
586
587 GradientShaderBlocks::GradientData gradData(fType, kStopVariants[intrinsicCombination]);
588
589 constexpr SkAlphaType kAlphaType = kPremul_SkAlphaType;
590 ColorSpaceTransformBlock::ColorSpaceTransformData csData(sk_srgb_singleton(), kAlphaType,
591 sk_srgb_singleton(), kAlphaType);
592
593 Compose(keyContext, builder, gatherer,
594 /* addInnerToKey= */ [&]() -> void {
595 GradientShaderBlocks::AddBlock(keyContext, builder, gatherer, gradData);
596 },
597 /* addOuterToKey= */ [&]() -> void {
598 ColorSpaceTransformBlock::AddBlock(keyContext, builder, gatherer, csData);
599 });
600 }
SkAlphaType
Definition SkAlphaType.h:26
@ kPremul_SkAlphaType
pixel components are premultiplied by alpha
Definition SkAlphaType.h:29
#define SkASSERT(cond)
Definition SkAssert.h:116
SkColorSpace * sk_srgb_singleton()
#define SkDEBUGCODE(...)
Definition SkDebug.h:23
virtual int numChildCombinations() const
Definition Precompile.h:58
void Compose(const KeyContext &keyContext, PaintParamsKeyBuilder *keyBuilder, PipelineDataGatherer *gatherer, AddToKeyFn addInnerToKey, AddToKeyFn addOuterToKey)
static void AddBlock(const KeyContext &, PaintParamsKeyBuilder *, PipelineDataGatherer *, const ColorSpaceTransformData &)
static void AddBlock(const KeyContext &, PaintParamsKeyBuilder *, PipelineDataGatherer *, const GradientData &)

◆ numIntrinsicCombinations()

int skgpu::graphite::PrecompileGradientShader::numIntrinsicCombinations ( ) const
inlineoverrideprivatevirtual

Reimplemented from skgpu::graphite::PrecompileBase.

Definition at line 574 of file FactoryFunctions.cpp.

574 {
575 return kNumStopVariants;
576 }

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