diff options
Diffstat (limited to 'source/blender/editors/space_sequencer/sequencer_draw.c')
-rw-r--r-- | source/blender/editors/space_sequencer/sequencer_draw.c | 81 |
1 files changed, 47 insertions, 34 deletions
diff --git a/source/blender/editors/space_sequencer/sequencer_draw.c b/source/blender/editors/space_sequencer/sequencer_draw.c index fe900b6bcae..a4390d56bcf 100644 --- a/source/blender/editors/space_sequencer/sequencer_draw.c +++ b/source/blender/editors/space_sequencer/sequencer_draw.c @@ -342,7 +342,6 @@ static void draw_seq_handle(View2D *v2d, Sequence *seq, const float handsize_cla { float v1[2], v2[2], v3[2], rx1 = 0, rx2 = 0; //for triangles and rect float x1, x2, y1, y2; - char numstr[32]; unsigned int whichsel = 0; x1 = seq->startdisp; @@ -401,17 +400,20 @@ static void draw_seq_handle(View2D *v2d, Sequence *seq, const float handsize_cla if ((G.moving & G_TRANSFORM_SEQ) || (seq->flag & whichsel)) { const char col[4] = {255, 255, 255, 255}; + char numstr[32]; + size_t numstr_len; + if (direction == SEQ_LEFTHANDLE) { - BLI_snprintf(numstr, sizeof(numstr), "%d", seq->startdisp); + numstr_len = BLI_snprintf(numstr, sizeof(numstr), "%d", seq->startdisp); x1 = rx1; y1 -= 0.45f; } else { - BLI_snprintf(numstr, sizeof(numstr), "%d", seq->enddisp - 1); + numstr_len = BLI_snprintf(numstr, sizeof(numstr), "%d", seq->enddisp - 1); x1 = x2 - handsize_clamped * 0.75f; y1 = y2 + 0.05f; } - UI_view2d_text_cache_add(v2d, x1, y1, numstr, col); + UI_view2d_text_cache_add(v2d, x1, y1, numstr, numstr_len, col); } } @@ -526,6 +528,7 @@ static void draw_seq_text(View2D *v2d, Sequence *seq, float x1, float x2, float { rctf rect; char str[32 + FILE_MAX]; + size_t str_len; const char *name = seq->name + 2; char col[4]; @@ -534,67 +537,76 @@ static void draw_seq_text(View2D *v2d, Sequence *seq, float x1, float x2, float name = BKE_sequence_give_name(seq); if (seq->type == SEQ_TYPE_META || seq->type == SEQ_TYPE_ADJUSTMENT) { - BLI_snprintf(str, sizeof(str), "%s | %d", name, seq->len); + str_len = BLI_snprintf(str, sizeof(str), "%s | %d", name, seq->len); } else if (seq->type == SEQ_TYPE_SCENE) { if (seq->scene) { if (seq->scene_camera) { - BLI_snprintf(str, sizeof(str), "%s: %s (%s) | %d", - name, seq->scene->id.name + 2, ((ID *)seq->scene_camera)->name + 2, seq->len); + str_len = BLI_snprintf(str, sizeof(str), "%s: %s (%s) | %d", + name, seq->scene->id.name + 2, ((ID *)seq->scene_camera)->name + 2, seq->len); } else { - BLI_snprintf(str, sizeof(str), "%s: %s | %d", - name, seq->scene->id.name + 2, seq->len); + str_len = BLI_snprintf(str, sizeof(str), "%s: %s | %d", + name, seq->scene->id.name + 2, seq->len); } } else { - BLI_snprintf(str, sizeof(str), "%s | %d", - name, seq->len); + str_len = BLI_snprintf(str, sizeof(str), "%s | %d", + name, seq->len); } } else if (seq->type == SEQ_TYPE_MOVIECLIP) { if (seq->clip && strcmp(name, seq->clip->id.name + 2) != 0) { - BLI_snprintf(str, sizeof(str), "%s: %s | %d", - name, seq->clip->id.name + 2, seq->len); + str_len = BLI_snprintf(str, sizeof(str), "%s: %s | %d", + name, seq->clip->id.name + 2, seq->len); } else { - BLI_snprintf(str, sizeof(str), "%s | %d", - name, seq->len); + str_len = BLI_snprintf(str, sizeof(str), "%s | %d", + name, seq->len); } } else if (seq->type == SEQ_TYPE_MASK) { if (seq->mask && strcmp(name, seq->mask->id.name + 2) != 0) { - BLI_snprintf(str, sizeof(str), "%s: %s | %d", - name, seq->mask->id.name + 2, seq->len); + str_len = BLI_snprintf(str, sizeof(str), "%s: %s | %d", + name, seq->mask->id.name + 2, seq->len); } else { - BLI_snprintf(str, sizeof(str), "%s | %d", - name, seq->len); + str_len = BLI_snprintf(str, sizeof(str), "%s | %d", + name, seq->len); } } else if (seq->type == SEQ_TYPE_MULTICAM) { - BLI_snprintf(str, sizeof(str), "Cam %s: %d", - name, seq->multicam_source); + str_len = BLI_snprintf(str, sizeof(str), "Cam %s: %d", + name, seq->multicam_source); } else if (seq->type == SEQ_TYPE_IMAGE) { - BLI_snprintf(str, sizeof(str), "%s: %s%s | %d", - name, seq->strip->dir, seq->strip->stripdata->name, seq->len); + str_len = BLI_snprintf(str, sizeof(str), "%s: %s%s | %d", + name, seq->strip->dir, seq->strip->stripdata->name, seq->len); } else if (seq->type & SEQ_TYPE_EFFECT) { - BLI_snprintf(str, sizeof(str), "%s | %d", - name, seq->len); + str_len = BLI_snprintf(str, sizeof(str), "%s | %d", + name, seq->len); } else if (seq->type == SEQ_TYPE_SOUND_RAM) { - if (seq->sound) - BLI_snprintf(str, sizeof(str), "%s: %s | %d", - name, seq->sound->name, seq->len); - else - BLI_snprintf(str, sizeof(str), "%s | %d", - name, seq->len); + if (seq->sound) { + str_len = BLI_snprintf(str, sizeof(str), "%s: %s | %d", + name, seq->sound->name, seq->len); + } + else { + str_len = BLI_snprintf(str, sizeof(str), "%s | %d", + name, seq->len); + } } else if (seq->type == SEQ_TYPE_MOVIE) { - BLI_snprintf(str, sizeof(str), "%s: %s%s | %d", - name, seq->strip->dir, seq->strip->stripdata->name, seq->len); + str_len = BLI_snprintf(str, sizeof(str), "%s: %s%s | %d", + name, seq->strip->dir, seq->strip->stripdata->name, seq->len); + } + else { + /* should never get here!, but might with files from future */ + BLI_assert(0); + + str_len = BLI_snprintf(str, sizeof(str), "%s | %d", + name, seq->len); } if (seq->flag & SELECT) { @@ -612,7 +624,8 @@ static void draw_seq_text(View2D *v2d, Sequence *seq, float x1, float x2, float rect.ymin = y1; rect.xmax = x2; rect.ymax = y2; - UI_view2d_text_cache_rectf(v2d, &rect, str, col); + + UI_view2d_text_cache_rectf(v2d, &rect, str, str_len, col); } /* draws a shaded strip, made from gradient + flat color + gradient */ |