hello
No, I just used the CD of May 12. should i recompile gs and see what happens?
thanks
gabi
On 6/18/07, Russ Cox <[EMAIL PROTECTED]> wrote:
Did you compile your own copy of ghostscript?
This is a common problem if you compile directly
from the gs sources; there are some Plan 9 specific
changes that must be made. See /sys/src/cmd/gs/mkfile:
# If you get weird floating point errors, the culprit is usually the
# halftone code, which converts double to uint, something 8c handles
# incorrectly (treats as double to int). Look in src/gshtscr.c for a line like
#
# sample = (ht_sample_t)((value+1) * max_ht_sample);
#
# and change it to one of:
#
# sample = (int)(vlong)((value+1) * max_ht_sample);
# sample = (ht_sample_t)(value * max_ht_sample) + max_ht_sample;
#
# depending on your preference.
#
# Also, recent versions of src/gxshade1.c cause the compiler to run out
# of registers. Brucee is looking into this. In the meantime, use this
# replacement:
#
# private inline void
# make_other_poles(patch_curve_t curve[4])
# {
# int i, j;
#
# for (i = 0; i < 4; i++) {
# j = (i + 1) % 4;
# curve[i].control[0].x = (curve[i].vertex.p.x * 2 +
curve[j].vertex.p.x);
# curve[i].control[0].x /= 3;
# curve[i].control[0].y = (curve[i].vertex.p.y * 2 +
curve[j].vertex.p.y);
# curve[i].control[0].y /= 3;
# curve[i].control[1].x = (curve[i].vertex.p.x +
curve[j].vertex.p.x * 2);
# curve[i].control[1].y /= 3;
# curve[i].control[1].y = (curve[i].vertex.p.y +
curve[j].vertex.p.y * 2);
# curve[i].control[1].y /= 3;
# curve[i].straight = true;
# }
# }
#
# (the original includes the /3 in the big expressions).
The source in the distribution should be patched already.
Also I thought I fixed 8c to do the right float -> uint
conversion, but it would have been quite a while ago
and I don't remember.
Russ