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:
authorCampbell Barton <ideasman42@gmail.com>2015-07-10 19:17:06 +0300
committerCampbell Barton <ideasman42@gmail.com>2015-07-10 19:30:26 +0300
commit3443686399feb4f96a9ea85f52f6750388b883a2 (patch)
tree7e4c91319ba3a2d13d4e83a43c0b690ed8e63547 /source/blender/blenkernel/intern/seqeffects.c
parent9a3dfa1f21168c19a3346bb4813b1313deb6fb18 (diff)
Sequencer: changes to text effect strip
- default alignment to lower center. - placement is now relative, so changing output size keeps correct placement. - instead of center override, add align option (left/right/center). Also don't use pixel-size for setting the font size, on new strips. Better not have UI prefs impact low level API's.
Diffstat (limited to 'source/blender/blenkernel/intern/seqeffects.c')
-rw-r--r--source/blender/blenkernel/intern/seqeffects.c29
1 files changed, 20 insertions, 9 deletions
diff --git a/source/blender/blenkernel/intern/seqeffects.c b/source/blender/blenkernel/intern/seqeffects.c
index 2d1ea536b27..3e6edbe01e8 100644
--- a/source/blender/blenkernel/intern/seqeffects.c
+++ b/source/blender/blenkernel/intern/seqeffects.c
@@ -2888,8 +2888,11 @@ static void init_text_effect(Sequence *seq)
MEM_freeN(seq->effectdata);
data = seq->effectdata = MEM_callocN(sizeof(TextVars), "textvars");
- data->text_size = U.pixelsize * 30;
+ data->text_size = 30;
BLI_strncpy(data->text, "Text", sizeof(data->text));
+
+ data->loc[0] = 0.5f;
+ data->align = SEQ_TEXT_ALIGN_CENTER;
}
static int num_inputs_text(void)
@@ -2916,7 +2919,7 @@ static ImBuf *do_text_effect(const SeqRenderData *context, Sequence *seq, float
struct ColorManagedDisplay *display;
const char *display_device;
const int mono = blf_mono_font_render; // XXX
- int y_ofs, x, y, w;
+ int y_ofs, x, y;
display_device = context->scene->display_settings.display_device;
display = IMB_colormanagement_display_get_named(display_device);
@@ -2928,17 +2931,25 @@ static ImBuf *do_text_effect(const SeqRenderData *context, Sequence *seq, float
y_ofs = -BLF_descender(mono);
- w = BLF_width(mono, data->text, sizeof(data->text));
+ x = (data->loc[0] * width);
+ y = (data->loc[1] * height) + y_ofs;
- if (data->flags & TEXT_SEQ_AUTO_CENTER)
- x = width / 2 - w / 2;
- else
- x = (context->scene->r.size / 100.0f) * data->xpos;
+ if (data->align == SEQ_TEXT_ALIGN_LEFT) {
+ /* pass */
+ }
+ else {
+ const int w = BLF_width(mono, data->text, sizeof(data->text));
- y = y_ofs + (context->scene->r.size / 100.0f) * data->ypos;
+ if (data->align == SEQ_TEXT_ALIGN_RIGHT) {
+ x -= w;
+ }
+ else { /* SEQ_TEXT_ALIGN_CENTER */
+ x -= w / 2;
+ }
+ }
/* BLF_SHADOW won't work with buffers, instead use cheap shadow trick */
- if (data->flags & TEXT_SEQ_SHADOW) {
+ if (data->flag & SEQ_TEXT_SHADOW) {
int fontx, fonty;
fontx = BLF_width_max(mono);
fonty = BLF_height_max(mono);