34 lines
705 B
C++
34 lines
705 B
C++
#include "Qt_Presentation_Sink.h"
|
|
#include <QMetaObject>
|
|
#include <QWidget>
|
|
|
|
namespace renderive {
|
|
|
|
struct Qt_Presentation_Sink::Private {
|
|
QPointer<QWidget> widget;
|
|
};
|
|
|
|
Qt_Presentation_Sink::Qt_Presentation_Sink(QWidget* widget)
|
|
: d(std::make_unique<Private>()) {
|
|
d->widget = widget;
|
|
}
|
|
|
|
Qt_Presentation_Sink::~Qt_Presentation_Sink() = default;
|
|
|
|
void Qt_Presentation_Sink::request_present(Rect dirty_rect) {
|
|
(void)dirty_rect;
|
|
if (!d->widget)
|
|
return;
|
|
|
|
QMetaObject::invokeMethod(
|
|
d->widget.data(),
|
|
[w = QPointer<QWidget>(d->widget)]() {
|
|
if (w)
|
|
w->update();
|
|
},
|
|
Qt::QueuedConnection
|
|
);
|
|
}
|
|
|
|
} // namespace renderive
|