[Bf-blender-cvs] [7e4b85820ea] temp-T97905-compositor-meta-data: Query the metadata from input nodes.
Jeroen Bakker
noreply at git.blender.org
Wed May 11 16:50:34 CEST 2022
Commit: 7e4b85820ea8c0921fcac95562f092312f2e0133
Author: Jeroen Bakker
Date: Wed May 11 16:50:26 2022 +0200
Branches: temp-T97905-compositor-meta-data
https://developer.blender.org/rB7e4b85820ea8c0921fcac95562f092312f2e0133
Query the metadata from input nodes.
===================================================================
M source/blender/compositor/intern/COM_NodeOperation.h
M source/blender/compositor/operations/COM_ReadBufferOperation.cc
M source/blender/compositor/operations/COM_ReadBufferOperation.h
===================================================================
diff --git a/source/blender/compositor/intern/COM_NodeOperation.h b/source/blender/compositor/intern/COM_NodeOperation.h
index aa9e4329ab6..a297a21bb98 100644
--- a/source/blender/compositor/intern/COM_NodeOperation.h
+++ b/source/blender/compositor/intern/COM_NodeOperation.h
@@ -610,6 +610,25 @@ class NodeOperation {
* The return parameter holds an instance or is an nullptr. */
virtual std::unique_ptr<MetaData> get_meta_data()
{
+ for (NodeOperationInput &input : inputs_) {
+ if (input.get_data_type() != DataType::Color) {
+ continue;
+ }
+ std::unique_ptr<MetaData> meta_data = input.get_reader()->get_meta_data();
+ if (meta_data.get()) {
+ return meta_data;
+ }
+ }
+
+ for (NodeOperationInput &input : inputs_) {
+ if (input.get_data_type() == DataType::Color) {
+ continue;
+ }
+ std::unique_ptr<MetaData> meta_data = input.get_reader()->get_meta_data();
+ if (meta_data.get()) {
+ return meta_data;
+ }
+ }
return std::unique_ptr<MetaData>();
}
diff --git a/source/blender/compositor/operations/COM_ReadBufferOperation.cc b/source/blender/compositor/operations/COM_ReadBufferOperation.cc
index 81f046af1b9..b9356fc1c77 100644
--- a/source/blender/compositor/operations/COM_ReadBufferOperation.cc
+++ b/source/blender/compositor/operations/COM_ReadBufferOperation.cc
@@ -122,4 +122,9 @@ void ReadBufferOperation::update_memory_buffer()
buffer_ = this->get_memory_proxy()->get_buffer();
}
+std::unique_ptr<MetaData> ReadBufferOperation::get_meta_data()
+{
+ return get_memory_proxy()->get_write_buffer_operation()->get_meta_data();
+}
+
} // namespace blender::compositor
diff --git a/source/blender/compositor/operations/COM_ReadBufferOperation.h b/source/blender/compositor/operations/COM_ReadBufferOperation.h
index 54c363eff7a..4be6d234eed 100644
--- a/source/blender/compositor/operations/COM_ReadBufferOperation.h
+++ b/source/blender/compositor/operations/COM_ReadBufferOperation.h
@@ -57,6 +57,7 @@ class ReadBufferOperation : public NodeOperation {
}
void read_resolution_from_write_buffer();
void update_memory_buffer();
+ std::unique_ptr<MetaData> get_meta_data() override;
};
} // namespace blender::compositor
More information about the Bf-blender-cvs
mailing list