Re: [ft] Bad emulation of boldness.

2006-10-10 Thread Chia-I Wu
On Tue, Oct 10, 2006 at 02:10:08PM +0200, Daniel M. wrote:
 Is it possible somehow to improve the situation?
The problem might be that the glyph drawing backend calls a convenient
function provided by freetype to embolden the glyphs, which lacks
parameters to control how embolden is done.  Enabling antialias should
help:

http://people.debian.org.tw/~olv/freetype/monaco-lin-10pt.png

Another solution is to convert the font to a bitmap one for the pixel
size used.  The convenient function uses different algorithm to embolden
bitmap glyphs, which is similar to what Windows does.

-- 
Regards,
olv


___
Freetype mailing list
Freetype@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype


Re: [ft] Bad emulation of boldness.

2006-10-10 Thread Chia-I Wu
On Wed, Oct 11, 2006 at 12:39:02AM +0200, Werner LEMBERG wrote:
  though it is possible that I missed something while reading a map
  page, going to take a better look at it later. In any case, the best
  option is to make an original .ttf look good.
 I suggest to use FontForge to do what you want.  This can be
 controlled with scripts also.
FontForge seems to ignore the hints in the font.  I use gbdfed instead
to generate the bitmaps.

That is, use gbdfed to generate a bdf font (10pt at 96 dpi).  Then use
FontForge to open the original Monaco.ttf, import this bdf font, and
generate a bitmap-embedded TrueType font.  The result is:

http://people.debian.org.tw/~olv/freetype/monaco-lin-13px_bitmap.png

-- 
Regards,
olv


___
Freetype mailing list
Freetype@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype


Re: [ft] bold problem with some fonts

2006-10-10 Thread Chia-I Wu
On Wed, Oct 04, 2006 at 07:22:18AM +0200, Werner LEMBERG wrote:
   Now I have a question about problem in bold rendering with some 
   font, for example VLGothic font (http://dicey.org/vlgothic/).
 Attached is a font file which contains just the zero glyph of this
 font.
This is another issue than what I originally thought.

The outer most contour has only off-line points and is thus ignored when
trying to identify the orientation of the glyph.  This change was
introduced here:

http://lists.gnu.org/archive/html/freetype-devel/2006-03/msg00027.html

I'll see if I can find the fonts mentioned there to test.

This mail is also forwarded to Zhe Su.

-- 
Regards,
olv


___
Freetype mailing list
Freetype@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype


Re: [ft-devel] hinting regression in 2.2.1?

2006-05-20 Thread Chia-I Wu
Hi,

On Sat, May 20, 2006 at 04:41:03PM -0400, Izaak Branderhorst wrote:
 I've attached two screenshots which illustrate a difference in rendering  
 Arial at 11px bold.
 
 My configuration doesn't change between running 2.1.10 and 2.2.1. The only  
 thing I've found that fixes the problem is reducing hinting from full to  
 medium.
freetype 2.1.10 has a bug in determining whether it's doing horizontal
or vertical hinting, which prevents stem snapping in some cases:

2005-09-26  David Turner  [EMAIL PROTECTED]

* src/autofit/aflatin.c (af_latin_compute_stem_width): Fix bad
computation of the `vertical' flag, causing ugly things in LCD mode
and others.

But in this case, bypassing stem snapping gives better result.

Maybe we can adjust the algorithm so that font styles are taken into
consideration when snapping?

-- 
Regards,
olv


___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel


[ft-cvs] ft2demos ./ChangeLog src/ftcommon.c

2006-03-04 Thread Chia-I Wu
CVSROOT:/cvsroot/freetype
Module name:ft2demos
Branch: 
Changes by: Chia-I Wu [EMAIL PROTECTED]   06/03/02 09:05:12

Modified files:
.  : ChangeLog 
src: ftcommon.c 

Log message:
* src/ftcommon.c (string_render_prepare): Fix a possible crash.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/freetype/ft2demos/ChangeLog.diff?tr1=1.148tr2=1.149r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/ft2demos/src/ftcommon.c.diff?tr1=1.10tr2=1.11r1=textr2=text


___
Freetype-cvs mailing list
Freetype-cvs@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-cvs


[ft-cvs] freetype2 ./ChangeLog src/base/ftobjs.c

2006-02-28 Thread Chia-I Wu
CVSROOT:/cvsroot/freetype
Module name:freetype2
Branch: 
Changes by: Chia-I Wu [EMAIL PROTECTED]   06/02/27 11:11:40

Modified files:
.  : ChangeLog 
src/base   : ftobjs.c 

Log message:
* src/base/ftobjs.c (FT_Set_Char_Size): Ahh.. forgot to check the case
width or height is 0.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/ChangeLog.diff?tr1=1.1256tr2=1.1257r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/base/ftobjs.c.diff?tr1=1.246tr2=1.247r1=textr2=text


___
Freetype-cvs mailing list
Freetype-cvs@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-cvs


[ft-cvs] freetype2 ./ChangeLog src/autofit/afloader.c sr...

2006-02-28 Thread Chia-I Wu
CVSROOT:/cvsroot/freetype
Module name:freetype2
Branch: 
Changes by: Chia-I Wu [EMAIL PROTECTED]   06/02/27 09:18:07

Modified files:
.  : ChangeLog 
src/autofit: afloader.c 
src/base   : ftobjs.c 

Log message:
* src/base/ftobjs.c (ft_glyphslot_grid_fit_metrics, FT_Load_Glyph):
Re-enable glyph metrics grid-fitting.  It is now done in the base
layer.
(FT_Set_Char_Size, FT_Set_Pixel_Sizes): Make sure the width and height
are not too small or too large, just like we were doing in 2.1.10.

* src/autofit/afloader.c (af_loader_load_g): The vertical metrics are
not scaled.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/ChangeLog.diff?tr1=1.1254tr2=1.1255r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/autofit/afloader.c.diff?tr1=1.21tr2=1.22r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/base/ftobjs.c.diff?tr1=1.245tr2=1.246r1=textr2=text


___
Freetype-cvs mailing list
Freetype-cvs@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-cvs


Re: [ft-devel] Third Release candidate for FT 2.2 available

2006-02-28 Thread Chia-I Wu
Hi,

On Sun, Feb 26, 2006 at 05:22:48PM +0100, David Somers wrote:
 RC3 seems to work on my Gentoo/Linux system... although I now seem to have 
 problems with the edges of some glyphs being clipped on fixed-width fonts.
This should be fixed in the CVS.  It's due to metrics rounding which
has been re-enabled.

-- 
Regards,
olv


___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel


[ft-cvs] freetype2 ./ChangeLog include/freetype/freetype...

2006-02-24 Thread Chia-I Wu
CVSROOT:/cvsroot/freetype
Module name:freetype2
Branch: 
Changes by: Chia-I Wu [EMAIL PROTECTED]   06/02/24 06:11:30

Modified files:
.  : ChangeLog 
include/freetype: freetype.h 
src/base   : ftobjs.c 

Log message:
* include/freetype/freetype.h (FT_Size_RequestRec): Change the type of
`width' and `height' to `FT_Long'.
(enum FT_Size_Request_Type), src/base/ftobjs.c (FT_Request_Metrics):
New request type `FT_SIZE_REQUEST_TYPE_SCALES' to specify the scales
directly.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/ChangeLog.diff?tr1=1.1240tr2=1.1241r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/include/freetype/freetype.h.diff?tr1=1.180tr2=1.181r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/base/ftobjs.c.diff?tr1=1.242tr2=1.243r1=textr2=text


___
Freetype-cvs mailing list
Freetype-cvs@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-cvs


Re: [ft-devel] Outline dumper for windows

2006-02-22 Thread Chia-I Wu
On Wed, Feb 22, 2006 at 08:46:12AM +0100, Werner LEMBERG wrote:
 Very good that you've written that!  I've asked for such a program
 years ago.  BTW, perhaps you find a better name for this smal
 program...
On my box, I name it `a.c' :-)

 Using FontForge to single-step through the bytecode instructions!
 This makes great fun (and drives George crazy because of my many bug
 reports and feature suggestions).
I tried to debug the `7' of verdana with fontforge's bytecode debugger
and verify every calculation by hand.  It was fun until I met SDPVTL...

-- 
Regards,
olv


___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel


Re: [ft-devel] Some black and white dot

2006-02-20 Thread Chia-I Wu
Hi,

On Mon, Feb 20, 2006 at 04:20:14PM +0800, DingLi(丁力) wrote:
 Why these phenomenons appear?
Is the font MINGLIU.TTC?  Which version of freetype and which pixel size
do you use?

I tried with MINGLIU.TTC and there is no such problem (freetype 2.1.10
and CVS).  But the strokes are thiner than yours.

To test if it's a bug of freetype, you can use ftview, by

$ ftview -e unic -f 23478 pixel_size MINGLIU.TTC

-- 
Regards,
olv


home.png
Description: PNG image
___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel


[ft-devel] Re: [ft-cvs] freetype2 ./ChangeLog builds/amiga/src/base/fts...

2006-02-19 Thread Chia-I Wu
On Sun, Feb 19, 2006 at 05:26:14PM +0100, Werner LEMBERG wrote:
  When FT_OPTIMIZE_MEMORY is defined, `long_metrics' is always NULL
  while `number_Of_HMetrics' is usually non-zero.  This crashes
  libXfont and thus xorg.
  
  The only fix I come up with is always set
  face-horizontal.number_Of_HMetrics to zero, add
  `number_Of_HMetrics' to the end of `TT_FaceRec' and use it when
  FT_OPTIMIZE_MEMORY is defined.  `vhea' should be handled similarly.
 This sounds good.  Please provide a patch.
Although this prevents crashes, the multi-byte glyphs are no more
shown, i.e. libXft malfuctions.

There is another problem.  libXfont uses sfnt-find_sbit_image and
sfnt-load_sbit_metrics, which are now moved to the end of
SFNT_Interface.  Therefore, another two functions would be called and
the behavior may be unpredictable.

For a distribution maintainer, if upgrading freetype would render some
package broken (crash or malfunction), it is definitely unacceptable.
As a result, freetype can be upgraded only after the package is patched
and recompiled.  In this point of view, we don't need to pay special
attention to the internal ABI compatibility.  Things are solved in the
package managing level.

Meanwhile, we can still make binaries under /usr/local happier by, say,
keeping those APIs which can be easily kept or which are known to be
used by some rogue client.  If having the degree of intenal ABI
compatibility we have now in the CVS can make _all_ clients happy,
despite the code is ugly, it's worth it.  But we already know that this
is not true.

Any comment?

-- 
Regards,
olv


___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel


Re: [ft-devel] BUG-REPORT: Verdana 10px regular and character '7'

2006-02-18 Thread Chia-I Wu
Hi,

On Fri, Feb 17, 2006 at 02:08:47PM +0100, lefti wrote:
 Hi,
 There is bug in freetype: look at 
 http://mbox.troja.mff.cuni.cz/~peak/ftdemo/index.cgi and set hinting 
 :on, antialiasing:off,font:verdana.ttf,size:10 and text to 0123456789 or 
 something else what containts character 7 and look at 7. The downest 
 pixel is missing.
There is no such problem with freetype 2.1.10.

The CGI uses `ftstrpnm' to render the string, which is part of
freetype1.

-- 
Regards,
olv


___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel


Re: [ft-devel] internal differences between 2.1.10 and current CVS

2006-02-15 Thread Chia-I Wu
Hi David,

I've cooked a quick patch to make fc-cache work again.  I'll comment in
the next mail.

-- 
Regards,
olv
=== include/freetype/config/ftoption.h
==
--- include/freetype/config/ftoption.h  (revision 3230)
+++ include/freetype/config/ftoption.h  (local)
@@ -591,6 +591,7 @@
 #define  FT_STRICT_ALIASING
 */
 
+#define FT_CONFIG_OPTION_OLD_INTERNALS
 
 FT_END_HEADER
 
=== include/freetype/internal/ftobjs.h
==
--- include/freetype/internal/ftobjs.h  (revision 3230)
+++ include/freetype/internal/ftobjs.h  (local)
@@ -175,18 +175,6 @@
   /*FreeType.  */
   /*   */
   /* Fields  */
-  /*max_points ::  */
-  /*  The maximal number of points used to store the vectorial outline */
-  /*  of any glyph in this face.  If this value cannot be known in */
-  /*  advance, or if the face isn't scalable, this should be set to 0. */
-  /*  Only relevant for scalable formats.  */
-  /*   */
-  /*max_contours ::*/
-  /*  The maximal number of contours used to store the vectorial   */
-  /*  outline of any glyph in this face.  If this value cannot be  */
-  /*  known in advance, or if the face isn't scalable, this should be  */
-  /*  set to 0.  Only relevant for scalable formats.   */
-  /*   */
   /*transform_matrix ::*/
   /*  A 2x2 matrix of 16.16 coefficients used to transform glyph   */
   /*  outlines after they are loaded from the font.  Only used by the  */
@@ -213,6 +201,11 @@
   /*   */
   typedef struct  FT_Face_InternalRec_
   {
+#ifdef FT_CONFIG_OPTION_OLD_INTERNALS
+FT_UShort   reserved1;
+FT_Shortreserved2;
+#endif
+
 FT_Matrix   transform_matrix;
 FT_Vector   transform_delta;
 FT_Int  transform_flags;
=== include/freetype/internal/psaux.h
==
--- include/freetype/internal/psaux.h   (revision 3230)
+++ include/freetype/internal/psaux.h   (local)
@@ -784,7 +784,6 @@
 const PS_Parser_FuncsRec*   ps_parser_funcs;
 const T1_Builder_FuncsRec*  t1_builder_funcs;
 const T1_Decoder_FuncsRec*  t1_decoder_funcs;
-const AFM_Parser_FuncsRec*  afm_parser_funcs;
 
 void
 (*t1_decrypt)( FT_Byte*   buffer,
@@ -793,6 +792,8 @@
 
 T1_CMap_Classes  t1_cmap_classes;
 
+const AFM_Parser_FuncsRec*  afm_parser_funcs;
+
   } PSAux_ServiceRec, *PSAux_Service;
 
   /* backwards-compatible type definition */
=== include/freetype/internal/sfnt.h
==
--- include/freetype/internal/sfnt.h(revision 3230)
+++ include/freetype/internal/sfnt.h(local)
@@ -510,9 +510,9 @@
 
 /* these functions are called by `load_face' but they can also  */
 /* be called from external modules, if there is a need to do so */
+TT_Load_Metrics_Func load_hmtx;
 TT_Load_Table_Func   load_head;
 TT_Load_Metrics_Func load_hhea;
-TT_Load_Metrics_Func load_hmtx;
 TT_Load_Table_Func   load_cmap;
 TT_Load_Table_Func   load_maxp;
 TT_Load_Table_Func   load_os2;
@@ -529,24 +529,24 @@
 TT_Load_Table_Func   load_bhed;
 
 /* see `ttsbit.h' */
-TT_Load_Table_Func   load_eblc;
-TT_Free_Table_Func   free_eblc;
 
 TT_Set_SBit_Strike_Func  set_sbit_strike;
-TT_Load_Strike_Metrics_Func  load_strike_metrics;
+TT_Load_Table_Func   load_eblc;
 TT_Find_SBit_Image_Func  find_sbit_image;
 TT_Load_SBit_Metrics_Funcload_sbit_metrics;
 TT_Load_SBit_Image_Func  load_sbit_image;
+TT_Free_Table_Func   free_eblc;
 
 /* see `ttkern.h' */
 TT_Face_GetKerningFunc   get_kerning;
 
-TT_Get_Metrics_Func  get_metrics;
-
 /* see `ttpost.h' */
 TT_Get_PS_Name_Func  get_psname;
 TT_Free_Table_Func   free_psnames;
 
+TT_Get_Metrics_Func  get_metrics;
+TT_Load_Strike_Metrics_Func  load_strike_metrics;
+
   } SFNT_Interface;
 
 
=== include/freetype/internal/tttypes.h
==
--- include/freetype/internal/tttypes.h (revision 3230)
+++ include/freetype/internal/tttypes.h (local)
@@ -311,8 

Re: [ft-devel] internal differences between 2.1.10 and current CVS

2006-02-15 Thread Chia-I Wu
On Wed, Feb 15, 2006 at 02:31:16PM +0100, david turner wrote:
 internal/ftdriver.h:
  FT_Size_ResetPointsFunc and FT_Size_ResetPixelsFunc are replaced
  by FT_Size_RequestFunc and FT_Size_SelectFunc, which have different
  signatures and usage. This impacts some fields in FT_Driver_ClassRec,
  namely:
 
'set_char_sizes'  = 'request_size'
'set_pixel_sizes' = 'select_size'
 
  the layout of other fields is untouched
The chance that rogue clients use them is low.  I suggest not fixing
this.
 internal/ftobjs.h:
  two new fields at the start of FT_Face_InternalRec, named
  'max_points' and 'max_contours'
They are removed by me yesterday.  I've added them back and renamed them
to `reserved1' and `reserved2'.
 
  FT_New_Memory was FT_EXPORT and is now FT_BASE, i.e. no longer
  exported
 
  same for FT_Done_Memory !
 
 internal/ftstream.h:
  FT_Stream_Open was FT_EXPORT and is now FT_BASE
 
They were labeled wrongly.  No special care needed.
 internal/psaux.h:
  PSAux_ServiceRec has a new field added in its middle, named
  'afm_parser_funcs'.
 
  obvious solution: move it to the end of the structure
Done.
 internal/sfnt.h:
  **VERY BAD**
 
  changes here have been extremely drastic, more details will follow
  but we need to be very careful. The types defined here are *very*
  likely to be used by rogue clients
 
  **MORE DETAILS LATER**
After re-ordering the members of SFNT_Interface, the problems are
restricted to:

1) load_sfnt_header = tt_face_load_font_dir
   load_directory   = tt_face_load_hmtx
   load_metrics = tt_face_load_hhea 
