aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/scenegraph/d3d12/qsgd3d12renderloop.cpp
diff options
context:
space:
mode:
authorLaszlo Agocs <laszlo.agocs@qt.io>2016-07-13 16:51:12 +0200
committerLaszlo Agocs <laszlo.agocs@qt.io>2016-07-14 13:05:13 +0000
commit989592bf5970471a7ff32a7b740172c8688e2171 (patch)
tree4602d59ba38a5c0c4653a401c9549260ef67da17 /src/plugins/scenegraph/d3d12/qsgd3d12renderloop.cpp
parentff8c0b053cc2085670a3013c58191d4886fda5ca (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.cpp10
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.