View | Details | Raw Unified | Return to bug 54819
Collapse All | Expand All

(-)wprint/files/patch-hinting-ftface.diff (+91 lines)
Line 0 Link Here
1
diff -ur src/wprint-ft2.c.orig src/wprint-ft2.c
2
--- src/wprint-ft2.c.orig	2001-10-26 02:41:29.000000000 +0800
3
+++ src/wprint-ft2.c	2003-07-19 15:18:55.000000000 +0800
4
@@ -20,8 +20,11 @@
5
 		Error("Couldn't find suitable Cmap");
6
 
7
 	index = FT_Get_Char_Index(ti->font.ttface,unicode );
8
+	
9
+	FT_Set_Char_Size (ti->font.ttface, 0, 16*64, 0, 0);
10
 
11
-	if((error=FT_Load_Glyph(ti->font.ttface, index, FT_LOAD_NO_SCALE)))
12
+	if((error=FT_Load_Glyph(ti->font.ttface, index, FT_LOAD_NO_BITMAP 
13
+						    | FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH)))
14
 		FTError("Couldn't load glyph", error);
15
 	glyphToPs(out,unicode,ti,b64name);
16
 
17
@@ -280,13 +283,13 @@
18
 {
19
 	FT_Done_Face(ti->font.ttface);
20
 }
21
-int	setFont(struct tt_info *ti,char *file)
22
+int	setFont(struct tt_info *ti,char *file,int faceindex)
23
 {
24
 int	error;
25
 int	i,l,total;
26
 FT_SfntName	name;
27
 
28
-	if ((error = FT_New_Face(ti->ttengine,file,0,&(ti->font.ttface)) != 0))
29
+	if ((error = FT_New_Face(ti->ttengine,file,faceindex,&(ti->font.ttface)) != 0))
30
 	{
31
 		FTError("Coudn't set TrueType font", error);
32
 	}
33
diff -ur src/wprint.c.orig src/wprint.c
34
--- src/wprint.c.orig	2002-04-02 04:59:57.000000000 +0800
35
+++ src/wprint.c	2003-07-19 15:18:32.000000000 +0800
36
@@ -518,6 +518,7 @@
37
 			fnc[i].xr = 72;
38
 			fnc[i].yr = 72;
39
 			fnc[i].pt = 14.0;
40
+			fnc[i].faceindex = 0;
41
 
42
 			comma = strchr(from,',');
43
 			if (comma != NULL)
44
@@ -531,8 +532,8 @@
45
 
46
 				*p = 0;
47
 				if (strchr(p + 1,';') != NULL)
48
-					sscanf(p + 1,"%[^;];%d;%d;%lf",enco,
49
-					&fnc[i].xr,&fnc[i].yr,&fnc[i].pt);
50
+					sscanf(p + 1,"%[^;];%d;%d;%lf;%d",enco,
51
+					&fnc[i].xr,&fnc[i].yr,&fnc[i].pt,&fnc[i].faceindex);
52
 				else
53
 					strcpy(enco,p + 1);
54
 
55
@@ -559,6 +560,7 @@
56
 			fnc[i].xr = fnc[i - 1].xr;
57
 			fnc[i].yr = fnc[i - 1].yr;
58
 			fnc[i].pt = fnc[i - 1].pt;
59
+			fnc[i].faceindex = fnc[i - 1].faceindex;
60
 		}
61
 	}
62
 	return(i);
63
@@ -925,7 +927,7 @@
64
 				ttglobalinfo.font.xr = fnc[i].xr;
65
 				ttglobalinfo.font.yr = fnc[i].yr;
66
 				ttglobalinfo.font.charsize = fnc[i].pt;
67
-				setFont(&ttglobalinfo,fnc[i].filename);
68
+				setFont(&ttglobalinfo,fnc[i].filename,fnc[i].faceindex);
69
 				generateFont(out,aux,&ttglobalinfo);
70
 				unsetFont(&ttglobalinfo);
71
 			}
72
diff -ur src/wprint.h.orig src/wprint.h
73
--- src/wprint.h.orig	2002-04-02 04:39:04.000000000 +0800
74
+++ src/wprint.h	2003-07-19 14:58:57.000000000 +0800
75
@@ -152,6 +152,7 @@
76
 	int	xr;
77
 	int	yr;
78
 	double	pt;
79
+	int	faceindex;
80
 };
81
 typedef struct
82
 {
83
@@ -161,7 +162,7 @@
84
 Font	*newFont(unsigned short fid,unsigned short feid);
85
 Font	*addChar(unsigned short unicode,int fontid);
86
 int	initTT(struct tt_info *ti);
87
-int	setFont(struct tt_info *ti,char *);
88
+int	setFont(struct tt_info *ti,char *,int faceindex);
89
 int	unsetFont(struct tt_info *ti);
90
 void	finalizeTT(struct tt_info *ti);
91
 FILE	*processConfiguration(FILE *in,char *entry,char *encoding);

Return to bug 54819