21 constexpr float kLimit = 1.0e35f;
22 *
f = (v == v && v <= kLimit && v >= -kLimit) ? v : 0.0f;
25template <
typename... Args>
38 if (maxOps <= 0 || fuzz->exhausted() ||
path->countPoints() > 100000) {
46 for (uint8_t
i = 0;
i < numOps; ++
i) {
49 if (
path->countPoints() > 100000) {
53 constexpr uint8_t MAX_PATH_OPERATION = 32;
55 fuzz->
nextRange(&op, 0, MAX_PATH_OPERATION);
191 path->reverseAddPath(
p);
215 if (
p.countPoints() <= 100000) {
224 case MAX_PATH_OPERATION:
232 SkASSERTF(
path->isValid(),
"path->isValid() failed at op %d, case %d",
i, op);
246 case SkPath::Verb::kMove_Verb:
251 case SkPath::Verb::kLine_Verb:
256 case SkPath::Verb::kQuad_Verb:
261 case SkPath::Verb::kConic_Verb:
266 case SkPath::Verb::kCubic_Verb:
271 case SkPath::Verb::kClose_Verb:
275 case SkPath::Verb::kDone_Verb:
289 vec.fX *= 0.5f * r.
width();
291 vec.fY *= 0.5f * r.
height();
298 constexpr int kArrayLength = 9;
302 switch (matrixType) {
336 for (uint8_t
i = 0;
i <
N; ++
i) {
362 static_assert(
sizeof(
int) == 4 &&
sizeof(
float) == 4);
363 size_t numFields = u.sizeInBytes() / 4;
370 while (numFields--) {
372 *
static_cast<int*
>(uniformData) = intVal++;
373 uniformData =
static_cast<int*
>(uniformData) + 1;
376 float floatVal = 0.0f;
377 while (numFields--) {
379 *
static_cast<float*
>(uniformData) = floatVal++;
380 uniformData =
static_cast<float*
>(uniformData) + 1;
void FuzzNiceRegion(Fuzz *fuzz, SkRegion *region, int maxN)
static void fuzz_nice_float(Fuzz *fuzz, float *f)
void FuzzCreateValidInputsForRuntimeEffect(SkRuntimeEffect *effect, sk_sp< SkData > &uniformBytes, TArray< SkRuntimeEffect::ChildPtr > &children)
static void fuzz_nice_rect(Fuzz *fuzz, SkRect *r)
void FuzzNiceRRect(Fuzz *fuzz, SkRRect *rr)
void FuzzNiceMatrix(Fuzz *fuzz, SkMatrix *m)
void FuzzEvilPath(Fuzz *fuzz, SkPath *path, int last_verb)
void FuzzNicePath(Fuzz *fuzz, SkPath *path, int maxOps)
#define SkASSERTF(cond, fmt,...)
constexpr SkColor SK_ColorBLUE
constexpr SkColor SK_ColorRED
static void operation(T operation, uint32_t &a, uint32_t b, uint32_t c, uint32_t d, uint32_t x, uint8_t s, uint32_t t)
void nextRange(T *, Min, Max)
void nextEnum(T *ptr, T max)
void nextN(T *ptr, int n)
static sk_sp< SkBlender > Arithmetic(float k1, float k2, float k3, float k4, bool enforcePremul)
static sk_sp< SkColorFilter > Blend(const SkColor4f &c, sk_sp< SkColorSpace >, SkBlendMode mode)
static sk_sp< SkData > MakeZeroInitialized(size_t length)
static SkMatrix Scale(SkScalar sx, SkScalar sy)
static SkMatrix Translate(SkScalar dx, SkScalar dy)
static const SkMatrix & I()
static void ShrinkToFit(SkPath *path)
void setRectRadii(const SkRect &rect, const SkVector radii[4])
bool op(const SkIRect &rect, Op op)
size_t uniformSize() const
SkSpan< const Child > children() const
SkSpan< const Uniform > uniforms() const
VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE auto & d
ClipOpAndAA opAA SkRegion region
SK_API sk_sp< SkShader > Color(SkColor)
DEF_SWITCHES_START aot vmservice shared library Name of the *so containing AOT compiled Dart assets for launching the service isolate vm snapshot The VM snapshot data that will be memory mapped as read only SnapshotAssetPath must be present isolate snapshot The isolate snapshot data that will be memory mapped as read only SnapshotAssetPath must be present cache dir path
DEF_SWITCHES_START aot vmservice shared library Name of the *so containing AOT compiled Dart assets for launching the service isolate vm snapshot The VM snapshot data that will be memory mapped as read only SnapshotAssetPath must be present isolate snapshot The isolate snapshot data that will be memory mapped as read only SnapshotAssetPath must be present cache dir Path to the cache directory This is different from the persistent_cache_path in embedder which is used for Skia shader cache icu native lib Path to the library file that exports the ICU data vm service The hostname IP address on which the Dart VM Service should be served If not defaults to or::depending on whether ipv6 is specified vm service A custom Dart VM Service port The default is to pick a randomly available open port disable vm Disable the Dart VM Service The Dart VM Service is never available in release mode disable vm service Disable mDNS Dart VM Service publication Bind to the IPv6 localhost address for the Dart VM Service Ignored if vm service host is set endless trace Enable an endless trace buffer The default is a ring buffer This is useful when very old events need to viewed For during application launch Memory usage will continue to grow indefinitely however Start app with an specific route defined on the framework flutter assets dir
DEF_SWITCHES_START aot vmservice shared library Name of the *so containing AOT compiled Dart assets for launching the service isolate vm snapshot The VM snapshot data that will be memory mapped as read only SnapshotAssetPath must be present isolate snapshot The isolate snapshot data that will be memory mapped as read only SnapshotAssetPath must be present cache dir Path to the cache directory This is different from the persistent_cache_path in embedder which is used for Skia shader cache icu native lib Path to the library file that exports the ICU data vm service The hostname IP address on which the Dart VM Service should be served If not defaults to or::depending on whether ipv6 is specified vm service A custom Dart VM Service port The default is to pick a randomly available open port disable vm Disable the Dart VM Service The Dart VM Service is never available in release mode disable vm service Disable mDNS Dart VM Service publication Bind to the IPv6 localhost address for the Dart VM Service Ignored if vm service host is set endless trace buffer
it will be possible to load the file into Perfetto s trace viewer disable asset Prevents usage of any non test fonts unless they were explicitly Loaded via prefetched default font Indicates whether the embedding started a prefetch of the default font manager before creating the engine run In non interactive mode
int32_t fBottom
larger y-axis bounds
int32_t fTop
smaller y-axis bounds
int32_t fLeft
smaller x-axis bounds
int32_t fRight
larger x-axis bounds
SkScalar fBottom
larger y-axis bounds
SkScalar fLeft
smaller x-axis bounds
SkScalar fRight
larger x-axis bounds
constexpr float height() const
constexpr float width() const
SkScalar fTop
smaller y-axis bounds