Implement default methods for plugin parameter editing and progress, and integrate plugin rendering into the build system.

This commit is contained in:
Mike Solar
2025-12-24 21:07:17 +08:00
parent 88ba0e4841
commit 7c0f37b0a7
10 changed files with 332 additions and 290 deletions
+6 -1
View File
@@ -1 +1,6 @@
target_sources(libolive-editor PRIVATE pluginrenderer.cpp pluginrenderer.h)
set(OLIVE_SOURCES
${OLIVE_SOURCES}
render/plugin/pluginrenderer.cpp
render/plugin/pluginrenderer.h
PARENT_SCOPE
)
+6 -4
View File
@@ -20,13 +20,15 @@
//
// Created by mikesolar on 25-10-19.
//
#define GL_PREAMBLE //QMutexLocker __l(&global_opengl_mutex);
#include "pluginrenderer.h"
#include "pluginSupport/OlivePluginInstance.h"
void olive::plugin::PluginRenderer::Blit(QVariant shader, ShaderJob job,
Texture *destination,
VideoParams destination_params,
void olive::plugin::PluginRenderer::Blit(QVariant shader,
olive::AcceleratedJob &job,
olive::Texture *destination,
olive::VideoParams destination_params,
bool clear_destination)
{
+18 -7
View File
@@ -23,20 +23,31 @@
#ifndef PLUGINRENDERER_H
#define PLUGINRENDERER_H
#include <QOpenGLExtraFunctions>
#include <QOpenGLBuffer>
#include <QOpenGLFunctions>
#include <QOpenGLShader>
#include <QOpenGLVertexArrayObject>
#include <QThread>
#include <QOffscreenSurface>
#include "render/renderer.h"
#include "render/job/pluginjob.h"
#include "render/opengl/openglrenderer.h"
namespace olive
{
namespace plugin{
class PluginRenderer : public olive::Renderer{
class PluginRenderer : public olive::OpenGLRenderer{
Q_OBJECT
public:
PluginRenderer(QObject *parent=nullptr):Renderer(parent){};
PluginRenderer(QObject *parent=nullptr):OpenGLRenderer(parent){};
virtual ~PluginRenderer() override{};
protected:
void Blit(QVariant shader,
ShaderJob job,
Texture *destination,
VideoParams destination_params,
bool clear_destination) override;
virtual void Blit(QVariant shader, olive::AcceleratedJob& job,
olive::Texture *destination,
olive::VideoParams destination_params,
bool clear_destination) override;
};
}
}