UI: Remove BLF_draw_default_shadowed

With Aras's recent changes in #121383, our text shader now supports
outline shadows, which gives a result that has more contrast than can
be achieved with BLF_draw_default_shadowed. This removes that function.

Pull Request: https://projects.blender.org/blender/blender/pulls/121676
This commit is contained in:
Harley Acheson 2024-05-13 22:32:59 +02:00 committed by Harley Acheson
parent 68de483bf3
commit 92e0545e9f
8 changed files with 49 additions and 65 deletions

@ -307,15 +307,6 @@ int BLF_default();
* 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();
/**
* As above but with a very contrasting dark shadow.
*/
void BLF_draw_default_shadowed(float x,
float y,
float z,
const char *str,
size_t str_len,
const float shadow_color[4] = nullptr) ATTR_NONNULL(4);
/**
* Set size and DPI, and return default font ID.
*/

@ -59,17 +59,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);
}
void BLF_draw_default_shadowed(
float x, float y, float z, const char *str, const size_t str_len, const float shadow_color[4])
{
ASSERT_DEFAULT_SET;
BLF_size(global_font_default, global_font_size * UI_SCALE_FAC);
BLF_enable(global_font_default, BLF_SHADOW);
BLF_shadow(global_font_default, FontShadowType::Outline, shadow_color);
BLF_shadow_offset(global_font_default, 0, 0);
BLF_position(global_font_default, x, y, z);
BLF_draw(global_font_default, str, str_len);
BLF_disable(global_font_default, BLF_SHADOW);
}

@ -1146,15 +1146,13 @@ void DRW_draw_region_engine_info(int xoffset, int *yoffset, int line_height)
{
DRW_ENABLED_ENGINE_ITER (DST.view_data_active, engine, data) {
if (data->info[0] != '\0') {
const int font_id = BLF_default();
UI_FontThemeColor(font_id, TH_TEXT_HI);
const char *buf_step = IFACE_(data->info);
do {
const char *buf = buf_step;
buf_step = BLI_strchr_or_end(buf, '\n');
const int buf_len = buf_step - buf;
*yoffset -= line_height;
BLF_draw_default_shadowed(xoffset, *yoffset, 0.0f, buf, buf_len);
BLF_draw_default(xoffset, *yoffset, 0.0f, buf, buf_len);
} while (*buf_step ? ((void)buf_step++, true) : false);
}
}

@ -196,16 +196,16 @@ void DRW_stats_reset()
static void draw_stat_5row(const rcti *rect, int u, int v, const char *txt, const int size)
{
BLF_draw_default_shadowed(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_shadowed(
BLF_draw_default(
rect->xmin + (1 + u) * U.widget_unit, rect->ymax - (3 + v) * U.widget_unit, 0.0f, txt, size);
}

@ -166,23 +166,21 @@ static void drw_text_cache_draw_ex(DRWTextStore *dt, ARegion *region)
vos->yoffs -= short(height / 2.0f);
}
const int font_id = BLF_default();
if (vos->shadow) {
BLF_draw_default_shadowed(
float(vos->sco[0] + vos->xoffs),
float(vos->sco[1] + vos->yoffs),
2.0f,
(vos->flag & DRW_TEXT_CACHE_STRING_PTR) ? *((const char **)vos->str) : vos->str,
vos->str_len,
shadow_color);
BLF_enable(font_id, BLF_SHADOW);
BLF_shadow(font_id, FontShadowType::Outline, shadow_color);
BLF_shadow_offset(font_id, 0, 0);
}
else {
BLF_draw_default(float(vos->sco[0] + vos->xoffs),
float(vos->sco[1] + vos->yoffs),
2.0f,
(vos->flag & DRW_TEXT_CACHE_STRING_PTR) ? *((const char **)vos->str) :
vos->str,
vos->str_len);
BLF_disable(font_id, BLF_SHADOW);
}
BLF_draw_default(float(vos->sco[0] + vos->xoffs),
float(vos->sco[1] + vos->yoffs),
2.0f,
(vos->flag & DRW_TEXT_CACHE_STRING_PTR) ? *((const char **)vos->str) :
vos->str,
vos->str_len);
}
}