Functional-wise, the first two functions on the left are equal to the
first function on the right.  The third function on the left is equal to
the last two functions on the right.

I've cooked a patch for a possible solution.  With it, freetype should
never crash.  Depending on how rogue clients call the functions, they
are mostly like to get zero width and zero advance later in
`get_metrics' when FT_OPTIMIZE_MEMORY is defined, or get error in
`tt_face_load_hmtx' when not.

(if we let `tt_face_load_hhea' call `tt_face_load_hmtx', everything
 will work as well as before, but I don't like it :-)

2) set_sbit_strike changed.
the second parameter was x_ppem and is a size request (a pointer).
If there is a reliable way to distinguish a interger and a pointer, say,
rogue clients never call `set_sbit_strike' with x_ppem = 0x1000 and a
pointer always points to somewhere = 0x1000, we can tell who is calling
this function and return error when the rogue clients call it.

 internal/tttypes.h:
  a new field named 'max_components' was added in the middle of
  TT_FaceRec = move it to the end of the structure
It was removed by me yesterday.  I've added it back and renamed it to
`reserved'.
  when FT_OPTIMIZE_MEMORY is defined, this adds new fields within
  the structure = move them to the end as well
 
  same for TT_CONFIG_OPTION_BDF and 'bdf' field
Done.

-- 
Regards,
olv


___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel


Re: [ft-devel] internal differences between 2.1.10 and current CVS

2006-02-15 Thread Chia-I Wu
Hi,

Sorry, I forgot to attach the patch I mentioned in the second mail.

-- 
Regards,
olv
=== src/sfnt/ttmtx.c
==
--- src/sfnt/ttmtx.c(revision 3231)
+++ src/sfnt/ttmtx.c(local)
@@ -85,6 +85,9 @@
   ptable_size = face-horz_metrics_size;
 }
 
+if ( *ptable )
+  return SFNT_Err_Ok;
+
 if ( FT_FRAME_EXTRACT( table_size, *ptable ) )
   goto Fail;
   
@@ -142,6 +145,9 @@
   shorts = (TT_ShortMetrics**)face-horizontal.short_metrics;
 }
 
+if ( num_longs == 0 )
+  return SFNT_Err_Invalid_Table;
+
 /* never trust derived values */
 
 num_shorts = face-max_profile.numGlyphs - num_longs;
@@ -352,6 +358,9 @@
   limit  = p + face-horz_metrics_size;
 }
 
+if ( !p )
+  goto NoData;
+
 k = header-number_Of_HMetrics;
 
 if ( k  0 )
=== src/sfnt/ttsbit.c
==
--- src/sfnt/ttsbit.c   (revision 3231)
+++ src/sfnt/ttsbit.c   (local)
@@ -640,6 +640,11 @@
FT_Size_Request  req,
FT_ULong*astrike_index )
   {
+#ifdef FT_CONFIG_OPTION_OLD_INTERNALS
+if ( (FT_UInt)req  0x1000 )
+  return FT_Err_Invalid_Pixel_Size;
+#endif
+
 return FT_Match_Size( (FT_Face)face, req, 0, astrike_index );
   }
 
=== src/sfnt/ttsbit0.c
==
--- src/sfnt/ttsbit0.c  (revision 3231)
+++ src/sfnt/ttsbit0.c  (local)
@@ -170,6 +170,11 @@
FT_Size_Request  req,
FT_ULong*astrike_index )
   {
+#ifdef FT_CONFIG_OPTION_OLD_INTERNALS
+if ( (FT_UInt)req  0x1000 )
+return FT_Err_Invalid_Pixel_Size;
+#endif
+
 return FT_Match_Size( (FT_Face)face, req, 0, astrike_index );
   }
 
___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel


[ft-cvs] freetype2 ./ChangeLog src/sfnt/ttmtx.c

2006-02-14 Thread Chia-I Wu
CVSROOT:/cvsroot/freetype
Module name:freetype2
Branch: 
Changes by: Chia-I Wu [EMAIL PROTECTED]   06/02/14 13:36:28

Modified files:
.  : ChangeLog 
src/sfnt   : ttmtx.c 

Log message:
* src/sfnt/ttmtx.c (tt_face_get_metrics): Typo.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/ChangeLog.diff?tr1=1.1220tr2=1.1221r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/sfnt/ttmtx.c.diff?tr1=1.4tr2=1.5r1=textr2=text


