[cairo] Cairo and freetype
Justin Thomas
justin at sweaky.com
Thu Nov 8 10:46:08 PST 2012
So I think your close, you just need to render the text to an image surface instead of the gcm surface (cairo_image_surface_* functions)
Then take that image surface and render it to your gcm surface.
So context1 (image), render text to image surface.
Then context2 (gcm), render image surface to gcm surface, last 2 lines in your code.
As far as the freetype/gcm font rendering already available in the PS3 SDK, you will need to ask that on devnet, but if you search the docs for freetype you should find it pretty quickly.
-JT
On Nov 8, 2012, at 9:04 AM, Techie Help <techieinfo at yahoo.co.uk> wrote:
> Hi,
>
> I even tried computing glyphs. I am able to do that. But, then I tried to show it using:
> cairo_show_glyphs() and I get:
> _gcm_surface_get_font_options not implemented yet
> _gcm_surface_has_show_text_glyphs not implemented yet
> _gcm_surface_show_text_glyphs not implemented yet
> _gcm_surface_show_glyphs not implemented yet
> _gcm_surface_old_show_glyphs not implemented yet
> _gcm_surface_composite,154 not implemented yet
>
> So, I am not sure what my options are now.
> Can anyone suggest anything.
>
> Many Thanks
> techie(ttb)
>
> ----- Forwarded Message -----
> From: Techie Help <techieinfo at yahoo.co.uk>
> To: "cairo at cairographics.org" <cairo at cairographics.org>
> Sent: Thursday, 8 November 2012, 12:58
> Subject: Cairo and freetype
>
> Hi,
>
> The problem was with cairo_font_options_t. They can't be NULL in call : cairo_scaled_font_create().
> So, I added default options.
>
> It has moved further but still no text as on executing this line of code:
> cairo_text_path(), I get
>
> _gcm_surface_get_font_options not implemented yet
> in my debugger.
> Any ideas, how to get rid of this.
>
> Thanks.
>
> ----- Forwarded Message -----
> From: Techie Help <techieinfo at yahoo.co.uk>
> To: "cairo at cairographics.org" <cairo at cairographics.org>
> Sent: Thursday, 8 November 2012, 10:51
> Subject: Re: Cairo and freetype
>
> Hi Jutsin,
>
> I did it the way you suggested:
> Here's what I did:
>
>
> cairo_device_t * cairo_device=cairo_gcm_device_create(1024*1024*10, 1024*1024*15, 1024*1024*20);
> cairo_surface_t * surface = cairo_gcm_surface_create_for_texture(cairo_device, 1500, 1500);
>
> /* Init freetype */
> int error;
> FT_Library ft_library;
> error = FT_Init_FreeType(&ft_library);
> if (error)
> {
> printf("ERROR CODE: %d, filename: %s, line no. : %d\n", error, __FILE__, __LINE__);
> }
> //Load our fonts
> FT_Face ft_face = NULL;
> error = FT_New_Face(ft_library, "/app_home/FreeMonoBold.ttf", 0, &ft_face);
> if (error)
> {
> printf("ERROR CODE: %d, filename: %s, line no. : %d\n", error, __FILE__, __LINE__);
> }
>
> cairo_font_face_t *myfont_face;
> myfont_face = cairo_ft_font_face_create_for_ft_face(ft_face,0);
>
> cairo_matrix_t mxSize;
> cairo_matrix_t mxIdent;
> cairo_matrix_init_scale(&mxSize, 16, 16); // sizing..
> cairo_matrix_init_identity(&mxIdent);
> cairo_scaled_font_t* cairoFont = cairo_scaled_font_create(myfont_face, &mxSize, &mxIdent, 0);
> cairo_t *cr = cairo_create (surface);
>
> cairo_set_scaled_font(cr, cairoFont);
> cairo_set_font_size(cr, 16);
> cairo_new_path(cr);
> cairo_move_to(cr, 200, 200);
>
> cairo_text_path(cr, "Print Something");
> cairo_set_source_rgb(cr, 1, 0, 0);
> cairo_fill(cr);
> cairo_set_source_surface(cr, surface, 0, 0);
> cairo_paint(cr);
> sys_timer_usleep(20 *1000000);
>
> I added sleep in the end, so that if there is any text I can see it before application exits.
> But I still don't see anything.
>
> Sorry, I am totally new to all this. You mentioned that it will be better if I use
> freetype library and glyph/font rendering already available in the SDK(yes, my platform is PS3)
> but I am not sure how to find what is available in SDK and how to use it?
>
> Please if you can provide any more guidance it would be of great help.
> Thanks
> From: Techie Help <techieinfo at yahoo.co.uk>
> To: "cairo at cairographics.org" <cairo at cairographics.org>
> Sent: Wednesday, 7 November 2012, 21:28
> Subject: Cairo and freetype
>
> Hi,
>
> I am new to Graphics, so new to cairo as well.
> I am trying to render some text using Cairo and freetype.
> The backend that I am using is gcm, and it does not support any glyphs etc.
> Can anyone please provide me with an example how to do this.
>
> Thanks
>
>
>
>
>
>
> --
> cairo mailing list
> cairo at cairographics.org
> http://lists.cairographics.org/mailman/listinfo/cairo
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cairographics.org/archives/cairo/attachments/20121108/92db6fc7/attachment-0001.html>
More information about the cairo
mailing list