diff --git a/app/node/distort/transform/transform.cpp b/app/node/distort/transform/transform.cpp index f009fce30..08648cf9f 100644 --- a/app/node/distort/transform/transform.cpp +++ b/app/node/distort/transform/transform.cpp @@ -96,7 +96,7 @@ QVariant TransformDistort::Value(NodeOutput *output, const rational &time) mat.scale(scale_input_->get_value(time).value()*0.01f); // Anchor Point - mat.translate(anchor_input_->get_value(time).value()); + mat.translate(-anchor_input_->get_value(time).value()); return mat; } diff --git a/app/node/input/media/media.cpp b/app/node/input/media/media.cpp index e5ce19131..7a2547615 100644 --- a/app/node/input/media/media.cpp +++ b/app/node/input/media/media.cpp @@ -246,16 +246,18 @@ QVariant MediaInput::Value(NodeOutput *output, const rational &time) QMatrix4x4 transform; // Scale texture to a square for incoming matrix transformation - transform.scale(static_cast(renderer->height()) / static_cast(renderer->width()), 1.0f); + transform.scale(2.0f / static_cast(renderer->width() * renderer->divider()), + 2.0f / static_cast(renderer->height() * renderer->divider())); // Multiply by input transformation transform *= matrix_input_->get_value(time).value(); - // Scale texture to the media's aspect ratio - transform.scale(static_cast(frame_->width()) / static_cast(frame_->height()), 1.0f); + // Scale texture to the media size + transform.scale(static_cast(frame_->width()), static_cast(frame_->height())); + transform.scale(0.5f, 0.5f); - float media_size = static_cast(frame_->height()) / static_cast(renderer->height() * renderer->divider()); - transform.scale(media_size, media_size); + //float media_size = static_cast(frame_->height()) / static_cast(renderer->height() * renderer->divider()); + //transform.scale(media_size, media_size); // Use pipeline to blit using transformation matrix from input if (renderer->mode() == olive::RenderMode::kOffline) {