2013/4/11 Igor Stasenko <siguc...@gmail.com> > On 11 April 2013 10:44, Tristan Bourgois <tristan.bourg...@gmail.com> > wrote: > > > > > > > > 2013/4/11 Igor Stasenko <siguc...@gmail.com> > >> > >> On 11 April 2013 08:55, Tristan Bourgois <tristan.bourg...@gmail.com> > >> wrote: > >> > > >> > > >> > > >> > 2013/4/10 Igor Stasenko <siguc...@gmail.com> > >> >> > >> >> > >> >> > >> >> On 10 April 2013 09:14, Tristan Bourgois <tristan.bourg...@gmail.com > > > >> >> wrote: > >> >>> > >> >>> > >> >>> > >> >>> > >> >>> 2013/4/9 Igor Stasenko <siguc...@gmail.com> > >> >>>> > >> >>>> Yes, this is a known bug actually, which i demonstrated to audience > >> >>>> during > >> >>>> tutorial presentation.. > >> >>>> i/cairo miss the correct font matrix setup.. and i need to see > what's > >> >>>> there. > >> >>>> Cairo caching the glyphs in a strange way (so if you never drawn > >> >>>> anything with given font before and your first drawing will use > some > >> >>>> rotation > >> >>>> then everything will be rendered correctly, but if you already > drawn > >> >>>> anything > >> >>>> it will render them like you shown).. > >> >>>> I'm going to fix that issue when i come back from Lviv. > >> >>>> > >> >>> > >> >>> Super :) > >> >>> > >> >>> Did you also see the cairo_text_path() method? It's very interesting > >> >>> if > >> >>> you want to stroke the letter! > >> >> > >> >> > >> >> Yes but this is more for fancy artistic text. For rendering large > >> >> amounts > >> >> of text (like big lists/source code) you don't want to do that, > >> >> because it will be too slow. > >> >> > >> > > >> > Thanks for the advice I will share it to my team because they want > >> > performance and use text_path instead of show_text. > >> > > >> > >> yes, the freetype library (and i guess you using it) is highly > >> optimized for font rendering. > >> sure thing, cairo path rendering is fast as well, but it is not as > >> specialized for just font rendering as freetype, > >> therefore, i have no doubts that it will be slower. > >> > >> > > > > > > I only use Athens to rendering the graphics framework :) And I try to not > > use directly some AthensCairo object to benefit of futur new backend of > > Athens :) and sincerely you really make a good job of the Athens > interface! > > It's very easy to use it! In one case I use AthensCairo object. I have to > > use AthensCairoMatrix instead of AthensAffineTransform to represent the > > transformation of a shape because I have to make an inversion of the > matrix > > to make a global position to the local position of the shape. > > > Ah, you mean this: > > AthensAffineTransform>>inverted > "answer an inverse transformation of receiver" > self notYetImplemented > > yes, someone has to implement it ;) > > If the weather is bad at Brest this week-end I will try to implement it :) (My last lesson of Matrix calculation is very old!)
But actually you can just use #inverseTransform: aPoint > > i.e. if: > > pt := m transform: somePoint. > > then > > somePoint closeTo: (m inverseTransform: pt) ==> true. > > (close to instead of #= because of float rounding errors) > > > -- > Best regards, > Igor Stasenko. > >