Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/draw')
-rw-r--r--source/blender/draw/DRW_engine.h1
-rw-r--r--source/blender/draw/intern/DRW_render.h3
-rw-r--r--source/blender/draw/intern/draw_manager.c77
-rw-r--r--source/blender/draw/intern/draw_view.c11
4 files changed, 21 insertions, 71 deletions
diff --git a/source/blender/draw/DRW_engine.h b/source/blender/draw/DRW_engine.h
index f99ce1be894..e192a7efa51 100644
--- a/source/blender/draw/DRW_engine.h
+++ b/source/blender/draw/DRW_engine.h
@@ -98,6 +98,7 @@ typedef bool (*DRW_ObjectFilterFn)(
struct Object *ob, void *user_data);
void DRW_draw_view(const struct bContext *C);
+void DRW_draw_region_engine_info(int xoffset, int yoffset);
void DRW_draw_render_loop_ex(
struct Depsgraph *depsgraph,
diff --git a/source/blender/draw/intern/DRW_render.h b/source/blender/draw/intern/DRW_render.h
index 629c5013c03..9bf3ce15166 100644
--- a/source/blender/draw/intern/DRW_render.h
+++ b/source/blender/draw/intern/DRW_render.h
@@ -524,9 +524,6 @@ void DRW_draw_text_cache_queue(struct DRWTextStore *dt);
void DRW_draw_callbacks_pre_scene(void);
void DRW_draw_callbacks_post_scene(void);
-int DRW_draw_region_engine_info_offset(void);
-void DRW_draw_region_engine_info(void);
-
void DRW_state_reset_ex(DRWState state);
void DRW_state_reset(void);
void DRW_state_lock(DRWState state);
diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c
index cbd2c7719b0..3cff67b5284 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -1057,49 +1057,9 @@ static void drw_engines_draw_text(void)
}
}
-#define MAX_INFO_LINES 10
-
-/**
- * Returns the offset required for the drawing of engines info.
- */
-int DRW_draw_region_engine_info_offset(void)
+/* Draw render engine info. */
+void DRW_draw_region_engine_info(int xoffset, int yoffset)
{
- int lines = 0;
- for (LinkData *link = DST.enabled_engines.first; link; link = link->next) {
- DrawEngineType *engine = link->data;
- ViewportEngineData *data = drw_viewport_engine_data_ensure(engine);
-
- /* Count the number of lines. */
- if (data->info[0] != '\0') {
- lines++;
- char *c = data->info;
- while (*c++ != '\0') {
- if (*c == '\n') {
- lines++;
- }
- }
- }
- }
- return MIN2(MAX_INFO_LINES, lines) * UI_UNIT_Y;
-}
-
-/**
- * Actual drawing;
- */
-void DRW_draw_region_engine_info(void)
-{
- const char *info_array_final[MAX_INFO_LINES + 1];
- /* This should be maximum number of engines running at the same time. */
- char info_array[MAX_INFO_LINES][GPU_INFO_SIZE];
- int i = 0;
-
- const DRWContextState *draw_ctx = DRW_context_state_get();
- ARegion *ar = draw_ctx->ar;
- float fill_color[4] = {0.0f, 0.0f, 0.0f, 0.25f};
-
- UI_GetThemeColor3fv(TH_HIGH_GRAD, fill_color);
- mul_v3_fl(fill_color, fill_color[3]);
-
for (LinkData *link = DST.enabled_engines.first; link; link = link->next) {
DrawEngineType *engine = link->data;
ViewportEngineData *data = drw_viewport_engine_data_ensure(engine);
@@ -1109,36 +1069,37 @@ void DRW_draw_region_engine_info(void)
char *chr_start = chr_current;
int line_len = 0;
+ const int font_id = BLF_default();
+ UI_FontThemeColor(font_id, TH_TEXT_HI);
+
+ BLF_enable(font_id, BLF_SHADOW);
+ BLF_shadow(font_id, 5, (const float[4]){0.0f, 0.0f, 0.0f, 1.0f});
+ BLF_shadow_offset(font_id, 1, -1);
+
while (*chr_current++ != '\0') {
line_len++;
if (*chr_current == '\n') {
- BLI_strncpy(info_array[i++], chr_start, line_len + 1);
+ char info[GPU_INFO_SIZE];
+ BLI_strncpy(info, chr_start, line_len + 1);
+ yoffset -= U.widget_unit;
+ BLF_draw_default(xoffset, yoffset, 0.0f, info, sizeof(info));
+
/* Re-start counting. */
chr_start = chr_current + 1;
line_len = -1;
}
}
- BLI_strncpy(info_array[i++], chr_start, line_len + 1);
+ char info[GPU_INFO_SIZE];
+ BLI_strncpy(info, chr_start, line_len + 1);
+ yoffset -= U.widget_unit;
+ BLF_draw_default(xoffset, yoffset, 0.0f, info, sizeof(info));
- if (i >= MAX_INFO_LINES) {
- break;
- }
+ BLF_disable(font_id, BLF_SHADOW);
}
}
-
- for (int j = 0; j < i; j++) {
- info_array_final[j] = info_array[j];
- }
- info_array_final[i] = NULL;
-
- if (info_array[0] != NULL) {
- ED_region_info_draw_multiline(ar, info_array_final, fill_color, true);
- }
}
-#undef MAX_INFO_LINES
-
static void use_drw_engine(DrawEngineType *engine)
{
LinkData *ld = MEM_callocN(sizeof(LinkData), "enabled engine link data");
diff --git a/source/blender/draw/intern/draw_view.c b/source/blender/draw/intern/draw_view.c
index 545c4af878c..70049a5c345 100644
--- a/source/blender/draw/intern/draw_view.c
+++ b/source/blender/draw/intern/draw_view.c
@@ -62,19 +62,10 @@ void DRW_draw_region_info(void)
{
const DRWContextState *draw_ctx = DRW_context_state_get();
ARegion *ar = draw_ctx->ar;
- int offset = 0;
DRW_draw_cursor();
- if ((draw_ctx->v3d->overlay.flag & V3D_OVERLAY_HIDE_TEXT) == 0) {
- offset = DRW_draw_region_engine_info_offset();
- }
-
- view3d_draw_region_info(draw_ctx->evil_C, ar, offset);
-
- if (offset > 0) {
- DRW_draw_region_engine_info();
- }
+ view3d_draw_region_info(draw_ctx->evil_C, ar);
}
/* ************************* Background ************************** */