1 #pragma once 2 3 #include <QWidget> 4 #include <obs.hpp> 5 6 #define GREY_COLOR_BACKGROUND 0xFF4C4C4C 7 8 class OBSQTDisplay : public QWidget { 9 Q_OBJECT 10 Q_PROPERTY(QColor displayBackgroundColor MEMBER backgroundColor READ 11 GetDisplayBackgroundColor WRITE 12 SetDisplayBackgroundColor) 13 14 OBSDisplay display; 15 16 void resizeEvent(QResizeEvent *event) override; 17 void paintEvent(QPaintEvent *event) override; 18 19 signals: 20 void DisplayCreated(OBSQTDisplay *window); 21 void DisplayResized(); 22 23 public: 24 OBSQTDisplay(QWidget *parent = nullptr, 25 Qt::WindowFlags flags = Qt::WindowFlags()); ~OBSQTDisplay()26 ~OBSQTDisplay() { display = nullptr; } 27 28 virtual QPaintEngine *paintEngine() const override; 29 GetDisplay() const30 inline obs_display_t *GetDisplay() const { return display; } 31 32 uint32_t backgroundColor = GREY_COLOR_BACKGROUND; 33 34 QColor GetDisplayBackgroundColor() const; 35 void SetDisplayBackgroundColor(const QColor &color); 36 void UpdateDisplayBackgroundColor(); 37 void CreateDisplay(bool force = false); 38 }; 39