Re: Rendering Arabic text with Pango & Cairo VS Pango & FreeType



Seems to me like your fontconfig can't find any decent Arabic fonts. Try running fc-match ':lang=ar' and see what you get...


behdad

On 12/01/2009 03:29 AM, Nicolas Lacombe wrote:
Of course, sorry about that.

I'm running pango on windows (with MSVC), using the binaries provided by
GTK+ (http://www.gtk.org/download-windows.html).

For the pango viewer, I just created a small visual studio project to
see how it work, link it statically with the GTK+ binaries and run it.
Pangocairo work as intended whereas pangoft2 does not interpret results.



2009/12/1 Behdad Esfahbod <behdad behdad org <mailto:behdad behdad org>>

    You can at least tell us about your build environment?!!


    On 12/01/2009 02:09 AM, Nicolas Lacombe wrote:

        Thx for your answear.

        I don't know wich fonts are using the pagocairo backend... how can I
        know this informations?

        I tested the pango viewer included in the source under windows
        yesterday, and the pangoft2 test gave me wrong results again, so it
        looks like I'm not doing anything wrong in my code.

        Problem is I really need to use freetype, so I guess I'll have
        to write
        the arabic module myself.

        Nico.

        2009/11/30 Behdad Esfahbod <behdad behdad org
        <mailto:behdad behdad org> <mailto:behdad behdad org
        <mailto:behdad behdad org>>>


            Hi,

            I'm not sure why it doesn't work for you.  Is the pangocairo
        backend
            using FreeType fonts or win32?  At any rate, the pangoft2
        backend
            has been deprecated for years.  I suggest you use pangocairo
        instead.

            behdad


            On 11/30/2009 09:48 AM, Nicolas Lacombe wrote:

                Hi,

                I want to use Pango high level functionnality to render
        arabic
                tex in a
                FreeType environnement.

                Using Pango with Cairo, it works perfectly, the text is
        correctly
                rendered with ligatures typographic ligature.

                However, in a freetype environnement, ligature disapear!
        I can
                still see
                the text, but only the original form of each glyph, thus
        without any
                contextual interpretation.

                Am I doing anything wrong?


                PANGO & CAIRO RENDERING (WORKING AS INTENDED)

                cairo_surface_t *surface;
                cairo_t *cr;


                PangoLayout *layout;


                surface = cairo_image_surface_create(CAIRO_FORMAT_A8,
        512, 512);
                cr = cairo_create(surface);
                cairo_set_source_rgba(cr, 1., 1., 1., 0.0);
                cairo_paint(cr);

                layout = pango_cairo_create_layout(cr);
                PangoFontDescription *desc;
                desc = pango_font_description_from_string("Arial, 20");
                pango_layout_set_font_description  (layout, desc);
                pango_font_description_free(desc);

                pango_layout_set_text(layout, txt, -1);
                cairo_set_line_width(cr, 0.5);
                cairo_set_source_rgba(cr, 0.0, 0.0, 0.0, 1.0);

                pango_cairo_update_layout(cr, layout);
                pango_cairo_show_layout(cr, layout);



                PANGO & FREETYPE RENDERING (no contextual analysis of
        the arabic
                text)


                PangoContext *context;

                PangoFontMap* PFM = pango_ft2_font_map_new();
                pango_ft2_font_map_set_resolution(PANGO_FT2_FONT_MAP(PFM),
                width, height);
                context =
        pango_font_map_create_context(PANGO_FONT_MAP(PFM));


                FT_Bitmap* bm;
                bm = g_slice_new(FT_Bitmap);
                bm->rows = height;
                bm->width = width;
                bm->pitch = width;
                bm->num_grays = 256;
                bm->pixel_mode = FT_PIXEL_MODE_GRAY;

                bm->buffer = (unsigned char*)g_malloc (bm->pitch *
        bm->rows);
                memset(bm->buffer, 0x00, bm->pitch * bm->rows);

                layout = pango_layout_new(context);
                static PangoFontDescription *desc;

                desc = pango_font_description_from_string("Arial, 20");
                pango_layout_set_font_description(layout, desc);
                pango_font_description_free(desc);

                pango_layout_set_auto_dir (layout, 1);
                pango_layout_set_text(layout, txt, -1);

                pango_layout_context_changed(layout);
                pango_ft2_render_layout(bm, layout, 0, 0);







                _______________________________________________
                gtk-i18n-list mailing list
        gtk-i18n-list gnome org <mailto:gtk-i18n-list gnome org>
        <mailto:gtk-i18n-list gnome org <mailto:gtk-i18n-list gnome org>>

        http://mail.gnome.org/mailman/listinfo/gtk-i18n-list





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]