From aab39f5d5dc7d960715d5335a2427e89a6ce0f0d Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Fri, 7 May 2021 10:18:54 +0200 Subject: Enable rendercontrol_d3d11 example for MinGW Pick-to: 6.1 Fixes: QTBUG-92839 Change-Id: Id17417b7ae010566b7f78ea1a6b2cc8fe6abc5e3 Reviewed-by: Qt CI Bot Reviewed-by: Eirik Aavitsland Reviewed-by: Andy Nichols --- examples/quick/rendercontrol/CMakeLists.txt | 2 +- examples/quick/rendercontrol/rendercontrol.pro | 2 +- .../quick/rendercontrol/rendercontrol_d3d11/CMakeLists.txt | 1 + examples/quick/rendercontrol/rendercontrol_d3d11/engine.cpp | 10 +--------- examples/quick/rendercontrol/rendercontrol_d3d11/engine.h | 4 ++-- .../rendercontrol/rendercontrol_d3d11/rendercontrol_d3d11.pro | 2 +- examples/quick/rendercontrol/rendercontrol_d3d11/window.cpp | 2 +- 7 files changed, 8 insertions(+), 15 deletions(-) (limited to 'examples/quick') diff --git a/examples/quick/rendercontrol/CMakeLists.txt b/examples/quick/rendercontrol/CMakeLists.txt index 53924b33ce..db19a3fc79 100644 --- a/examples/quick/rendercontrol/CMakeLists.txt +++ b/examples/quick/rendercontrol/CMakeLists.txt @@ -1,6 +1,6 @@ # Generated from rendercontrol.pro. add_subdirectory(rendercontrol_opengl) -if(WIN32 AND NOT MINGW) +if(WIN32) add_subdirectory(rendercontrol_d3d11) endif() diff --git a/examples/quick/rendercontrol/rendercontrol.pro b/examples/quick/rendercontrol/rendercontrol.pro index 9922e1e077..d49be63c50 100644 --- a/examples/quick/rendercontrol/rendercontrol.pro +++ b/examples/quick/rendercontrol/rendercontrol.pro @@ -3,7 +3,7 @@ TEMPLATE = subdirs SUBDIRS += \ rendercontrol_opengl -win32:!mingw { +win32 { SUBDIRS += \ rendercontrol_d3d11 } diff --git a/examples/quick/rendercontrol/rendercontrol_d3d11/CMakeLists.txt b/examples/quick/rendercontrol/rendercontrol_d3d11/CMakeLists.txt index 949c609af1..afb1149fc6 100644 --- a/examples/quick/rendercontrol/rendercontrol_d3d11/CMakeLists.txt +++ b/examples/quick/rendercontrol/rendercontrol_d3d11/CMakeLists.txt @@ -37,6 +37,7 @@ target_link_libraries(rendercontrol_d3d11 PUBLIC d3d11 dxgi dxguid + uuid ) diff --git a/examples/quick/rendercontrol/rendercontrol_d3d11/engine.cpp b/examples/quick/rendercontrol/rendercontrol_d3d11/engine.cpp index 99f65f6200..9dd65696d0 100644 --- a/examples/quick/rendercontrol/rendercontrol_d3d11/engine.cpp +++ b/examples/quick/rendercontrol/rendercontrol_d3d11/engine.cpp @@ -85,7 +85,6 @@ bool Engine::create() return false; } - ID3D11DeviceContext *ctx = nullptr; uint flags = 0; #ifdef ENABLE_DEBUG_LAYER flags |= D3D11_CREATE_DEVICE_DEBUG; @@ -93,19 +92,12 @@ bool Engine::create() // use the default hardware adapter HRESULT hr = D3D11CreateDevice(nullptr, D3D_DRIVER_TYPE_HARDWARE, nullptr, flags, nullptr, 0, D3D11_SDK_VERSION, - &m_device, &m_featureLevel, &ctx); + &m_device, &m_featureLevel, &m_context); if (FAILED(hr)) { qWarning("Failed to create D3D11 device and context: %s", qPrintable(comErrorMessage(hr))); return false; } - if (SUCCEEDED(ctx->QueryInterface(IID_ID3D11DeviceContext1, reinterpret_cast(&m_context)))) { - ctx->Release(); - } else { - qWarning("ID3D11DeviceContext1 not supported"); - return false; - } - return true; } diff --git a/examples/quick/rendercontrol/rendercontrol_d3d11/engine.h b/examples/quick/rendercontrol/rendercontrol_d3d11/engine.h index 8b1b3ebf39..fdfee578ed 100644 --- a/examples/quick/rendercontrol/rendercontrol_d3d11/engine.h +++ b/examples/quick/rendercontrol/rendercontrol_d3d11/engine.h @@ -81,14 +81,14 @@ public: Swapchain createSwapchain(QWindow *window); void resizeSwapchain(Swapchain *sc, QWindow *window); ID3D11Device *device() { return m_device; } - ID3D11DeviceContext1 *context() { return m_context; } + ID3D11DeviceContext *context() { return m_context; } private: void createSwapchainBuffers(Swapchain *sc); IDXGIFactory1 *m_dxgiFactory = nullptr; ID3D11Device *m_device = nullptr; - ID3D11DeviceContext1 *m_context = nullptr; + ID3D11DeviceContext *m_context = nullptr; D3D_FEATURE_LEVEL m_featureLevel; }; diff --git a/examples/quick/rendercontrol/rendercontrol_d3d11/rendercontrol_d3d11.pro b/examples/quick/rendercontrol/rendercontrol_d3d11/rendercontrol_d3d11.pro index 29cee7580b..0a65dec88a 100644 --- a/examples/quick/rendercontrol/rendercontrol_d3d11/rendercontrol_d3d11.pro +++ b/examples/quick/rendercontrol/rendercontrol_d3d11/rendercontrol_d3d11.pro @@ -13,7 +13,7 @@ HEADERS += \ RESOURCES += rendercontrol.qrc -LIBS += -ld3d11 -ldxgi -ldxguid +LIBS += -ld3d11 -ldxgi -ldxguid -luuid target.path = $$[QT_INSTALL_EXAMPLES]/quick/rendercontrol/rendercontrol_d3d11 INSTALLS += target diff --git a/examples/quick/rendercontrol/rendercontrol_d3d11/window.cpp b/examples/quick/rendercontrol/rendercontrol_d3d11/window.cpp index 918698effe..478ce88344 100644 --- a/examples/quick/rendercontrol/rendercontrol_d3d11/window.cpp +++ b/examples/quick/rendercontrol/rendercontrol_d3d11/window.cpp @@ -316,7 +316,7 @@ void Window::render() updateQuick(); // now onto our own drawing, targeting the window - ID3D11DeviceContext1 *ctx = m_engine->context(); + ID3D11DeviceContext *ctx = m_engine->context(); const QSize viewSize = m_swapchain.pixelSize; const float clearColor[] = { 0.4f, 0.7f, 0.0f, 1.0f }; -- cgit v1.2.3