___
Freetype-cvs mailing list
Freetype-cvs@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-cvs


[ft-cvs] freetype2 ./ChangeLog include/freetype/internal...

2006-02-13 Thread Chia-I Wu
CVSROOT:/cvsroot/freetype
Module name:freetype2
Branch: 
Changes by: Chia-I Wu [EMAIL PROTECTED]   06/02/14 06:40:10

Modified files:
.  : ChangeLog 
include/freetype/internal: fttrace.h sfnt.h 
src/cff: cffgload.c cffobjs.c 
src/sfnt   : rules.mk sfdriver.c sfnt.c sfobjs.c ttload.c 
 ttload.h ttsbit.c ttsbit.h ttsbit0.c 
src/truetype   : ttgload.c ttobjs.c ttpload.c ttpload.h 
Added files:
src/sfnt   : ttmtx.c ttmtx.h 

Log message:
Clean up the SFNT_Interface.  Table loading functions are now named
after the tables' tags;  `hdmx' is TrueType-specific and thus the code
is moved to the truetype module; `get_metrics' is moved here from the
truetype module so that the code can be shared with the cff module.

This pass involves no real changes.  That is, the code is moved
verbatim mostly.  The only exception is the return value of
`tt_face_get_metrics'.

* include/freetype/internal/sfnt.h, src/sfnt/rules.mk,
src/sfnt/sfdriver.c, src/sfnt/sfnt.c, src/sfnt/sfobjs.c,
src/sfnt/ttload.c, src/sfnt/ttload.h, src/sfnt/ttsbit.c,
src/sfnt/ttsbit.h, src/sfnt/ttsbit0.c: Clean up the SFNT_Interface.

* src/sfnt/ttmtx.c, src/sfnt/ttmtx.h: Metrics-related tables' loading
and parsing code is moved here.
Move `tt_face_get_metrics' here from the truetype module.  The return
value is changed from `void' to `FT_Error'.

* include/freetype/internal/fttrace.h: New trace: ttmtx.

* src/truetype/ttpload.c, src/truetype/ttpload.h: `hdmx' loading and
parsing code is moved here.
New function `tt_face_load_prep' splitted from `tt_face_load_fpgm'.
`tt_face_load_fpgm' returns `FT_Err_Ok' if `fpgm' doesn't exist.

* src/cff/cffgload.c, src/cff/cffobjs.c: Update.

* src/truetype/ttgload.c, src/truetype/ttobjs.c: Update.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/ChangeLog.diff?tr1=1.1215tr2=1.1216r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/include/freetype/internal/fttrace.h.diff?tr1=1.10tr2=1.11r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/include/freetype/internal/sfnt.h.diff?tr1=1.37tr2=1.38r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/cff/cffgload.c.diff?tr1=1.78tr2=1.79r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/cff/cffobjs.c.diff?tr1=1.78tr2=1.79r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/sfnt/rules.mk.diff?tr1=1.25tr2=1.26r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/sfnt/sfdriver.c.diff?tr1=1.81tr2=1.82r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/sfnt/sfnt.c.diff?tr1=1.22tr2=1.23r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/sfnt/sfobjs.c.diff?tr1=1.108tr2=1.109r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/sfnt/ttload.c.diff?tr1=1.123tr2=1.124r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/sfnt/ttload.h.diff?tr1=1.26tr2=1.27r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/sfnt/ttmtx.c?rev=1.1
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/sfnt/ttmtx.h?rev=1.1
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/sfnt/ttsbit.c.diff?tr1=1.67tr2=1.68r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/sfnt/ttsbit.h.diff?tr1=1.29tr2=1.30r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/sfnt/ttsbit0.c.diff?tr1=1.16tr2=1.17r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/truetype/ttgload.c.diff?tr1=1.160tr2=1.161r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/truetype/ttobjs.c.diff?tr1=1.97tr2=1.98r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/truetype/ttpload.c.diff?tr1=1.33tr2=1.34r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/truetype/ttpload.h.diff?tr1=1.16tr2=1.17r1=textr2=text


___
Freetype-cvs mailing list
Freetype-cvs@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-cvs


[ft-cvs] freetype2 ./ChangeLog include/freetype/internal...

2006-02-13 Thread Chia-I Wu
CVSROOT:/cvsroot/freetype
Module name:freetype2
Branch: 
Changes by: Chia-I Wu [EMAIL PROTECTED]   06/02/14 07:01:29

Modified files:
.  : ChangeLog 
include/freetype/internal: sfnt.h 
src/sfnt   : sfdriver.c sfobjs.c ttload.c ttload.h 

Log message:
Clean up the SFNT_Interface.  In this pass, we want to treat the font
directory (offset table and table directory) as a normal table like
the others.  This also means that TTC is no longer recognized there,
but in `init_face'.

* include/freetype/internal/sfnt.h (SFNT_Interface),
src/sfnt/sfdriver.c: `load_sfnt_header' and `load_directory' are
combined and renamed to `load_font_dir'.

* src/sfnt/ttload.h, src/sfnt/ttload.c:
s/sfnt_dir_check/check_table_dir/.
`sfnt_init' is moved to sfobjs.c and renamed to `sfnt_open_font'.
`tt_face_load_sfnt_header' and `tt_face_load_directory' are combined
and renamed to `tt_face_load_font_dir'.

* src/sfnt/sfobjs.c (sfnt_init_face): Recognize TTC here.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/ChangeLog.diff?tr1=1.1216tr2=1.1217r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/include/freetype/internal/sfnt.h.diff?tr1=1.38tr2=1.39r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/sfnt/sfdriver.c.diff?tr1=1.82tr2=1.83r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/sfnt/sfobjs.c.diff?tr1=1.109tr2=1.110r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/sfnt/ttload.c.diff?tr1=1.124tr2=1.125r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/sfnt/ttload.h.diff?tr1=1.27tr2=1.28r1=textr2=text


___
Freetype-cvs mailing list
Freetype-cvs@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-cvs


[ft-cvs] freetype2 ./ChangeLog src/sfnt/ttmtx.c src/sfnt...

2006-02-13 Thread Chia-I Wu
CVSROOT:/cvsroot/freetype
Module name:freetype2
Branch: 
Changes by: Chia-I Wu [EMAIL PROTECTED]   06/02/14 07:20:06

Modified files:
.  : ChangeLog 
src/sfnt   : ttmtx.c ttmtx.h 

Log message:
* src/sfnt/ttmtx.h, src/sfnt/ttmtx.c: Why are there two copies of
code...

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/ChangeLog.diff?tr1=1.1217tr2=1.1218r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/sfnt/ttmtx.c.diff?tr1=1.1tr2=1.2r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/sfnt/ttmtx.h.diff?tr1=1.1tr2=1.2r1=textr2=text


___
Freetype-cvs mailing list
Freetype-cvs@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-cvs


[ft-cvs] freetype2 ./ChangeLog include/freetype/internal...

2006-02-13 Thread Chia-I Wu
CVSROOT:/cvsroot/freetype
Module name:freetype2
Branch: 
Changes by: Chia-I Wu [EMAIL PROTECTED]   06/02/14 07:25:57

Modified files:
.  : ChangeLog 
include/freetype/internal: sfnt.h 
src/sfnt   : sfdriver.c sfobjs.c ttmtx.c ttmtx.h 

Log message:
Clean up the SFNT_Interface.  In this final pass, `load_hmtx' is
splitted from `load_hhea'.

* include/freetype/internal/sfnt.h, src/sfnt/sfdriver.c,
src/sfnt/ttmtx.c, src/sfnt/ttmtx.h: Split `hmtx' from `hhea'.

* src/sfnt/sfobjs.c (sfnt_load_face): Update.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/ChangeLog.diff?tr1=1.1218tr2=1.1219r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/include/freetype/internal/sfnt.h.diff?tr1=1.39tr2=1.40r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/sfnt/sfdriver.c.diff?tr1=1.83tr2=1.84r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/sfnt/sfobjs.c.diff?tr1=1.110tr2=1.111r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/sfnt/ttmtx.c.diff?tr1=1.2tr2=1.3r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/sfnt/ttmtx.h.diff?tr1=1.2tr2=1.3r1=textr2=text


___
Freetype-cvs mailing list
Freetype-cvs@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-cvs


Re: [ft-devel] How can I do to make the font a little thin?

2006-02-13 Thread Chia-I Wu
Hi,

On Mon, Feb 13, 2006 at 09:09:44AM +0800, DingLi(丁力) wrote:
 I use simsun.ttf(宋體),the upper is the image which use FreeType 2.0.9,and the 
 lower is which I want to get.
You can pass a negative strength value to the FT_Outline_Embolden.  This
function is only available from freetype 2.1.10 on.  If upgrading
freetype is not a choice, you can copy the code to your application.

-- 
Regards,
olv


___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel


[ft-cvs] freetype2 ./ChangeLog docs/CHANGES docs/TODO in...

2006-02-11 Thread Chia-I Wu
CVSROOT:/cvsroot/freetype
Module name:freetype2
Branch: 
Changes by: Chia-I Wu [EMAIL PROTECTED]   06/02/11 12:12:02

Modified files:
.  : ChangeLog 
docs   : CHANGES TODO 
include/freetype/config: ftoption.h 
src/autofit: afcjk.c aflatin.c aflatin.h 

