Behdad Esfahbod's daily notes on GNOME, Pango, Fedora, Persian Computing, Bob Dylan, and Dan Bern!

My Photo
Location: Toronto, Ontario, Canada

Ask Google.

Contact info
Hacker Emblem Become a Friend of GNOME I Power Blogger
follow me on Twitter
July 2003
August 2003
October 2003
November 2003
December 2003
March 2004
April 2004
May 2004
July 2004
August 2004
September 2004
November 2004
March 2005
April 2005
May 2005
June 2005
July 2005
August 2005
September 2005
October 2005
November 2005
December 2005
January 2006
February 2006
March 2006
April 2006
May 2006
June 2006
July 2006
August 2006
September 2006
October 2006
November 2006
December 2006
January 2007
February 2007
March 2007
April 2007
May 2007
June 2007
July 2007
August 2007
September 2007
October 2007
November 2007
December 2007
January 2008
February 2008
March 2008
April 2008
May 2008
June 2008
July 2008
August 2008
October 2008
November 2008
December 2008
January 2009
March 2009
April 2009
May 2009
June 2009
July 2009
August 2009
November 2009
December 2009
March 2010
April 2010
May 2010
June 2010
July 2010
October 2010
November 2010
April 2011
May 2011
August 2011
September 2011
October 2011
November 2011
November 2012
June 2013
January 2014
May 2015
Current Posts
McEs, A Hacker Life
Friday, May 04, 2007
 PangoCairo arbitrary shape rendering

On Tuesday I met Travis Griggs, the author of cairo Smalltalk bindings, who was presenting about cairo at IT360°. He made his slide deck using cairo and Pango, using a background and font that resembled Egyptian papyrus scroll using the cairo beetle logo instead of bullet points. I asked him how he did that and of course the hard way. I then explained how pango supports shape attributes that can be used by a custom made PangoRenderer to render arbitrary shapes.

Last night I thought there should be an easier way to do that, and so I added pango_cairo_context_set_shape_renderer().

Obligatory screenshot:

PangoCairo shape rendering

Source code.

Lets see how long I can go with a Pango feature a day. Today excluded as I'll be driving to LGM. Weekends too as I've finally got myself spending the weekend with species other than computers.

Labels: , , ,

Some of these features are way cool, I'm really starting to like your posts on these new pango features but would like to suggest another feature. Not sure how you'd go about implementing it but let me explain as simply as possible. It came to mind purely because of the title "arbitrary shape rendering" which made me think about instructing pango to wrap text inside of an arbitrary shape. For instance if I used cairo to draw an image in the centre of a page then sculpted a text box around that image instead of calling cairo_fill() I could call possibly, pango_cairo_context_fill_text(), where the shape which had been etched by cairo could then be filled with a text buffer, wrapping whenever an edge was hit.

It would be especially cool to allow me to fully justify the text in that shape, so for instance something like the RSA dolphin ( could be drawn with pango and cairo.

Hope this becomes a pango feature sometime soon.
behdad dude, everytime I post a comment here is to say how much your stuff rocks.

Anyway then, praise++!

Thanks Jordi!

Karl, that's totally planned! See and when I opened it!
Post a Comment

Links to this post:

Create a Link

<< Archive
<< Home