[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[ft-devel] FT_Glyphslot_Embolden is broken at sometimes.
From: |
sunmoon1997 |
Subject: |
[ft-devel] FT_Glyphslot_Embolden is broken at sometimes. |
Date: |
Tue, 25 Oct 2005 18:22:31 +0800 |
User-agent: |
Mozilla Thunderbird 1.0.2 (X11/20050425) |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
hi,
FT_Glyphslot_Embolden works at most of time, but sometimes it
doesn't(see attachment). To run the testcase, you need simsun.ttc
from windows. Any comments?
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)
iD8DBQFDXgdmuOtwLijeKbwRApnoAKDHOiL0DrSt9ZVPXQuDqMiuVQHxEACeNzjs
v1OdFsqZVicCcYzzCZqabSk=
=Updo
-----END PGP SIGNATURE-----
#include <cairo.h>
#define WIDTH 350
#define HEIGHT 100
#define TEXT "æ"
int main() {
cairo_surface_t * sr;
cairo_t * cr;
cairo_text_extents_t extents;
double y = 0;
sr = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, WIDTH, HEIGHT);
cr = cairo_create (sr);
cairo_select_font_face (cr, "simsun",
CAIRO_FONT_SLANT_NORMAL,
CAIRO_FONT_WEIGHT_NORMAL);
cairo_set_font_size (cr, 48.0);
cairo_set_source_rgb (cr, 1.0, 1.0, 1.0);
cairo_paint(cr);
cairo_set_source_rgb (cr, 0, 0, 1.0);
cairo_text_extents (cr, TEXT, &extents);
cairo_move_to (cr, -extents.x_bearing, y - extents.y_bearing);
cairo_show_text (cr, TEXT);
/* require bold style */
cairo_select_font_face (cr, "simsun",
CAIRO_FONT_SLANT_NORMAL,
CAIRO_FONT_WEIGHT_BOLD);
/* cairo will call FT_GlyphSlot_Embolden */
y += extents.height + 2.0;
cairo_text_extents (cr, TEXT, &extents);
cairo_move_to (cr, -extents.x_bearing, y - extents.y_bearing);
cairo_show_text (cr, TEXT);
cairo_set_line_width (cr, 0.5);
cairo_set_source_rgb (cr, 0, 0, 0);
cairo_set_font_size (cr, 48.0);
/* outline */
cairo_move_to (cr, 80, 80);
cairo_text_path (cr, TEXT);
cairo_stroke (cr);
/* regular style */
cairo_select_font_face (cr, "simsun",
CAIRO_FONT_SLANT_NORMAL,
CAIRO_FONT_WEIGHT_NORMAL);
cairo_move_to (cr, 140, 80);
cairo_text_path (cr, TEXT);
cairo_stroke (cr);
cairo_move_to (cr, 200, 80);
cairo_text_path (cr, TEXT);
cairo_fill (cr);
cairo_surface_write_to_png (sr, "ft-glyphslot-embolden-broken.png");
cairo_destroy (cr);
cairo_surface_destroy (sr);
return 0;
}
- [ft-devel] FT_Glyphslot_Embolden is broken at sometimes.,
sunmoon1997 <=