Lines Matching full:runs
86 return r->runs == RUNS_EMPTY;
92 return r->runs == RUNS_RECT;
98 return r->runs != RUNS_EMPTY && r->runs != RUNS_RECT;
101 /** RunStore: ref-counted storage for runs
161 runstore_from_runs( Run* runs )
163 RASSERT(runs != RUNS_EMPTY);
164 RASSERT(runs != RUNS_RECT);
165 return (RunStore*)runs - 1;
182 s = runstore_from_runs(r->runs);
184 r->runs = runstore_to_runs(s);
185 return r->runs;
192 runs_next_scanline( Run* runs )
194 RASSERT(runs[0] != YSENTINEL && runs[1] != YSENTINEL );
195 runs += 2;
196 do { runs += 1; } while (runs[-1] != XSENTINEL);
197 return runs;
201 runs_find_y( Run* runs, int y )
204 int ybot, ytop = runs[0];
209 ybot = runs[1];
211 return runs;
213 runs = runs_next_scanline( runs );
214 } while (runs[0] != YSENTINEL);
220 runs_set_rect( Run* runs, SkinRect* rect )
222 runs[0] = rect->pos.y;
223 runs[1] = rect->pos.y + rect->size.h;
224 runs[2] = rect->pos.x;
225 runs[3] = rect->pos.x + rect->size.w;
226 runs[4] = XSENTINEL;
227 runs[5] = YSENTINEL;
261 runs_get_count( Run* runs )
263 RunStore* s = runstore_from_runs(runs);
372 r->runs = RUNS_EMPTY;
386 r->runs = RUNS_RECT;
397 r->runs = RUNS_RECT;
411 r->runs = RUNS_RECT;
422 RunStore* s = runstore_from_runs(r->runs);
434 RunStore* s = runstore_from_runs(r->runs);
463 runs1 = r1->runs;
464 runs2 = r2->runs;
485 Run* runs;
494 runs = region_edit(r);
495 while (runs[0] != YSENTINEL) {
496 int ytop = runs[0];
497 int ybot = runs[1];
500 runs[0] = (Run)(ytop + dy);
501 runs[1] = (Run)(ybot + dy);
502 runs += 2;
503 while (runs[0] != XSENTINEL) {
504 int xleft = runs[0];
505 int xright = runs[1];
507 runs[0] = (Run)(xleft + dx);
508 runs[1] = (Run)(xright + dx);
509 runs += 2;
511 runs += 1;
562 Run* runs = runs_find_y( r->runs, y );
563 if (runs != NULL) {
564 runs += 2;
566 int xright, xleft = runs[0];
570 xright = runs[1];
575 runs += 2;
576 } while (runs[0] != XSENTINEL);
631 runs1 = r1->runs;
637 runs2 = r2->runs;
763 Run* runs;
787 o->runs1 = r1->runs;
788 run1_count = runs_get_count(r1->runs);
796 o->runs2 = r2->runs;
797 run2_count = runs_get_count(r2->runs);
811 Run* runs = o->runs_base;
831 runs = runs_copy_scanline_adj( runs, runs1, ytop1, ybot1 );
839 runs = runs_copy_scanline_adj( runs, runs2, ytop2, ybot2 );
847 runs = runs_copy_scanline_adj( runs, runs1, ytop1, ytop2 );
852 runs = runs_copy_scanline_adj( runs, runs2, ytop2, ytop1 );
858 runs[0] = (Run) ytop1;
859 runs[1] = (Run) ybot;
865 Run* span = runs + 2;
947 if (span > runs + 2) {
949 runs = span + 1;
968 runs = runs_copy_scanline_adj( runs, runs1, ytop1, runs1[1] );
976 runs = runs_copy_scanline_adj( runs, runs2, ytop2, runs2[1] );
982 runs[0] = YSENTINEL;
983 o->runs = runs + 1;
990 Run* src = o->runs;
1001 /* coalesce the temp runs in-place and compute the corresponding bounds */
1014 o->result->runs = RUNS_RECT;
1020 o->result->runs = runstore_to_runs(store);
1021 memcpy( o->result->runs, o->runs_base, count*sizeof(Run) );
1187 iter->band = band = r->runs;
1188 iter->span = span = r->runs + 2;