[gs-code-review] Fix : Improving the documentation about computing a text object tag in gspaint.c //. Fw: [gs-cvs] rev 7016 - trunk/gs/src

Igor V. Melichev igor.melichev at artifex.com
Thu Aug 31 03:44:01 PDT 2006


Folks,

In order of the codebase sanation I improved the comment
about computing object tags in gspaint.c how I understand it
from communicating with authors.
Please submit a patch or remarks if you find that
something is still wrong. Thank you.

Igor.

----- Original Message ----- 
From: <leonardo at ghostscript.com>
To: <gs-cvs at ghostscript.com>
Sent: Thursday, August 31, 2006 2:34 PM
Subject: [gs-cvs] rev 7016 - trunk/gs/src


> Author: leonardo
> Date: 2006-08-31 03:34:11 -0700 (Thu, 31 Aug 2006)
> New Revision: 7016
>
> Modified:
>   trunk/gs/src/gspaint.c
> Log:
> Fix : Improving the documentation about computing a text object tag in 
> gspaint.c .
>
> DETAILS :
>
> It's how I understand it while communicating with Stefan and Henry.
> I'll post it to code review for possible further improvements.
>
> EXPECTED DIFFERENCES :
>
> None.
>
>
> Modified: trunk/gs/src/gspaint.c
> ===================================================================
> --- trunk/gs/src/gspaint.c 2006-08-31 09:53:51 UTC (rev 7015)
> +++ trunk/gs/src/gspaint.c 2006-08-31 10:34:11 UTC (rev 7016)
> @@ -269,10 +269,33 @@
>  code = 0;
>     } else {
>  int abits, acode, rcode = 0;
> -        /* to distinguish text from vectors we hackly look at the
> -           target device 1 bit per component is a cache and this is
> -           text else it is a path */
>
> + /* Here we need to distinguish text from vectors to compute the object 
> tag.
> +    Actually we need to know whether this function is called to rasterize 
> a character,
> +    or to rasterize a vector graphics to the output device.
> +    Currently we assume it works for the bitrgbtags device only,
> +    which is a low level device with a 4-component color model.
> +    We use the fact that with printers a character is usually being 
> rendered
> +    to a 1bpp cache device rather than to the output device.
> +    Therefore we hackly look whether the target device
> +    "has a color" : either it's a multicomponent color model,
> +    or it is not gray (such as a yellow separation).
> +
> +    This check has several limitations :
> +    1. It doesn't work with -dNOCACHE.
> +    2. It doesn't work with large characters,
> +       which cannot fit into a cache cell and thus they
> +       render directly to the output device.
> +    3. It doesn't work for TextAlphaBits=2 or 4.
> +       We don't care of this case because
> +       text antialiasing usually usn't applied to printers.
> +    4. It doesn't work for things like with "(xyz) true charpath stroke".
> +       That's unfortunate, we'd like to improve someday.
> +    5. It doesn't work for high level devices when a Type 3 character is 
> being constructed.
> +       This case is not important for low level devices
> +       (which a printer is), because low level device doesn't accept
> +       Type 3 charproc streams immediately.
> + */
>         if (gx_device_has_color(gs_currentdevice(pgs))) {
>      gx_unset_dev_color(pgs);
>             gs_set_object_tag(pgs, GS_PATH_TAG);
>
> _______________________________________________
> gs-cvs mailing list
> gs-cvs at ghostscript.com
> http://www.ghostscript.com/mailman/listinfo/gs-cvs
> 



More information about the gs-code-review mailing list