GlueCode converts the Ghostscript color value to RGB
values. In opvp_map_color_rgb() in gdevopvp.c, it calls
gx_default_rgb_map_color_rgb() to convert the
Ghostscript color index to rgb value, and
gx_default_rgb_map_color_rgb() returns rgb values in
gx_color_value (16bit) for OPVP_cspaceStandardRGB, but
rgb values in 8bits per channel is correct, and these
color values must be converted from 16bit to 8bit color.
Additional comment;
This bug should be solved in opvp_set_brush_color() which calls
opvp_map_color_rgb(), because opvp_map_color_rgb() is the
function to be prepared for Ghostscript, and must returns
gx_color_value itself.
When dev->color_info.depth is 24,
gx_default_rgb_map_color_rgb returns 8bits colors. And
gx_device_opvp's color_info.depth is 24, so using
gx_default_rgb_map_color_rgb is correct.
values. In opvp_map_color_rgb() in gdevopvp.c, it calls
gx_default_rgb_map_color_rgb() to convert the
Ghostscript color index to rgb value, and
gx_default_rgb_map_color_rgb() returns rgb values in
gx_color_value (16bit) for OPVP_cspaceStandardRGB, but
rgb values in 8bits per channel is correct, and these
color values must be converted from 16bit to 8bit color.