large scale renderer rework

- Abstracts all OpenGL functionality including UI objects
- Cleans up several rendering codepaths
- Improves threading functionality
- Removes old code and problematic functions
This commit is contained in:
itsmattkc
2020-11-10 11:24:51 +11:00
parent 52b98f3fa3
commit 1d61f89920
42 changed files with 927 additions and 820 deletions
+8 -9
View File
@@ -21,6 +21,7 @@
#ifndef RENDERPROCESSOR_H
#define RENDERPROCESSOR_H
#include "decodercache.h"
#include "node/traverser.h"
#include "render/backend/renderer.h"
#include "stillimagecache.h"
@@ -28,11 +29,10 @@
OLIVE_NAMESPACE_ENTER
class RenderProcessor : public QObject, public NodeTraverser
class RenderProcessor : public NodeTraverser
{
Q_OBJECT
public:
static void Process(RenderTicketPtr ticket, Renderer* render_ctx);
static void Process(RenderTicketPtr ticket, Renderer* render_ctx, StillImageCache* still_image_cache, DecoderCache* decoder_cache);
struct RenderedWaveform {
const TrackOutput* track;
@@ -40,11 +40,6 @@ public:
TimeRange range;
};
signals:
void GeneratedFrame(FramePtr frame);
void GeneratedAudio(SampleBufferPtr audio);
protected:
virtual NodeValueTable GenerateBlockTable(const TrackOutput *track, const TimeRange &range) override;
@@ -61,16 +56,20 @@ protected:
virtual QVariant GetCachedFrame(const Node *node, const rational &time) override;
private:
RenderProcessor(RenderTicketPtr ticket, Renderer* render_ctx);
RenderProcessor(RenderTicketPtr ticket, Renderer* render_ctx, StillImageCache* still_image_cache, DecoderCache* decoder_cache);
void Run();
DecoderPtr ResolveDecoderFromInput(StreamPtr stream);
RenderTicketPtr ticket_;
Renderer* render_ctx_;
StillImageCache* still_image_cache_;
DecoderCache* decoder_cache_;
};
OLIVE_NAMESPACE_EXIT