Log message:
* include/freetype/config/ftoption.h (AF_CONFIG_OPTION_CJK): #define
to enable autofit CJK script support. (#define'd by default)

* src/autofit/aflatin.h (AF_LATIN_CONSTANT): New macro.

* src/autofit/aflatin.c (af_latin_metrics_init_widths): Make sure that
`edge_distance_threshold' is always set.
(af_latin_hints_link_segments): Potential divide by 0 bug.
Use latin constant in the scoring formula.

* src/autofit/afcjk.c: Minor updates due to the above three changes.

* docs/TODO, docs/CHANGES: Updated.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/ChangeLog.diff?tr1=1.1212tr2=1.1213r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/docs/CHANGES.diff?tr1=1.136tr2=1.137r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/docs/TODO.diff?tr1=1.11tr2=1.12r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/include/freetype/config/ftoption.h.diff?tr1=1.99tr2=1.100r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/autofit/afcjk.c.diff?tr1=1.2tr2=1.3r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/autofit/aflatin.c.diff?tr1=1.28tr2=1.29r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/autofit/aflatin.h.diff?tr1=1.11tr2=1.12r1=textr2=text


___
Freetype-cvs mailing list
Freetype-cvs@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-cvs


Re: [ft-devel] autofit CJK module

2006-02-10 Thread Chia-I Wu
On Fri, Feb 10, 2006 at 03:46:27PM +0100, Werner LEMBERG wrote:
  The CJK module is currently in experimental stage and is disabled by
  default.  If you are interested in helping or want to have a try on
  it, it can enabled by #define AF_MOD_CJK in src/autofit/afcjk.c.
 Please move AF_MOD_CJK to ftoption.h and enable it by default.  This
 makes it easier to test.
 
 BTW, I see code like this in the new module:
 
   FT_Pos  threshold = 50 * metrics-units_per_em / 2048;
 
 Where does the `2048' come from?  Please add a comment.
I wanted to ask about this on the list but I forgot :(

The thresholds here and in segment linking are in font units.  They
should be proportional to units_per_em.  As they work great for fonts
with 2048 units, I assume they are decided with 2048 units in mind.  If
this is not the case, please replace 2048 with an appropriate value.

I did the same to the latin module.  All Type 1 fonts would be affected.
(And I just found that the 3000 in the scoring formula should be scaled
too.)

-- 
Regards,
olv


___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel


[ft-devel] autofit CJK module

2006-02-09 Thread Chia-I Wu
Hi all,

I've just committed autofit CJK module.  It is based on akito's autohint
patch.

Here's some screenshots...

with hinting disabled (some people might like this best):
http://homepage.ntu.edu.tw/~b88401031/ming-no-hint.png

with normal hinting:
http://homepage.ntu.edu.tw/~b88401031/ming-normal.png

with light hinting:
http://homepage.ntu.edu.tw/~b88401031/ming-light.png

with CJK module disabled:
http://homepage.ntu.edu.tw/~b88401031/ming-latin.png

The CJK module is currently in experimental stage and is disabled by
default.  If you are interested in helping or want to have a try on it,
it can enabled by #define AF_MOD_CJK in src/autofit/afcjk.c.

-- 
Regards,
olv


___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel


[ft-cvs] freetype2 ./ChangeLog include/freetype/freetype...

2006-01-31 Thread Chia-I Wu
CVSROOT:/cvsroot/freetype
Module name:freetype2
Branch: 
Changes by: Chia-I Wu [EMAIL PROTECTED]   06/01/31 07:01:24

Modified files:
.  : ChangeLog 
include/freetype: freetype.h 
include/freetype/internal: t1types.h 
src/psaux  : afmparse.c 
src/tools  : test_afm.c 
src/type1  : t1afm.c 

Log message:
* include/freetype/internal/t1types.h (AFM_FontInfo),
src/psaux/afmparse.c, src/tools/test_afm.c: Read `FontBBox',
`Ascender', and `Descender' from an AFM.

* src/type1/t1afm.c (T1_Read_Metrics): Use the metrics from the AFM.

* include/freetype/freetype.h (FT_FaceRec): Mention that fields may be
changed after file attachment.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/ChangeLog.diff?tr1=1.1199tr2=1.1200r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/include/freetype/freetype.h.diff?tr1=1.178tr2=1.179r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/include/freetype/internal/t1types.h.diff?tr1=1.41tr2=1.42r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/psaux/afmparse.c.diff?tr1=1.5tr2=1.6r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/tools/test_afm.c.diff?tr1=1.2tr2=1.3r1=textr2=text
http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/type1/t1afm.c.diff?tr1=1.47tr2=1.48r1=textr2=text


___
Freetype-cvs mailing list
Freetype-cvs@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-cvs


Re: [ft-devel] patch requested for freetype2/internal header usage (using font_bbox)

2006-01-26 Thread Chia-I Wu
On Fri, Jan 27, 2006 at 06:14:48AM +0100, Werner LEMBERG wrote:
src/type1/t1objs.c (403):
root-bbox.xMin =   type1-font_bbox.xMin  16;
root-bbox.yMin =   type1-font_bbox.yMin  16;
root-bbox.xMax = ( type1-font_bbox.xMax + 0xU )  16;
root-bbox.yMax = ( type1-font_bbox.yMax + 0xU )  16;
 
  It looks to me that type1-font_matrix and type1-font_offset should
  be applied to type1-font_bbox to get root-bbox, since glyphs are
  always transformed by the driver on loading.
 Can you verify or falsify this, please?
The values given in the PFB are raw.  They should be transformed for use
in face-bbox.  Yet direct application of the transformations to the
FontBBox is wrong.  The transformations should be applied to each
glyph's bbox and the FontBBox should be recalculated.

As this is not affordable, maybe we should document this and provide
some means for access to FontMatrix.

-- 
Regards,
olv


___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel


Re: [ft-devel] patch requested for freetype2/internal header usage (using font_bbox)

2006-01-25 Thread Chia-I Wu
Hi,

This is not related to the discussion but related to freetype internal.

On Mon, Jan 23, 2006 at 11:20:41AM +0100, david turner wrote:
  src/type1/t1objs.c (403):
  root-bbox.xMin =   type1-font_bbox.xMin  16;
  root-bbox.yMin =   type1-font_bbox.yMin  16;
  root-bbox.xMax = ( type1-font_bbox.xMax + 0xU )  16;
  root-bbox.yMax = ( type1-font_bbox.yMax + 0xU )  16;
It looks to me that type1-font_matrix and type1-font_offset should be
applied to type1-font_bbox to get root-bbox, since glyphs are always
transformed by the driver on loading.

-- 
Regards,
olv


___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel


Re: [ft-devel] when does the next version of freetype release?

2006-01-19 Thread Chia-I Wu
Hi David,

After defining FT_OPTIMIZE_MEMORY, trutype sbits (bit-aligned) stop to
work.  I found the glyph size checking in
`tt_sbit_decoder_load_bit_aligned' is not done right.  Fixing that makes
glyphs load, but the loaded bitmaps are still not right.

-- 
Regards,
olv
=== src/sfnt/ttsbit0.c
==
--- src/sfnt/ttsbit0.c  (revision 3141)
+++ src/sfnt/ttsbit0.c  (local)
@@ -582,7 +582,7 @@
   goto Exit;
 }
 
-if ( p + ( ( width + 7 )  3 ) * height  limit )
+if ( p + ( ( ( width * height ) + 7 )  3 )  limit )
 {
   error = SFNT_Err_Invalid_File_Format;
   goto Exit;
___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel


Re: [ft] FT_New_Memory_Face and .ttc

2006-01-17 Thread Chia-I Wu
On Tue, Jan 17, 2006 at 07:40:54PM +1100, Michael Day wrote:
  N  := num. of tables
  Min:= min(offset of tables)
  Offset := Min - (12 + 16 * N).
 I don't quite follow this -- is the number of tables the number of tables
 in the individual font face? Given that GetFontData returns only the data
 for a single font face, how can this find the offset to subtract?
I was wrong.  I thought that a TTC has the layout like:

[TTC Header][Offset Table + Data 1][Offset Table + Data 2]...

Anyway, so when GetFontData are called with both the `table' and
`offset' parameters set to 0, it won't read the data from the beginning
of the file?

-- 
Regards,
olv


___
Freetype mailing list
Freetype@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype


Re: [ft-devel] Re: [ft] Creating an [OT]TF font from BDF font

2005-12-17 Thread Chia-I Wu
On Sat, Dec 17, 2005 at 04:01:38PM -0800, George Williams wrote:
 Ok, here is an iterator.
FT_GetIterate_BDF_Property(FT_Face,BDF_PropertyIteratorRec *aprop)
 To get the first property set,
aprop-index = 0
 (each call will automagically increment)
 
 aprop-cnt  will be set to the number of properties in the face
 aprop-name the name string
 aprop-property standard BDF_PropertyRec with the value.
I suggest the following APIs, making iterator merely an iterator:

/* to iterate... */
FT_Get_BDF_Iterator( face, iter );
while ( FT_Iterare_BDF_Property( face, iter, name, aprop ) )
{
/* do something; */
}

/* to get property count... */
FT_Get_BDF_Property_Count( face );

-- 
Regards,
olv


___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel


Re: [ft] Creating an [OT]TF font from BDF font

2005-12-08 Thread Chia-I Wu
Hi,

 Juliusz wrote fonttosfnt which combines multiple BDF sizes into a single
 SFNT.  It's in CVS at freedesktop.org in the xapps module
I tried fonttosfnt some weeeks ago and found that it uses
FT_Bitmap_Size-{height,width} for ppemY and ppemX.  Shouldn't it be
  
  ppemX = ppemY = FT_Bitmap_Size-y_ppem?

The reason that ppemX should be equal to ppemY is that an em-sqaure with
unequal ppems means x and y axes are scaled differently so that the
glyphs would look stretched.

-- 
Regards,
olv


___
Freetype mailing list
Freetype@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype


Re: [ft-devel] BDF and FT_Set_Pixel_Sizes

2005-12-06 Thread Chia-I Wu
Hi,

 The question isn't stupid at all. The difference comes from the TrueType
 bytecode specification, which makes a specific distinction between these
 two scaling modes.
 I can't remember the details though...
Hmm... the truetype driver doesn't seem to distinguish them.  Is it
unimplemented or something?

-- 
Regards,
olv


___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel


Re: [ft-devel] BDF and FT_Set_Pixel_Sizes

2005-12-05 Thread Chia-I Wu
On Sat, Dec 03, 2005 at 04:15:09PM +0800, Chia-I Wu wrote:
 I find these two paragraphs conflicting.  If we use the sum of
 FONT_ASCENT and FONT_DESCENT to match against, then all glyphs are
 within the 8x8 cell, provided FT_Set_Pixel_Size( face, 8, 8 ) returns
 success.  Or put it in another way, it means when the face is scalable,
 we should set
   x_scale = 8 / ( face-bbox.xMax - faec-bbox.xMin ),
   y_scale = 8 / ( face-bbox.yMax - faec-bbox.yMin ),
 so that all glyphs are within the 8x8 cell.  And this is really not
 intuitive.
Any comment?

I found this mail

http://lists.gnu.org/archive/html/freetype-devel/2004-07/msg00011.html

and BDF_Set_Pixel_Sizes was changed because otherwise
FTC_Manager_LookupSize would return error if we set

  scaler.width  = face-available_sizes-width;
  scaler.height = face-available_sizes-height;
  scaler.pixel  = TRUE;

But shouldn't the scaler be set up like this:

  scaler.width  = face-available_sizes-x_ppem;
  scaler.height = face-available_sizes-y_ppem;
  scaler.pixel  = TRUE;

?

 I also have a (maybe stupid) question.  Why don't we simply have
 
 FT_Set_Pixel_Sizes( face, w, h )
 {
   FT_Set_Char_Size( face, w, h, 72, 72 ):
 }
 
 ?
(More looking forward to comments on this question actually)

-- 
Regards,
olv


___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel


[ft-cvs] ft2demos ./ChangeLog src/ftbench.c

2005-12-03 Thread Chia-I Wu
CVSROOT:/cvsroot/freetype
Module name:ft2demos
Branch: 
Changes by: Chia-I Wu [EMAIL PROTECTED]   05/12/04 02:39:31

Modified files:
.  : ChangeLog 
src: ftbench.c 

Log message:
* src/ftbench.c: Formatting.
Make `face' and `charset' local variables.
(btest_t): Use `const' qualifier for `title'.
(bcharset_t): Change the type of `size' to `FT_Int'.
(face_requester, benchmark): Updated because `face' is no longer
global.
(test_get_char_index, test_cmap_cache, get_charset): Updated because
`charset' is no longer global.
(main): New variables, `face' and `charset'.
Updated because `face' and `charset' are local now.
`get_charset' only when perform FT_BENCH_CMAP.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/freetype/ft2demos/ChangeLog.diff?tr1=1.136tr2=1.137r1=textr2=text
http://savannah.gnu.org/cgi-bin/viewcvs/freetype/ft2demos/src/ftbench.c.diff?tr1=1.22tr2=1.23r1=textr2=text



___
Freetype-cvs mailing list
Freetype-cvs@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-cvs


[ft-devel] BDF and FT_Set_Pixel_Sizes

2005-12-03 Thread Chia-I Wu
Hi,

According to the document,

quote
This means that setting the pixel size to, say, 8x8 doesn't guarantee in
any way that you get glyph bitmaps that all fit within an 8x8 cell
(sometimes even far from it).

...

For BDF and PCF formats, this function uses the sum of the `FONT_ASCENT'
and `FONT_DESCENT' properties of the bitmap font.
/quote

I find these two paragraphs conflicting.  If we use the sum of
FONT_ASCENT and FONT_DESCENT to match against, then all glyphs are
within the 8x8 cell, provided FT_Set_Pixel_Size( face, 8, 8 ) returns
success.  Or put it in another way, it means when the face is scalable,
we should set
x_scale = 8 / ( face-bbox.xMax - faec-bbox.xMin ),
y_scale = 8 / ( face-bbox.yMax - faec-bbox.yMin ),
so that all glyphs are within the 8x8 cell.  And this is really not
intuitive.

I also have a (maybe stupid) question.  Why don't we simply have

FT_Set_Pixel_Sizes( face, w, h )
{
FT_Set_Char_Size( face, w, h, 72, 72 ):
}

?

-- 
Regards,
olv


___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel


[ft-cvs] freetype2 ./ChangeLog src/sfnt/ttcmap.c src/sfn...

2005-11-29 Thread Chia-I Wu
CVSROOT:/cvsroot/freetype
Module name:freetype2
Branch: 
Changes by: Chia-I Wu [EMAIL PROTECTED]   05/11/29 11:32:53

Modified files:
.  : ChangeLog 
src/sfnt   : ttcmap.c ttcmap.h 

Log message:
Major update to distinguish between unsorted and overlapped segments
for cmap format 4.  For overlapped but sorted segments, which is
previously considered unsorted, we still use binary search.

* src/sfnt/ttcmap.h (struct  TT_CMapRec_): Replace `unsorted' by
`flags'.
(TT_CMAP_FLAG_UNSORTED, TT_CMAP_FLAG_OVERLAPPED): New macros.

* src/sfnt/ttcmap.c (OPT_CMAP4): Removed as it is always defined.
(struct TT_CMap4Rec_): Remove `old_charcode' and `table_length'.
(tt_cmap4_reset): Removed.
(tt_cmap4_init): Updated accordingly.
(tt_cmap4_next): Updated accordingly.
Take care of overlapped segments.
(tt_cmap4_validate): Make sure the subtable is large enough.
Do not check glyph_ids because some fonts set the length wrongly.
Also, when all segments have offset 0, glyph_ids is always invalid. It
does not cause any problem so far only because the check misses
equality.
Distinguish between unsorted and overlapped segments.
(tt_cmap4_char_map_linear, tt_cmap4_char_map_binary): New functions to
do charcode = glyph index by linear/binary search.
(tt_cmap4_char_index, tt_cmap4_char_next): Use
tt_cmap4_char_map_linear and tt_cmap4_char_map_binary.
(tt_face_build_cmaps): Treat the return value of validator as flags
for cmap.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/freetype/freetype2/ChangeLog.diff?tr1=1.1143tr2=1.1144r1=textr2=text
http://savannah.gnu.org/cgi-bin/viewcvs/freetype/freetype2/src/sfnt/ttcmap.c.diff?tr1=1.57tr2=1.58r1=textr2=text
http://savannah.gnu.org/cgi-bin/viewcvs/freetype/freetype2/src/sfnt/ttcmap.h.diff?tr1=1.17tr2=1.18r1=textr2=text



___
Freetype-cvs mailing list
Freetype-cvs@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-cvs


[ft-cvs] freetype2 ./ChangeLog src/sfnt/ttcmap.c

2005-11-29 Thread Chia-I Wu
CVSROOT:/cvsroot/freetype
Module name:freetype2
Branch: 
Changes by: Chia-I Wu [EMAIL PROTECTED]   05/11/30 02:39:10

Modified files:
.  : ChangeLog 
src/sfnt   : ttcmap.c 

Log message:
* src/sfnt/ttcmap.c (tt_cmap4_char_map_binary,
tt_cmap12_char_map_binary): Fix compiler warnings.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/freetype/freetype2/ChangeLog.diff?tr1=1.1144tr2=1.1145r1=textr2=text
http://savannah.gnu.org/cgi-bin/viewcvs/freetype/freetype2/src/sfnt/ttcmap.c.diff?tr1=1.58tr2=1.59r1=textr2=text



___
Freetype-cvs mailing list
Freetype-cvs@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-cvs


Re: [ft-devel] New warnings

2005-11-29 Thread Chia-I Wu
On Wed, Nov 30, 2005 at 01:06:58AM +0200, Ismail Donmez wrote:
Hi,

 Looks like latest cmap commit introduced some new warnings:
I've commit a fix.  Please test again. (they are false positive, btw)

-- 
Regards,
olv


___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel


Re: [ft-devel] A simple script to test

2005-11-29 Thread Chia-I Wu
Hi,

I've commit a patch to make ftdump support -c, show charmap contents.
With that, and the simple script `cmaptest' which can be found in the
attachment, you can easily test if things still work correctly.

The usage is ./cmaptest fonts-dir and it will show the differences.
Note that it assumes there is an unmodified version of freetype under
/usr/lib.

-- 
Regards,
olv
#!/bin/sh

[ -d $1 ] || exit

for i in $1/*.{ttf,TTF,ttc,TTC,otf,OTF}
do
  [ -f $i ] || continue

  fn=`basename $i`
  echo testing $fn

  LD_LIBRARY_PATH=/usr/lib ftdump -c -c $i  $fn.old
  ftdump -c -c $i  $fn.new

  diff -u $fn.old $fn.new || echo
  rm $fn.old $fn.new
done
___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel


[ft-devel] [patch] use binary search for cmap format 12

2005-11-27 Thread Chia-I Wu
Hi,

This patch makes freetype use binary search to map charcode to glyph
index for truetype cmap format 12.

Testing with fonts from
http://freedesktop.org/wiki/Software_2fCJKUnifonts gives:

ukai.ttf
-
(original)
Get_Char_Index : 61.833 us/op
Charmap iteration  : 1605377.533 us/op

(binary)
Get_Char_Index : 0.444 us/op
Charmap iteration  : 2807.427 us/op

uming.ttf
-
(original)
Get_Char_Index : 63.230 us/op
Charmap iteration  : 1643916.969 us/op

(binary)
Get_Char_Index : 0.440 us/op
Charmap iteration  : 2749.562 us/op

Please test. If there is no problem nor objections, I will commit it in
2 or 3 days.

I am also looking into cmap format 4, to make freetype consider
overlapped segments sorted, provided their start/end points are sorted.
This could help a lot for bkai00mp.ttf:

bkai00mp.ttf
-
(original)
Get_Char_Index : 32.298 us/op
Charmap iteration  : 460667.588 us/op

(sorted)
Get_Char_Index : 0.407 us/op
Charmap iteration  : 1304.434 us/op

But there is one small performance problem with segment having offset
0x.  Currently, such segment is interpreted as empty segment.  Can
it be interpreted in other ways, like map every charcode to 0 or just
treat it as if the offset is 0?  The latter makes sense if it is always
used like this:

Segment=33 unicode-start= end= range-offset=65535 delta=1 End

-- 
Regards,
olv
2005-11-28  Chia-I Wu  [EMAIL PROTECTED]

* src/sfnt/ttcmap.c (struct  TT_CMap12Rec_, tt_cmap12_init,
tt_cmap12_next): New struct/function for fast next char.
(tt_cmap12_char_map_binary): New function to do charcode = glyph
index by binary search.
(tt_cmap12_char_index, tt_cmap12_char_next): Use
tt_cmap12_char_map_binary.
(tt_face_build_cmaps): Check table and offset correctly (equality is
missing).

=== src/sfnt/ttcmap.c
==
--- src/sfnt/ttcmap.c   (revision 2916)
+++ src/sfnt/ttcmap.c   (local)
@@ -1916,7 +1916,34 @@
 
 #ifdef TT_CONFIG_CMAP_FORMAT_12
 
+  typedef struct  TT_CMap12Rec_
+  {
+TT_CMapRec  cmap;
+FT_Bool valid;
+FT_ULongcur_charcode;
+FT_UInt cur_gindex;
+FT_ULongcur_group;
+FT_ULongnum_groups;
+
+  } TT_CMap12Rec, *TT_CMap12;
+
+
   FT_CALLBACK_DEF( FT_Error )
+  tt_cmap12_init( TT_CMap12  cmap,
+  FT_Byte*  table )
+  {
+cmap-cmap.data   = table;
+
+table+= 12;
+cmap-num_groups  = FT_PEEK_ULONG( table );
+
+cmap-valid   = 0;
+
+return SFNT_Err_Ok;
+  }
+
+
+  FT_CALLBACK_DEF( FT_Error )
   tt_cmap12_validate( FT_Byte*  table,
   FT_Validator  valid )
   {
@@ -1968,77 +1995,176 @@
   }
 
 
-  FT_CALLBACK_DEF( FT_UInt )
-  tt_cmap12_char_index( TT_CMapcmap,
-FT_UInt32  char_code )
+  /* find the index of the charcode next to cmap-cur_charcode */
+  /* cmap-cur_group should be set up properly by caller   */
+  /*   */
+  static void
+  tt_cmap12_next( TT_CMap12  cmap )
   {
-FT_UIntresult = 0;
-FT_Byte*   table  = cmap-data;
-FT_Byte*   p  = table + 12;
-FT_UInt32  num_groups = TT_NEXT_ULONG( p );
-FT_UInt32  start, end, start_id;
+FT_Byte*  p;
+FT_ULong  start, end, start_id, char_code;
+FT_ULong  n;
+FT_UInt   gindex;
 
 
-for ( ; num_groups  0; num_groups-- )
+if ( cmap-cur_charcode = 0xUL )
+  goto Fail;
+
+char_code = cmap-cur_charcode + 1;
+
+n = cmap-cur_group;
+
+for ( n = cmap-cur_group; n  cmap-num_groups; n++ )
 {
+  p= cmap-cmap.data + 16 + 12 * n;
   start= TT_NEXT_ULONG( p );
   end  = TT_NEXT_ULONG( p );
-  start_id = TT_NEXT_ULONG( p );
+  start_id = TT_PEEK_ULONG( p );
 
   if ( char_code  start )
-break;
+char_code = start;
 
-  if ( char_code = end )
+  for ( ; char_code = end; char_code++ )
   {
-result = (FT_UInt)( start_id + char_code - start );
-break;
+gindex = (FT_UInt)( start_id + char_code - start );
+
+if ( gindex )
+{
+  cmap-cur_charcode = char_code;;
+  cmap-cur_gindex   = gindex;
+  cmap-cur_group= n;
+
+  return;
+}
   }
 }
-return result;
+
+  Fail:
+cmap-valid = 0;
   }
 
 
-  FT_CALLBACK_DEF( FT_UInt )
-  tt_cmap12_char_next( TT_CMap cmap,
-   FT_UInt32  *pchar_code )
+  static FT_UInt
+  tt_cmap12_char_map_binary( TT_CMap cmap,
+ FT_UInt32*  pchar_code,
+ FT_Bool next )
   {
-FT_Byte*   table  = cmap-data;
-FT_UInt32  result = 0;
-FT_UInt32

Re: [ft-cvs] freetype2 ./ChangeLog src/sfnt/ttload.c

2005-11-20 Thread Chia-I Wu
On Sun, Nov 20, 2005 at 02:32:00PM +0100, Werner LEMBERG wrote:
 I'm not aware of any other tag, so it seems that your idea makes
 sense.  Maybe a compromise is useful too, this is, to check for a
 mandatory table, then for the tag, then for the remaining tables.
Why check for a mandatory table before for the tag?  If the tag is not
known good, then no check would be needed.  The font is simply
considered non-SFNT.  Further checking is done only when the tag is
good.

-- 
Regards,
olv


___
Freetype-cvs mailing list
Freetype-cvs@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-cvs


[ft-devel] [patch] fixed offset calculation in EBLC table

2005-11-18 Thread Chia-I Wu
Hi,

In memory optimized `tt_sbit_decoder_load_image', when index_format is 2
or 5, image_offset is added to image_start twice.

This bug is trivial.  But as I don't have a font to test, I send this
patch to the list for review, in case I misunderstood the code.

BTW, are there fonts having EBSC table?  It seems fun to add support
for this table.

-- 
Regards,
olv
2005-11-18  Chia-I Wu  [EMAIL PROTECTED]

* src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): image_offset is
added to image_start twice when image_format is 2 or 5.

=== src/sfnt/ttsbit0.c
==
--- src/sfnt/ttsbit0.c  (revision 2826)
+++ src/sfnt/ttsbit0.c  (local)
@@ -830,7 +830,7 @@
 if ( tt_sbit_decoder_load_metrics( decoder, p, p_limit, 1 ) )
   goto NoBitmap;
 
-image_start = image_offset + image_size * ( glyph_index - start );
+image_start = image_size * ( glyph_index - start );
 image_end   = image_start  + image_size;
   }
   break;
