| #include <stdio.h> | |
| enum data_types {dfChar, dfShort, dfLong, dfString}; | |
| #define ERROR_DATA 1 | |
| #define ERROR_VERSION 2 | |
| #define ERROR_SIZE 3 | |
| #define ERROR_MEMORY 4 | |
| #define ERROR_FILE 5 | |
| typedef struct tagFontHeader | |
| { | |
| unsigned char dfVersion[2]; /* Version (always 0x3000) */ | |
| unsigned char dfSize[4]; /* Total File Size */ | |
| unsigned char dfCopyright[60]; /* Copyright notice */ | |
| unsigned char dfType[2]; /* Vector or bitmap font */ | |
| unsigned char dfPoints[2]; /* Nominal point size */ | |
| unsigned char dfVertRes[2]; /* Vertical Resolution */ | |
| unsigned char dfHorizRes[2]; /* Horizontal Resolutionchar */ | |
| unsigned char dfAscent[2]; /* Character ascent in pixels */ | |
| unsigned char dfInternalLeading[2]; /* Leading included in character defn */ | |
| unsigned char dfExternalLeading[2]; /* Leading to be added by Windows */ | |
| unsigned char dfItalic[1]; /* 1=Italic font */ | |
| unsigned char dfUnderline[1]; /* 1=underlined font */ | |
| unsigned char dfStrikeOut[1]; /* 1=strike-out font */ | |
| unsigned char dfWeight[2]; /* Weight: 400=normal */ | |
| unsigned char dfCharSet[1]; /* Character Set for this font */ | |
| unsigned char dfPixWidth[2]; /* Character width (0 for proportional) */ | |
| unsigned char dfPixHeight[2]; /* Character height */ | |
| unsigned char dfPitchAndFamily[1]; /* Font Pitch and family */ | |
| unsigned char dfAvgWidth[2]; /* Average character width */ | |
| unsigned char dfMaxWidth[2]; /* Maximum character width */ | |
| unsigned char dfFirstChar[1]; /* Firwst character of the font */ | |
| unsigned char dfLastChar[1]; /* Last character of the font */ | |
| unsigned char dfDefaultChar[1]; /* Missing character */ | |
| unsigned char dfBreakChar[1]; /* Character to indicate word breaks */ | |
| unsigned char dfWidthBytes[2]; /* Number of bytes in each row */ | |
| unsigned char dfDevice[4]; /* Offset to device name */ | |
| unsigned char dfFace[4]; /* Offset to type face name */ | |
| unsigned char dfBitsPointer[4]; | |
| unsigned char dfBitsOffset[4]; /* Offset to bitmaps */ | |
| unsigned char dfReserved[1]; | |
| unsigned char dfFlags[4]; /* Bitmapped flags */ | |
| unsigned char dfAspace[2]; | |
| unsigned char dfBspace[2]; | |
| unsigned char dfCspace[2]; | |
| unsigned char dfColorTable[2]; /* Offset to Color table */ | |
| unsigned char dfReserved1[4]; | |
| } fnt_hdrS; | |
| typedef struct WinCharStruct | |
| { | |
| unsigned int charWidth; | |
| unsigned int charOffset; | |
| } WinCharS; | |
| typedef struct fntFontStruct | |
| { | |
| fnt_hdrS hdr; | |
| WinCharS *dfCharTable; | |
| unsigned char *dfDeviceP; | |
| unsigned char *dfFaceP; | |
| unsigned char *dfBitsPointerP; | |
| unsigned char *dfBitsOffsetP; | |
| short *dfColorTableP; | |
| } fnt_fontS; | |
| extern int return_data_value(enum data_types, void *); | |
| extern int dump_bdf(fnt_fontS*, unsigned char* ); | |
| extern int dump_bdf_hdr(FILE* fp,fnt_fontS*, unsigned char* ); | |
| extern int parse_fnt_data(unsigned char* file_buffer, int length); | |