[Bf-blender-cvs] [5b751c95f4e] master: BLF: Remove ASCII-only Code Paths

Harley Acheson noreply at git.blender.org
Wed Aug 25 22:31:22 CEST 2021


Commit: 5b751c95f4e58c5f56b1af61c835b4537f19f43c
Author: Harley Acheson
Date:   Wed Aug 25 13:30:00 2021 -0700
Branches: master
https://developer.blender.org/rB5b751c95f4e58c5f56b1af61c835b4537f19f43c

BLF: Remove ASCII-only Code Paths

Remove redundant code for drawing text strings that contain only ASCII.

See D12293 for much more detail.

Differential Revision: https://developer.blender.org/D12293

Reviewed by Campbell Barton

===================================================================

M	source/blender/blenfont/BLF_api.h
M	source/blender/blenfont/intern/blf.c
M	source/blender/blenfont/intern/blf_default.c
M	source/blender/blenfont/intern/blf_font.c
M	source/blender/draw/engines/overlay/overlay_edit_uv.c
M	source/blender/draw/engines/overlay/overlay_motion_path.c
M	source/blender/draw/intern/draw_manager_profiling.c
M	source/blender/draw/intern/draw_manager_text.c
M	source/blender/draw/intern/draw_manager_text.h
M	source/blender/editors/interface/view2d_draw.c
M	source/blender/editors/space_image/image_draw.c
M	source/blender/editors/space_view3d/view3d_draw.c
M	source/blender/editors/space_view3d/view3d_gizmo_navigate_type.c
M	source/blender/editors/transform/transform.c
M	source/blender/editors/transform/transform_ops.c

===================================================================

diff --git a/source/blender/blenfont/BLF_api.h b/source/blender/blenfont/BLF_api.h
index 4de7e704a7e..78252bdb08b 100644
--- a/source/blender/blenfont/BLF_api.h
+++ b/source/blender/blenfont/BLF_api.h
@@ -101,9 +101,6 @@ void BLF_batch_draw_end(void);
 void BLF_draw_ex(int fontid, const char *str, size_t str_len, struct ResultBLF *r_info)
     ATTR_NONNULL(2);
 void BLF_draw(int fontid, const char *str, size_t str_len) ATTR_NONNULL(2);
-void BLF_draw_ascii_ex(int fontid, const char *str, size_t str_len, struct ResultBLF *r_info)
-    ATTR_NONNULL(2);
-void BLF_draw_ascii(int fontid, const char *str, size_t str_len) ATTR_NONNULL(2);
 int BLF_draw_mono(int fontid, const char *str, size_t str_len, int cwidth) ATTR_NONNULL(2);
 
 typedef bool (*BLF_GlyphBoundsFn)(const char *str,
@@ -257,8 +254,6 @@ void BLF_default_set(int fontid);
 int BLF_default(void); /* get default font ID so we can pass it to other functions */
 /* 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 str_len) ATTR_NONNULL();
-void BLF_draw_default_ascii(float x, float y, float z, const char *str, size_t str_len)
-    ATTR_NONNULL();
 /* Set size and DPI, and return default font ID. */
 int BLF_set_default(void);
 
diff --git a/source/blender/blenfont/intern/blf.c b/source/blender/blenfont/intern/blf.c
index 86d67c80fd4..34ddb6f22d2 100644
--- a/source/blender/blenfont/intern/blf.c
+++ b/source/blender/blenfont/intern/blf.c
@@ -550,34 +550,6 @@ void BLF_draw(int fontid, const char *str, const size_t str_len)
   BLF_draw_ex(fontid, str, str_len, NULL);
 }
 
