summaryrefslogtreecommitdiffstats
path: root/src/render/framegraph/qrendersurfaceselector.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/render/framegraph/qrendersurfaceselector.cpp')
-rw-r--r--src/render/framegraph/qrendersurfaceselector.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/render/framegraph/qrendersurfaceselector.cpp b/src/render/framegraph/qrendersurfaceselector.cpp
index 8ff55d152..e218672e8 100644
--- a/src/render/framegraph/qrendersurfaceselector.cpp
+++ b/src/render/framegraph/qrendersurfaceselector.cpp
@@ -70,6 +70,14 @@ QSurface *QRenderSurfaceSelector::surface() const
return d->m_surface;
}
+QWindow *QRenderSurfaceSelector::window() const
+{
+ Q_D(const QRenderSurfaceSelector);
+ if (d->m_surface->surfaceClass() == QSurface::Window)
+ return static_cast<QWindow *>(d->m_surface);
+ return Q_NULLPTR;
+}
+
void QRenderSurfaceSelector::setSurface(QSurface *surface)
{
Q_D(QRenderSurfaceSelector);
@@ -80,6 +88,20 @@ void QRenderSurfaceSelector::setSurface(QSurface *surface)
emit surfaceChanged(surface);
}
+void QRenderSurfaceSelector::setWindow(QWindow *window)
+{
+ Q_D(QRenderSurfaceSelector);
+ QWindow *currentWindow = Q_NULLPTR;
+ if (d->m_surface && d->m_surface->surfaceClass() == QSurface::Window)
+ currentWindow = static_cast<QWindow *>(d->m_surface);
+ if (currentWindow == window)
+ return;
+
+ d->m_surface = window;
+ emit windowChanged(window);
+ emit surfaceChanged(d->m_surface);
+}
+
void QRenderSurfaceSelector::copy(const QNode *ref)
{
QFrameGraphNode::copy(ref);