Lines Matching refs:dc

93       stpi_dither_channel_t *dc = et->dummy_channel;
94 shade_distance_t *shade = (shade_distance_t *) dc->aux_data;
96 STP_SAFE_FREE(dc->aux_data);
97 stpi_dither_channel_destroy(dc);
121 stpi_dither_channel_t *dc = stp_zalloc(sizeof(stpi_dither_channel_t));
122 stp_dither_matrix_clone(&(d->dither_matrix), &(dc->dithermat), 0, 0);
127 stp_dither_matrix_clone(&(et->transition_matrix), &(dc->pick), 0, 0);
128 dc->error_rows = 1;
129 dc->errs = stp_zalloc(1 * sizeof(int *));
130 dc->errs[0] = stp_zalloc(size * sizeof(int));
131 et->dummy_channel = dc;
240 eventone_update(stpi_dither_channel_t *dc, eventone_t *et,
243 shade_distance_t *sp = (shade_distance_t *) dc->aux_data;
261 diffuse_error(stpi_dither_channel_t *dc, eventone_t *et, int x, int direction)
270 /* int fraction = (dc->v + (et->diff_factor>>1)) / et->diff_factor; */
271 int frac_2 = dc->v + dc->v;
272 int frac_3 = frac_2 + dc->v;
273 dc->errs[0][x + MAX_SPREAD] = frac_3;
274 dc->errs[0][x + MAX_SPREAD - direction] += frac_2;
275 dc->v -= (frac_2 + frac_3) / 16;
277 dc->errs[0][x + MAX_SPREAD] = dc->v * 3;
278 dc->errs[0][x + MAX_SPREAD - direction] += dc->v * 5;
279 dc->errs[0][x + MAX_SPREAD - (direction * 2)] += dc->v * 1;
280 dc->v -= dc->v * 9 / 16;
285 eventone_adjust(stpi_dither_channel_t *dc, eventone_t *et, int dither_point,
296 shade_distance_t *shade = (shade_distance_t *) dc->aux_data;
307 unitone_adjust(stpi_dither_channel_t *dc, eventone_t *et,
318 shade_distance_t *shade = (shade_distance_t *) dc->aux_data;
327 find_segment(stpi_dither_channel_t *dc, unsigned inkval,
333 if (dc->nlevels == 1)
335 upper->bits = dc->ink_list[1].bits;
336 upper->range = dc->ink_list[1].value;
343 for (i=0, ip = dc->ink_list; i < dc->nlevels - 1; i++, ip++)
357 find_segment_and_ditherpoint(stpi_dither_channel_t *dc, unsigned inkval,
360 find_segment(dc, inkval, lower, upper);
466 stpi_dither_channel_t *dc = &CHANNEL(d, i);
467 shade_distance_t *sp = (shade_distance_t *) dc->aux_data;
480 find_segment_and_ditherpoint(dc, raw[i], &lower, &upper);
483 dc->v += 2 * range_point + (dc->errs[0][x + MAX_SPREAD] + 8) / 16;
484 inkspot = dc->v - range_point;
486 point_error += eventone_adjust(dc, et, inkspot, range_point);
494 dc->v -= 131070;
503 set_row_ends(dc, x);
506 print_ink(d, dc->ptr, inkp, bit, length);
511 eventone_update(dc, et, x, direction);
512 diffuse_error(dc, et, x, direction);
605 stpi_dither_channel_t *dc = &CHANNEL(d, i);
606 if (dc->ptr)
608 shade_distance_t *sp = (shade_distance_t *) dc->aux_data;
618 dc->b = find_segment_and_ditherpoint(dc, raw[i],
622 if (dc->b > maximum_value)
623 maximum_value = dc->b;
624 ddc->b += dc->b;
627 dc->v += 2 * dc->b + (dc->errs[0][x + MAX_SPREAD] + 8) / 16;
628 dc->o = unitone_adjust(dc, et, dc->v - dc->b, dc->b);
657 stpi_dither_channel_t *dc = &CHANNEL(d, i);
658 shade_distance_t *sp = (shade_distance_t *) dc->aux_data;
660 if (dc->ptr)
665 if (dc->o > best_channel_value)
668 best_channel = dc;
670 if (dc->o >= 32768)
673 best_channel_value = dc->o;
675 else if (dc->o > second_best_channel_value)
677 second_best_channel = dc;
678 if (dc->o >= 32768)
681 second_best_channel_value = dc->o;
690 stpi_dither_channel_t *dc = &CHANNEL(d, i);
691 if (dc->ptr)
694 shade_distance_t *sp = (shade_distance_t *) dc->aux_data;
697 if (dc->o < 0)
698 dc->o = 0;
699 else if (dc->o > 65535)
700 dc->o = 65535;
703 point_error += dc->o;
708 dc->v -= 131070;
712 else if ((channels_to_print >= 1 && best_channel == dc) ||
713 (channels_to_print >= 2 && second_best_channel == dc))
716 dc->v -= 131070;
723 set_row_ends(dc, x);
726 print_ink(d, dc->ptr, inkp, bit, length);
742 stpi_dither_channel_t *dc = &CHANNEL(d, i);
743 if (dc->ptr)
746 eventone_update(dc, et, x, direction);
747 diffuse_error(dc, et, x, direction);