From b9063b27a9376ca276cb80f692ef8fa923a966a7 Mon Sep 17 00:00:00 2001 From: Diego Borghetti Date: Mon, 9 Feb 2009 07:15:22 +0000 Subject: Just commit so I can continue tomorrow from work. All the code have #if 0 / #endif so nothing to worry about. --- .../blender/blenfont/intern/blf_internal_types.h | 147 +++++++++++++++++++++ 1 file changed, 147 insertions(+) (limited to 'source/blender/blenfont/intern/blf_internal_types.h') diff --git a/source/blender/blenfont/intern/blf_internal_types.h b/source/blender/blenfont/intern/blf_internal_types.h index 3a8c1bca3f5..b9ae9dfdac7 100644 --- a/source/blender/blenfont/intern/blf_internal_types.h +++ b/source/blender/blenfont/intern/blf_internal_types.h @@ -28,6 +28,149 @@ #ifndef BLF_INTERNAL_TYPES_H #define BLF_INTERNAL_TYPES_H +#if 0 + +typedef struct DirBLF { + struct DirBLF *next; + struct DirBLF *prev; + + /* full path where search fonts. */ + char *path; +} DirBLF; + +typedef struct _GlyphCacheBLF { + struct _GlyphCacheBLF *next; + struct _GlyphCacheBLF *prev; + + /* font size. */ + int size; + + /* and dpi. */ + int dpi; + + /* and the glyphs. */ + ListBase bucket[257]; + + /* texture array, to draw the glyphs. */ + GLuint *textures; + + /* size of the array. */ + int ntex; + + /* and the last texture, aka. the current texture. */ + int cur_tex; + + /* like bftgl, we draw every glyph in a big texture, so this is the + * current position inside the texture. + */ + int x_offs; + int y_offs; + + /* and the space from one to other. */ + unsigned int pad; + + /* and the bigger glyph in the font. */ + int max_glyph_width; + int max_glyph_height; + + /* next two integer power of two, to build the texture. */ + int p2_width; + int p2_height; + + /* number of glyphs in the font. */ + int num_glyphs; + + /* number of glyphs that we load here. */ + int rem_glyphs; + + /* ascender and descender value. */ + float ascender; + float descender; +} GlyphCacheBLF; + +typedef struct _GlyphBLF { + struct _GlyphBLF *next; + struct _GlyphBLF *prev; + + /* and the character, as UTF8 */ + unsigned int c; + + /* Freetype2 index. */ + FT_UInt index; + + /* texture id where this glyph is store. */ + GLuint tex; + + /* position inside the texture where this glyph is store. */ + int xoff; + int yoff; + + /* glyph width and height. */ + int width; + int height; + + /* glyph bounding box. */ + rctf box; + + /* uv coords. */ + float uv[2][2]; + + /* advance value. */ + float advance; + + /* X and Y bearing of the glyph. + * The X bearing is from the origin to the glyph left bbox edge. + * The Y bearing is from the baseline to the top of the glyph edge. + */ + float pos_x; + float pos_y; +} GlyphBLF; + +typedef struct FontBLF { + char *name; + + /* reference count. */ + int ref; + + /* aspect ratio or scale. */ + float aspect; + + /* initial position for draw the text. */ + float pos[3]; + + /* angle in degrees. */ + float angle[3]; + + /* this is the matrix that we load before rotate/scale/translate. */ + float mat[4][4]; + + /* clipping rectangle. */ + rctf clip_rec; + + /* and clipping mode. */ + int clip_mode; + + /* font dpi (default 72). */ + int dpi; + + /* font size. */ + int size; + + /* max texture size. */ + int max_tex_size; + + /* freetype2 face. */ + FT_Face face; + + /* list of glyph cache for this font. */ + ListBase cache; + + /* current glyph cache, size and dpi. */ + GlyphCacheBLF *glyph_cache; +} FontBLF; + +#endif /* zero!! */ + typedef struct LangBLF { struct LangBLF *next; struct LangBLF *prev; @@ -42,4 +185,8 @@ typedef struct LangBLF { #define BLF_LANG_FIND_BY_LANGUAGE 1 #define BLF_LANG_FIND_BY_CODE 2 +/* font->clip_mode */ +#define BLF_CLIP_DISABLE 0 +#define BLF_CLIP_OUT 1 + #endif /* BLF_INTERNAL_TYPES_H */ -- cgit v1.2.3