/* * Copyright 2013 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef GrDistanceFieldGeoProc_DEFINED #define GrDistanceFieldGeoProc_DEFINED #if !defined(SK_DISABLE_SDF_TEXT) #include "include/core/SkMatrix.h" #include "include/core/SkScalar.h" #include "include/core/SkSize.h" #include "src/base/SkArenaAlloc.h" #include "src/gpu/ganesh/GrGeometryProcessor.h" #include "src/gpu/ganesh/GrProcessorUnitTest.h" #include "src/gpu/ganesh/GrSamplerState.h" #include <cstdint> #include <memory> class GrSurfaceProxyView; namespace skgpu { class KeyBuilder; } struct GrShaderCaps; enum GrDistanceFieldEffectFlags { … }; /** * The output color of this effect is a modulation of the input color and a sample from a * distance field texture (using a smoothed step function near 0.5). * It allows explicit specification of the filtering and wrap modes (GrSamplerState). The input * coords are a custom attribute. Gamma correction is handled via a texture LUT. */ class GrDistanceFieldA8TextGeoProc : public GrGeometryProcessor { … }; /** * The output color of this effect is a modulation of the input color and a sample from a * distance field texture (using a smoothed step function near 0.5). * It allows explicit specification of the filtering and wrap modes (GrSamplerState). The input * coords are a custom attribute. No gamma correct blending is applied. Used for paths only. */ class GrDistanceFieldPathGeoProc : public GrGeometryProcessor { … }; /** * The output color of this effect is a modulation of the input color and samples from a * distance field texture (using a smoothed step function near 0.5), adjusted for LCD displays. * It allows explicit specification of the filtering and wrap modes (GrSamplerState). The input * coords are a custom attribute. Gamma correction is handled via a texture LUT. */ class GrDistanceFieldLCDTextGeoProc : public GrGeometryProcessor { … }; #endif // !defined(SK_DISABLE_SDF_TEXT) #endif