further implement colortransformjob

This commit is contained in:
itsmattkc
2022-04-26 13:13:28 -07:00
parent 831fe77275
commit 3c13e32620
10 changed files with 164 additions and 93 deletions
+9 -3
View File
@@ -65,11 +65,16 @@ void ChromaKeyNode::InputValueChangedEvent(const QString &input, int element)
GenerateProcessor();
}
ShaderCode ChromaKeyNode::GetShaderCode(const QString &) const
{
return ShaderCode(FileFunctions::ReadFileAsString(QStringLiteral(":/shaders/chromakey.frag")));
}
void ChromaKeyNode::GenerateProcessor()
{
if (manager()){
ColorTransform transform("cie_xyz_d65_interchange");
set_processor(ColorProcessor::Create(manager(), manager()->GetReferenceColorSpace(), transform));
set_processor(ColorProcessor::Create(manager(), manager()->GetReferenceColorSpace(), transform));
}
}
@@ -78,12 +83,13 @@ void ChromaKeyNode::Value(const NodeValueRow &value, const NodeGlobals &globals,
if (!value[kTextureInput].data().isNull() && processor()) {
ColorTransformJob job;
job.InsertValue(value);
job.SetColorProcessor(processor());
job.SetInputTexture(value[kTextureInput].data().value<TexturePtr>());
job.SetShaderPath(QStringLiteral(":/shaders/chromakey.frag"));
job.SetNeedsCustomShader(this);
table->Push(NodeValue::kColorTransformJob, QVariant::fromValue(job), this);
}
}
} // namespace olive
} // namespace olive
+1
View File
@@ -37,6 +37,7 @@ class ChromaKeyNode : public OCIOBaseNode {
virtual void InputValueChangedEvent(const QString& input, int element) override;
virtual ShaderCode GetShaderCode(const QString &shader_id) const override;
virtual void Value(const NodeValueRow& value, const NodeGlobals& globals, NodeValueTable* table) const override;
virtual void ConfigChanged() override {};