From 710ad8ce1bd5d01ce048851d210ac3831ca17dde Mon Sep 17 00:00:00 2001 From: Andrew Knight Date: Wed, 3 Apr 2013 19:57:09 +0300 Subject: Upgrade ANGLE to DX11 Proto Upgrades ANGLE to dx11proto (dx11-MRT-support tag), which splits out support for DirectX9 & DirectX11. The DX9 codepath is used by default; CONFIG+=angle_d3d11 must be passed to the ANGLE project to build for DX11. Existing patches to ANGLE have been updated (or removed if no longer needed), and a patch has been added to make DX9/DX11 codepaths mutually exclusive. Change-Id: Ibe13befadb94f04883eca449d0ee1f0da955ff92 Reviewed-by: Oswald Buddenhagen Reviewed-by: Gunnar Sletta Reviewed-by: Friedemann Kleint Reviewed-by: Axel Waggershauser --- tools/configure/configureapp.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'tools') diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp index 9ad7e8a91d..dc11c0d0a2 100644 --- a/tools/configure/configureapp.cpp +++ b/tools/configure/configureapp.cpp @@ -566,6 +566,9 @@ void Configure::parseCmdLine() else if (configCmdLine.at(i) == "-angle") { dictionary[ "ANGLE" ] = "yes"; dictionary[ "ANGLE_FROM" ] = "commandline"; + } else if (configCmdLine.at(i) == "-angle-d3d11") { + dictionary[ "ANGLE" ] = "d3d11"; + dictionary[ "ANGLE_FROM" ] = "commandline"; } else if (configCmdLine.at(i) == "-no-angle") { dictionary[ "ANGLE" ] = "no"; dictionary[ "ANGLE_FROM" ] = "commandline"; @@ -1838,6 +1841,7 @@ bool Configure::displayHelp() } desc("ANGLE", "yes", "-angle", "Use the ANGLE implementation of OpenGL ES 2.0."); + desc("ANGLE", "d3d11", "-angle-d3d11", "Use the Direct3D 11-based ANGLE implementation of OpenGL ES 2.0."); desc("ANGLE", "no", "-no-angle", "Do not use ANGLE.\nSee http://code.google.com/p/angleproject/\n"); #endif // Qt\Windows only options go below here -------------------------------------------------------------------------------- @@ -2038,7 +2042,7 @@ bool Configure::checkAngleAvailability(QString *errorMessage /* = 0 */) const } } - const QString directXLibrary = QStringLiteral("d3d9.lib"); + const QString directXLibrary = dictionary["ANGLE"] == "d3d11" ? QStringLiteral("d3d11.lib") : QStringLiteral("d3d9.lib"); if (!findFile(directXLibrary)) { if (errorMessage) *errorMessage = QString::fromLatin1("The library '%1' could not be found.").arg(directXLibrary); @@ -2368,7 +2372,7 @@ bool Configure::verifyConfiguration() } // -angle given on command line, but Direct X cannot be found. - if (dictionary["ANGLE"] == "yes") { + if (dictionary["ANGLE"] != "no") { QString errorMessage; if (!checkAngleAvailability(&errorMessage)) { cout << "WARNING: ANGLE specified, but the DirectX SDK could not be detected:" << endl @@ -2505,8 +2509,11 @@ void Configure::generateOutputVars() qtConfig += "icu"; // ANGLE -------------------------------------------------------- - if (dictionary[ "ANGLE" ] == "yes") + if (dictionary[ "ANGLE" ] != "no") { qtConfig += "angle"; + if (dictionary[ "ANGLE" ] == "d3d11") + qmakeConfig += "angle_d3d11"; + } // Image formates ----------------------------------------------- if (dictionary[ "GIF" ] == "no") -- cgit v1.2.3