8#ifndef GrDistanceFieldGeoProc_DEFINED
9#define GrDistanceFieldGeoProc_DEFINED
11#if !defined(SK_DISABLE_SDF_TEXT)
25namespace skgpu {
class KeyBuilder; }
76#ifdef SK_GAMMA_APPLY_TO_A8
84 const SkMatrix& localMatrixIfUsesLocalCoords) {
85 return arena->
make([&](
void* ptr) {
87 caps, views, numActiveViews,
params,
lum,
flags, localMatrixIfUsesLocalCoords);
97 const SkMatrix& localMatrixIfUsesLocalCoords) {
98 return arena->
make([&](
void* ptr) {
100 caps, views, numActiveViews,
params,
flags, localMatrixIfUsesLocalCoords);
107 const char*
name()
const override {
return "DistanceFieldA8Text"; }
122#ifdef SK_GAMMA_APPLY_TO_A8
123 float distanceAdjust,
137#ifdef SK_GAMMA_APPLY_TO_A8
138 float fDistanceAdjust;
161 return arena->
make([&](
void* ptr) {
169 const char*
name()
const override {
return "DistanceFieldPath"; }
223 return !(*
this == wa);
234 const SkMatrix& localMatrixIfUsesLocalCoords) {
235 return arena->
make([&](
void* ptr) {
237 distanceAdjust,
flags,
238 localMatrixIfUsesLocalCoords);
244 const char*
name()
const override {
return "DistanceFieldLCDText"; }
264 DistanceAdjust fDistanceAdjust;
GrDistanceFieldEffectFlags
@ kGammaCorrect_DistanceFieldEffectFlag
@ kWideColor_DistanceFieldEffectFlag
@ kUseLCD_DistanceFieldEffectFlag
@ kPerspective_DistanceFieldEffectFlag
@ kSimilarity_DistanceFieldEffectFlag
@ kBGR_DistanceFieldEffectFlag
@ kScaleOnly_DistanceFieldEffectFlag
@ kInvalid_DistanceFieldEffectFlag
@ kAliased_DistanceFieldEffectFlag
@ kUniformScale_DistanceFieldEffectMask
@ kPath_DistanceFieldEffectMask
@ kNonLCD_DistanceFieldEffectMask
@ kPortrait_DistanceFieldEffectFlag
@ kLCD_DistanceFieldEffectMask
#define GR_DECLARE_GEOMETRY_PROCESSOR_TEST
#define INHERITED(method,...)
const char * name() const override
static GrGeometryProcessor * Make(SkArenaAlloc *arena, const GrShaderCaps &caps, const GrSurfaceProxyView *views, int numActiveViews, GrSamplerState params, uint32_t flags, const SkMatrix &localMatrixIfUsesLocalCoords)
const TextureSampler & onTextureSampler(int i) const override
void addNewViews(const GrSurfaceProxyView *views, int numViews, GrSamplerState)
~GrDistanceFieldA8TextGeoProc() override
void addToKey(const GrShaderCaps &, skgpu::KeyBuilder *) const override
std::unique_ptr< ProgramImpl > makeProgramImpl(const GrShaderCaps &) const override
static constexpr int kMaxTextures
static GrGeometryProcessor * Make(SkArenaAlloc *arena, const GrShaderCaps &caps, const GrSurfaceProxyView *views, int numActiveViews, GrSamplerState params, DistanceAdjust distanceAdjust, uint32_t flags, const SkMatrix &localMatrixIfUsesLocalCoords)
void addNewViews(const GrSurfaceProxyView *, int numActiveViews, GrSamplerState)
~GrDistanceFieldLCDTextGeoProc() override
const TextureSampler & onTextureSampler(int i) const override
std::unique_ptr< ProgramImpl > makeProgramImpl(const GrShaderCaps &) const override
static constexpr int kMaxTextures
const char * name() const override
void addToKey(const GrShaderCaps &, skgpu::KeyBuilder *) const override
const TextureSampler & onTextureSampler(int i) const override
void addNewViews(const GrSurfaceProxyView *, int numActiveViews, GrSamplerState)
void addToKey(const GrShaderCaps &, skgpu::KeyBuilder *) const override
~GrDistanceFieldPathGeoProc() override
const char * name() const override
static GrGeometryProcessor * Make(SkArenaAlloc *arena, const GrShaderCaps &caps, const GrSurfaceProxyView *views, int numActiveViews, GrSamplerState params, const SkMatrix &localMatrix, uint32_t flags)
static constexpr int kMaxTextures
std::unique_ptr< ProgramImpl > makeProgramImpl(const GrShaderCaps &) const override
auto make(Ctor &&ctor) -> decltype(ctor(nullptr))
const EmbeddedViewParams * params
FlutterSemanticsFlag flags
static float lum(float r, float g, float b)
bool operator==(const DistanceAdjust &wa) const
bool operator!=(const DistanceAdjust &wa) const
static DistanceAdjust Make(SkScalar r, SkScalar g, SkScalar b)