]> git.sesse.net Git - casparcg/blobdiff - core/producer/frame/image_transform.cpp
2.0. video_format: Renamed video_mode to field_mode. image_mixer: Refactored field...
[casparcg] / core / producer / frame / image_transform.cpp
index 369da5891c1f29e27574f5fe0e46bd3e0f382f42..9d78faa7b0f6c54e1f91d06a437b82a94277a398 100644 (file)
@@ -32,6 +32,7 @@ image_transform::image_transform()
        , contrast_(1.0)\r
        , saturation_(1.0)\r
        , is_key_(false)\r
+       , field_mode_(field_mode::progressive)\r
 {\r
        std::fill(fill_translation_.begin(), fill_translation_.end(), 0.0);\r
        std::fill(fill_scale_.begin(), fill_scale_.end(), 1.0);\r
@@ -134,6 +135,16 @@ std::array<double, 2> image_transform::get_clip_scale() const
        return clip_scale_;\r
 }\r
 \r
+void image_transform::set_field_mode(field_mode::type field_mode)\r
+{\r
+       field_mode_ = field_mode;\r
+}\r
+\r
+field_mode::type image_transform::get_field_mode() const\r
+{\r
+       return field_mode_;\r
+}\r
+\r
 image_transform& image_transform::operator*=(const image_transform &other)\r
 {\r
        opacity_                                *= other.opacity_;      \r
@@ -149,6 +160,7 @@ image_transform& image_transform::operator*=(const image_transform &other)
 \r
        levels_.gamma                   *= other.levels_.gamma;\r
 \r
+       field_mode_                             = static_cast<field_mode::type>(field_mode_ & other.field_mode_);\r
        is_key_                                 |= other.is_key_;\r
        fill_translation_[0]    += other.fill_translation_[0]*fill_scale_[0];\r
        fill_translation_[1]    += other.fill_translation_[1]*fill_scale_[1];\r
@@ -178,6 +190,7 @@ image_transform tween(double time, const image_transform& source, const image_tr
        \r
        image_transform result; \r
        result.set_is_key                       (source.get_is_key() | dest.get_is_key());\r
+       result.set_field_mode           (static_cast<field_mode::type>(source.get_field_mode() & dest.get_field_mode()));\r
        result.set_brightness           (do_tween(time, source.get_brightness(), dest.get_brightness(), duration, tweener));\r
        result.set_contrast                     (do_tween(time, source.get_contrast(), dest.get_contrast(), duration, tweener));\r
        result.set_saturation           (do_tween(time, source.get_saturation(), dest.get_saturation(), duration, tweener));\r