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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user