From b1b7d58e9dfac1e44efb04879daddcb5e37a9366 Mon Sep 17 00:00:00 2001 From: Thomas Wilshaw Date: Mon, 23 Nov 2020 21:25:10 +0000 Subject: [PATCH] transition: Add transparency support to transitions Added ShaderJobEvent to CrossDissolveTransition which sets alpha as required. app/node/block/transition/crossdissolve/crossdissolvetransition.cpp app/node/block/transition/crossdissolve/crossdissolvetransition.h --- .../transition/crossdissolve/crossdissolvetransition.cpp | 5 +++++ .../block/transition/crossdissolve/crossdissolvetransition.h | 2 ++ 2 files changed, 7 insertions(+) diff --git a/app/node/block/transition/crossdissolve/crossdissolvetransition.cpp b/app/node/block/transition/crossdissolve/crossdissolvetransition.cpp index 9ce1e3607..c37ac9715 100644 --- a/app/node/block/transition/crossdissolve/crossdissolvetransition.cpp +++ b/app/node/block/transition/crossdissolve/crossdissolvetransition.cpp @@ -59,6 +59,11 @@ ShaderCode CrossDissolveTransition::GetShaderCode(const QString &shader_id) cons return ShaderCode(FileFunctions::ReadFileAsString(":/shaders/crossdissolve.frag"), QString()); } +void CrossDissolveTransition::ShaderJobEvent(NodeValueDatabase &value, ShaderJob &job) const +{ + job.SetAlphaChannelRequired(true); +} + void CrossDissolveTransition::SampleJobEvent(SampleBufferPtr from_samples, SampleBufferPtr to_samples, SampleBufferPtr out_samples, double time_in) const { for (int i=0; isample_count(); i++) { diff --git a/app/node/block/transition/crossdissolve/crossdissolvetransition.h b/app/node/block/transition/crossdissolve/crossdissolvetransition.h index f21d3fd7e..6b93042bf 100644 --- a/app/node/block/transition/crossdissolve/crossdissolvetransition.h +++ b/app/node/block/transition/crossdissolve/crossdissolvetransition.h @@ -43,6 +43,8 @@ public: virtual ShaderCode GetShaderCode(const QString& shader_id) const override; protected: + virtual void ShaderJobEvent(NodeValueDatabase& value, ShaderJob& job) const override; + virtual void SampleJobEvent(SampleBufferPtr from_samples, SampleBufferPtr to_samples, SampleBufferPtr out_samples, double time_in) const override; };