/* never change the size of this! genfile.c detects pointerlen with it */ typedef struct ListBase {
void *first, *last;} ListBase;
***interface source/blender/blenlib/BLI_listbase.h
void addlisttolist(struct ListBase *list1, struct ListBase *list2); void BLI_insertlink(struct ListBase *listbase, void *vprevlink, void *vnewlink); void *BLI_findlink(struct ListBase *listbase, int number); int BLI_findindex(struct ListBase *listbase, void *vlink); void *BLI_findstring(struct ListBase *listbase, const char *id, int offset); int BLI_findstringindex(struct ListBase *listbase, const char *id, int offset); void BLI_freelistN(struct ListBase *listbase); void BLI_addtail(struct ListBase *listbase, void *vlink); void BLI_remlink(struct ListBase *listbase, void *vlink); int BLI_remlink_safe(struct ListBase *listbase, void *vlink);
void BLI_addhead(struct ListBase *listbase, void *vlink); void BLI_insertlinkbefore(struct ListBase *listbase, void *vnextlink, void *vnewlink); void BLI_insertlinkafter(struct ListBase *listbase, void *vprevlink, void *vnewlink); void BLI_sortlist(struct ListBase *listbase, int (*cmp)(void *, void *)); void BLI_freelist(struct ListBase *listbase); int BLI_countlist(struct ListBase *listbase); void BLI_freelinkN(struct ListBase *listbase, void *vlink); void BLI_duplicatelist(struct ListBase *list1, const struct ListBase *list2);
- source/blender/makesdna/DNA_userdef_types.h
- typedef struct UserDef {
int flag, dupflag; int savetime; char tempdir[160]; // FILE_MAXDIR length char fontdir[160]; char renderdir[160]; char textudir[160]; char plugtexdir[160]; char plugseqdir[160]; char pythondir[160]; char sounddir[160]; char image_editor[240]; // FILE_MAX length char anim_player[240]; // FILE_MAX length int anim_player_preset;
short v2d_min_gridsize; /* minimum spacing between gridlines in View2D grids / short timecode_style; / style of timecode display */
short versions; short dbl_click_time;
int gameflags; int wheellinescroll; int uiflag, language; short userpref, viewzoom;
int mixbufsize; int audiodevice; int audiorate; int audioformat; int audiochannels;
int scrollback; /* console scrollback limit / int dpi; / range 48-128? */ short encoding; short transopts; short menuthreshold1, menuthreshold2;
struct ListBase themes; // fonts struct ListBase uifonts; // interface struct ListBase uistyles;
/* 選択中のフォント uiStyle *style= U.uistyles.first; uiFontStyle *fstyle= &style->widget; fstyle->uifont_id */
struct ListBase keymaps; struct ListBase addons; char keyconfigstr[64];
short undosteps; short undomemory; short gp_manhattendist, gp_euclideandist, gp_eraser; short gp_settings; short tb_leftmouse, tb_rightmouse; struct SolidLight light[3]; short tw_hotspot, tw_flag, tw_handlesize, tw_size; short textimeout,texcollectrate; short wmdrawmethod, wmpad; int memcachelimit; int prefetchframes; short frameserverport; short pad_rot_angle; /control the rotation step of the view when PAD2,PAD4,PAD6&PAD8 is use/ short obcenter_dia; short rvisize; /* rotating view icon size / short rvibright; / rotating view icon brightness / short recent_files; / maximum number of recently used files to remember / short smooth_viewtx; / miliseconds to spend spinning the view / short glreslimit; short ndof_pan, ndof_rotate; short curssize; short color_picker_type; short ipo_new; / interpolation mode for newly added F-Curves / short keyhandles_new; / handle types for newly added keyframes */
short scrcastfps; /* frame rate for screencast to be played back / short scrcastwait; / milliseconds between screencast snapshots */
char versemaster[160]; char verseuser[160]; float glalphaclip;
short autokey_mode; /* autokeying mode / short autokey_flag; / flags for autokeying */
struct ColorBand coba_weight; /* from texture.h */
} UserDef;
source/blender/editors/interface/interface_style.c
/* Max number of font in memory. * Take care that now every font have a glyph cache per size/dpi, * so we don’t need load the same font with different size, just * load one and call BLF_size. */ #define BLF_MAX_FONT 16
/* Font array. */ FontBLF *global_font[BLF_MAX_FONT];
/* Number of font. */ int global_font_num= 0;
/* Default size and dpi, for BLF_draw_default. */ int global_font_default= -1; int global_font_points= 11; int global_font_dpi= 72;
WM_init +-BLF_init | +-blf_font_init +-BLF_lang_init +-WM_read_homefile
- +—uiStyleInit
- +-BLF_load_mem +-ui_style_new
FT_Library global_ft_lib;
blf_font_init
#define DOMAIN_NAME “blender” #define SYSTEM_ENCODING_DEFAULT “UTF-8” #define FONT_SIZE_DEFAULT 12
/* locale options. */ char global_messagepath[1024]; char global_language[32]; char global_encoding_name[32];
BLF_lang_init
BLF_draw