![]() |
Flutter Engine
The Flutter Engine
|
#include <SkPerlinNoiseShaderImpl.h>
Classes | |
struct | PaintingData |
struct | StitchData |
Public Member Functions | |
SkPerlinNoiseShader (SkPerlinNoiseShaderType type, SkScalar baseFrequencyX, SkScalar baseFrequencyY, int numOctaves, SkScalar seed, const SkISize *tileSize) | |
ShaderType | type () const override |
SkPerlinNoiseShaderType | noiseType () const |
int | numOctaves () const |
bool | stitchTiles () const |
SkISize | tileSize () const |
std::unique_ptr< PaintingData > | getPaintingData () const |
bool | appendStages (const SkStageRec &rec, const SkShaders::MatrixRec &mRec) const override |
![]() | |
~SkShaderBase () override | |
sk_sp< SkShader > | makeInvertAlpha () const |
sk_sp< SkShader > | makeWithCTM (const SkMatrix &) const |
virtual bool | isConstant () const |
virtual ShaderType | type () const =0 |
virtual GradientType | asGradient (GradientInfo *info=nullptr, SkMatrix *localMatrix=nullptr) const |
Context * | makeContext (const ContextRec &, SkArenaAlloc *) const |
bool | asLuminanceColor (SkColor4f *) const |
bool | appendRootStages (const SkStageRec &rec, const SkMatrix &ctm) const |
virtual bool | appendStages (const SkStageRec &, const SkShaders::MatrixRec &) const =0 |
virtual SkImage * | onIsAImage (SkMatrix *, SkTileMode[2]) const |
virtual SkRuntimeEffect * | asRuntimeEffect () const |
Type | getFlattenableType () const override |
virtual sk_sp< SkShader > | makeAsALocalMatrixShader (SkMatrix *localMatrix) const |
![]() | |
virtual bool | isOpaque () const |
SkImage * | isAImage (SkMatrix *localMatrix, SkTileMode xy[2]) const |
bool | isAImage () const |
sk_sp< SkShader > | makeWithLocalMatrix (const SkMatrix &) const |
sk_sp< SkShader > | makeWithColorFilter (sk_sp< SkColorFilter >) const |
sk_sp< SkShader > | makeWithWorkingColorSpace (sk_sp< SkColorSpace >) const |
![]() | |
SkFlattenable () | |
virtual Factory | getFactory () const =0 |
virtual const char * | getTypeName () const =0 |
virtual void | flatten (SkWriteBuffer &) const |
virtual Type | getFlattenableType () const =0 |
sk_sp< SkData > | serialize (const SkSerialProcs *=nullptr) const |
size_t | serialize (void *memory, size_t memory_size, const SkSerialProcs *=nullptr) const |
![]() | |
SkRefCntBase () | |
virtual | ~SkRefCntBase () |
bool | unique () const |
void | ref () const |
void | unref () const |
Static Public Attributes | |
static const int | kMaxOctaves = 255 |
Protected Member Functions | |
void | flatten (SkWriteBuffer &) const override |
![]() | |
SkShaderBase () | |
void | flatten (SkWriteBuffer &) const override |
virtual bool | onAsLuminanceColor (SkColor4f *) const |
Friends | |
void | SkRegisterPerlinNoiseShaderFlattenable () |
Additional Inherited Members | |
![]() | |
enum class | ShaderType { M } |
enum class | GradientType { kNone , M } |
enum | Flags { kOpaqueAlpha_Flag = 1 << 0 } |
![]() | |
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 Type | GetFlattenableType () |
static sk_sp< SkShaderBase > | Deserialize (const void *data, size_t size, const SkDeserialProcs *procs=nullptr) |
static void | RegisterFlattenables () |
static SkMatrix | ConcatLocalMatrices (const SkMatrix &parentLM, const SkMatrix &childLM) |
![]() | |
static Factory | NameToFactory (const char name[]) |
static const char * | FactoryToName (Factory) |
static void | Register (const char name[], Factory) |
static sk_sp< SkFlattenable > | Deserialize (Type, const void *data, size_t length, const SkDeserialProcs *procs=nullptr) |
SkPerlinNoiseShader creates an image using the Perlin turbulence function.
It can produce tileable noise if asked to stitch tiles and provided a tile size. In order to fill a large area with repeating noise, set the stitchTiles flag to true, and render exactly a single tile of noise. Without this flag, the result will contain visible seams between tiles.
The algorithm used is described here : http://www.w3.org/TR/SVG/filters.html#feTurbulenceElement
Definition at line 34 of file SkPerlinNoiseShaderImpl.h.
SkPerlinNoiseShader::SkPerlinNoiseShader | ( | SkPerlinNoiseShaderType | type, |
SkScalar | baseFrequencyX, | ||
SkScalar | baseFrequencyY, | ||
int | numOctaves, | ||
SkScalar | seed, | ||
const SkISize * | tileSize | ||
) |
Definition at line 26 of file SkPerlinNoiseShaderImpl.cpp.
|
overridevirtual |
Adds stages to implement this shader. To ensure that the correct input coords are present in r,g MatrixRec::apply() must be called (unless the shader doesn't require it's input coords). The default impl creates shadercontext and calls that (not very efficient).
Implements SkShaderBase.
Definition at line 83 of file SkPerlinNoiseShaderImpl.cpp.
|
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 73 of file SkPerlinNoiseShaderImpl.cpp.
|
inline |
Definition at line 254 of file SkPerlinNoiseShaderImpl.h.
|
inline |
Definition at line 249 of file SkPerlinNoiseShaderImpl.h.
|
inline |
Definition at line 250 of file SkPerlinNoiseShaderImpl.h.
|
inline |
Definition at line 251 of file SkPerlinNoiseShaderImpl.h.
|
inline |
Definition at line 252 of file SkPerlinNoiseShaderImpl.h.
|
inlineoverridevirtual |
Implements SkShaderBase.
Definition at line 247 of file SkPerlinNoiseShaderImpl.h.
|
friend |
Definition at line 128 of file SkPerlinNoiseShaderImpl.cpp.
|
static |
Definition at line 238 of file SkPerlinNoiseShaderImpl.h.