[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [E-devel] font hinting



On Mon, 13 Mar 2006 00:44:53 -0600 Jesse Luehrs <jluehrs2@uiuc.edu> babbled:

> On Mon, 13 Mar 2006 09:02:39 +0900
> Carsten Haitzler (The Rasterman) <raster@rasterman.com> wrote:
> 
> > On Sun, 12 Mar 2006 21:19:44 +0000 Aleksej Struk <astruk@gmail.com>
> > babbled:
> > 
> > > Hi all,
> > > 
> > > I a little bit confused with the last cvs. Before I sync my tree, I
> > > have font hinting working fine. I had all the 3 options : a) byte
> > > code b) automatic c) no hinting. After sync to the cvs, a cannot
> > > selectt option a) anymore.
> > > 
> > > However, after taking a look into code, I notice, that
> > > evas_font_hinting_can_hint(.., EVAS_FONG_HINTING_BYTECODE) returns 0
> > > instead of 1. So, for me it seams, that basically evas cannot do
> > > this type of hinting on my machine? right ?
> > > 
> > > So, can somebody explain, why it is so ?
> > 
> > freetype may be compiled with different hinting code. bytecode
> > hinting is patented by apple and some distributions simply refuse to
> > enable it in freetype2. by default it is not enabled in ft2. the
> > ftoption.h file that gets installed SHOULD list what hinters are
> > available via defines (no hinting is always available, then there's
> > BYTECODE and UNPATENTED (auto hinting) hinting defines). the code in
> > evas simply checks these values at compile time and then returns if
> > its possible or not based on  these being defined or not. so far 1
> > distribution already installs an ftoption.h that doesn't match the
> > capabilities in the freetype2 that is installed. so it is possible
> > that evas will get it wrong - but this is due to the headers
> > installed at compile time. i know of no way to query RUNTIME what the
> > features are so this is a bit of a bad api from ft2 in that ft2 could
> > change  its build options without evas being recompiled against it
> > and thus evas getting its capability checking wrong.
> 
> Gentoo has this problem because the freetype build just adds
> -DTT_CONFIG_OPTION_BYTECODE_INTERPRETER to the CFLAGS before
> building rather than editing header files. To detect if the bytecode
> interpreter had been enabled, the freetype ebuild runs grep
> on the binary for a string:
> 
> # Just a check to see if the Bytecode Interpreter was enabled ...
> if [ -z "`grep TT_Goto_CodeRange ${S}/objs/.libs/libfreetype.so`" ]
> then
>     ewarn "Bytecode Interpreter is disabled."
> fi
> 
> This will fail if the binary has been stripped though, so that's
> probably not much better of a solution.
> 
> I'm checking out right now if uncommenting the #define in ftoption.h
> will fix the hinting issues with evas... I assume it should though.

this is definitely a problem then with the gentoo packaging system - the installed header does not reflect the abilities of the library. as i know no runtime way (grepping a binary is just a big fat no-no anyway - even if it did work when stripped). sure - could dlopen and look for symbols - but that's just wrong - it's a back-door hack.

> Jesse
> 
> 
> -------------------------------------------------------
> This SF.Net email is sponsored by xPML, a groundbreaking scripting language
> that extends applications into web and mobile media. Attend the live webcast
> and join the prime developer group breaking into this new coding territory!
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
> _______________________________________________
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> 


-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler)    raster@rasterman.com
裸好多
Tokyo, Japan (東京 日本)