diff options
author | Laszlo Agocs <laszlo.agocs@qt.io> | 2016-07-13 16:51:12 +0200 |
---|---|---|
committer | Laszlo Agocs <laszlo.agocs@qt.io> | 2016-07-14 13:05:13 +0000 |
commit | 989592bf5970471a7ff32a7b740172c8688e2171 (patch) | |
tree | 4602d59ba38a5c0c4653a401c9549260ef67da17 /src/plugins/scenegraph/d3d12/qsgd3d12renderloop.cpp | |
parent | ff8c0b053cc2085670a3013c58191d4886fda5ca (diff) |
D3D12: Support translucent windows via DirectComposition
Change-Id: I1b63db07ade1ae43c67352b4d875d5a3e55105f2
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
Diffstat (limited to 'src/plugins/scenegraph/d3d12/qsgd3d12renderloop.cpp')
-rw-r--r-- | src/plugins/scenegraph/d3d12/qsgd3d12renderloop.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/plugins/scenegraph/d3d12/qsgd3d12renderloop.cpp b/src/plugins/scenegraph/d3d12/qsgd3d12renderloop.cpp index 551133e7bb..f17ed10c94 100644 --- a/src/plugins/scenegraph/d3d12/qsgd3d12renderloop.cpp +++ b/src/plugins/scenegraph/d3d12/qsgd3d12renderloop.cpp @@ -164,12 +164,13 @@ void QSGD3D12RenderLoop::exposeWindow(QQuickWindow *window) m_windows[window] = data; const int samples = window->format().samples(); + const bool alpha = window->format().alphaBufferSize() > 0; const qreal dpr = window->effectiveDevicePixelRatio(); if (Q_UNLIKELY(debug_loop())) - qDebug() << "initializing D3D12 engine" << window << window->size() << dpr << samples; + qDebug() << "initializing D3D12 engine" << window << window->size() << dpr << samples << alpha; - data.engine->attachToWindow(window->winId(), window->size(), dpr, samples); + data.engine->attachToWindow(window->winId(), window->size(), dpr, samples, alpha); } void QSGD3D12RenderLoop::obscureWindow(QQuickWindow *window) @@ -437,10 +438,11 @@ void QSGD3D12RenderLoop::renderWindow(QQuickWindow *window) if (needsWindow) { // Must only ever get here when there is no window or releaseResources() has been called. const int samples = window->format().samples(); + const bool alpha = window->format().alphaBufferSize() > 0; const qreal dpr = window->effectiveDevicePixelRatio(); if (Q_UNLIKELY(debug_loop())) - qDebug() << "sync - reinitializing D3D12 engine" << window << window->size() << dpr << samples; - data.engine->attachToWindow(window->winId(), window->size(), dpr, samples); + qDebug() << "sync - reinitializing D3D12 engine" << window << window->size() << dpr << samples << alpha; + data.engine->attachToWindow(window->winId(), window->size(), dpr, samples, alpha); } // Recover from device loss. |