Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Friends | List of all members
SkColorSpaceXformColorFilter Class Referencefinal

#include <SkColorSpaceXformColorFilter.h>

Inheritance diagram for SkColorSpaceXformColorFilter:
SkColorFilterBase SkColorFilter SkFlattenable SkRefCnt SkRefCntBase

Public Member Functions

 SkColorSpaceXformColorFilter (sk_sp< SkColorSpace > src, sk_sp< SkColorSpace > dst)
 
bool appendStages (const SkStageRec &rec, bool shaderIsOpaque) const override
 
SkColorFilterBase::Type type () const override
 
sk_sp< SkColorSpacesrc () const
 
sk_sp< SkColorSpacedst () const
 
- Public Member Functions inherited from SkColorFilterBase
virtual bool onIsAlphaUnchanged () const
 
bool affectsTransparentBlack () const
 
virtual SkRuntimeEffectasRuntimeEffect () const
 
SkFlattenable::Type getFlattenableType () const override
 
virtual SkPMColor4f onFilterColor4f (const SkPMColor4f &color, SkColorSpace *dstCS) const
 
- Public Member Functions inherited from SkColorFilter
bool asAColorMode (SkColor *color, SkBlendMode *mode) const
 
bool asAColorMatrix (float matrix[20]) const
 
bool isAlphaUnchanged () const
 
SkColor filterColor (SkColor) const
 
SkColor4f filterColor4f (const SkColor4f &srcColor, SkColorSpace *srcCS, SkColorSpace *dstCS) const
 
sk_sp< SkColorFiltermakeComposed (sk_sp< SkColorFilter > inner) const
 
sk_sp< SkColorFiltermakeWithWorkingColorSpace (sk_sp< SkColorSpace >) const
 
- Public Member Functions inherited from SkFlattenable
 SkFlattenable ()
 
virtual Factory getFactory () const =0
 
virtual const char * getTypeName () const =0
 
sk_sp< SkDataserialize (const SkSerialProcs *=nullptr) const
 
size_t serialize (void *memory, size_t memory_size, const SkSerialProcs *=nullptr) const
 
- Public Member Functions inherited from SkRefCntBase
 SkRefCntBase ()
 
virtual ~SkRefCntBase ()
 
bool unique () const
 
void ref () const
 
void unref () const
 

Protected Member Functions

void flatten (SkWriteBuffer &buffer) const override
 
- Protected Member Functions inherited from SkColorFilterBase
 SkColorFilterBase ()
 
virtual bool onAsAColorMatrix (float[20]) const
 
virtual bool onAsAColorMode (SkColor *color, SkBlendMode *bmode) const
 

Friends

class SkColorFilter
 

Additional Inherited Members

- Public Types inherited from SkColorFilterBase
enum class  Type { kNoop , M }
 
- Public Types inherited from SkFlattenable
enum  Type {
  kSkColorFilter_Type , kSkBlender_Type , kSkDrawable_Type , kSkDrawLooper_Type ,
  kSkImageFilter_Type , kSkMaskFilter_Type , kSkPathEffect_Type , kSkShader_Type
}
 
typedef sk_sp< SkFlattenable >(* Factory) (SkReadBuffer &)
 
- Static Public Member Functions inherited from SkColorFilterBase
static SkFlattenable::Type GetFlattenableType ()
 
static sk_sp< SkColorFilterDeserialize (const void *data, size_t size, const SkDeserialProcs *procs=nullptr)
 
- Static Public Member Functions inherited from SkColorFilter
static sk_sp< SkColorFilterDeserialize (const void *data, size_t size, const SkDeserialProcs *procs=nullptr)
 
- Static Public Member Functions inherited from SkFlattenable
static Factory NameToFactory (const char name[])
 
static const char * FactoryToName (Factory)
 
static void Register (const char name[], Factory)
 
static sk_sp< SkFlattenableDeserialize (Type, const void *data, size_t length, const SkDeserialProcs *procs=nullptr)
 

Detailed Description

Definition at line 20 of file SkColorSpaceXformColorFilter.h.

Constructor & Destructor Documentation

◆ SkColorSpaceXformColorFilter()

SkColorSpaceXformColorFilter::SkColorSpaceXformColorFilter ( sk_sp< SkColorSpace src,
sk_sp< SkColorSpace dst 
)

Definition at line 27 of file SkColorSpaceXformColorFilter.cpp.

29 : fSrc(std::move(src))
30 , fDst(std::move(dst))
31 , fSteps( // We handle premul/unpremul separately, so here just always upm->upm.
32 fSrc.get(),
34 fDst.get(),
kUnpremul_SkAlphaType
sk_sp< SkColorSpace > dst() const
sk_sp< SkColorSpace > src() const
T * get() const
Definition SkRefCnt.h:303

Member Function Documentation

◆ appendStages()

bool SkColorSpaceXformColorFilter::appendStages ( const SkStageRec rec,
bool  shaderIsOpaque 
) const
overridevirtual

Implements SkColorFilterBase.

Definition at line 37 of file SkColorSpaceXformColorFilter.cpp.

37 {
38 if (!shaderIsOpaque) {
39 rec.fPipeline->append(SkRasterPipelineOp::unpremul);
40 }
41
42 fSteps.apply(rec.fPipeline);
43
44 if (!shaderIsOpaque) {
45 rec.fPipeline->append(SkRasterPipelineOp::premul);
46 }
47 return true;
48}
void append(SkRasterPipelineOp, void *=nullptr)
void apply(float rgba[4]) const
SkRasterPipeline * fPipeline

◆ dst()

sk_sp< SkColorSpace > SkColorSpaceXformColorFilter::dst ( ) const
inline

Definition at line 31 of file SkColorSpaceXformColorFilter.h.

31{ return fDst; }

◆ flatten()

void SkColorSpaceXformColorFilter::flatten ( SkWriteBuffer ) const
overrideprotectedvirtual

Override this if your subclass needs to record data that it will need to recreate itself from its CreateProc (returned by getFactory()).

DEPRECATED public : will move to protected ... use serialize() instead

Reimplemented from SkFlattenable.

Definition at line 50 of file SkColorSpaceXformColorFilter.cpp.

50 {
51 buffer.writeDataAsByteArray(fSrc->serialize().get());
52 buffer.writeDataAsByteArray(fDst->serialize().get());
53}
sk_sp< SkData > serialize() const
static const uint8_t buffer[]

◆ src()

sk_sp< SkColorSpace > SkColorSpaceXformColorFilter::src ( ) const
inline

Definition at line 30 of file SkColorSpaceXformColorFilter.h.

30{ return fSrc; }

◆ type()

SkColorFilterBase::Type SkColorSpaceXformColorFilter::type ( ) const
inlineoverridevirtual

Implements SkColorFilterBase.

Definition at line 26 of file SkColorSpaceXformColorFilter.h.

26 {
27 return SkColorFilterBase::Type::kColorSpaceXform;
28 }

Friends And Related Symbol Documentation

◆ SkColorFilter

friend class SkColorFilter
friend

Definition at line 45 of file SkColorSpaceXformColorFilter.h.


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