Lines Matching refs:array

3  *     The void-and-cluster method for dither array generation
209 array_init (array_t *array, int width, int height)
213 if (!array)
221 array->buffer = buffer;
222 array->width = width;
223 array->height = height;
229 array_get (array_t *array, int x, int y)
231 return &array->buffer[y * array->width + x];
235 array_save_ppm (array_t *array, const char *filename)
246 if (array->width * array->height - 1 < 256)
249 fprintf(f, "P5 %d %d %d\n", array->width, array->height,
250 array->width * array->height - 1);
251 while (i < array->width * array->height)
254 for (; j < 1024 / bpp && j < array->width * array->height; ++j)
256 uint32_t v = array->buffer[i + j];
277 array_save (array_t *array, const char *filename)
294 "\n", array->width, array->height, array->width, array->height);
297 array->width, array->height, array->width * array->height);
299 for (y = 0; y < array->height; ++y)
302 for (x = 0; x < array->width; ++x)
307 fprintf (f, "%d", *array_get (array, x, y));
315 array->width, array->height);
324 array_destroy (array_t *array)
326 free (array->buffer);
329 /* Dither array generation */
512 generate_dither_array (array_t *array,
523 if (array->width != width || array->height != height)
542 *array_get (array, x, y) = 0;
551 *array_get (array, x, y) = rank - 1;
566 *array_get (array, x, y) = rank;
579 array_t array;
608 if (!array_init (&array, size, size))
631 printf("Generating dither array...\n");
632 if (!generate_dither_array (&array, &prototype, &matrix,
635 fprintf (stderr, "Error while generating dither array\n");
640 printf("Saving dither array...\n");
641 if (!array_save (&array, c_filename))
643 fprintf (stderr, "Error saving dither array\n");
649 if (!array_save_ppm (&array, ppm_filename))
651 fprintf (stderr, "Error saving dither array PPM\n");
662 array_destroy (&array);