diff --git a/app/node/blend/alphaover/alphaover.cpp b/app/node/blend/alphaover/alphaover.cpp index 17a10e11e..645d8b6a9 100644 --- a/app/node/blend/alphaover/alphaover.cpp +++ b/app/node/blend/alphaover/alphaover.cpp @@ -52,19 +52,5 @@ bool AlphaOverBlend::IsAccelerated() const QString AlphaOverBlend::CodeFragment() const { - return "#version 110" - "\n" - "varying vec2 ove_texcoord;\n" - "\n" - "uniform sampler2D base_in;\n" - "uniform sampler2D blend_in;\n" - "\n" - "void main(void) {\n" - " vec4 base_col = texture2D(base_in, ove_texcoord);\n" - " vec4 blend_col = texture2D(blend_in, ove_texcoord);\n" - " base_col *= 1.0 - blend_col.a;\n" - " base_col += blend_col;\n" - " \n" - " gl_FragColor = base_col;\n" - "}\n"; + return ReadFileAsString(":/shaders/alphaover.frag"); } diff --git a/app/node/block/clip/clip.cpp b/app/node/block/clip/clip.cpp index 4a283c8dd..289c0bea8 100644 --- a/app/node/block/clip/clip.cpp +++ b/app/node/block/clip/clip.cpp @@ -87,9 +87,3 @@ TimeRange ClipBlock::InputTimeAdjustment(NodeInput *input, const TimeRange &inpu return Block::InputTimeAdjustment(input, input_time); } - -NodeValueTable ClipBlock::Value(const NodeValueDatabase &value) const -{ - // We just pass through the data here, the renderer should have gotten the correct time from InputTimeAdjustment - return value.Merge(); -} diff --git a/app/node/block/clip/clip.h b/app/node/block/clip/clip.h index c1fb3c440..688a2823b 100644 --- a/app/node/block/clip/clip.h +++ b/app/node/block/clip/clip.h @@ -46,8 +46,6 @@ public: virtual TimeRange InputTimeAdjustment(NodeInput* input, const TimeRange& input_time) const override; - virtual NodeValueTable Value(const NodeValueDatabase& value) const override; - private: NodeInput* texture_input_; diff --git a/app/node/block/transition/crossdissolve/crossdissolve.cpp b/app/node/block/transition/crossdissolve/crossdissolve.cpp index c8ae30d80..f933de317 100644 --- a/app/node/block/transition/crossdissolve/crossdissolve.cpp +++ b/app/node/block/transition/crossdissolve/crossdissolve.cpp @@ -32,23 +32,5 @@ bool CrossDissolveTransition::IsAccelerated() const QString CrossDissolveTransition::CodeFragment() const { - return "#version 110\n" - "\n" - "varying vec2 ove_texcoord;\n" - "\n" - "uniform sampler2D out_block_in;\n" - "uniform sampler2D in_block_in;\n" - "\n" - "uniform float transition_total_prog;\n" - "uniform float transition_out_prog;\n" - "uniform float transition_in_prog;\n" - "\n" - "void main(void) {\n" - " vec4 out_tex = texture2D(out_block_in, ove_texcoord);\n" - " vec4 in_tex = texture2D(in_block_in, ove_texcoord);\n" - " \n" - " in_tex *= transition_total_prog;\n" - " \n" - " gl_FragColor = out_tex - in_tex.a + in_tex;\n" - "}\n"; + return ReadFileAsString(":/shaders/crossdissolve.frag"); } diff --git a/app/node/color/opacity/opacity.cpp b/app/node/color/opacity/opacity.cpp index f3df5c33e..3d29cded8 100644 --- a/app/node/color/opacity/opacity.cpp +++ b/app/node/color/opacity/opacity.cpp @@ -72,16 +72,7 @@ bool OpacityNode::IsAccelerated() const QString OpacityNode::CodeFragment() const { - return "#version 110" - "\n" - "varying vec2 olive_tex_coord;\n" - "\n" - "uniform sampler2D tex_in;\n" - "uniform float opacity_in;\n" - "\n" - "void main(void) {\n" - " gl_FragColor = texture2D(tex_in, olive_tex_coord) * (opacity_in * 0.01);\n" - "}\n"; + return ReadFileAsString(":/shaders/opacity.frag"); } NodeInput *OpacityNode::texture_input() const diff --git a/app/node/generator/solid/solid.cpp b/app/node/generator/solid/solid.cpp index 2de06eeab..4faab28eb 100644 --- a/app/node/generator/solid/solid.cpp +++ b/app/node/generator/solid/solid.cpp @@ -60,13 +60,7 @@ bool SolidGenerator::IsAccelerated() const QString SolidGenerator::CodeFragment() const { - return "#version 110\n" - "\n" - "uniform vec4 color_in;\n" - "\n" - "void main(void) {\n" - " gl_FragColor = color_in;\n" - "}\n"; + return ReadFileAsString(":/shaders/solid.frag"); } void SolidGenerator::Retranslate() diff --git a/app/node/node.cpp b/app/node/node.cpp index f9b10f784..6f0ad9e00 100644 --- a/app/node/node.cpp +++ b/app/node/node.cpp @@ -91,9 +91,7 @@ void Node::AddParameter(NodeParam *param) NodeValueTable Node::Value(const NodeValueDatabase &value) const { - Q_UNUSED(value) - - return NodeValueTable(); + return value.Merge(); } void Node::InvalidateCache(const rational &start_range, const rational &end_range, NodeInput *from) diff --git a/app/shaders/alphaover.frag b/app/shaders/alphaover.frag new file mode 100644 index 000000000..0699bb0b9 --- /dev/null +++ b/app/shaders/alphaover.frag @@ -0,0 +1,15 @@ +#version 110 + +varying vec2 ove_texcoord; + +uniform sampler2D base_in; +uniform sampler2D blend_in; + +void main(void) { + vec4 base_col = texture2D(base_in, ove_texcoord); + vec4 blend_col = texture2D(blend_in, ove_texcoord); + base_col *= 1.0 - blend_col.a; + base_col += blend_col; + + gl_FragColor = base_col; +} diff --git a/app/shaders/crossdissolve.frag b/app/shaders/crossdissolve.frag new file mode 100644 index 000000000..0699bb0b9 --- /dev/null +++ b/app/shaders/crossdissolve.frag @@ -0,0 +1,15 @@ +#version 110 + +varying vec2 ove_texcoord; + +uniform sampler2D base_in; +uniform sampler2D blend_in; + +void main(void) { + vec4 base_col = texture2D(base_in, ove_texcoord); + vec4 blend_col = texture2D(blend_in, ove_texcoord); + base_col *= 1.0 - blend_col.a; + base_col += blend_col; + + gl_FragColor = base_col; +} diff --git a/app/shaders/opacity.frag b/app/shaders/opacity.frag new file mode 100644 index 000000000..52464e6f0 --- /dev/null +++ b/app/shaders/opacity.frag @@ -0,0 +1,10 @@ +#version 110 + +varying vec2 ove_tex_coord; + +uniform sampler2D tex_in; +uniform float opacity_in; + +void main(void) { + gl_FragColor = texture2D(tex_in, ove_tex_coord) * (opacity_in * 0.01); +} diff --git a/app/shaders/shaders.qrc b/app/shaders/shaders.qrc index 3d9cc079e..d183728bb 100644 --- a/app/shaders/shaders.qrc +++ b/app/shaders/shaders.qrc @@ -1,5 +1,9 @@ + alphaover.frag + crossdissolve.frag + opacity.frag + solid.frag videoinput.frag videoinput.vert diff --git a/app/shaders/solid.frag b/app/shaders/solid.frag new file mode 100644 index 000000000..21fdb805f --- /dev/null +++ b/app/shaders/solid.frag @@ -0,0 +1,7 @@ +#version 110 + +uniform vec4 color_in; + +void main(void) { + gl_FragColor = color_in; +}