further implement colortransformjob
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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 {};
|
||||
|
||||
Reference in New Issue
Block a user