Lines Matching defs:region

28 static Bool region_grow(RegionPtr region)
34 if (!region->data) {
35 region->data = malloc(RegionSizeof(n));
36 if (!region->data)
37 return RegionBreak(region);
38 region->data->numRects = 1;
39 *RegionBoxptr(region) = region->extents;
40 } else if (!region->data->size) {
41 region->data = malloc(RegionSizeof(n));
42 if (!region->data)
43 return RegionBreak(region);
44 region->data->numRects = 0;
46 n = 2 * region->data->numRects;
47 data = (RegDataPtr) realloc(region->data, RegionSizeof(n));
49 return RegionBreak(region);
50 region->data = data;
52 region->data->size = n;
56 static inline void add(RegionPtr region,
61 if (region->data->numRects == region->data->size &&
62 !region_grow(region))
65 r = RegionBoxptr(region) + region->data->numRects++;
71 (long)region->data->numRects, (long)region->data->size,
74 if (x1 < region->extents.x1)
75 region->extents.x1 = x1;
76 if (x2 > region->extents.x2)
77 region->extents.x2 = x2;
82 /* Convert bitmap clip mask into clipping region.
92 register RegionPtr region;
100 region = RegionCreate(NULL, 1);
101 if (!region)
111 region->extents.x1 = width;
112 region->extents.x2 = 0;
145 add(region, x1, y1, base + i, y2);
160 add(region, x1, y1, base + i, y2);
168 add(region, x1, y1, width, y2);
171 if (region->data->numRects) {
172 region->extents.y1 = RegionBoxptr(region)->y1;
173 region->extents.y2 = RegionEnd(region)->y2;
174 if (region->data->numRects == 1) {
175 free(region->data);
176 region->data = NULL;
179 region->extents.x1 = region->extents.x2 = 0;
181 DBG(("%s: region extents=(%d, %d), (%d, %d) x %d\n",
183 region->extents.x1, region->extents.y1,
184 region->extents.x2, region->extents.y2,
185 region_num_rects(region)));
187 return region;