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 ;)

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.

Reply via email to