diff options
Diffstat (limited to 'src/render/framegraph/qrendersurfaceselector.cpp')
-rw-r--r-- | src/render/framegraph/qrendersurfaceselector.cpp | 22 |
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); |