@@ -910,7 +910,7 @@
 if ( mm = num_glyphs )
   goto NoBitmap;
 
-image_start = image_offset + image_size*mm;
+image_start = image_size*mm;
 image_end   = image_start + image_size;
   }
   break;
___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel


[ft-devel] some functions are FT_EXPORT declared in the internal headers

2005-11-15 Thread Chia-I Wu
Hi,

These functions are FT_EXPORT_DEF'ed and declared by FT_EXPORT in
the internal headers:
FT_Sqrt32
FT_SqrtFixed
FT_Trace_Get_Count
FT_Trace_Get_Name
FT_Message
FT_Panic
FT_New_Memory
FT_Done_Memory
FT_Stream_Open

Shouldn't they be declared by FT_BASE instead?  If they are, I can fix
them.

And there are two FT_EXPORT_DEF'ed functions in the sources:
FT_MulTo64
TT_New_Context

The first one should have a declaration in the headers, or be commented
out as it is not used.  And the second one should be FT_LOCAL_DEF'ed.
(or is it used by fontforge?)

-- 
Regards,
olv


___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel


Re: [ft-devel] Freetype CVS fontconfig

2005-11-15 Thread Chia-I Wu
On Tue, Nov 15, 2005 at 11:24:56PM +0200, Ismail Donmez wrote:
 On Tuesday 15 November 2005 23:21, Ismail Donmez wrote:
  On Tuesday 15 November 2005 23:18, you wrote:
   Hello,
  
   FT_Free was *never* public. You should upgrade your fontconfig to a more
   recent version, since it must include the necessary patch to get rid of
   all FT2 internals dependencies.
 
 Sorry for empty reply. I use Fontconfig from CVS so I don't think there is 
 any 
 more recent version of it.
