Cleanup: BLF batch drawing naming
- batching -> batch_draw. - ct & size -> len. - start/end -> begin/end (follow GL convention).
This commit is contained in:
parent
8b74741b9e
commit
0ef38879b3
|
@ -97,8 +97,8 @@ void BLF_matrix(int fontid, const float m[16]);
|
|||
|
||||
/* Batch drawcalls together as long as
|
||||
* the modelview matrix and the font remain unchanged. */
|
||||
void BLF_batching_start(void);
|
||||
void BLF_batching_end(void);
|
||||
void BLF_batch_draw_begin(void);
|
||||
void BLF_batch_draw_end(void);
|
||||
|
||||
/* Draw the string using the default font, size and dpi. */
|
||||
void BLF_draw_default(float x, float y, float z, const char *str, size_t len) ATTR_NONNULL();
|
||||
|
|
|
@ -134,7 +134,7 @@ void BLF_exit(void)
|
|||
|
||||
void BLF_batch_reset(void)
|
||||
{
|
||||
blf_batching_vao_clear();
|
||||
blf_batch_draw_vao_clear();
|
||||
}
|
||||
|
||||
void BLF_cache_clear(void)
|
||||
|
@ -540,16 +540,16 @@ void BLF_color3f(int fontid, float r, float g, float b)
|
|||
BLF_color4fv(fontid, rgba);
|
||||
}
|
||||
|
||||
void BLF_batching_start(void)
|
||||
void BLF_batch_draw_begin(void)
|
||||
{
|
||||
BLI_assert(g_batch.enabled == false);
|
||||
g_batch.enabled = true;
|
||||
}
|
||||
|
||||
void BLF_batching_end(void)
|
||||
void BLF_batch_draw_end(void)
|
||||
{
|
||||
BLI_assert(g_batch.enabled == true);
|
||||
blf_batching_draw(); /* Draw remaining glyphs */
|
||||
blf_batch_draw(); /* Draw remaining glyphs */
|
||||
g_batch.enabled = false;
|
||||
}
|
||||
|
||||
|
|
|
@ -87,7 +87,7 @@ static SpinLock ft_lib_mutex;
|
|||
* group some strings together and render them in one drawcall. This behaviour
|
||||
* is on demand only, between BLF_batch_start() and BLF_batch_end().
|
||||
**/
|
||||
static void blf_batching_init(void)
|
||||
static void blf_batch_draw_init(void)
|
||||
{
|
||||
Gwn_VertFormat format = {0};
|
||||
g_batch.pos_loc = GWN_vertformat_attr_add(&format, "pos", GWN_COMP_F32, 4, GWN_FETCH_FLOAT);
|
||||
|
@ -95,32 +95,32 @@ static void blf_batching_init(void)
|
|||
g_batch.col_loc = GWN_vertformat_attr_add(&format, "col", GWN_COMP_U8, 4, GWN_FETCH_INT_TO_FLOAT_UNIT);
|
||||
|
||||
g_batch.verts = GWN_vertbuf_create_with_format_ex(&format, GWN_USAGE_STREAM);
|
||||
GWN_vertbuf_data_alloc(g_batch.verts, BLF_BATCHING_SIZE);
|
||||
GWN_vertbuf_data_alloc(g_batch.verts, BLF_BATCH_DRAW_LEN_MAX);
|
||||
|
||||
GWN_vertbuf_attr_get_raw_data(g_batch.verts, g_batch.pos_loc, &g_batch.pos_step);
|
||||
GWN_vertbuf_attr_get_raw_data(g_batch.verts, g_batch.tex_loc, &g_batch.tex_step);
|
||||
GWN_vertbuf_attr_get_raw_data(g_batch.verts, g_batch.col_loc, &g_batch.col_step);
|
||||
g_batch.glyph_ct = 0;
|
||||
g_batch.glyph_len = 0;
|
||||
|
||||
g_batch.batch = GWN_batch_create_ex(GWN_PRIM_POINTS, g_batch.verts, NULL, GWN_BATCH_OWNS_VBO);
|
||||
}
|
||||
|
||||
static void blf_batching_exit(void)
|
||||
static void blf_batch_draw_exit(void)
|
||||
{
|
||||
GWN_BATCH_DISCARD_SAFE(g_batch.batch);
|
||||
}
|
||||
|
||||
void blf_batching_vao_clear(void)
|
||||
void blf_batch_draw_vao_clear(void)
|
||||
{
|
||||
if (g_batch.batch) {
|
||||
gwn_batch_vao_cache_clear(g_batch.batch);
|
||||
}
|
||||
}
|
||||
|
||||
void blf_batching_start(FontBLF *font)
|
||||
void blf_batch_draw_begin(FontBLF *font)
|
||||
{
|
||||
if (g_batch.batch == NULL) {
|
||||
blf_batching_init();
|
||||
blf_batch_draw_init();
|
||||
}
|
||||
|
||||
const bool font_changed = (g_batch.font != font);
|
||||
|
@ -153,7 +153,7 @@ void blf_batching_start(FontBLF *font)
|
|||
|
||||
/* flush cache if config is not the same. */
|
||||
if (mat_changed || font_changed || shader_changed) {
|
||||
blf_batching_draw();
|
||||
blf_batch_draw();
|
||||
g_batch.simple_shader = simple_shader;
|
||||
g_batch.font = font;
|
||||
/* Save for next memcmp. */
|
||||
|
@ -170,15 +170,15 @@ void blf_batching_start(FontBLF *font)
|
|||
}
|
||||
else {
|
||||
/* flush cache */
|
||||
blf_batching_draw();
|
||||
blf_batch_draw();
|
||||
g_batch.font = font;
|
||||
g_batch.simple_shader = simple_shader;
|
||||
}
|
||||
}
|
||||
|
||||
void blf_batching_draw(void)
|
||||
void blf_batch_draw(void)
|
||||
{
|
||||
if (g_batch.glyph_ct == 0)
|
||||
if (g_batch.glyph_len == 0)
|
||||
return;
|
||||
|
||||
glEnable(GL_BLEND);
|
||||
|
@ -188,7 +188,7 @@ void blf_batching_draw(void)
|
|||
glActiveTexture(GL_TEXTURE0);
|
||||
glBindTexture(GL_TEXTURE_2D, g_batch.font->tex_bind_state);
|
||||
|
||||
GWN_vertbuf_vertex_count_set(g_batch.verts, g_batch.glyph_ct);
|
||||
GWN_vertbuf_vertex_count_set(g_batch.verts, g_batch.glyph_len);
|
||||
GWN_vertbuf_use(g_batch.verts); /* send data */
|
||||
|
||||
GPUBuiltinShader shader = (g_batch.simple_shader) ? GPU_SHADER_TEXT_SIMPLE : GPU_SHADER_TEXT;
|
||||
|
@ -202,13 +202,13 @@ void blf_batching_draw(void)
|
|||
GWN_vertbuf_attr_get_raw_data(g_batch.verts, g_batch.pos_loc, &g_batch.pos_step);
|
||||
GWN_vertbuf_attr_get_raw_data(g_batch.verts, g_batch.tex_loc, &g_batch.tex_step);
|
||||
GWN_vertbuf_attr_get_raw_data(g_batch.verts, g_batch.col_loc, &g_batch.col_step);
|
||||
g_batch.glyph_ct = 0;
|
||||
g_batch.glyph_len = 0;
|
||||
}
|
||||
|
||||
static void blf_batching_end(void)
|
||||
static void blf_batch_draw_end(void)
|
||||
{
|
||||
if (!g_batch.active) {
|
||||
blf_batching_draw();
|
||||
blf_batch_draw();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -227,7 +227,7 @@ void blf_font_exit(void)
|
|||
{
|
||||
FT_Done_FreeType(ft_lib);
|
||||
BLI_spin_end(&ft_lib_mutex);
|
||||
blf_batching_exit();
|
||||
blf_batch_draw_exit();
|
||||
}
|
||||
|
||||
void blf_font_size(FontBLF *font, unsigned int size, unsigned int dpi)
|
||||
|
@ -339,7 +339,7 @@ static void blf_font_draw_ex(
|
|||
|
||||
blf_font_ensure_ascii_table(font);
|
||||
|
||||
blf_batching_start(font);
|
||||
blf_batch_draw_begin(font);
|
||||
|
||||
while ((i < len) && str[i]) {
|
||||
BLF_UTF8_NEXT_FAST(font, g, str, i, c, glyph_ascii_table);
|
||||
|
@ -358,7 +358,7 @@ static void blf_font_draw_ex(
|
|||
g_prev = g;
|
||||
}
|
||||
|
||||
blf_batching_end();
|
||||
blf_batch_draw_end();
|
||||
|
||||
if (r_info) {
|
||||
r_info->lines = 1;
|
||||
|
@ -385,7 +385,7 @@ static void blf_font_draw_ascii_ex(
|
|||
|
||||
blf_font_ensure_ascii_table(font);
|
||||
|
||||
blf_batching_start(font);
|
||||
blf_batch_draw_begin(font);
|
||||
|
||||
while ((c = *(str++)) && len--) {
|
||||
BLI_assert(c < 128);
|
||||
|
@ -401,7 +401,7 @@ static void blf_font_draw_ascii_ex(
|
|||
g_prev = g;
|
||||
}
|
||||
|
||||
blf_batching_end();
|
||||
blf_batch_draw_end();
|
||||
|
||||
if (r_info) {
|
||||
r_info->lines = 1;
|
||||
|
@ -425,7 +425,7 @@ int blf_font_draw_mono(FontBLF *font, const char *str, size_t len, int cwidth)
|
|||
|
||||
blf_font_ensure_ascii_table(font);
|
||||
|
||||
blf_batching_start(font);
|
||||
blf_batch_draw_begin(font);
|
||||
|
||||
while ((i < len) && str[i]) {
|
||||
BLF_UTF8_NEXT_FAST(font, g, str, i, c, glyph_ascii_table);
|
||||
|
@ -446,7 +446,7 @@ int blf_font_draw_mono(FontBLF *font, const char *str, size_t len, int cwidth)
|
|||
pen_x += cwidth * col;
|
||||
}
|
||||
|
||||
blf_batching_end();
|
||||
blf_batch_draw_end();
|
||||
|
||||
return columns;
|
||||
}
|
||||
|
|
|
@ -325,10 +325,10 @@ static void blf_texture_draw(const unsigned char color[4], float uv[2][2], float
|
|||
x2 + g_batch.ofs[0], y2 + g_batch.ofs[1]);
|
||||
copy_v4_v4(GWN_vertbuf_raw_step(&g_batch.tex_step), (float *)uv);
|
||||
copy_v4_v4_uchar(GWN_vertbuf_raw_step(&g_batch.col_step), color);
|
||||
g_batch.glyph_ct++;
|
||||
g_batch.glyph_len++;
|
||||
/* Flush cache if it's full. */
|
||||
if (g_batch.glyph_ct == BLF_BATCHING_SIZE) {
|
||||
blf_batching_draw();
|
||||
if (g_batch.glyph_len == BLF_BATCH_DRAW_LEN_MAX) {
|
||||
blf_batch_draw();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -37,9 +37,9 @@ struct GlyphBLF;
|
|||
struct GlyphCacheBLF;
|
||||
struct rctf;
|
||||
|
||||
void blf_batching_vao_clear(void);
|
||||
void blf_batching_start(struct FontBLF *font);
|
||||
void blf_batching_draw(void);
|
||||
void blf_batch_draw_vao_clear(void);
|
||||
void blf_batch_draw_begin(struct FontBLF *font);
|
||||
void blf_batch_draw(void);
|
||||
|
||||
unsigned int blf_next_p2(unsigned int x);
|
||||
unsigned int blf_hash(unsigned int val);
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
|
||||
#include "../../../intern/gawain/gawain/gwn_vertex_buffer.h"
|
||||
|
||||
#define BLF_BATCHING_SIZE 2048 /* in glyph */
|
||||
#define BLF_BATCH_DRAW_LEN_MAX 2048 /* in glyph */
|
||||
|
||||
typedef struct BatchBLF{
|
||||
struct FontBLF *font; /* can only batch glyph from the same font */
|
||||
|
@ -41,7 +41,7 @@ typedef struct BatchBLF{
|
|||
struct Gwn_VertBuf *verts;
|
||||
struct Gwn_VertBufRaw pos_step, tex_step, col_step;
|
||||
unsigned int pos_loc, tex_loc, col_loc;
|
||||
unsigned int glyph_ct;
|
||||
unsigned int glyph_len;
|
||||
float ofs[2]; /* copy of font->pos */
|
||||
float mat[4][4]; /* previous call modelmatrix. */
|
||||
bool enabled, active, simple_shader;
|
||||
|
|
|
@ -1426,7 +1426,7 @@ void UI_block_draw(const bContext *C, uiBlock *block)
|
|||
else if (block->panel)
|
||||
ui_draw_aligned_panel(&style, block, &rect, UI_panel_category_is_visible(ar));
|
||||
|
||||
BLF_batching_start();
|
||||
BLF_batch_draw_begin();
|
||||
|
||||
/* widgets */
|
||||
for (but = block->buttons.first; but; but = but->next) {
|
||||
|
@ -1440,7 +1440,7 @@ void UI_block_draw(const bContext *C, uiBlock *block)
|
|||
}
|
||||
}
|
||||
|
||||
BLF_batching_end();
|
||||
BLF_batch_draw_end();
|
||||
|
||||
/* restore matrix */
|
||||
gpuPopProjectionMatrix();
|
||||
|
|
|
@ -609,7 +609,7 @@ void file_draw_list(const bContext *C, ARegion *ar)
|
|||
}
|
||||
}
|
||||
|
||||
BLF_batching_start();
|
||||
BLF_batch_draw_begin();
|
||||
|
||||
for (i = offset; (i < numfiles) && (i < offset + numfiles_layout); i++) {
|
||||
unsigned int file_selflag;
|
||||
|
@ -740,7 +740,7 @@ void file_draw_list(const bContext *C, ARegion *ar)
|
|||
}
|
||||
}
|
||||
|
||||
BLF_batching_end();
|
||||
BLF_batch_draw_end();
|
||||
|
||||
UI_block_end(C, block);
|
||||
UI_block_draw(C, block);
|
||||
|
|
Loading…
Reference in New Issue