You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

65 lines
1.9 KiB

Index: Font-FreeType-0.03/FreeType.xs
--- Font-FreeType-0.03/FreeType.xs.orig 2004-09-11 22:50:44 +0200
+++ Font-FreeType-0.03/FreeType.xs 2009-01-15 15:21:09 +0100
@@ -21,6 +21,8 @@
#include FT_GLYPH_H
#include FT_OUTLINE_H
#include FT_BBOX_H
+#include FT_TYPE1_TABLES_H
+#include FT_SFNT_NAMES_H
#undef assert
#include <assert.h>
@@ -763,6 +765,33 @@
char_code = FT_Get_Next_Char(face, char_code, &glyph_idx);
}
+long
+qefft2_face_number_of_charmaps (Font_FreeType_Face face)
+ CODE:
+ RETVAL = face->num_charmaps;
+ OUTPUT:
+ RETVAL
+
+int
+qefft2_face_sfnt_name_count (Font_FreeType_Face face)
+ CODE:
+ RETVAL = FT_Get_Sfnt_Name_Count(face);
+ OUTPUT:
+ RETVAL
+
+SV *
+qefft2_face_sfnt_name (Font_FreeType_Face face, FT_UInt idx)
+ PREINIT:
+ const char *ps_name;
+ CODE:
+ ps_name = FT_Get_Postscript_Name(face);
+ if (ps_name)
+ RETVAL = newSVpv(ps_name, 0);
+ else
+ RETVAL = &PL_sv_undef;
+ OUTPUT:
+ RETVAL
+
MODULE = Font::FreeType PACKAGE = Font::FreeType::Glyph PREFIX = qefft2_glyph_
@@ -805,7 +834,8 @@
char_code = FT_Get_First_Char(face, &glyph_idx);
while (glyph_idx) {
if (glyph_idx == glyph->index) {
- RETVAL = newSVuv((UV) glyph->char_code = char_code);
+ glyph->char_code = char_code;
+ RETVAL = newSVuv((UV) glyph->char_code);
break;
}
char_code = FT_Get_Next_Char(face, char_code, &glyph_idx);
@@ -1052,7 +1082,7 @@
rows = newAV();
av_extend(rows, bitmap->rows - 1);
buf = bitmap->buffer;
- row_buf = New(0, row_buf, bitmap->width, unsigned char);
+ New(0, row_buf, bitmap->width, unsigned char);
if (bitmap->pixel_mode == FT_PIXEL_MODE_MONO) {
for (i = 0; i < bitmap->rows; ++i) {