8#ifndef SkRegionPriv_DEFINED
9#define SkRegionPriv_DEFINED
41#define assert_sentinel(value, isSentinel) \
42 SkASSERT(SkRegionValueIsSentinel(value) == isSentinel)
55 return SkToInt((curr - runs) >> 1);
82 return fIntervalCount;
86 if (
count < SkRegion::kRectRegionRuns) {
97 head->fYSpanCount = 0;
98 head->fIntervalCount = 0;
103 if (yspancount <= 0 || intervalCount <= 1) {
111 head->fYSpanCount = yspancount;
112 head->fIntervalCount = intervalCount;
118 return (SkRegion::RunType*)(
this + 1);
122 return (
const SkRegion::RunType*)(
this + 1);
152 const int intervals = runs[1];
156 int n = compute_intervalcount(&runs[2]);
162 runs += 1 + 1 + intervals * 2 + 1;
163 return const_cast<SkRegion::RunType*
>(runs);
182 int bottom = runs[0];
191 return const_cast<SkRegion::RunType*
>(runs);
197 bounds->
fTop = *runs++;
201 int intervalCount = 0;
210 const int intervals = *runs++;
217 int n = compute_intervalcount(runs);
227 runs += intervals * 2;
228 RunType
R = runs[-1];
234 intervalCount += intervals;
248 fYSpanCount = ySpanCount;
249 fIntervalCount = intervalCount;
258 int32_t fIntervalCount;
#define SK_ABORT(message,...)
SK_API void sk_free(void *)
static void * sk_malloc_throw(size_t size)
static int64_t sk_64_mul(int64_t a, int64_t b)
static constexpr int32_t SK_MinS32
static constexpr int32_t SK_MaxS32
static bool left(const SkPoint &p0, const SkPoint &p1)
static constexpr int SkRegion_kRunTypeSentinel
bool SkRegionValueIsSentinel(int32_t value)
constexpr int SkToInt(S x)
static constexpr int kRunTypeSentinel
static void VisitSpans(const SkRegion &rgn, const std::function< void(const SkIRect &)> &)
SkRegion::RunType RunType
SkRegion::RunHead RunHead
Dart_NativeFunction function
Optional< SkRect > bounds
void Validate(const Table &table)
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
int32_t fTop
smaller y-axis bounds
SkRegion::RunType * writable_runs()
static RunHead * Alloc(int count)
const SkRegion::RunType * readonly_runs() const
static RunHead * Alloc(int count, int yspancount, int intervalCount)
void computeRunBounds(SkIRect *bounds)
RunHead * ensureWritable()
int getYSpanCount() const
int getIntervalCount() const
static SkRegion::RunType * SkipEntireScanline(const SkRegion::RunType runs[])
SkRegion::RunType * findScanline(int y) const
std::atomic< int32_t > fRefCnt