From 7a7d30426825136ea50367795b9ef0fc47a628a1 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Fri, 20 Dec 2019 04:30:38 +1100 Subject: [PATCH] use uuid for identifying viewers To aid generating a cache ID, each viewer node needs a UUID. Previous iterations tried to hash a name and time, but a UUID is a much more efficient way to do this. --- app/node/output/viewer/viewer.cpp | 8 ++++++++ app/node/output/viewer/viewer.h | 8 ++++++-- app/render/exporter.cpp | 6 ++++++ app/render/exporter.h | 11 +++++++++++ app/render/exporter/openglexporter.cpp | 6 ++++++ app/render/exporter/openglexporter.h | 11 +++++++++++ 6 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 app/render/exporter.cpp create mode 100644 app/render/exporter.h create mode 100644 app/render/exporter/openglexporter.cpp create mode 100644 app/render/exporter/openglexporter.h diff --git a/app/node/output/viewer/viewer.cpp b/app/node/output/viewer/viewer.cpp index 341ecd993..3db4849be 100644 --- a/app/node/output/viewer/viewer.cpp +++ b/app/node/output/viewer/viewer.cpp @@ -33,6 +33,9 @@ ViewerOutput::ViewerOutput() length_input_ = new NodeInput("length_in"); length_input_->set_data_type(NodeInput::kRational); AddInput(length_input_); + + // Create UUID for this node + uuid_ = QUuid::createUuid(); } Node *ViewerOutput::copy() const @@ -125,6 +128,11 @@ rational ViewerOutput::Length() return 0; } +const QUuid &ViewerOutput::uuid() const +{ + return uuid_; +} + void ViewerOutput::DependentEdgeChanged(NodeInput *from) { if (from == texture_input_) { diff --git a/app/node/output/viewer/viewer.h b/app/node/output/viewer/viewer.h index 3570e7a50..a64ab5e63 100644 --- a/app/node/output/viewer/viewer.h +++ b/app/node/output/viewer/viewer.h @@ -21,6 +21,8 @@ #ifndef VIEWER_H #define VIEWER_H +#include + #include "node/node.h" #include "render/videoparams.h" #include "render/audioparams.h" @@ -57,6 +59,8 @@ public: rational Length(); + const QUuid& uuid() const; + protected: virtual void DependentEdgeChanged(NodeInput* from) override; @@ -76,14 +80,14 @@ signals: void SizeChanged(int width, int height); private: + QUuid uuid_; + NodeInput* texture_input_; NodeInput* samples_input_; NodeInput* length_input_; - rational timebase_; - VideoParams video_params_; AudioParams audio_params_; diff --git a/app/render/exporter.cpp b/app/render/exporter.cpp new file mode 100644 index 000000000..159908ab4 --- /dev/null +++ b/app/render/exporter.cpp @@ -0,0 +1,6 @@ +#include "exporter.h" + +Exporter::Exporter() +{ + +} diff --git a/app/render/exporter.h b/app/render/exporter.h new file mode 100644 index 000000000..527da5515 --- /dev/null +++ b/app/render/exporter.h @@ -0,0 +1,11 @@ +#ifndef EXPORTER_H +#define EXPORTER_H + + +class Exporter +{ +public: + Exporter(); +}; + +#endif // EXPORTER_H diff --git a/app/render/exporter/openglexporter.cpp b/app/render/exporter/openglexporter.cpp new file mode 100644 index 000000000..7f4c64904 --- /dev/null +++ b/app/render/exporter/openglexporter.cpp @@ -0,0 +1,6 @@ +#include "openglexporter.h" + +OpenGLExporter::OpenGLExporter() +{ + +} diff --git a/app/render/exporter/openglexporter.h b/app/render/exporter/openglexporter.h new file mode 100644 index 000000000..8d657d3c5 --- /dev/null +++ b/app/render/exporter/openglexporter.h @@ -0,0 +1,11 @@ +#ifndef OPENGLEXPORTER_H +#define OPENGLEXPORTER_H + + +class OpenGLExporter +{ +public: + OpenGLExporter(); +}; + +#endif // OPENGLEXPORTER_H