@ -748,10 +748,10 @@ static void stats_row(int col1,
int height)
{
*y -= height;
BLF_draw_default_shadowed(col1, *y, 0.0f, key, 128);
BLF_draw_default(col1, *y, 0.0f, key, 128);
char values[128];
SNPRINTF(values, (value2) ? "%s / %s" : "%s", value1, value2);
BLF_draw_default_shadowed(col2, *y, 0.0f, values, sizeof(values));
BLF_draw_default(col2, *y, 0.0f, values, sizeof(values));
}
void ED_info_draw_stats(

@ -784,11 +784,11 @@ static void drawviewborder(Scene *scene, Depsgraph *depsgraph, ARegion *region,
/* camera name - draw in highlighted text color */
if (ca && ((v3d->overlay.flag & V3D_OVERLAY_HIDE_TEXT) == 0) && (ca->flag & CAM_SHOWNAME)) {
UI_FontThemeColor(BLF_default(), TH_TEXT_HI);
BLF_draw_default_shadowed(x1i,
y1i - (0.7f * U.widget_unit),
0.0f,
v3d->camera->id.name + 2,
sizeof(v3d->camera->id.name) - 2);
BLF_draw_default(x1i,
y1i - (0.7f * U.widget_unit),
0.0f,
v3d->camera->id.name + 2,
sizeof(v3d->camera->id.name) - 2);
}
}
@ -1285,7 +1285,7 @@ static void draw_viewport_name(ARegion *region, View3D *v3d, int xoffset, int *y
name = tmpstr;
}
*yoffset -= VIEW3D_OVERLAY_LINEHEIGHT;
BLF_draw_default_shadowed(xoffset, *yoffset, 0.0f, name, sizeof(tmpstr));
BLF_draw_default(xoffset, *yoffset, 0.0f, name, sizeof(tmpstr));
}
/**
@ -1423,7 +1423,7 @@ static void draw_selected_name(
BLI_string_join_array(info, sizeof(info), info_array, i);
*yoffset -= VIEW3D_OVERLAY_LINEHEIGHT;
BLF_draw_default_shadowed(xoffset, *yoffset, 0.0f, info, sizeof(info));
BLF_draw_default(xoffset, *yoffset, 0.0f, info, sizeof(info));
}
static void draw_grid_unit_name(
@ -1441,8 +1441,7 @@ static void draw_grid_unit_name(
}
*yoffset -= VIEW3D_OVERLAY_LINEHEIGHT;
BLF_draw_default_shadowed(
xoffset, *yoffset, 0.0f, numstr[0] ? numstr : grid_unit, sizeof(numstr));
BLF_draw_default(xoffset, *yoffset, 0.0f, numstr[0] ? numstr : grid_unit, sizeof(numstr));
}
}
}
@ -1500,15 +1499,18 @@ void view3d_draw_region_info(const bContext *C, ARegion *region)
BLF_default_size(fstyle->points);
BLF_set_default();
const int font_id = BLF_default();
float text_color[4], shadow_color[4];
ED_view3d_text_colors_get(scene, v3d, text_color, shadow_color);
BLF_color4fv(BLF_default(), text_color);
BLF_shadow(BLF_default(), FontShadowType::Outline, shadow_color);
BLF_color4fv(font_id, text_color);
BLF_enable(font_id, BLF_SHADOW);
BLF_shadow_offset(font_id, 0, 0);
BLF_shadow(font_id, FontShadowType::Outline, shadow_color);
if ((v3d->overlay.flag & V3D_OVERLAY_HIDE_TEXT) == 0) {
if ((U.uiflag & USER_SHOW_FPS) && ED_screen_animation_no_scrub(wm)) {
ED_scene_draw_fps(scene, xoffset, &yoffset);
BLF_color4fv(BLF_default(), text_color);
BLF_color4fv(font_id, text_color);
}
else if (U.uiflag & USER_SHOW_VIEWPORTNAME) {
draw_viewport_name(region, v3d, xoffset, &yoffset);
@ -1518,7 +1520,7 @@ void view3d_draw_region_info(const bContext *C, ARegion *region)
BKE_view_layer_synced_ensure(scene, view_layer);
Object *ob = BKE_view_layer_active_object_get(view_layer);
draw_selected_name(v3d, scene, view_layer, ob, xoffset, &yoffset);
BLF_color4fv(BLF_default(), text_color);
BLF_color4fv(font_id, text_color);
}
if (v3d->gridflag & (V3D_SHOW_FLOOR | V3D_SHOW_X | V3D_SHOW_Y | V3D_SHOW_Z)) {
@ -2629,7 +2631,7 @@ void ED_scene_draw_fps(const Scene *scene, int xoffset, int *yoffset)
*yoffset -= VIEW3D_OVERLAY_LINEHEIGHT;
BLF_draw_default_shadowed(xoffset, *yoffset, 0.0f, printable, sizeof(printable));
BLF_draw_default(xoffset, *yoffset, 0.0f, printable, sizeof(printable));
}
/** \} */

@ -1562,8 +1562,10 @@ static void drawAutoKeyWarning(TransInfo *t, ARegion *region)
const rcti *rect = ED_region_visible_rect(region);
View3D *v3d = nullptr;
Scene *scene = nullptr;
if (t->spacetype == SPACE_VIEW3D) {
v3d = static_cast<View3D *>(t->view);
scene = static_cast<Scene *>(t->scene);
}
const int font_id = BLF_set_default();
@ -1600,10 +1602,17 @@ static void drawAutoKeyWarning(TransInfo *t, ARegion *region)
/* Warning text (to clarify meaning of overlays)
* - Original color was red to match the icon, but that clashes badly with a less nasty border.
*/
uchar color[3];
UI_GetThemeColorShade3ubv(TH_TEXT_HI, -50, color);
BLF_color3ubv(font_id, color);
BLF_draw_default_shadowed(xco, yco, 0.0f, printable, BLF_DRAW_STR_DUMMY_MAX);
float text_color[4], shadow_color[4];
if (v3d && scene) {
ED_view3d_text_colors_get(scene, v3d, text_color, shadow_color);
}
else {
UI_GetThemeColor4fv(TH_TEXT_HI, text_color);
UI_GetThemeColor4fv(TH_BACK, text_color);
}
BLF_color4fv(BLF_default(), text_color);
BLF_shadow(BLF_default(), FontShadowType::Outline, shadow_color);
/* Auto-key recording icon. */
GPU_blend(GPU_BLEND_ALPHA);