⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 devfont.h

📁 MiniWinOuterSM MiniWinOuterSM
💻 H
字号:
#ifndef __DEVFONT_H__
#define __DEVFONT_H__
#include"osdcharset.h"
#define FONT_MAX_SIZE               256
#define FONT_MIN_SIZE               4
typedef struct{
	int	   bpp;		/*bits per pixel*/		
    int    rows;    /* number of rows                    */
    int    cols;    /* number of columns (bytes) per row */
    int    pitch;    /* bitmap orientation                */
    void*  bitmap;  /* bit/pixmap buffer                 */
}CHARBITMAP;
typedef struct _DEVFONT DEVFONT;
typedef struct GDIFont GDIFONT;
typedef struct{
    int (*get_char_width)(GDIFONT*gdifont,DEVFONT* devfont, 
            const unsigned char* mchar, int len);
    int (*get_str_width) (GDIFONT*gdifont,DEVFONT* devfont, 
            const unsigned char* mstr, int n, int cExtra);
    int (*get_ave_width) (GDIFONT*gdifont, DEVFONT* devfont);
    int (*get_max_width) (GDIFONT*gdifont, DEVFONT* devfont);
    int (*get_font_height)(GDIFONT*gdifont,DEVFONT* devfont);
    int (*get_font_size) (GDIFONT*gdifont, DEVFONT* devfont,int expect);
    int (*get_font_ascent)(GDIFONT*gdifont,DEVFONT* devfont);
    int (*get_font_descent)(GDIFONT*gdifont,DEVFONT* devfont);  
    int (*char_bitmap_size)(GDIFONT*gdifont,DEVFONT* devfont, 
            const unsigned char* mchar, int len);
    int (*max_bitmap_size) (GDIFONT*gdifont,DEVFONT* devfont);
    int (*get_char_bitmap)(GDIFONT*gdifont,DEVFONT* devfont, 
            const unsigned char* mchar, int len,CHARBITMAP*bmp);
    
    void (*start_str_output)(GDIFONT*gdifont,DEVFONT* devfont);
         //Can be NULL 
    int (*get_char_bbox) (GDIFONT*gdifont,DEVFONT* devfont,
            const unsigned char* mchar, int len,
            int* px, int* py, int* pwidth, int* pheight);
         // Can be NULL 
    void (*get_char_advance) (GDIFONT*gdifont,DEVFONT* devfont,
            const unsigned char* mchar, int len, int* px, int* py);
         // Can be NULL 
    DEVFONT*(*new_instance)(GDIFONT*gdifont,DEVFONT* devfont, 
            int need_sbc_font);// Can be NULL 
    void (*delete_instance)(DEVFONT*devfont);
}FONTOPS;
struct _DEVFONT{
	char*name;
	FONTOPS*FontOps;
	CHARSETOPS *CharsetOps;
	struct _DEVFONT*next;
	void*data;
};
struct GDIFont{
	DEVFONT*mbcFont;
	DEVFONT*sbcFont;
	char*type;
	char*family;
	char*charset;
	int RefCount;
	short size;
	short FontWidth;
	short FontHeight;
	short aveWidth;//字符平均宽度。
	int bItalic;
	int underLine;
	int rotation;
};
#ifdef __cplusplus
extern "C"{
#endif

void AddDevFont(DEVFONT*fnt,int mbc);
char*GetFontCharsetPartFromName(const char* name, char* charset);
int GetFontCharsetFromName(const char*fontname,char*charset);
int GetCharsetsNumber (const char* charsets);
int GetFontTypeFromName (const char* name, char* type);
int GetFontFamilyFromName(const char*fontname,char*family);
int GetFromSizeFromName (const char* name,short*fwidth,short*fheight);
DEVFONT*GetMachedDevFont(GDIFONT*fnt,int mbc);
#ifdef __cplusplus
}
#endif
#endif     

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -