From 7afd2ede79a5e37cfcd5e7453c641fdabfe882e8 Mon Sep 17 00:00:00 2001 From: Andrew Knight Date: Fri, 21 Feb 2014 15:06:18 +0200 Subject: WinRT: Fix backing store for latest ANGLE Bump the ANGLE version and remove the extra info not required by universal binaries. Change-Id: I59983d28e1936fb42aa2def4ca785219b0c38996 Reviewed-by: Oliver Wolff --- src/plugins/platforms/winrt/qwinrtbackingstore.cpp | 30 +++------------------- src/plugins/platforms/winrt/winrt.pro | 2 +- 2 files changed, 4 insertions(+), 28 deletions(-) (limited to 'src/plugins') diff --git a/src/plugins/platforms/winrt/qwinrtbackingstore.cpp b/src/plugins/platforms/winrt/qwinrtbackingstore.cpp index b219548788..10136dbead 100644 --- a/src/plugins/platforms/winrt/qwinrtbackingstore.cpp +++ b/src/plugins/platforms/winrt/qwinrtbackingstore.cpp @@ -49,8 +49,6 @@ #include #include -#include - // Generated shader headers #include "blitps.h" #include "blitvs.h" @@ -60,10 +58,7 @@ namespace { // Utility namespace for writing out an ANGLE-compatible binary blob // Must match packaged ANGLE enum : quint32 { AngleMajorVersion = 1, - AngleMinorVersion = 2, - AngleBuildRevision = 2446, - AngleVersion = ((AngleMajorVersion << 24) | (AngleMinorVersion << 16) | AngleBuildRevision), - AngleOptimizationLevel = (1 << 14) + AngleMinorVersion = 3 }; struct ShaderString @@ -145,8 +140,8 @@ static const QByteArray createAngleBinary( stream.setByteOrder(QDataStream::LittleEndian); stream << quint32(GL_PROGRAM_BINARY_ANGLE) - << quint32(AngleVersion) - << quint32(AngleOptimizationLevel); + << qint32(AngleMajorVersion) + << qint32(AngleMinorVersion); // Vertex attributes for (int i = 0; i < 16; ++i) { @@ -190,25 +185,6 @@ static const QByteArray createAngleBinary( << quint32(vertexShader.size()) << quint32(geometryShader.size()); - // ANGLE requires that we query the adapter for its LUID. Later on, it may be useful - // for checking feature level support, picking the best adapter on the system, etc. - IDXGIFactory1 *dxgiFactory; - if (FAILED(CreateDXGIFactory1(IID_PPV_ARGS(&dxgiFactory)))) { - qCritical("QWinRTBackingStore: failed to create DXGI factory."); - return QByteArray(); - } - IDXGIAdapter *dxgiAdapter; - if (FAILED(dxgiFactory->EnumAdapters(0, &dxgiAdapter))) { - qCritical("QWinRTBackingStore:: failed to enumerate adapter."); - dxgiFactory->Release(); - return QByteArray(); - } - DXGI_ADAPTER_DESC desc; - dxgiAdapter->GetDesc(&desc); - dxgiAdapter->Release(); - QByteArray guid(sizeof(GUID), '\0'); - memcpy(guid.data(), &desc.AdapterLuid, sizeof(LUID)); - stream.writeRawData(guid.constData(), guid.size()); stream.writeRawData(pixelShader.constData(), pixelShader.size()); stream.writeRawData(vertexShader.constData(), vertexShader.size()); if (!geometryShader.isEmpty()) diff --git a/src/plugins/platforms/winrt/winrt.pro b/src/plugins/platforms/winrt/winrt.pro index 3bd688c069..6e3cfb1d20 100644 --- a/src/plugins/platforms/winrt/winrt.pro +++ b/src/plugins/platforms/winrt/winrt.pro @@ -9,7 +9,7 @@ QT += core-private gui-private platformsupport-private DEFINES *= QT_NO_CAST_FROM_ASCII __WRL_NO_DEFAULT_LIB__ GL_GLEXT_PROTOTYPES -LIBS += $$QMAKE_LIBS_CORE -ldxgi +LIBS += $$QMAKE_LIBS_CORE SOURCES = \ main.cpp \ -- cgit v1.2.3