summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/wasm/qwasmcompositor.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/wasm/qwasmcompositor.h')
-rw-r--r--src/plugins/platforms/wasm/qwasmcompositor.h19
1 files changed, 11 insertions, 8 deletions
diff --git a/src/plugins/platforms/wasm/qwasmcompositor.h b/src/plugins/platforms/wasm/qwasmcompositor.h
index b579059344e..1a51016c038 100644
--- a/src/plugins/platforms/wasm/qwasmcompositor.h
+++ b/src/plugins/platforms/wasm/qwasmcompositor.h
@@ -110,25 +110,24 @@ public:
void lower(QWasmWindow *window);
void setParent(QWasmWindow *window, QWasmWindow *parent);
- void flush(QWasmWindow *surface, const QRegion &region);
-
int windowCount() const;
- void redrawWindowContent();
- void requestRedraw();
-
QWindow *windowAt(QPoint globalPoint, int padding = 0) const;
QWindow *keyWindow() const;
- bool event(QEvent *event);
-
static QWasmTitleBarOptions makeTitleBarOptions(const QWasmWindow *window);
static QRect titlebarRect(QWasmTitleBarOptions tb, QWasmCompositor::SubControls subcontrol);
QWasmScreen *screen();
QOpenGLContext *context();
-private slots:
+ enum UpdateRequestDeliveryType { ExposeEventDelivery, UpdateRequestDelivery };
+ void requestUpdateAllWindows();
+ void requestUpdateWindow(QWasmWindow *window, UpdateRequestDeliveryType updateType = ExposeEventDelivery);
+ void requestUpdate();
+ void deliverUpdateRequests();
+ void deliverUpdateRequest(QWasmWindow *window, UpdateRequestDeliveryType updateType);
+ void handleBackingStoreFlush();
void frame();
private:
@@ -152,6 +151,10 @@ private:
bool m_isEnabled;
QSize m_targetSize;
qreal m_targetDevicePixelRatio;
+ QMap<QWasmWindow *, UpdateRequestDeliveryType> m_requestUpdateWindows;
+ bool m_requestUpdateAllWindows = false;
+ int m_requestAnimationFrameId = -1;
+ bool m_inDeliverUpdateRequest = false;
static QPalette makeWindowPalette();