Files
86Box/src/qt/qt_renderercommon.hpp

50 lines
1.2 KiB
C++
Raw Normal View History

2021-12-07 13:47:42 +01:00
#pragma once
#include <QDialog>
2021-12-31 16:47:49 +06:00
#include <QEvent>
#include <QImage>
#include <QRect>
#include <QWidget>
2021-12-07 13:47:42 +01:00
#include <atomic>
#include <memory>
#include <tuple>
#include <vector>
2021-12-07 13:47:42 +01:00
class QWidget;
class RendererCommon {
2021-12-07 13:47:42 +01:00
public:
RendererCommon();
void onResize(int width, int height);
virtual void finalize() { }
2022-04-21 16:32:46 +06:00
virtual uint32_t getBytesPerRow() { return 2048 * 4; }
2022-11-19 08:49:04 -05:00
virtual std::vector<std::tuple<uint8_t *, std::atomic_flag *>> getBuffers()
{
std::vector<std::tuple<uint8_t *, std::atomic_flag *>> buffers;
return buffers;
}
/* Does renderer implement options dialog */
virtual bool hasOptions() const { return false; }
/* Returns options dialog for renderer */
virtual QDialog *getOptions(QWidget *parent) { return nullptr; }
2022-07-07 14:34:59 +06:00
/* Reloads options of renderer */
2022-11-19 08:49:04 -05:00
virtual void reloadOptions() { }
int r_monitor_index = 0;
2021-12-07 13:47:42 +01:00
protected:
bool eventDelegate(QEvent *event, bool &result);
void drawStatusBarIcons(QPainter* painter);
2021-12-07 13:47:42 +01:00
2023-05-29 01:30:51 -04:00
QRect source { 0, 0, 0, 0 };
QRect destination;
QWidget *parentWidget { nullptr };
std::vector<std::atomic_flag> buf_usage;
2021-12-07 13:47:42 +01:00
};