Why are your replies typed in HTML when you see replies in plaintext text?  Did 
you notice the error in the contributed code? See for yourself in the attached 
plaintext reply. (Microsoft line format, UTF-16, little endian)   Hello Piotr,  
  The way to do it is to first go to ttinterp.c , then at the start of  the 
file declare two variables:    char FT_injectedGETINFOhack = 0;   FT_Long 
FT_injectedGETINFOhackvalue;   this is an interesting idea, thanks.   First of 
all, a commercial font is rendered like this when GETINFO is  not intercepted:  
i.imgur.com i.imgur.com   Size 18ppem and up is where it gets very 
controversial in  rendering. In this case what default v38 FreeType does is end 
up  with fractional horizontal stems.  Using Visual TrueType reveals  that the 
font only does that when fractional widths are used in  ClearType.  However it 
is very worrying that this is default  FreeType behavior, and no 
FT_RENDER_MODE_XXX is documented to use an  integer width version of subpixel 
hinting.   I don't fully understand what you are saying.  Please elaborate. 
 Is  there a documentation bug in FreeType?   What happens with the intercepted 
GETINFO? In the following image I  use the following settings:    
FT_injectedGETINFOhack = 1;   FT_injectedGETINFOhackvalue = 0x00006C00;   
i.imgur.com i.imgur.com  . Suddenly the problems with  fractional horizontal 
stems disappear.  This will in fact allow the  FreeType user to use a custom 
GETINFO value, and GETINFO (what fonts  see how the renderer is like) becomes 
detached from the FreeType  render mode (what the renderer is actually like), 
allowing for  personalized renderer settings.   Please file this report in the 
bug tracker as a wishlist issue so that  it doesn't get forgotten.      
Werner
ÿþ[[[

Hello Piotr,





    The way to do it is to first go to 
ttinterp.c , then at the start of

    the file declare two variables:



     char FT_injectedGETINFOhack = 0;

     FT_Long 
FT_injectedGETINFOhackvalue;





this is an interesting idea, thanks.

]]]



Did you notice the error in the 
contributed code near line 7660? It 
ends up with

very strange results like 0x00001000 
being version 4096 (which in the 

trademarked RasterInfo font is 
displayed as 96) despite it being more 
bits than 

version is allocated for. It should 
actually be like this, with a bit 
filter:



#endif /* 
TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY 
*/



    if(FT_injectedGETINFOhack){

       K = FT_injectedGETINFOhackvalue & 
((args[0]<<7) | (0xFF * (args[0]&1))) 

;

    }

    args[0] = K;

  }



Or, to also be able to go the other 
way, it is also possible to implement 

parameter 2:



#endif /* 
TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY 
*/



    if(FT_injectedGETINFOhack){

       if(FT_injectedGETINFOhack==2){

              FT_injectedGETINFOhackvalue = 
K;

       }

       else{

              K = FT_injectedGETINFOhackvalue 
& ((args[0]<<7) | (0xFF * (args[

0]&1))) ;

       }

    }

    args[0] = K;

  }



[[[

    First of all, a commercial font is 
rendered like this when GETINFO is

    not intercepted: 
https://i.imgur.com/W9FSEzd.png



    Size 18ppem and up is where it gets 
very controversial in

    rendering. In this case what 
default v38 FreeType does is end up

    with fractional horizontal stems.  
Using Visual TrueType reveals

    that the font only does that when 
fractional widths are used in

    ClearType.  However it is very 
worrying that this is default

    FreeType behavior, and no 
FT_RENDER_MODE_XXX is documented to use 
an

    integer width version of subpixel 
hinting.





I don't fully understand what you are 
saying.  Please elaborate.  Is

there a documentation bug in FreeType?

]]]



Why did you change the text I have 
written? I did not use double spaces 

whatsoever. It was not my typographical 
intent to use double spaces and it is 

undesirable and is one of the things 
that can make reading text 
uncomfortable, 

aside from glitchy or suboptimal or 
distorted, etc. font rendering.



What happens is it will hint as in 
DirectWrite rendering with fractional 
widths,

when in some cases it can be more 
desirable to hint as if it was a 
ClearType GDI

renderer with compatible widths, etc. . 
How the font determines this is by 

GETINFO, making the hack useful. The 
GETINFO hack is therefore to 
effectively 

switch between the hinting modes built 
in the font. Very interestingly, some 

fonts that predated ClearType added 
ClearType compatible widths specific 
deltas 

to give the illusion of stems snapped 
to pixels, as can for instance be seen 
in 

Microsoft Tahoma 11ppem.



And why is the v38 renderer said to be 
" It was disabled by default because it 


was painfully slow and the original 
developer lost interest in developing 
the 

code further." ? Speed is not 
everything. Nobody will care that a 
1000 page 

professional document with over 2000 
characters per page will render 0.0001 

seconds slower. The software has much 
higher overheads than rendering. TD 

renderer does not ever focus on speed 
because it is pretty much not that much 


relevant. External optimizations such 
as sRGB lookup tables and caching 
repeated

glyphs are much more important and are 
done outside of FreeType.

Reply via email to