Blender V4.3
blf_internal.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2009 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
8
9#pragma once
10
11#include "BLI_array.hh"
12#include "BLI_bounds_types.hh"
13#include "BLI_function_ref.hh"
14#include "BLI_string_ref.hh"
15#include "BLI_vector.hh"
16
17struct FontBLF;
18struct GlyphBLF;
19struct GlyphCacheBLF;
20struct ListBase;
21struct ResultBLF;
22struct rcti;
23
28#define BLF_MAX_FONT 64
29
33#define BLF_SUBPIXEL_POSITION
34
38#define BLF_SUBPIXEL_AA
39
41#define BLF_CACHE_MAX_FACES 4
43#define BLF_CACHE_MAX_SIZES 8
45#define BLF_CACHE_BYTES 400000
46
51#define BLF_ICON_OFFSET 0x100000L
52
59#define BLF_DPI 72
60
63
65void blf_batch_draw();
66
71char *blf_dir_metrics_search(const char *filepath);
72
73int blf_font_init();
74void blf_font_exit();
75
76bool blf_font_id_is_valid(int fontid);
77
81uint blf_get_char_index(FontBLF *font, uint charcode);
82
86bool blf_ensure_face(FontBLF *font);
87void blf_ensure_size(FontBLF *font);
88
91
92FontBLF *blf_font_new_from_filepath(const char *filepath);
93FontBLF *blf_font_new_from_mem(const char *mem_name, const unsigned char *mem, size_t mem_size);
94void blf_font_attach_from_mem(FontBLF *font, const unsigned char *mem, size_t mem_size);
95
99bool blf_font_size(FontBLF *font, float size);
100
101void blf_font_draw(FontBLF *font, const char *str, size_t str_len, ResultBLF *r_info);
102void blf_font_draw__wrap(FontBLF *font, const char *str, size_t str_len, ResultBLF *r_info);
103
104void blf_draw_svg_icon(FontBLF *font,
105 uint icon_id,
106 float x,
107 float y,
108 float size,
109 const float color[4] = nullptr,
110 float outline_alpha = 1.0f,
111 bool multicolor = false,
112 blender::FunctionRef<void(std::string &)> edit_source_cb = nullptr);
113
115 FontBLF *font,
116 uint icon_id,
117 float size,
118 int *r_width,
119 int *r_height,
120 bool multicolor = false,
121 blender::FunctionRef<void(std::string &)> edit_source_cb = nullptr);
122
125 int max_pixel_width);
126
131 FontBLF *font, const char *str, size_t str_len, int cwidth, int tab_columns);
132void blf_font_draw_buffer(FontBLF *font, const char *str, size_t str_len, ResultBLF *r_info);
133void blf_font_draw_buffer__wrap(FontBLF *font, const char *str, size_t str_len, ResultBLF *r_info);
135 FontBLF *font, const char *str, size_t str_len, int width, int *r_width);
137 FontBLF *font, const char *str, size_t str_len, int width, int *r_width);
139 FontBLF *font, const char *str, size_t str_len, rcti *r_box, ResultBLF *r_info);
141 FontBLF *font, const char *str, size_t str_len, rcti *r_box, ResultBLF *r_info);
143 const char *str,
144 size_t str_len,
145 float *r_width,
146 float *r_height,
147 ResultBLF *r_info);
148float blf_font_width(FontBLF *font, const char *str, size_t str_len, ResultBLF *r_info);
149float blf_font_height(FontBLF *font, const char *str, size_t str_len, ResultBLF *r_info);
150float blf_font_fixed_width(FontBLF *font);
152int blf_font_width_max(FontBLF *font);
153int blf_font_descender(FontBLF *font);
154int blf_font_ascender(FontBLF *font);
155
156char *blf_display_name(FontBLF *font);
157
159 FontBLF *font,
160 const char *str,
161 size_t str_len,
162 bool (*user_fn)(const char *str, size_t str_step_ofs, const rcti *bounds, void *user_data),
163 void *user_data);
164
166 const char *str,
167 size_t str_len,
168 int location_x);
169
171 const char *str,
172 size_t str_offset,
173 rcti *r_glyph_bounds);
174
176 FontBLF *font, const char *str, size_t str_len, size_t sel_start, size_t sel_length);
177
179 FontBLF *font, const char *str, size_t str_len, size_t str_offset, int cursor_width);
180
181void blf_font_free(FontBLF *font);
182
186
190GlyphBLF *blf_glyph_ensure(FontBLF *font, GlyphCacheBLF *gc, uint charcode, uint8_t subpixel = 0);
191
192#ifdef BLF_SUBPIXEL_AA
194#endif
195
197 GlyphCacheBLF *gc,
198 uint icon_id,
199 bool color = false,
200 blender::FunctionRef<void(std::string &)> edit_source_cb = nullptr);
201
206 unsigned int unicode,
207 ListBase *nurbsbase,
208 const float scale);
209
210void blf_glyph_draw(FontBLF *font, GlyphCacheBLF *gc, GlyphBLF *g, int x, int y);
211
212#ifdef WIN32
213/* `blf_font_win32_compat.cc` */
214
215# ifdef FT_FREETYPE_H
216extern FT_Error FT_New_Face__win32_compat(FT_Library library,
217 const char *pathname,
218 FT_Long face_index,
219 FT_Face *aface);
220# endif
221#endif
unsigned int uint
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Brightness Control the brightness and contrast of the input color Vector Map input vector components with curves Camera Retrieve information about the camera and how it relates to the current shading point s position Clamp a value between a minimum and a maximum Vector Perform vector math operation Invert Invert a color
FontBLF * global_font[BLF_MAX_FONT]
Definition blf.cc:47
size_t blf_str_offset_from_cursor_position(FontBLF *font, const char *str, size_t str_len, int location_x)
Definition blf_font.cc:1105
void blf_font_draw_buffer(FontBLF *font, const char *str, size_t str_len, ResultBLF *r_info)
Definition blf_font.cc:766
void blf_str_offset_to_glyph_bounds(FontBLF *font, const char *str, size_t str_offset, rcti *r_glyph_bounds)
Definition blf_font.cc:1155
GlyphBLF * blf_glyph_ensure(FontBLF *font, GlyphCacheBLF *gc, uint charcode, uint8_t subpixel=0)
int blf_font_ascender(FontBLF *font)
Definition blf_font.cc:1469
void blf_font_draw__wrap(FontBLF *font, const char *str, size_t str_len, ResultBLF *r_info)
Definition blf_font.cc:1353
void blf_draw_buffer__start(FontBLF *font)
Definition blf.cc:946
bool blf_ensure_face(FontBLF *font)
Definition blf_font.cc:1781
blender::Vector< blender::StringRef > blf_font_string_wrap(FontBLF *font, blender::StringRef str, int max_pixel_width)
Definition blf_font.cc:1418
void blf_glyph_cache_clear(FontBLF *font)
Definition blf_glyph.cc:164
void blf_ensure_size(FontBLF *font)
Definition blf_font.cc:2046
GlyphCacheBLF * blf_glyph_cache_acquire(FontBLF *font)
Definition blf_glyph.cc:135
int blf_font_draw_mono(FontBLF *font, const char *str, size_t str_len, int cwidth, int tab_columns)
Definition blf_font.cc:492
blender::Array< uchar > blf_svg_icon_bitmap(FontBLF *font, uint icon_id, float size, int *r_width, int *r_height, bool multicolor=false, blender::FunctionRef< void(std::string &)> edit_source_cb=nullptr)
Definition blf_font.cc:574
void blf_draw_svg_icon(FontBLF *font, uint icon_id, float x, float y, float size, const float color[4]=nullptr, float outline_alpha=1.0f, bool multicolor=false, blender::FunctionRef< void(std::string &)> edit_source_cb=nullptr)
Definition blf_font.cc:528
void blf_font_draw(FontBLF *font, const char *str, size_t str_len, ResultBLF *r_info)
Definition blf_font.cc:485
float blf_font_width(FontBLF *font, const char *str, size_t str_len, ResultBLF *r_info)
Definition blf_font.cc:994
void blf_font_free(FontBLF *font)
Definition blf_font.cc:2007
void blf_font_boundbox__wrap(FontBLF *font, const char *str, size_t str_len, rcti *r_box, ResultBLF *r_info)
Definition blf_font.cc:1373
bool blf_font_id_is_valid(int fontid)
Definition blf.cc:109
void blf_glyph_draw(FontBLF *font, GlyphCacheBLF *gc, GlyphBLF *g, int x, int y)
bool blf_font_size(FontBLF *font, float size)
Definition blf_font.cc:2068
float blf_font_fixed_width(FontBLF *font)
Definition blf_font.cc:1036
int blf_str_offset_to_cursor(FontBLF *font, const char *str, size_t str_len, size_t str_offset, int cursor_width)
Definition blf_font.cc:1168
FontBLF * blf_font_new_from_mem(const char *mem_name, const unsigned char *mem, size_t mem_size)
Definition blf_font.cc:1990
void blf_font_attach_from_mem(FontBLF *font, const unsigned char *mem, size_t mem_size)
Definition blf_font.cc:1995
void blf_font_width_and_height(FontBLF *font, const char *str, size_t str_len, float *r_width, float *r_height, ResultBLF *r_info)
Definition blf_font.cc:965
float blf_character_to_curves(FontBLF *font, unsigned int unicode, ListBase *nurbsbase, const float scale)
void blf_font_boundbox(FontBLF *font, const char *str, size_t str_len, rcti *r_box, ResultBLF *r_info)
Definition blf_font.cc:957
int blf_font_init()
Definition blf_font.cc:1489
int blf_font_width_max(FontBLF *font)
Definition blf_font.cc:1458
void blf_batch_draw()
Definition blf_font.cc:325
void blf_font_draw_buffer__wrap(FontBLF *font, const char *str, size_t str_len, ResultBLF *r_info)
Definition blf_font.cc:1395
void blf_batch_draw_begin(FontBLF *font)
Definition blf_font.cc:225
void blf_font_exit()
Definition blf_font.cc:1511
GlyphBLF * blf_glyph_ensure_subpixel(FontBLF *font, GlyphCacheBLF *gc, GlyphBLF *g, int32_t pen_x)
uint blf_get_char_index(FontBLF *font, uint charcode)
Definition blf_font.cc:149
char * blf_display_name(FontBLF *font)
Definition blf_font.cc:1475
size_t blf_font_width_to_rstrlen(FontBLF *font, const char *str, size_t str_len, int width, int *r_width)
Definition blf_font.cc:846
#define BLF_MAX_FONT
float blf_font_height(FontBLF *font, const char *str, size_t str_len, ResultBLF *r_info)
Definition blf_font.cc:1015
void blf_glyph_cache_release(FontBLF *font)
Definition blf_glyph.cc:148
char * blf_dir_metrics_search(const char *filepath)
Definition blf_dir.cc:30
int blf_font_descender(FontBLF *font)
Definition blf_font.cc:1463
void blf_draw_buffer__end()
Definition blf.cc:960
void blf_font_boundbox_foreach_glyph(FontBLF *font, const char *str, size_t str_len, bool(*user_fn)(const char *str, size_t str_step_ofs, const rcti *bounds, void *user_data), void *user_data)
FontBLF * blf_font_new_from_filepath(const char *filepath)
Definition blf_font.cc:1985
int blf_font_height_max(FontBLF *font)
Definition blf_font.cc:1446
blender::Vector< blender::Bounds< int > > blf_str_selection_boxes(FontBLF *font, const char *str, size_t str_len, size_t sel_start, size_t sel_length)
Definition blf_font.cc:1213
size_t blf_font_width_to_strlen(FontBLF *font, const char *str, size_t str_len, int width, int *r_width)
Definition blf_font.cc:817
GlyphBLF * blf_glyph_ensure_icon(GlyphCacheBLF *gc, uint icon_id, bool color=false, blender::FunctionRef< void(std::string &)> edit_source_cb=nullptr)
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
Definition btDbvt.cpp:52
static btDbvtVolume bounds(btDbvtNode **leaves, int count)
Definition btDbvt.cpp:299
#define str(s)
signed int int32_t
Definition stdint.h:77
unsigned char uint8_t
Definition stdint.h:78