Hi,

On 7 Jun 2012, at 15:57, Igor Stasenko wrote:

> ouch.. looks like extension methods is wiped from LogicalFont..
> i will add them back..

Thanks.

> But in overall , i want to tell you the situation:
> as you may see, there is no high-level API defined yet in
> Canvas/Surface for text rendering.
> And i am going to introduce it , once i'll deal with VM bundling..
> because telling people to install cairo and do jumps and hops just to
> see it works is
> wasting a time.

Great.

> Now the idea how i want to introduce it is simple.
> You can use any object as font (as long at it should conform to some
> minimal font protocol,
> which has to be defined). I don't like to inherit AbstractFont
> protocol, because it is too
> pixel-wise centric.

Sounds good.

> Now, to start using that font on a surface, once should tell font:
> 
> renderer := font getRendererOn: surface.
> 
> this should answer a subclass of GlyphRenderer, which then can be used later
> to render the text on given surface using given font.
> 
> renderer setPosition: ..
> renderer renderGlyphsIn: 'abcde'  from: 1  to: ('abcde' size)
> etc.
> 
> of course there is missing some convenience protocol(s), but just to
> give you an idea.
> 
> About pango:
> pango is framework for text layout, not rendering. So, it can be used
> along with Athens,
> but it will be never an integral part of Athens.
> In Athens, i don't want to provide a high-level and highly complex
> semantics for text layout,
> because it is a separate domain and you can spend whole life there.
> Athens should support only basic drawing operations, like draw
> character span at certain position.

Exactly. This is what we need for engines like EyeSee and Roassal.

> The rest (layout) should be handled externally.

I know that. I should have not mentioned Pango :)

Cheers,
Doru


--
www.tudorgirba.com

"Sometimes the best solution is not the best solution."


Reply via email to