freetype的使用及總結

2021-07-25 13:23:56 字數 2277 閱讀 7954

/*總結

1 首先建立乙個庫

2 根據字型檔案得到face object

3 設定字型大小及第乙個座標值

4 載入face得到字型的glyph及buffer

5 顯示 (每次顯示乙個字元都是根據前乙個字元的glyph得到下乙個字元座標的原點值,這樣方便顯示)

*/#include #include #include #include #include #include #include #include #include #include #include #include ft_freetype_h

#include ft_glyph_h

#define dbg_printf printf

static ft_library g_tlibrary;

static ft_face g_tface;

static ft_glyphslot g_tslot;

static unsigned char *filename=null;

int fd_fb;

struct fb_var_screeninfo var; /* current var */

struct fb_fix_screeninfo fix; /* current fix */

int screen_size;

unsigned char *fbmem;

unsigned int line_width;

unsigned int pixel_width;

typedef struct fontbitmap t_fontbitmap, *pt_fontbitmap;

static int freetypefontinit(char *pcfontfile, unsigned int dwfontsize);

static int freetypegetfontbitmap(unsigned int dwcode, pt_fontbitmap ptfontbitmap);

/* color : 0x00rrggbb */

void lcd_put_pixel(int x, int y, unsigned int color)

case 16:

case 32:

default:

}}static int freetypegetfontbitmap(unsigned int dwcode, pt_fontbitmap ptfontbitmap)

int showonefont(pt_fontbitmap ptfontbitmap)

if (ucbyte & (1}

else

bit--;

if (bit == -1)

}} }

else

return 0;

}static int freetypefontinit(char *pcfontfile, unsigned int dwfontsize)

int main(int argc, char **argv)

if (ioctl(fd_fb, fbioget_vscreeninfo, &var))

if (ioctl(fd_fb, fbioget_fscreeninfo, &fix))

line_width = var.xres * var.bits_per_pixel / 8;

printf("line_width=%d\n",line_width);

pixel_width = var.bits_per_pixel / 8;

printf("pixel_width=%d\n",pixel_width);

screen_size = var.xres * var.yres * var.bits_per_pixel / 8;

printf("screen_size=%d\n",screen_size);

fbmem = (unsigned char *)mmap(null , screen_size, prot_read | prot_write, map_shared, fd_fb, 0);

/* 清屏: 全部設為黑色 */

memset(fbmem, 0, screen_size);

error=freetypefontinit(filename,50);

for ( n = 0; n < wcslen(chinese_str1); n++ )

return 0;

}

freetype 使用小結

freetype是乙個完全開源的 可擴充套件 可定製且可移植的字型引擎,它提供truetype字型驅動的實現統一的介面來訪問多種字型格式檔案,包括點陣字 truetype opentype type1 cid cff windows fon fnt x11 pcf等。freetype函式庫具有以下特...

freetype的安轉和使用

1.tar xvj freetype 2.4.10.tar.bz2 2 cd freetype 2.4.10 3 configure 4 make 5 sudo make install usr local lib 1.如此時編譯 gcc show fontprint.c o show fontpr...

HGE使用free type實現中文輸出

hge 使用free type 實現中文輸出 之前在irrlicht 論壇看到有日本人把 free type 字型庫用在 irrlicht 引擎裡,使該引擎支援多位元組文字輸出。但是他修改了引擎,後來我把他的 修改了下,使其不用修改引擎 就可以直接使用。考慮到過段時間可能會用 hge做些外包,就把這...