31#define TEST_NO_INTERSECT(rgn, rect) REPORTER_ASSERT(reporter, !rgn.intersects(rect))
32#define TEST_INTERSECT(rgn, rect) REPORTER_ASSERT(reporter, rgn.intersects(rect))
33#define TEST_NO_CONTAINS(rgn, rect) REPORTER_ASSERT(reporter, !rgn.contains(rect))
114 openClip.
setRect({-16000, -16000, 16000, 16000});
115 empty.setPath(emptyPath, openClip);
133 for (
int i = 0;
i < n; ++
i) {
157 while (!iter.
done()) {
169 bool c0 =
a.contains(
b);
186 while (!iter.
done()) {
197 bool c0 =
a.intersects(
b);
209 for (
int i = 0;
i < 10000; ++
i) {
220 int shift = 32 -
bits;
222 rand.
nextU() >> shift, rand.
nextU() >> shift);
263 for (
int i = 0;
i < 1000;
i++) {
268 for (
int j = 0; j <
N; j++) {
331 int32_t
data[5] = {0, 4, 4, 8, 2};
339 int32_t
data[] = {9, 0, 0, 10, 10, 1, 2, 0, 10, 2, 0, 4, 6, 10,
340 2147483647, 2147483647};
345 int32_t
data[] = {19, 0, 0, 30, 30, 3, 4, 0, 10, 2, 0, 10, 20, 30,
346 2147483647, 20, 0, 2147483647, 30, 2, 0, 10, 20, 30,
347 2147483647, 2147483647};
352 int32_t
data[] = {8, 0, 0, 10, 10, 1, 2, 0, 10, 2, 0, 4, 6, 10,
353 2147483647, 2147483647};
358 int32_t
data[] = {9, 0, 0, 10, 11, 1, 2, 0, 10, 2, 0, 4, 6, 10,
359 2147483647, 2147483647};
364 int32_t
data[] = {9, 0, 0, 10, 10, 2, 2, 0, 10, 2, 0, 4, 6, 10,
365 2147483647, 2147483647};
370 int32_t
data[] = {9, 0, 0, 10, 10, 1, 3, 0, 10, 2, 0, 4, 6, 10,
371 2147483647, 2147483647};
376 int32_t
data[] = {9, 0, 0, 10, 10, 1, 2, 0, 10, 2, 0, 4, 6, 10,
382 int32_t
data[] = {9, 0, 0, 10, 10, 1, 2, 0, 10, 2, 0, 4, 6, 10,
388 int32_t
data[] = {12, 0, 0, 10, 10, 2, 2, -5, 0, 0, 2147483647, 10,
389 2, 0, 4, 6, 10, 2147483647, 2147483647};
394 int32_t
data[] = {12, 0, 0, 10, 10, 2, 2, 0, 10, 2, 0, 4, 6, 10,
395 2147483647, 15, 0, 2147483647, 2147483647};
400 int32_t
data[] = {19, 0, -20, 30, 10, 3, 4, 0, 10, 2, 0, 10, 20, 30,
401 2147483647, -20, 0, 2147483647, -10, 2, 0, 10, 20, 30,
402 2147483647, 2147483647};
407 int32_t
data[] = {9, 0, 0, 10, 10, 1, 2, 0, 10, 2, 6, 10, 0, 4,
408 2147483647, 2147483647};
414 const int big = 1 << 30;
438 path.moveTo(10, 20);
path.lineTo(10, 30);
path.lineTo(10.1f, 10);
path.close();
453 path.moveTo(-big, 0);
454 path.quadTo(big, 0, big, big);
464 m[3] = 1.40079998E+20f;
467 { 2.65876e-19f, 0.0194088f },
468 { 4896, 0.00114702f },
470 { 0.00114702f, 0.00495333f },
495 auto eRect = emptyIter.
rect();
505 auto rRect = resetIter.
rect();
513 auto iRect = iter.
rect();
521 auto cRect = clipIter.rect();
533 SkIRect clipBounds = {-45000, -45000, 45000, 45000};
558 static const SkVector kLargeRadii[4] = { {0.f, 0.f},
static void test_write(const SkRegion ®ion, skiatest::Reporter *r)
static void rand_rect(SkIRect *rect, SkRandom &rand)
DEF_TEST(Region, reporter)
static void intersects_proc(skiatest::Reporter *reporter, const SkRegion &a, const SkRegion &b)
static void test_intersects_iter(skiatest::Reporter *reporter, const SkRegion &rgn)
static void test_fromchrome(skiatest::Reporter *reporter)
static bool slow_intersects(const SkRegion &outer, const SkRegion &inner)
static void test_contains_iter(skiatest::Reporter *reporter, const SkRegion &rgn)
static bool test_rects(const SkIRect rect[], int count)
static void randRgn(SkRandom &rand, SkRegion *rgn, int n)
static void test_proc(skiatest::Reporter *reporter, void(*proc)(skiatest::Reporter *, const SkRegion &a, const SkRegion &))
#define TEST_NO_INTERSECT(rgn, rect)
static bool slow_contains(const SkRegion &outer, const SkRegion &inner)
static void test_empties(skiatest::Reporter *reporter)
static void Union(SkRegion *rgn, const SkIRect &rect)
#define TEST_NO_CONTAINS(rgn, rect)
#define TEST_INTERSECT(rgn, rect)
static SkIRect randRect(SkRandom &rand)
static void contains_proc(skiatest::Reporter *reporter, const SkRegion &a, const SkRegion &b)
void SK_SPI SkDebugf(const char format[],...) SK_PRINTF_LIKE(1
static SkPath clip(const SkPath &path, const SkHalfPlane &plane)
static bool left(const SkPoint &p0, const SkPoint &p1)
static bool right(const SkPoint &p0, const SkPoint &p1)
static void copy(void *dst, const uint8_t *src, int width, int bpp, int deltaSrc, int offset, const SkPMColor ctable[])
#define REPORTER_ASSERT(r, cond,...)
static SkPath RRect(const SkRRect &, SkPathDirection dir=SkPathDirection::kCW)
SkPath & moveTo(SkScalar x, SkScalar y)
static SkRRect MakeRectXY(const SkRect &rect, SkScalar xRad, SkScalar yRad)
void setRectRadii(const SkRect &rect, const SkVector radii[4])
const SkIRect & rect() const
void reset(const SkRegion ®ion)
const SkRegion * rgn() const
bool next(int *left, int *right)
size_t readFromMemory(const void *buffer, size_t length)
bool contains(int32_t x, int32_t y) const
@ kUnion_Op
target unioned with operand
@ kIntersect_Op
target intersected with operand
bool setRects(const SkIRect rects[], int count)
bool op(const SkIRect &rect, Op op)
bool setRect(const SkIRect &rect)
bool setPath(const SkPath &path, const SkRegion &clip)
size_t writeToMemory(void *buffer) const
bool intersects(const SkIRect &rect) const
static bool PathRequiresTiling(const SkIRect &bounds)
EMSCRIPTEN_KEEPALIVE void empty()
ClipOpAndAA opAA SkRegion region
sk_sp< SkBlender > blender SkRect rect
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
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 keep the shell running after the Dart script has completed enable serial On low power devices with low core running concurrent GC tasks on threads can cause them to contend with the UI thread which could potentially lead to jank This option turns off all concurrent GC activities domain network JSON encoded network policy per domain This overrides the DisallowInsecureConnections switch Embedder can specify whether to allow or disallow insecure connections at a domain level old gen heap size
void inset(int32_t dx, int32_t dy)
static constexpr SkIRect MakeLTRB(int32_t l, int32_t t, int32_t r, int32_t b)
constexpr int32_t height() const
static constexpr SkIRect MakeEmpty()
constexpr int32_t width() const
static constexpr SkIRect MakeWH(int32_t w, int32_t h)
static constexpr SkIRect MakeXYWH(int32_t x, int32_t y, int32_t w, int32_t h)
static SkRect Make(const SkISize &size)
std::shared_ptr< const fml::Mapping > data