2
0
Эх сурвалжийг харах

Refactored with API glue functions.

woollybah 11 жил өмнө
parent
commit
403b1123e7

+ 19 - 0
freetype.mod/freetype.bmx

@@ -97,6 +97,8 @@ Import "src/winfonts/winfnt.c"
 
 ?
 
+Import "glue.c"
+
 Extern
 
 Function FT_Init_FreeType( ft_lib:Byte Ptr Ptr )
@@ -116,6 +118,23 @@ Function FT_Load_Char( ft_face:Byte Ptr,index,flags )
 Function FT_Load_Glyph( ft_face:Byte Ptr,index,flags )
 Function FT_Render_Glyph( ft_glyph:Byte Ptr,Mode )
 
+
+Function bmx_freetype_Face_numglyphs:Int(ft_face:Byte Ptr)
+Function bmx_freetype_Face_glyph:Byte Ptr(ft_face:Byte Ptr)
+Function bmx_freetype_Face_size:Byte Ptr(ft_face:Byte Ptr)
+Function bmx_freetype_Size_height:Int(ft_size:Byte Ptr)
+Function bmx_freetype_Size_ascend:Int(ft_size:Byte Ptr)
+Function bmx_freetype_Size_descend:Int(ft_size:Byte Ptr)
+
+Function bmx_freetype_Slot_bitmapleft:Int(slot:Byte Ptr)
+Function bmx_freetype_Slot_bitmaptop:Int(slot:Byte Ptr)
+Function bmx_freetype_Slot_bitmap_width:Int(slot:Byte Ptr)
+Function bmx_freetype_Slot_bitmap_rows:Int(slot:Byte Ptr)
+Function bmx_freetype_Slot_bitmap_pitch:Int(slot:Byte Ptr)
+Function bmx_freetype_Slot_advance_x:Int(slot:Byte Ptr)
+Function bmx_freetype_Slot_bitmap_buffer:Byte Ptr(slot:Byte Ptr)
+Function bmx_freetype_Slot_bitmap_numgreys:Int(slot:Byte Ptr)
+
 End Extern
 
 Const FT_LOAD_DEFAULT=0

+ 60 - 0
freetype.mod/glue.c

@@ -0,0 +1,60 @@
+
+#include <ft2build.h>
+#include FT_FREETYPE_H
+
+int bmx_freetype_Face_numglyphs(FT_Face ft_face) {
+	return ft_face->num_glyphs;
+}
+
+FT_GlyphSlot bmx_freetype_Face_glyph(FT_Face ft_face) {
+	return ft_face->glyph;
+}
+
+FT_Size bmx_freetype_Face_size(FT_Face ft_face) {
+	return ft_face->size;
+}
+
+int bmx_freetype_Size_height(FT_Size size) {
+	return size->metrics.height;
+}
+
+int bmx_freetype_Size_ascend(FT_Size size) {
+	return size->metrics.ascender;
+}
+
+int bmx_freetype_Size_descend(FT_Size size) {
+	return size->metrics.descender;
+}
+
+int bmx_freetype_Slot_bitmapleft(FT_GlyphSlot slot) {
+	return slot->bitmap_left;
+}
+
+int bmx_freetype_Slot_bitmaptop(FT_GlyphSlot slot) {
+	return slot->bitmap_top;
+}
+
+int bmx_freetype_Slot_bitmap_width(FT_GlyphSlot slot) {
+	return slot->bitmap.width;
+}
+
+int bmx_freetype_Slot_bitmap_rows(FT_GlyphSlot slot) {
+	return slot->bitmap.rows;
+}
+
+int bmx_freetype_Slot_bitmap_pitch(FT_GlyphSlot slot) {
+	return slot->bitmap.pitch;
+}
+
+int bmx_freetype_Slot_bitmap_numgreys(FT_GlyphSlot slot) {
+	return slot->bitmap.num_grays;
+}
+
+int bmx_freetype_Slot_advance_x(FT_GlyphSlot slot) {
+	return slot->advance.x;
+}
+
+unsigned char * bmx_freetype_Slot_bitmap_buffer(FT_GlyphSlot slot) {
+	return slot->bitmap.buffer;
+}
+