There is a patch here:
https://bugs.freedesktop.org/show_bug.cgi?id=4779

(Is this patch going to be applied upstream?)

-- 
Regards,
olv


___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel


Re: [ft-devel] FT_Glyphslot_Embolden is broken at sometimes.

2005-10-26 Thread Chia-I Wu
On Wed, Oct 26, 2005 at 11:00:09PM +0200, Werner LEMBERG wrote:
  FT_Glyphslot_Embolden works at most of time, but sometimes it
  doesn't(see attachment).  To run the testcase, you need simsun.ttc
  from windows.  Any comments?
 
 Which FT version?
 
 Unfortunately, I don't have simsun.ttc so I can't test it.  Chai-I?
 
 BTW, I don't have cairo either -- can you reproduce the problem with
 ftview from the ft2demos package, using the current CVS?
The character shown in the .png (U+60CA) has a contour of width 0,
namely all points have same x value (bug?), in the left top corner.
It misleads FT_Outline_Get_Orientation.  Thus instead of emboldened,
each stroke got shrinked.

Similar issues have already been seen in some free traditional Chinese
fonts.  They have glyphs consisting of components of different
orientations.  I think it's a bug of the font and since those fonts are
actively maintained, I reported the issue to the font authors, after
failed to work around this in freetype.

-- 
Regards,
olv


___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel


Re: RE: Re: [ft] Monochrome Bitmap Trouble

2005-10-24 Thread Chia-I Wu
Hi,

On Mon, Oct 24, 2005 at 07:08:32AM +, Paresh Deshmukh wrote:
 Hello,
I am still puzzling with bitmap. Please tell me is it possible to get a 
 fixed
 size characters or can we specify the fixed inter character space rather using
You can always use fixed inter-character space if you want to, in your
application.  This is not related to freetype.
 kerning. Also I am not able to get Japanese character from MsMincho font. How 
 we
 can use FT_Select_Charmap(face,FT_ENCODING_SJIS).
MSMINCHO.TTC seems not have a cmap of encoding FT_ENCODING_SJIS.

-- 
Regards,
olv


___
Freetype mailing list
Freetype@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype


[ft-cvs] freetype2 ./ChangeLog include/freetype/ftbitmap...

2005-10-19 Thread Chia I Wu
CVSROOT:/cvsroot/freetype
Module name:freetype2
Branch: 
Changes by: Chia I Wu [EMAIL PROTECTED]   05/10/20 02:13:46

Modified files:
.  : ChangeLog 
include/freetype: ftbitmap.h 
src/base   : ftbdf.c 
src/cache  : ftcmru.c 

Log message:
* include/freetype/ftbitmap.h (FT_Bitmap_Copy, FT_Bitmap_Embolden),
src/base/ftbdf.c (FT_Get_BDF_Property), src/cache/ftcmru.c
(FTC_MruList_Reset, FTC_MruList_Done, FTC_MruList_Lookup): Misuse of
FT_EXPORT/FT_EXPORT_DEF.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/freetype/freetype2/ChangeLog.diff?tr1=1.1107tr2=1.1108r1=textr2=text
http://savannah.gnu.org/cgi-bin/viewcvs/freetype/freetype2/include/freetype/ftbitmap.h.diff?tr1=1.7tr2=1.8r1=textr2=text
http://savannah.gnu.org/cgi-bin/viewcvs/freetype/freetype2/src/base/ftbdf.c.diff?tr1=1.12tr2=1.13r1=textr2=text
http://savannah.gnu.org/cgi-bin/viewcvs/freetype/freetype2/src/cache/ftcmru.c.diff?tr1=1.8tr2=1.9r1=textr2=text



___
Freetype-cvs mailing list
Freetype-cvs@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-cvs


[ft-devel] Export services?

2005-10-14 Thread Chia-I Wu
Hi,

There are some functions which are wrappers to services.  Then why not
simply export the services to clients?

The idea is, we let modules decide which services, among those they
provide, to export.  For a exported service, it should provide headers,
not depending on internal headers, to describe the interface.  Of course
error-checking should be done with more care in this case.  To make
finding a service faster, we can use integers as service id, instead of
strings.

These are what I can think of now.  Surely there are more things we
should pay attention to when exporting services, but it also means
freetype can get more powerful.

-- 
Regards,
olv


___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel


Re: [ft] Vertical layout

2005-10-12 Thread Chia I Wu
On Wed, Oct 12, 2005 at 03:59:18PM -0700, Sergey Tolstov wrote:
Hi,
 Hello,
 
 In what state is FT support for vertical glyph metrics?
The problem you encountered has been fixed in CVS:
http://savannah.gnu.org/cgi-bin/viewcvs/freetype/freetype2/src/truetype/ttgload.c.diff?r1=1.138r2=1.139
 
 I am encountering problem with vertical glyph metrics, when they are
 present in a font file. I get a huge number for the linearVertAdvance,
 other values look fine, because of that, glyphs are not generated. I
 need advance value in design units for WYSIWYG.
 
 While debugging, I found:
 In the ttgload.c, line 1768, subtraction is incorrect
   advance_height = (FT_UShort)( loader-pp4.y - loader-pp3.y );
 should be, according to earlier calculations
   advance_height = (FT_UShort)( loader-pp3.y - loader-pp4.y );
 
 Even with that fix, linearVertAdvance is calculated incorrectly. (Should
 they use loader-vadvance instead?)
As loader-pp's are in 26.6, advance_height should be divided by y_scale
after the calculation.

-- 
Regards,
olv


___
Freetype mailing list
Freetype@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype


[ft-cvs] freetype2 ./ChangeLog src/truetype/ttinterp.c s...

2005-08-15 Thread Chia I Wu
CVSROOT:/cvsroot/freetype
Module name:freetype2
Branch: 
Changes by: Chia I Wu [EMAIL PROTECTED]   05/08/16 02:06:01

Modified files:
.  : ChangeLog 
src/truetype   : ttinterp.c ttinterp.h 

Log message:
* src/truetype/ttinterp.c, src/truetype/ttinterp.h: Update copyright
messages.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/freetype/freetype2/ChangeLog.diff?tr1=1.1073tr2=1.1074r1=textr2=text
http://savannah.gnu.org/cgi-bin/viewcvs/freetype/freetype2/src/truetype/ttinterp.c.diff?tr1=1.73tr2=1.74r1=textr2=text
http://savannah.gnu.org/cgi-bin/viewcvs/freetype/freetype2/src/truetype/ttinterp.h.diff?tr1=1.28tr2=1.29r1=textr2=text



___
Freetype-cvs mailing list
Freetype-cvs@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-cvs


Re: [ft-devel] discussion of truetype glyph loading code

2005-08-09 Thread Chia I Wu
On Tue, Aug 09, 2005 at 06:55:54PM +0200, Werner LEMBERG wrote:
 This is a lame excuse :-) Seriously, your clean-ups are still
 comprehendable -- it's more a code shifting than a complete rewrite,
 isn't it?
Yes, I just moved the code around and gave it sensible names. The few
practical changes are all listed in the changelog.

