Lines Matching defs:polygon
78 struct mono_polygon polygon;
151 mono_polygon_init(struct mono_polygon *polygon, BoxPtr box, int num_edges)
155 polygon->y_buckets = polygon->y_buckets_embedded;
156 if (h > ARRAY_SIZE (polygon->y_buckets_embedded)) {
157 polygon->y_buckets = malloc (h * sizeof (struct mono_edge *));
158 if (unlikely (NULL == polygon->y_buckets))
162 polygon->num_edges = 0;
163 polygon->edges = polygon->edges_embedded;
164 if (num_edges > (int)ARRAY_SIZE (polygon->edges_embedded)) {
165 polygon->edges = malloc (num_edges * sizeof (struct mono_edge));
166 if (unlikely (polygon->edges == NULL)) {
167 if (polygon->y_buckets != polygon->y_buckets_embedded)
168 free(polygon->y_buckets);
173 memset(polygon->y_buckets, 0, h * sizeof (struct edge *));
178 mono_polygon_fini(struct mono_polygon *polygon)
180 if (polygon->y_buckets != polygon->y_buckets_embedded)
181 free(polygon->y_buckets);
183 if (polygon->edges != polygon->edges_embedded)
184 free(polygon->edges);
194 struct mono_polygon *polygon = &mono->polygon;
232 e = polygon->edges + polygon->num_edges++;
267 struct mono_edge **ptail = &polygon->y_buckets[ytop - mono->clip.extents.y1];
603 if (!mono_polygon_init(&c->polygon, &c->clip.extents, num_edges))
625 mono_polygon_fini(&mono->polygon);
645 struct mono_polygon *polygon = &mono->polygon;
653 if (polygon->y_buckets[i])
654 mono_merge_edges(mono, polygon->y_buckets[i]);
666 while (--min_height >= 1 && polygon->y_buckets[j] == NULL)