Lines Matching defs:polygon
79 struct mono_polygon polygon;
152 mono_polygon_init(struct mono_polygon *polygon, BoxPtr box, int num_edges)
156 polygon->y_buckets = polygon->y_buckets_embedded;
157 if (h > ARRAY_SIZE (polygon->y_buckets_embedded)) {
158 polygon->y_buckets = malloc (h * sizeof (struct mono_edge *));
159 if (unlikely (NULL == polygon->y_buckets))
163 polygon->num_edges = 0;
164 polygon->edges = polygon->edges_embedded;
165 if (num_edges > (int)ARRAY_SIZE (polygon->edges_embedded)) {
166 polygon->edges = malloc (num_edges * sizeof (struct mono_edge));
167 if (unlikely (polygon->edges == NULL)) {
168 if (polygon->y_buckets != polygon->y_buckets_embedded)
169 free(polygon->y_buckets);
174 memset(polygon->y_buckets, 0, h * sizeof (struct edge *));
179 mono_polygon_fini(struct mono_polygon *polygon)
181 if (polygon->y_buckets != polygon->y_buckets_embedded)
182 free(polygon->y_buckets);
184 if (polygon->edges != polygon->edges_embedded)
185 free(polygon->edges);
195 struct mono_polygon *polygon = &mono->polygon;
233 e = polygon->edges + polygon->num_edges++;
267 struct mono_edge **ptail = &polygon->y_buckets[ytop - mono->clip.extents.y1];
655 if (!mono_polygon_init(&c->polygon, &c->clip.extents, num_edges))
677 mono_polygon_fini(&mono->polygon);
697 struct mono_polygon *polygon = &mono->polygon;
706 i, polygon->y_buckets[i] != NULL));
708 if (polygon->y_buckets[i])
709 mono_merge_edges(mono, polygon->y_buckets[i]);
723 while (--min_height >= 1 && polygon->y_buckets[j] == NULL)