Lines Matching refs:runs
25 static int compute_intervalcount(const SkRegion::RunType runs[]) {
26 const SkRegion::RunType* curr = runs;
32 return SkToInt((curr - runs) >> 1);
120 * Given a scanline (including its Bottom value at runs[0]), return the next
121 * scanline. Asserts that there is one (i.e. runs[0] < Sentinel)
123 static SkRegion::RunType* SkipEntireScanline(const SkRegion::RunType runs[]) {
125 SkASSERT(runs[0] < SkRegion::kRunTypeSentinel);
127 const int intervals = runs[1];
128 SkASSERT(runs[2 + intervals * 2] == SkRegion::kRunTypeSentinel);
131 int n = compute_intervalcount(&runs[2]);
137 runs += 1 + 1 + intervals * 2 + 1;
138 return const_cast<SkRegion::RunType*>(runs);
150 const RunType* runs = this->readonly_runs();
153 SkASSERT(y >= runs[0]);
155 runs += 1; // skip top-Y
157 int bottom = runs[0];
164 runs = SkipEntireScanline(runs);
166 return const_cast<SkRegion::RunType*>(runs);
169 // Copy src runs into us, computing interval counts and bounds along the way
171 RunType* runs = this->writable_runs();
172 bounds->fTop = *runs++;
181 bot = *runs++;
185 const int intervals = *runs++;
192 int n = compute_intervalcount(runs);
196 RunType L = runs[0];
202 runs += intervals * 2;
203 RunType R = runs[-1];
211 SkASSERT(SkRegion::kRunTypeSentinel == *runs);
212 runs += 1; // skip x-sentinel
215 } while (SkRegion::kRunTypeSentinel > *runs);
219 int runCount = SkToInt(runs - this->writable_runs() + 1);