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

#include <SkTableColorFilter.h>

Inheritance diagram for SkTableColorFilter:
SkColorFilterBase SkColorFilter SkFlattenable SkRefCnt SkRefCntBase

Public Member Functions

 SkTableColorFilter (sk_sp< SkColorTable > table)
 
SkColorFilterBase::Type type () const override
 
bool appendStages (const SkStageRec &rec, bool shaderIsOpaque) const override
 
void flatten (SkWriteBuffer &buffer) const override
 
const SkBitmapbitmap () 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
 

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)
 
- Protected Member Functions inherited from SkColorFilterBase
 SkColorFilterBase ()
 
virtual bool onAsAColorMatrix (float[20]) const
 
virtual bool onAsAColorMode (SkColor *color, SkBlendMode *bmode) const
 

Detailed Description

Definition at line 22 of file SkTableColorFilter.h.

Constructor & Destructor Documentation

◆ SkTableColorFilter()

SkTableColorFilter::SkTableColorFilter ( sk_sp< SkColorTable table)
inline

Definition at line 24 of file SkTableColorFilter.h.

24 : fTable(table) {
25 SkASSERT(fTable);
26 }
#define SkASSERT(cond)
Definition SkAssert.h:116
SI F table(const skcms_Curve *curve, F v)

Member Function Documentation

◆ appendStages()

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

Implements SkColorFilterBase.

Definition at line 25 of file SkTableColorFilter.cpp.

25 {
27 if (!shaderIsOpaque) {
28 p->append(SkRasterPipelineOp::unpremul);
29 }
30
32 tables->a = fTable->alphaTable();
33 tables->r = fTable->redTable();
34 tables->g = fTable->greenTable();
35 tables->b = fTable->blueTable();
36 p->append(SkRasterPipelineOp::byte_tables, tables);
37
38 bool definitelyOpaque = shaderIsOpaque && tables->a[0xff] == 0xff;
39 if (!definitelyOpaque) {
40 p->append(SkRasterPipelineOp::premul);
41 }
42 return true;
43}
auto make(Ctor &&ctor) -> decltype(ctor(nullptr))
const uint8_t * redTable() const
const uint8_t * alphaTable() const
const uint8_t * greenTable() const
const uint8_t * blueTable() const
SkRasterPipeline * fPipeline
SkArenaAlloc * fAlloc

◆ bitmap()

const SkBitmap & SkTableColorFilter::bitmap ( ) const
inline

Definition at line 34 of file SkTableColorFilter.h.

34{ return fTable->bitmap(); }

◆ flatten()

void SkTableColorFilter::flatten ( SkWriteBuffer ) const
overridevirtual

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 45 of file SkTableColorFilter.cpp.

45 {
46 fTable->flatten(buffer);
47}
void flatten(SkWriteBuffer &buffer) const
static const uint8_t buffer[]

◆ type()

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

Implements SkColorFilterBase.

Definition at line 28 of file SkTableColorFilter.h.

28{ return SkColorFilterBase::Type::kTable; }

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