Skia
2D Graphics Library
SkShaders Namespace Reference

Functions

SK_API sk_sp< SkShaderEmpty ()
 
SK_API sk_sp< SkShaderColor (SkColor)
 
SK_API sk_sp< SkShaderColor (const SkColor4f &, sk_sp< SkColorSpace >)
 
SK_API sk_sp< SkShaderBlend (SkBlendMode mode, sk_sp< SkShader > dst, sk_sp< SkShader > src)
 
SK_API sk_sp< SkShaderBlend (sk_sp< SkBlender >, sk_sp< SkShader > dst, sk_sp< SkShader > src)
 
SK_API sk_sp< SkShaderCoordClamp (sk_sp< SkShader >, const SkRect &subset)
 
SK_API sk_sp< SkShaderMakeFractalNoise (SkScalar baseFrequencyX, SkScalar baseFrequencyY, int numOctaves, SkScalar seed, const SkISize *tileSize=nullptr)
 This will construct Perlin noise of the given type (Fractal Noise or Turbulence). More...
 
SK_API sk_sp< SkShaderMakeTurbulence (SkScalar baseFrequencyX, SkScalar baseFrequencyY, int numOctaves, SkScalar seed, const SkISize *tileSize=nullptr)
 

Function Documentation

◆ Blend() [1/2]

SK_API sk_sp<SkShader> SkShaders::Blend ( sk_sp< SkBlender ,
sk_sp< SkShader dst,
sk_sp< SkShader src 
)

◆ Blend() [2/2]

SK_API sk_sp<SkShader> SkShaders::Blend ( SkBlendMode  mode,
sk_sp< SkShader dst,
sk_sp< SkShader src 
)

◆ Color() [1/2]

SK_API sk_sp<SkShader> SkShaders::Color ( const SkColor4f ,
sk_sp< SkColorSpace  
)

◆ Color() [2/2]

SK_API sk_sp<SkShader> SkShaders::Color ( SkColor  )

◆ CoordClamp()

SK_API sk_sp<SkShader> SkShaders::CoordClamp ( sk_sp< SkShader ,
const SkRect subset 
)

◆ Empty()

SK_API sk_sp<SkShader> SkShaders::Empty ( )

◆ MakeFractalNoise()

SK_API sk_sp<SkShader> SkShaders::MakeFractalNoise ( SkScalar  baseFrequencyX,
SkScalar  baseFrequencyY,
int  numOctaves,
SkScalar  seed,
const SkISize tileSize = nullptr 
)

This will construct Perlin noise of the given type (Fractal Noise or Turbulence).

Both base frequencies (X and Y) have a usual range of (0..1) and must be non-negative.

The number of octaves provided should be fairly small, with a limit of 255 enforced. Each octave doubles the frequency, so 10 octaves would produce noise from baseFrequency * 1, * 2, * 4, ..., * 512, which quickly yields insignificantly small periods and resembles regular unstructured noise rather than Perlin noise.

If tileSize isn't NULL or an empty size, the tileSize parameter will be used to modify the frequencies so that the noise will be tileable for the given tile size. If tileSize is NULL or an empty size, the frequencies will be used as is without modification.

◆ MakeTurbulence()

SK_API sk_sp<SkShader> SkShaders::MakeTurbulence ( SkScalar  baseFrequencyX,
SkScalar  baseFrequencyY,
int  numOctaves,
SkScalar  seed,
const SkISize tileSize = nullptr 
)