[gs-cvs] rev 7608 - trunk/gs/src

leonardo at ghostscript.com leonardo at ghostscript.com
Mon Jan 15 03:22:36 PST 2007


Author: leonardo
Date: 2007-01-15 03:22:36 -0800 (Mon, 15 Jan 2007)
New Revision: 7608

Modified:
   trunk/gs/src/gstype1.c
   trunk/gs/src/gxtype1.c
   trunk/gs/src/gxtype1.h
Log:
Provide the CPSI compatibility for Type1 subglyph placement (continued 3).

DETAILS :

This change is algorithmically equivalent.
It provides a better data naming and documentation.

1. save_lsb is renamed into compound_lsb.
2. Improved some comments.

EXPECTED DIFFERENCES :

None.


Modified: trunk/gs/src/gstype1.c
===================================================================
--- trunk/gs/src/gstype1.c	2007-01-15 10:59:56 UTC (rev 7607)
+++ trunk/gs/src/gstype1.c	2007-01-15 11:22:36 UTC (rev 7608)
@@ -305,7 +305,7 @@
 		    code = t1_hinter__sbw(h, sbx, sby, wx, wy);
 		} else {
 		    fixed accent_lsb = cs0;
-		    fixed overall_x_offset = pcis->save_lsb.x + pcis->adxy.x - pcis->asb + accent_lsb - pcis->base_lsb;
+		    fixed overall_x_offset = pcis->compound_lsb.x + pcis->adxy.x - pcis->asb + accent_lsb - pcis->base_lsb;
 
                     code = t1_hinter__sbw_seac(h, overall_x_offset, pcis->adxy.y);
 		}

Modified: trunk/gs/src/gxtype1.c
===================================================================
--- trunk/gs/src/gxtype1.c	2007-01-15 10:59:56 UTC (rev 7607)
+++ trunk/gs/src/gxtype1.c	2007-01-15 11:22:36 UTC (rev 7608)
@@ -249,7 +249,7 @@
     /* Save away all the operands. */
     pcis->seac_accent = fixed2int_var(cstack[3]);
     pcis->asb = asb;
-    pcis->save_lsb = pcis->lsb;
+    pcis->compound_lsb = pcis->lsb;
     pcis->save_adxy.x = cstack[0];
     pcis->save_adxy.y = cstack[1];
     pcis->os_count = 0;		/* clear */
@@ -286,7 +286,7 @@
 	agdata.memory = pfont->memory;
 	pcis->seac_accent = -1;
 	/* Reset the coordinate system origin */
-	pcis->asb_diff = pcis->asb - pcis->save_lsb.x;
+	pcis->asb_diff = pcis->asb - pcis->compound_lsb.x;
 	pcis->adxy = pcis->save_adxy;
 	pcis->os_count = 0;	/* clear */
 	/* Clear the ipstack, in case the base character */

Modified: trunk/gs/src/gxtype1.h
===================================================================
--- trunk/gs/src/gxtype1.h	2007-01-15 10:59:56 UTC (rev 7607)
+++ trunk/gs/src/gxtype1.h	2007-01-15 11:22:36 UTC (rev 7608)
@@ -115,13 +115,15 @@
     bool seac_flag;		/* true if executing the accent */
     /* (Type 2 charstrings only) */
     int num_hints;		/* number of hints (Type 2 only) */
-    gs_fixed_point lsb;		/* left side bearing (char coords) */
-    gs_fixed_point width;	/* character width (char coords) */
+    gs_fixed_point lsb;		/* left side bearing (design coords) */
+    gs_fixed_point width;	/* character width (design coords) */
     int seac_accent;		/* accent character code for seac, or -1 */
-    fixed asb;			/* seac asb */
-    gs_fixed_point save_lsb;	/* save seac accented lsb */
-    gs_fixed_point save_adxy;	/* save seac adx/ady */
-    fixed asb_diff;		/* asb - save_lsb.x, */
+    fixed asb;			/* the asb parameter of seac */
+    gs_fixed_point compound_lsb;/* lsb of the compound character 
+				   (i.e. of the accented character 
+				   defined with seac). */
+    gs_fixed_point save_adxy;	/* passes seac adx/ady across the base character. */
+    fixed asb_diff;		/* asb - compound_lsb.x, */
 				/* needed to adjust Flex endpoint
 				   when processing the accent character;
 				   Zero when processing the base character. */



More information about the gs-cvs mailing list