-void BLF_draw_ascii_ex(int fontid, const char *str, const size_t str_len, struct ResultBLF *r_info)
-{
-  FontBLF *font = blf_get(fontid);
-
-  BLF_RESULT_CHECK_INIT(r_info);
-
-  if (font) {
-    blf_draw_gl__start(font);
-    if (font->flags & BLF_WORD_WRAP) {
-      /* Use non-ASCII draw function for word-wrap. */
-      blf_font_draw__wrap(font, str, str_len, r_info);
-    }
-    else {
-      blf_font_draw_ascii(font, str, str_len, r_info);
-    }
-    blf_draw_gl__end(font);
-  }
-}
-
-void BLF_draw_ascii(int fontid, const char *str, const size_t str_len)
-{
-  if (str_len == 0 || str[0] == '\0') {
-    return;
-  }
-
-  BLF_draw_ascii_ex(fontid, str, str_len, NULL);
-}
-
 int BLF_draw_mono(int fontid, const char *str, const size_t str_len, int cwidth)
 {
   if (str_len == 0 || str[0] == '\0') {
diff --git a/source/blender/blenfont/intern/blf_default.c b/source/blender/blenfont/intern/blf_default.c
index 1b458e8aaef..2bac0bf8904 100644
--- a/source/blender/blenfont/intern/blf_default.c
+++ b/source/blender/blenfont/intern/blf_default.c
@@ -77,14 +77,3 @@ void BLF_draw_default(float x, float y, float z, const char *str, const size_t s
   BLF_position(global_font_default, x, y, z);
   BLF_draw(global_font_default, str, str_len);
 }
-
-/* same as above but call 'BLF_draw_ascii' */
-void BLF_draw_default_ascii(float x, float y, float z, const char *str, const size_t str_len)
-{
-  ASSERT_DEFAULT_SET;
-
-  const uiStyle *style = UI_style_get();
-  BLF_size(global_font_default, style->widgetlabel.points, global_font_dpi);
-  BLF_position(global_font_default, x, y, z);
-  BLF_draw_ascii(global_font_default, str, str_len); /* XXX, use real length */
-}
diff --git a/source/blender/blenfont/intern/blf_font.c b/source/blender/blenfont/intern/blf_font.c
index 426008c9395..dbcd1d6016d 100644
--- a/source/blender/blenfont/intern/blf_font.c
+++ b/source/blender/blenfont/intern/blf_font.c
@@ -412,56 +412,6 @@ void blf_font_draw(FontBLF *font, const char *str, const size_t str_len, struct
   blf_glyph_cache_release(font);
 }
 
-/* faster version of blf_font_draw, ascii only for view dimensions */
-static void blf_font_draw_ascii_ex(
-    FontBLF *font, const char *str, size_t str_len, struct ResultBLF *r_info, int pen_y)
-{
-  unsigned int c, c_prev = BLI_UTF8_ERR;
-  GlyphBLF *g, *g_prev = NULL;
-  int pen_x = 0;
-
-  GlyphCacheBLF *gc = blf_glyph_cache_acquire(font);
-
-  blf_batch_draw_begin(font);
-
-  while ((c = *(str++)) && str_len--) {
-    BLI_assert(c < GLYPH_ASCII_TABLE_SIZE);
-    g = gc->glyph_ascii_table[c];
-    if (UNLIKELY(g == NULL)) {
-      g = blf_glyph_add(font, gc, FT_Get_Char_Index((font)->face, c), c);
-      gc->glyph_ascii_table[c] = g;
-      if (UNLIKELY(g == NULL)) {
-        continue;
-      }
-    }
-    blf_kerning_step_fast(font, g_prev, g, c_prev, c, &pen_x);
-
-    /* do not return this loop if clipped, we want every character tested */
-    blf_glyph_render(font, gc, g, (float)pen_x, (float)pen_y);
-
-    pen_x += g->advance_i;
-    g_prev = g;
-    c_prev = c;
-  }
-
-  blf_batch_draw_end();
-
-  if (r_info) {
-    r_info->lines = 1;
-    r_info->width = pen_x;
-  }
-
-  blf_glyph_cache_release(font);
-}
-
-void blf_font_draw_ascii(FontBLF *font,
-                         const char *str,
-                         const size_t str_len,
-                         struct ResultBLF *r_info)
-{
-  blf_font_draw_ascii_ex(font, str, str_len, r_info, 0);
-}
-
 /* use fixed column width, but an utf8 character may occupy multiple columns */
 int blf_font_draw_mono(FontBLF *font, const char *str, const size_t str_len, int cwidth)
 {
diff --git a/source/blender/draw/engines/overlay/overlay_edit_uv.c b/source/blender/draw/engines/overlay/overlay_edit_uv.c
index c2b130163e8..985f8a6785c 100644
--- a/source/blender/draw/engines/overlay/overlay_edit_uv.c
+++ b/source/blender/draw/engines/overlay/overlay_edit_uv.c
@@ -333,14 +333,8 @@ void OVERLAY_edit_uv_cache_init(OVERLAY_Data *vedata)
       BLI_snprintf(text, 5, "%d", tile->tile_number);
       float tile_location[3] = {
           ((tile->tile_number - 1001) % 10), ((tile->tile_number - 1001) / 10), 0.0f};
-      DRW_text_cache_add(dt,
-                         tile_location,
-                         text,
-                         strlen(text),
-                         10,
-                         10,
-                         DRW_TEXT_CACHE_GLOBALSPACE | DRW_TEXT_CACHE_ASCII,
-                         color);
+      DRW_text_cache_add(
+          dt, tile_location, text, strlen(text), 10, 10, DRW_TEXT_CACHE_GLOBALSPACE, color);
     }
   }
 
diff --git a/source/blender/draw/engines/overlay/overlay_motion_path.c b/source/blender/draw/engines/overlay/overlay_motion_path.c
index e19d99dc597..1b7611e9620 100644
--- a/source/blender/draw/engines/overlay/overlay_motion_path.c
+++ b/source/blender/draw/engines/overlay/overlay_motion_path.c
@@ -130,7 +130,7 @@ static void motion_path_cache(OVERLAY_Data *vedata,
   OVERLAY_PrivateData *pd = vedata->stl->pd;
   const DRWContextState *draw_ctx = DRW_context_state_get();
   struct DRWTextStore *dt = DRW_text_cache_ensure();
-  int txt_flag = DRW_TEXT_CACHE_GLOBALSPACE | DRW_TEXT_CACHE_ASCII;
+  int txt_flag = DRW_TEXT_CACHE_GLOBALSPACE;
   int cfra = (int)DEG_get_ctime(draw_ctx->depsgraph);
   bool selected = (pchan) ? (pchan->bone->flag & BONE_SELECTED) : (ob->base_flag & BASE_SELECTED);
   bool show_keyframes = (avs->path_viewflag & MOTIONPATH_VIEW_KFRAS) != 0;
diff --git a/source/blender/draw/intern/draw_manager_profiling.c b/source/blender/draw/intern/draw_manager_profiling.c
index 783ec1b1d7d..d9ba2cbf932 100644
--- a/source/blender/draw/intern/draw_manager_profiling.c
+++ b/source/blender/draw/intern/draw_manager_profiling.c
@@ -209,16 +209,16 @@ void DRW_stats_reset(void)
 
 static void draw_stat_5row(const rcti *rect, int u, int v, const char *txt, const int size)
 {
-  BLF_draw_default_ascii(rect->xmin + (1 + u * 5) * U.widget_unit,
-                         rect->ymax - (3 + v) * U.widget_unit,
-                         0.0f,
-                         txt,
-                         size);
+  BLF_draw_default(rect->xmin + (1 + u * 5) * U.widget_unit,
+                   rect->ymax - (3 + v) * U.widget_unit,
+                   0.0f,
+                   txt,
+                   size);
 }
 
 static void draw_stat(const rcti *rect, int u, int v, const char *txt, const int size)
 {
-  BLF_draw_default_ascii(
+  BLF_draw_default(
       rect->xmin + (1 + u) * U.widget_unit, rect->ymax - (3 + v) * U.widget_unit, 0.0f, txt, size);
 }
 
diff --git a/source/blender/draw/intern/draw_manager_text.c b/source/blender/draw/intern/draw_manager_text.c
index 265fdba66fd..cfaa22ba7c6 100644
--- a/source/blender/draw/intern/draw_manager_text.c
+++ b/source/blender/draw/intern/draw_manager_text.c
@@ -152,11 +152,9 @@ static void drw_text_cache_draw_ex(DRWTextStore *dt, ARegion *region)
 
       BLF_position(
           font_id, (float)(vos->sco[0] + vos->xoffs), (float)(vos->sco[1] + vos->yoffs), 2.0f);
-
-      ((vos->flag & DRW_TEXT_CACHE_ASCII) ? BLF_draw_ascii : BLF_draw)(
-          font_id,
-          (vos->flag & DRW_TEXT_CACHE_STRING_PTR) ? *((const char **)vos->str) : vos->str,
-          vos->str_len);
+      BLF_draw(font_id,
+               (vos->flag & DRW_TEXT_CACHE_STRING_PTR) ? *((const char **)vos->str) : vos->str,
+               vos->str_len);
     }
   }
 
@@ -235,7 +233,7 @@ void DRW_text_edit_mesh_measure_stats(ARegion *region,
    * etc.). See bug T36090.
    */
   struct DRWTextStore *dt = DRW_text_cache_ensure();
-  const short txt_flag = DRW_TEXT_CACHE_GLOBALSPACE | (unit->system ? 0 : DRW_TEXT_CACHE_ASCII);
+  const short txt_flag = DRW_TEXT_CACHE_GLOBALSPACE;
   Mesh *me = ob->data;
   BMEditMesh *em = me->edit_mesh;
   float v1[3], v2[3], v3[3], vmid[3], fvec[3];
diff --git a/source/blender/draw/intern/draw_manager_text.h b/source/blender/draw/intern/draw_manager_text.h
index f6dff335f1f..760259018bb 100644
--- a/source/blender/draw/intern/draw_manager_text.h
+++ b/source/blender/draw/intern/draw_manager_text.h
@@ -48,7 +48,7 @@ void DRW_text_edit_mesh_measure_stats(struct ARegion *region,
                                       const struct UnitSettings *unit);
 
 enum {
-  DRW_TEXT_CACHE_ASCII = (1 << 0),
+  // DRW_UNUSED_1 = (1 << 0),  /* dirty */
   DRW_TEXT_CACHE_GLOBALSPACE = (1 << 1),
   DRW_TEXT_CACHE_LOCALCLIP = (1 << 2),
   /* reference the string by pointer */
diff --git a/source/blender/editors/interface/view2d_draw.c b/source/blender/editors/interface/view2d_draw.c
index 95427e49495..fd4dba30c1c 100644
--- a/

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list