On Sep 8, 2012, at 7:21 AM, Parth Kanungo <[email protected]> wrote:

> Thanks John.
> 
> The ShapeRenderer function draws whatever you like on the supplied cairo 
> context. See pango_attr_shape_new() [1].
>  
> I don't think that it makes sense to implement it anywhere except PangoCairo: 
> That's the *destination*; the others (including ft2) are font sources, 
> meaning that they provide the glyph metrics that Pango uses to layout lines 
> of text and to render them onto a cairo surface for display. Is that what you 
> mean by "elaborate on the bigger picture"?
>  
> Yes, that is exactly what I meant by "the bigger picture". So, now, we agree 
> that the ShapeRenderer function displays the attributes supplied in the cairo 
> context.
>  
> Now, I need a similar ShapeRenderer function that displays the attributes 
> supplied while using pangoft2.
> 
> To further clarify my problem-statement, let me add the following:
> When we compare the pangoft2-render.c's and pangocairo-render.c's 
> renderer_class_init functions, we observer that pangoft2-render.c initializes 
> only 2 functions whereas pangocairo-render.c initializes 6 functions ( 
> including renderer_class->draw_shape = pango_cairo_renderer_draw_shape )
>  
> Now, here's my assertion. (correct me, if I am wrong)
> I think that it is the presence of these initialized functions that enables 
> pangocairo to render different styles(italic/oblique), variants, 
> weights(thin, normal, ultraheavy), stretch etc. and other attributes, which 
> are impossible to render in pangoft2.
> If I am correct, then you can understand why I want to implement the 
> ShapeRenderer function.
> 
> If I am wrong, then lets forget this whole discussion, and let me put up a 
> simple question:
> How can I render different styles(italic/oblique), variants, weights(thin, 
> normal, ultraheavy), stretch etc. and other attributes while using pangoft2 ?
> 
> I hope that I was able to explain my question in a better manner this time. 
> Thanks again. :)
>  

I'll cut right to the chase: No, you're wrong on two counts. First and most 
important, you can't compare FT2 and Cairo. FT2 is a font-metrics provider, 
like CoreText, Xft, and Win32. Cairo is the drawing engine that sits between 
Pango and the OS's Windowing system (X, Quartz, Win32, HTML5, etc.). Pango gets 
the codepoints and font designation and attributes from the client program, 
then retrieves the font metrics from the (eg) FT2 backend for the glyphs that 
it needs to render, and then uses Cairo Rendering to draw them on a Cairo 
Surface for display.

You second error is believing that ShapeRenderer draws modified faces. It 
doesn't. It can't, because it doesn't take font metrics as an input. Read the 
Text Attributes section [1] and note PANGO_ATTR_STYLE, PANGO_ATTR_WEIGHT, and 
PANGO_ATTR_VARIANT.

So, to answer your "simple question", apply the appropriate attributes to your 
text. The easy way is to use the provided markup language [2].

Regards,
John Ralls


[1] http://developer.gnome.org/pango/stable/pango-Text-Attributes.html
[2] http://developer.gnome.org/pango/stable/PangoMarkupFormat.html
_______________________________________________
gtk-i18n-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/gtk-i18n-list

Reply via email to