Actually I am a bit confused - you don't seem to be using anything that 
directly interact with freetype - are you trying to write a new GUI front end 
to ttfautohint?
The self.splitter etc method seems to be QT routine, and has nothing to do with 
freetype or ttfautohint? Anyway, if it is QT related it is probably all in 
pixels (and therefore needs int), if pilcrow somehow pass the number to 
freetype-py or something internal to freetype / ttfautohint , it probably is 
F26.6. (That means floating numbers only have about 1/64 precision, ie two 
decimal places, but nobody needs Time Roman in 12.3456 pt's in sizes with too 
many decimal places)
    On Friday, 27 January 2023 at 03:06:23 GMT+8, Mike Sapsard 
<[email protected]> wrote:  
 
  
Thanks Hin-Tak,
 
I did try typecasting the result, and that was worse. Strangely, Pilcrow ran 
correctly with my change.
 
I will let them know as well.
 
 
Mike
 
 On 26/01/2023 17:56, Hin-Tak Leung wrote:
  
 
 Your fix is wrong. And you are also reporting to the wrong people too - 
pillcrow is probably who you should write to. That said, it is a very common 
misunderstanding: numbers in freetype are not conventional floats in other 
programs. They are "encoded integers", called F26.6 in this case I think (read 
the documentation), where a 32-bit integer is to be interpreted as 26bit for 
the integer part and 6 bits for the fractional part (ie 128 is really 2, and 
100 is 1 + 36/64). 
  Thus your "fix" should probably be  int(width * 2 / 3 * 64), etc. For 
example. Note the *64. Read the documentation on F26.6, F10.6, etc.    
 
       

Reply via email to