X-Git-Url: http://git.xonotic.org/?p=xonotic%2Fdarkplaces.git;a=blobdiff_plain;f=ft2.h;h=2104a8c4fd9f6620afeb7fb231d77fad5a075663;hp=99de79a74bd633106c818c8f9bf798d65f0ab254;hb=73f27d62983b6af1cb9a6971d0a4cb6275b91a07;hpb=34ac3e1a25d3b1541a7b32e89c63812b52c3edac diff --git a/ft2.h b/ft2.h index 99de79a7..2104a8c4 100644 --- a/ft2.h +++ b/ft2.h @@ -22,7 +22,11 @@ typedef struct ft2_font_map_s ft2_font_map_t; typedef struct ft2_attachment_s ft2_attachment_t; +#ifdef WIN64 +#define ft2_oldstyle_map ((ft2_font_map_t*)-1LL) +#else #define ft2_oldstyle_map ((ft2_font_map_t*)-1) +#endif typedef float ft2_kernvec[2]; typedef struct ft2_kerning_s @@ -33,17 +37,17 @@ typedef struct ft2_kerning_s typedef struct ft2_font_s { char name[64]; - qboolean has_kerning; + qbool has_kerning; // last requested size loaded using Font_SetSize float currentw; float currenth; float ascend; float descend; - qboolean image_font; // only fallbacks are freetype fonts + qbool image_font; // only fallbacks are freetype fonts // TODO: clean this up and do not expose everything. - //unsigned char *data; + const unsigned char *data; // FT2 needs it to stay //fs_offset_t datasize; void *face; @@ -55,13 +59,15 @@ typedef struct ft2_font_s size_t attachmentcount; ft2_attachment_t *attachments; + ft2_settings_t *settings; + // fallback mechanism struct ft2_font_s *next; } ft2_font_t; void Font_CloseLibrary(void); void Font_Init(void); -qboolean Font_OpenLibrary(void); +qbool Font_OpenLibrary(void); ft2_font_t* Font_Alloc(void); void Font_UnloadFont(ft2_font_t *font); // IndexForSize suggests to change the width and height if a font size is in a reasonable range @@ -69,10 +75,11 @@ void Font_UnloadFont(ft2_font_t *font); // in such a case, *outw and *outh are set to 12, which is often a good alternative size int Font_IndexForSize(ft2_font_t *font, float size, float *outw, float *outh); ft2_font_map_t *Font_MapForIndex(ft2_font_t *font, int index); -qboolean Font_LoadFont(const char *name, dp_font_t *dpfnt); -qboolean Font_GetKerningForSize(ft2_font_t *font, float w, float h, Uchar left, Uchar right, float *outx, float *outy); -qboolean Font_GetKerningForMap(ft2_font_t *font, int map_index, float w, float h, Uchar left, Uchar right, float *outx, float *outy); - +qbool Font_LoadFont(const char *name, dp_font_t *dpfnt); +qbool Font_GetKerningForSize(ft2_font_t *font, float w, float h, Uchar left, Uchar right, float *outx, float *outy); +qbool Font_GetKerningForMap(ft2_font_t *font, int map_index, float w, float h, Uchar left, Uchar right, float *outx, float *outy); +float Font_VirtualToRealSize(float sz); +float Font_SnapTo(float val, float snapwidth); // since this is used on a font_map_t, let's name it FontMap_* ft2_font_map_t *FontMap_FindForChar(ft2_font_map_t *start, Uchar ch); #endif // DP_FREETYPE2_H__