-- 
Regards,
olv


___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel


[ft-devel] looking for truetype fonts for testing

2005-08-01 Thread Chia I Wu
Hi,

I'm looking for truetype fonts with apple's variation tables or with
composite glyph constructed with various different flags, especially
with ARGS_ARE_XY_VALUES and UNSCALED_COMPONENT_OFFSET set to false.

Can anyone tell me where I can fine one?

-- 
Regards,
olv


___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel


[ft-cvs] freetype2 ./ChangeLog src/truetype/ttdriver.c s...

2005-07-26 Thread Chia I Wu
CVSROOT:/cvsroot/freetype
Module name:freetype2
Branch: 
Changes by: Chia I Wu [EMAIL PROTECTED]   05/07/26 08:14:04

Modified files:
.  : ChangeLog 
src/truetype   : ttdriver.c ttobjs.h 

Log message:
* src/truetype/ttdriver.c (Set_Char_Sizes): Avoid unnecessary
computations and clean up.

* src/truetype/ttobjs.h (struct TT_SizeRec_): Comment on the
internal copy of metrics.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/freetype/freetype2/ChangeLog.diff?tr1=1.1067tr2=1.1068r1=textr2=text
http://savannah.gnu.org/cgi-bin/viewcvs/freetype/freetype2/src/truetype/ttdriver.c.diff?tr1=1.78tr2=1.79r1=textr2=text
http://savannah.gnu.org/cgi-bin/viewcvs/freetype/freetype2/src/truetype/ttobjs.h.diff?tr1=1.36tr2=1.37r1=textr2=text



___
Freetype-cvs mailing list
Freetype-cvs@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-cvs


Re: [ft] Bold and italic, cache manager

2005-07-19 Thread Chia I Wu
On Tue, Jul 19, 2005 at 09:43:18AM +, Tom Sparthate wrote:
 Hello,
 
 I wonder if freetype can draw bold and italic characters with a simply 
 arial file.
 (by an transformation?)
You can use FT_Outline_Embolden and FT_Outline_Transform.
 
 And I have a question concerning the cache manager, do you know how to use 
 it?
If you are looking for an example, I would suggest reading ftcommon.c of
ft2demos (from cvs head).

-- 
Regards,
olv


___
Freetype mailing list
Freetype@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype


[ft-cvs] freetype2/docs CHANGES

2005-06-21 Thread Chia I Wu
CVSROOT:/cvsroot/freetype
Module name:freetype2
Branch: 
Changes by: Chia I Wu [EMAIL PROTECTED]   05/06/22 03:56:15

Modified files:
docs   : CHANGES 

Log message:
Add an entry about rewritten of `ftview' and `ftstring'

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/freetype/freetype2/docs/CHANGES.diff?tr1=1.114tr2=1.115r1=textr2=text



___
Freetype-cvs mailing list
Freetype-cvs@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-cvs


Re: [ft-devel] Make FT_GlyphSlot_Embolden standard API?

2005-05-29 Thread Chia I Wu
On Sat, May 28, 2005 at 03:47:49PM +0200, Werner LEMBERG wrote:
 
  This patch fixes some bugs in FT_Bitmap_Embolden.
 
 Applied, thanks.  I think there is still a bug for graymap fonts.
 Have a look at the attached test glyph.  Emboldening produces a
 strange result.
This is introduced by the last patch :(

I've dirty hacked ftview for testing bitmap emboldening of various
pixel_mode.  You can find the hack in the attachments.

For testing, launch ftview with outline font and press 'c' to disable
cache first.  Then you can use 'l' to switch between normal/emboldened
mode, and 'L' to rotate between LCD modes.  I hope this would help bug
hunting the bitmap emboldening algorithm (and help me not send buggy
patches).

Anyway, here's the changelog:

ft2-bitmap-embolden-fix2.patch
* src/base/ftbitmap.c (FT_Bitmap_Embolden): Fix emboldening bitmap of
mode FT_PIXEL_MODE_GRAY.  Also add support for mode FT_PIXEL_MODE_LCD
and FT_PIXEL_MODE_LCD_V.
(ft_bitmap_assure_buffer): FT_PIXEL_MODE_LCD and FT_PIXEL_MODE_LCD_V
should have ppb (pixel per byte) 1.
Zero the padding when there's no need to allocate memory.

ft2-ftsynth-advance.patch
* src/base/ftsynth.c (FT_GlyphSlot_Embolden): Modify slot-advance
accordingly.

-- 
Regards,
olv
=== src/base/ftbitmap.c
==
--- src/base/ftbitmap.c   (/freetype2/trunk)   (revision 923)
+++ src/base/ftbitmap.c   (/freetype2/branches/embolden)   (local)
@@ -115,8 +115,6 @@
 switch ( bitmap-pixel_mode )
 {
 case FT_PIXEL_MODE_MONO:
-case FT_PIXEL_MODE_LCD:
-case FT_PIXEL_MODE_LCD_V:
   ppb = 8;
   break;
 case FT_PIXEL_MODE_GRAY2:
@@ -126,15 +124,44 @@
   ppb = 2;
   break;
 case FT_PIXEL_MODE_GRAY:
+case FT_PIXEL_MODE_LCD:
+case FT_PIXEL_MODE_LCD_V:
   ppb = 1;
   break;
 default:
   return FT_Err_Invalid_Glyph_Format;
 }
 
-/* check whether we must allocate memory */
+/* if no need to allocate memory */
 if ( ypixels == 0  pitch * ppb = bitmap-width + xpixels )
+{
+  /* zero the padding */
+  for ( i = 0; i  bitmap-rows; i++ )
+  {
+unsigned char*  last_byte;
+int bits = xpixels * ( 8 / ppb );
+int mask = 0;
+
+
+last_byte = bitmap-buffer + i * pitch + ( bitmap-width - 1 ) / ppb;
+
+if ( bits = 8 )
+{
+  FT_MEM_ZERO( last_byte + 1, bits / 8 );
+  bits %= 8;
+}
+
+if ( bits  0 )
+{
+  while ( bits--  0 )
+mask |= 1  bits;
+
+  *last_byte = ~mask;
+}
+  }
+
   return FT_Err_Ok;
+}
 
 new_pitch = ( bitmap-width + xpixels + ppb - 1 ) / ppb;
 
@@ -187,16 +214,22 @@
 if ( !bitmap )
   return FT_Err_Invalid_Argument;
 
+xstr = FT_PIX_ROUND( xStrength )  6;
+ystr = FT_PIX_ROUND( yStrength )  6;
+
 switch ( bitmap-pixel_mode )
 {
 case FT_PIXEL_MODE_GRAY2:
 case FT_PIXEL_MODE_GRAY4:
   return FT_Err_Invalid_Glyph_Format;
+case FT_PIXEL_MODE_LCD:
+  xstr *= 3;
+  break;
+case FT_PIXEL_MODE_LCD_V:
+  ystr *= 3;
+  break;
 }
 
-xstr = FT_PIX_ROUND( xStrength )  6;
-ystr = FT_PIX_ROUND( yStrength )  6;
-
 if ( xstr == 0  ystr == 0 )
   return FT_Err_Ok;
 else if ( xstr  0 || ystr  0 || xstr  8 )
@@ -245,19 +278,19 @@
   break;
 #endif
   }
-  else if ( bitmap-pixel_mode == FT_PIXEL_MODE_GRAY )
+  else
   {
 if ( x - i = 0 )
 {
-  if ( p[x] + p[x - i]  bitmap-num_grays )
+  if ( p[x] + p[x - i]  bitmap-num_grays - 1 )
   {
-p[x] = bitmap-num_grays;
+p[x] = bitmap-num_grays - 1;
 break;
   }
   else
   {
 p[x] += p[x - i];
-if ( p[x] == bitmap-num_grays )
+if ( p[x] == bitmap-num_grays - 1 )
   break;
   }
 }
=== src/ftcommon.i
==
--- src/ftcommon.i   (/freetype2/trunk/ft2demos)   (revision 923)
+++ src/ftcommon.i   (/freetype2/branches/embolden/ft2demos)   (local)
@@ -752,6 +752,39 @@
  glyf,
  NULL );
 
+  /* XXX dirty hack for testing bitmap emboldening */
+  if ( glyf-format == FT_GLYPH_FORMAT_OUTLINE )
+  {
+FT_Render_Mode  render_mode;
+
+if ( lcd_mode = 1 )
+  render_mode = FT_RENDER_MODE_NORMAL;
+else if ( lcd_mode = 3 )
+  render_mode = FT_RENDER_MODE_LCD;
+else
+  render_mode = FT_RENDER_MODE_LCD_V;
+
+if ( !antialias )
+  render_mode = FT_RENDER_MODE_MONO;
+
+/* render the glyph to a bitmap, don't destroy original */
+error = FT_Glyph_To_Bitmap( glyf, render_mode, NULL, 0 );
+

Re: [ft-devel] Make FT_GlyphSlot_Embolden standard API?

2005-05-29 Thread Chia I Wu
On Sat, May 28, 2005 at 03:47:49PM +0200, Werner LEMBERG wrote:
 
  This patch fixes some bugs in FT_Bitmap_Embolden.
 
 Applied, thanks.  I think there is still a bug for graymap fonts.
 Have a look at the attached test glyph.  Emboldening produces a
 strange result.
Oops, I forgot to adjust emboldening strength in the last ftsynth.c
patch. Please ignore that one.

These changes are suggested by some brave testers.

Changelog:

ft2-ftsynth-advance-fix2.patch:
* src/base/ftsynth.c (FT_GlyphSlot_Embolden): Modify slot-advance
accordingly.
More suited emboldening strength.

-- 
Regards,
olv
=== src/base/ftsynth.c
==
--- src/base/ftsynth.c   (/freetype2/trunk)   (revision 923)
+++ src/base/ftsynth.c   (/freetype2/branches/embolden)   (local)
@@ -81,7 +81,7 @@
 
 /* some reasonable strength */
 xstr = FT_MulFix( face-units_per_EM,
-  face-size-metrics.y_scale ) / 32;
+  face-size-metrics.y_scale ) / 42;
 ystr = xstr;
 
 if ( slot-format == FT_GLYPH_FORMAT_OUTLINE )
