qt: Initial OpenGL 3.0 renderer implementation

This commit is contained in:
ts-korhonen
2022-02-27 14:56:51 +02:00
parent f4587949a7
commit d2a9389ce7
15 changed files with 1558 additions and 209 deletions

View File

@@ -1,28 +1,37 @@
#pragma once
#include <QRect>
#include <QImage>
#include <QDialog>
#include <QEvent>
#include <QImage>
#include <QRect>
#include <QWidget>
#include <vector>
#include <tuple>
#include <atomic>
#include <memory>
#include <tuple>
#include <vector>
class QWidget;
class RendererCommon
{
class RendererCommon {
public:
RendererCommon();
void onResize(int width, int height);
virtual std::vector<std::tuple<uint8_t*, std::atomic_flag*>> getBuffers() = 0;
protected:
bool eventDelegate(QEvent* event, bool& result);
void onResize(int width, int height);
virtual void finalize() { }
QRect source, destination;
QWidget* parentWidget{nullptr};
virtual std::vector<std::tuple<uint8_t *, std::atomic_flag *>> getBuffers() = 0;
/* Does renderer implement options dialog */
virtual bool hasOptions() const { return false; }
/* Returns options dialog for renderer */
virtual QDialog *getOptions(QWidget *parent) { return nullptr; }
protected:
bool eventDelegate(QEvent *event, bool &result);
QRect source, destination;
QWidget *parentWidget { nullptr };
std::vector<std::atomic_flag> buf_usage;
};