63 lines
1.1 KiB
C
63 lines
1.1 KiB
C
/*
|
|
* Mr. 4th Dimention - Allen Webster
|
|
*
|
|
* 16.11.2017
|
|
*
|
|
* Data types for the freetype font provider.
|
|
*
|
|
*/
|
|
|
|
// TOP
|
|
|
|
#if !defined(FCODER_FONT_PROVIDER_FREETYPE_H)
|
|
#define FCODER_FONT_PROVIDER_FREETYPE_H
|
|
|
|
// NOTE(allen): Implemented by the freetype font provider.
|
|
struct Font_Slot{
|
|
b32 is_active;
|
|
Font_Settings settings;
|
|
Font_Metrics metrics;
|
|
Font_Page_Storage pages;
|
|
};
|
|
|
|
struct Font_Vars{
|
|
Font_Slot slots[32];
|
|
i32 count;
|
|
|
|
Font_Loadable_Description loadables[4096];
|
|
i32 loadable_count;
|
|
|
|
u32 pt_size;
|
|
b32 use_hinting;
|
|
};
|
|
|
|
global Font_Vars fontvars = {0};
|
|
|
|
struct Font_Setup{
|
|
Font_Setup *next;
|
|
Font_Loadable_Stub stub;
|
|
};
|
|
|
|
struct Font_Setup_List{
|
|
Font_Setup *first;
|
|
Font_Setup *last;
|
|
};
|
|
|
|
// NOTE(allen): Procedures to be implemented per-OS for the freetype font provider.
|
|
struct Font_Raw_Data{
|
|
Temp_Memory temp;
|
|
u8 *data;
|
|
i32 size;
|
|
};
|
|
|
|
#define Sys_Font_Data(name) Font_Raw_Data system_font_data(char *name)
|
|
internal Sys_Font_Data(name);
|
|
|
|
#define Sys_Font_Data_Not_Used\
|
|
internal Sys_Font_Data(name){Font_Raw_Data data = {0}; InvalidCodePath; return(data);}
|
|
|
|
#endif
|
|
|
|
// BOTTOM
|
|
|