@@ -122,6 +122,9 @@
 /* modify the metrics accordingly */
 if ( !error )
 {
+  slot-advance.x += xstr;
+  slot-advance.y += ystr;
+
   slot-metrics.width+= xstr;
   slot-metrics.height   += ystr;
   slot-metrics.horiBearingY += ystr;

Property changes on: 
___
Name: svk:merge
 +5f392c16-9bf0-0310-b16c-a65848a4e34f:/freetype2/trunk:921

___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel


Re: [ft-devel] Make FT_GlyphSlot_Embolden standard API?

2005-05-27 Thread Chia I Wu
On Wed, May 25, 2005 at 07:50:16AM +0200, Werner LEMBERG wrote:
 
 Thanks, applied!  Note that I've changed the third and fourth argument
 of FT_Bitmap_Embolden to be normal values, not pointers.  Please test.
 
 
 Werner
Hi Werner,

This patch fixes some bugs in FT_Bitmap_Embolden.


ChangeLog:

* src/base/ftbitmap.c (FT_Bitmap_Embolden): fix a bug when pitch is
negative.
fix a bug when pixel_mode is FT_PIXEL_MODE_GRAY and num_gray != 256.
some speed-up when pixel_mode is FT_PIXEL_MODE_GRAY.
(ft_bitmap_assure_buffer): accept FT_PIXEL_MODE_LCD and
FT_PIXEL_MODE_LCD_V.

-- 
Regards,
olv
=== src/base/ftbitmap.c
==
--- src/base/ftbitmap.c  (revision 909)
+++ src/base/ftbitmap.c  (local)
@@ -115,6 +115,8 @@
 switch ( bitmap-pixel_mode )
 {
 case FT_PIXEL_MODE_MONO:
+case FT_PIXEL_MODE_LCD:
+case FT_PIXEL_MODE_LCD_V:
   ppb = 8;
   break;
 case FT_PIXEL_MODE_GRAY2:
@@ -210,7 +212,7 @@
 else
 {
   pitch = -pitch;
-  p = bitmap-buffer + pitch * ( bitmap-rows - ystr - 1 );
+  p = bitmap-buffer + pitch * ( bitmap-rows - 1 );
 }
 
 /* for each row */
@@ -237,16 +239,30 @@
 /* the maximum value of 8 for `xstr' comes from here */
 if ( x  0 )
   p[x] |= p[x - 1]  ( 8 - i );
+
+#if 0
+if ( p[x] == 0xff )
+  break;
+#endif
   }
   else if ( bitmap-pixel_mode == FT_PIXEL_MODE_GRAY )
   {
 if ( x - i = 0 )
 {
-  if ( p[x] + p[x - i]  0xff )
-p[x] = 0xff;
+  if ( p[x] + p[x - i]  bitmap-num_grays )
+  {
+p[x] = bitmap-num_grays;
+break;
+  }
   else
+  {
 p[x] += p[x - i];
+if ( p[x] == bitmap-num_grays )
+  break;
+  }
 }
+else
+  break;
   }
 }
   }
___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel


Re: [ft-devel] Make FT_GlyphSlot_Embolden standard API?

2005-05-20 Thread Chia I Wu
On Fri, May 20, 2005 at 06:15:15AM +0200, Werner LEMBERG wrote:
 
As fontconfig and xft already have the code to embolden and
rely on FT_GlyphSlot_Embolden to do the real job, I think
FT_GlyphSlot_Embolden should be made standard API.  This is an
important feature for Chinese (maybe also Japanese and Korean)
users, as most Chinese fonts don't have a real bold style.
  
  After some more inspection, I find there is already FT_Glyph for
  glyph manipulation.  Then, why not
  
  FT_Glyph_Embolden
  FT_Glyph_Oblique
  ?
 
 Are these new structures?  Do you suggest them because you can't
 modify the public `FT_Glyph'?
They are new function calls.

We already have FT_Glyph_Translate to translate glyphs,
FT_Glyph_Transform to transform glyphs,
FT_Glyph_Stroke to stroke glyphs,
then why not
FT_Glyph_Embolden to embolden glyphs?
 
  Also I tried to modify the embolden algorithm for outline glyph, and
  it now uses similar algorithm as the one I use for bitmap glyph.
  This is done because the old algorithm generates some artifact.
 
 Aah, another user has reported problems.  Can you post the patch to
 the freetype-devel list, please?
Check the patch (algorithm only) in the attachment.
Index: src/base/ftsynth.c
===
RCS file: /home/cvs/freetype2/src/base/ftsynth.c,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 ftsynth.c
--- src/base/ftsynth.c  15 May 2005 07:10:28 -  1.1.1.1
+++ src/base/ftsynth.c  20 May 2005 05:24:57 -
@@ -115,7 +115,9 @@
   {
 FT_Pos d;
 FT_Vector  in, out;
+#ifdef OLD_ALGORITHM
 FT_Fixed   scale;
+#endif
 FT_Angle   angle_diff;
 
 
@@ -132,6 +134,7 @@
 angle_in   = FT_Atan2( in.x, in.y );
 angle_out  = FT_Atan2( out.x, out.y );
 angle_diff = FT_Angle_Diff( angle_in, angle_out );
+#ifdef OLD_ALGORITHM
 scale  = FT_Cos( angle_diff/2 );
 
 if ( scale  0x400L  scale  -0x400L )
@@ -148,6 +151,23 @@
 
 outline-points[n].x = v_cur.x + distance + in.x;
 outline-points[n].y = v_cur.y + distance + in.y;
+#else
+   angle_diff = angle_in + angle_diff / 2 - rotate;
+   angle_diff = FT_Angle_Diff( 0, angle_diff );
+
+   d = distance * 2; /* strength */
+
+   if ( -FT_ANGLE_PI2  angle_diff  angle_diff = 0 ) {
+   outline-points[n].x = v_cur.x + d;
+   }
+   else if ( 0  angle_diff  angle_diff  FT_ANGLE_PI2 ) {
+   outline-points[n].x = v_cur.x + d;
+   outline-points[n].y = v_cur.y + d;
+   }
+   else if ( FT_ANGLE_PI2 = angle_diff  angle_diff  FT_ANGLE_PI ) {
+   outline-points[n].y = v_cur.y + d;
+   }
+#endif
 
 v_prev = v_cur;
 v_cur  = v_next;
___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel


Re: [ft-devel] Make FT_GlyphSlot_Embolden standard API?

2005-05-14 Thread Chia I Wu
On Fri, May 13, 2005 at 07:51:12AM +0200, Werner LEMBERG wrote:
 
  As fontconfig and xft already have the code to embolden and rely
  on FT_GlyphSlot_Embolden to do the real job, I think
  FT_GlyphSlot_Embolden should be made standard API.  This is an
  important feature for Chinese (maybe also Japanese and Korean)
  users, as most Chinese fonts don't have a real bold style.
 
 Basically, I don't object, but this won't happen in the next release
 which is in pretest stage right now.
Sure.

After some more inspection, I find there is already FT_Glyph for glyph
manipulation. Then, why not

FT_Glyph_Embolden
FT_Glyph_Oblique
?

Also I tried to modify the embolden algorithm for outline glyph, and it
now uses similar algorithm as the one I use for bitmap glyph. This is
done because the old algorithm generates some artifact. See:

http://www.olv.idv.tw/~olvaffe/tmp/freetype2/b-old.png
http://www.olv.idv.tw/~olvaffe/tmp/freetype2/b-new.png


___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel


Re: [ft-devel] Make FT_GlyphSlot_Embolden standard API?

2005-05-13 Thread Chia I Wu
On Fri, May 13, 2005 at 11:44:59AM +0900, [EMAIL PROTECTED] wrote:
 Hi
 
 On Thu, 12 May 2005 23:44:11 +0800
 Chia I Wu [EMAIL PROTECTED] wrote:
 As fontconfig and xft already have the code to embolden and rely on
 FT_GlyphSlot_Embolden to do the real job, I think FT_GlyphSlot_Embolden
 should be made standard API. This is an important feature for Chinese
 (maybe also Japanese and Korean) users, as most Chinese fonts don't have
 a real bold style.
 
 What do you think?
 
 I'm unfamiliar with this API and never checked the bolden result in
 detail, could you show some demo program?
I've made a quick hack to ftview.c for demo. See applied patch.
 
 As you pointed out, most CJK font family does not provide bold style.
 I think weight (XXX-Light, XXX-Medium, XXX-Heavy etc) - may take
 similar role of it in the typographical viewpoint. But, most personal
 computers are shipped with only 1 or 2 fonts for each CJK scripts,
 and synthesized bold is often used in documents generated by PC.
The only commercial fonts I own are Dynaware's. They have severial
weights for each family, named by XXX-W3, XXX-W4, XXX-W5, etc. But no
application take advantage of that to get better quality.

Also, the size of a Chinese font is very large, ranaging from 5MB to
25MB (the 25MB one includes glyphs of both traditional and simplicial
Chinese). I personally prefer synthesized bold than having all those
weights installed.

 
 Considering there is such root of embolding request, I wonder whether
 FT_GlyphSlot_Embolden() API is already enough for the purpose. It does
 not receive much parameters to control embolding (am I misunderstanding?).
 I'm afraid several control parameters are requested in future, for example:
 
 * strength to embolding
I think this is important.
 * switch to enable/disable changing glyph metrics in embolding
 * switch to enable/disable embolding of bitmap font
I think glyph metrics should be changed automagically. Bitmap glyph
should be emboldened automatically too. As we are synthesizing, you know
you can't expect a high-quality result, thus it makes no difference
which format the glyph is in.
 * choosing embolding algorithm
 
BTW, I have done some experiment to embolden a bitmap glyph, by printing
the same glyph severial times (depending on strength), with starting
point shift to the right by 1 pixel each time. The result is ok.
 How do you think of?
 
 Regards,
 mpsuzuki
Index: src/ftview.c
===
RCS file: /cvsroot/freetype/ft2demos/src/ftview.c,v
retrieving revision 1.58
diff -u -r1.58 ftview.c
--- src/ftview.c4 Mar 2005 05:58:35 -   1.58
+++ src/ftview.c13 May 2005 06:06:25 -
@@ -131,20 +131,23 @@
 gindex = get_glyph_index( gindex );
 #endif
   error = FT_Load_Glyph( size-face, i, FT_LOAD_NO_BITMAP );
-  if ( !error  slot-format == FT_GLYPH_FORMAT_OUTLINE )
+  if ( !error )
   {
 FT_Glyph  glyphb;
 
+FT_GlyphSlot_Embolden( slot);
 error = FT_Get_Glyph( slot, glyphp );
 if ( error )
   goto Next;
 
+   /*
 error = FT_Glyph_Stroke( glyphp, stroker, 1 );
 if ( error )
 {
   FT_Done_Glyph( glyphp );
   goto Next;
 }
+   */
 
 error = glyph_to_bitmap( glyphp, bit3, left, top,
  x_advance, y_advance, (FT_Pointer*)glyphb 
);
@@ -654,7 +657,8 @@
   break;
 
 case grKEY( ' ' ):
-  render_mode = ( render_mode + 1 ) % 4;
+  //render_mode = ( render_mode + 1 ) % 4;
+  render_mode = (render_mode == 0) ? 2 : 0;
   switch ( render_mode )
   {
 case 0:
@@ -664,9 +668,8 @@
   new_header = (char*)rendering test text string;
   break;
 case 2:
-  new_header = (char*)rendering stroked text;
+  new_header = (char*)rendering emboldened text;
   break;
-
 default:
   new_header = (char*)rendering glyph waterfall;
   }
___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel


[ft-devel] Make FT_GlyphSlot_Embolden standard API?

2005-05-12 Thread Chia I Wu
Hi all,

As fontconfig and xft already have the code to embolden and rely on
FT_GlyphSlot_Embolden to do the real job, I think FT_GlyphSlot_Embolden
should be made standard API. This is an important feature for Chinese
(maybe also Japanese and Korean) users, as most Chinese fonts don't have
a real bold style.

What do you think?

Regards,
olv


___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel