X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Frender_subtitles.cc;h=bc89fd3f88dc85977e2d765227401dde059f0275;hb=9483ff5be32c31e3f78c7201c4519bedf822967c;hp=5364b8dfe3eeb9a3e0f0c1655c2b1ff4a425ca3a;hpb=2c0478d2b33906845b9d910668b12fe3e8f03a7c;p=dcpomatic.git diff --git a/src/lib/render_subtitles.cc b/src/lib/render_subtitles.cc index 5364b8dfe..bc89fd3f8 100644 --- a/src/lib/render_subtitles.cc +++ b/src/lib/render_subtitles.cc @@ -37,11 +37,11 @@ calculate_position (dcp::VAlign v_align, double v_position, int target_height, i { switch (v_align) { case dcp::TOP: - return (v_position / 100) * target_height - offset; + return v_position * target_height - offset; case dcp::CENTER: - return (0.5 + v_position / 100) * target_height - offset; + return (0.5 + v_position) * target_height - offset; case dcp::BOTTOM: - return (1.0 - v_position / 100) * target_height - offset; + return (1.0 - v_position) * target_height - offset; } return 0; @@ -88,11 +88,7 @@ render_subtitles (list subtitles, dcp::Size target) context->set_line_width (1); for (list::const_iterator i = subtitles.begin(); i != subtitles.end(); ++i) { - string f = i->font (); - if (f.empty ()) { - f = "Arial"; - } - Pango::FontDescription font (f); + Pango::FontDescription font (i->font().get_value_or ("Arial")); font.set_absolute_size (i->size_in_pixels (target.height) * PANGO_SCALE); if (i->italic ()) { font.set_style (Pango::STYLE_ITALIC); @@ -103,16 +99,6 @@ render_subtitles (list subtitles, dcp::Size target) /* Compute fade factor */ /* XXX */ float fade_factor = 1; -#if 0 - dcp::Time now (time * 1000 / (4 * TIME_HZ)); - dcp::Time end_fade_up = i->in() + i->fade_up_time (); - dcp::Time start_fade_down = i->out() - i->fade_down_time (); - if (now < end_fade_up) { - fade_factor = (now - i->in()) / i->fade_up_time(); - } else if (now > start_fade_down) { - fade_factor = 1.0 - ((now - start_fade_down) / i->fade_down_time ()); - } -#endif layout->update_from_cairo_context (context); @@ -123,7 +109,7 @@ render_subtitles (list subtitles, dcp::Size target) if (i->effect() == dcp::SHADOW) { /* Drop-shadow effect */ - dcp::Color const ec = i->effect_color (); + dcp::Colour const ec = i->effect_colour (); context->set_source_rgba (float(ec.r) / 255, float(ec.g) / 255, float(ec.b) / 255, fade_factor); context->move_to (x + 4, y + 4); layout->add_to_cairo_context (context); @@ -132,7 +118,7 @@ render_subtitles (list subtitles, dcp::Size target) /* The actual subtitle */ context->move_to (x, y); - dcp::Color const c = i->color (); + dcp::Colour const c = i->colour (); context->set_source_rgba (float(c.r) / 255, float(c.g) / 255, float(c.b) / 255, fade_factor); layout->add_to_cairo_context (context); context->fill (); @@ -140,7 +126,7 @@ render_subtitles (list subtitles, dcp::Size target) if (i->effect() == dcp::BORDER) { /* Border effect */ context->move_to (x, y); - dcp::Color ec = i->effect_color (); + dcp::Colour ec = i->effect_colour (); context->set_source_rgba (float(ec.r) / 255, float(ec.g) / 255, float(ec.b) / 255, fade_factor); layout->add_to_cairo_context (context); context->stroke ();