diff options
Diffstat (limited to 'src/angle/patches/0003-ANGLE-Fix-compilation-on-MSVC2010-2012.patch')
-rw-r--r-- | src/angle/patches/0003-ANGLE-Fix-compilation-on-MSVC2010-2012.patch | 363 |
1 files changed, 363 insertions, 0 deletions
diff --git a/src/angle/patches/0003-ANGLE-Fix-compilation-on-MSVC2010-2012.patch b/src/angle/patches/0003-ANGLE-Fix-compilation-on-MSVC2010-2012.patch new file mode 100644 index 0000000000..62300e1e9b --- /dev/null +++ b/src/angle/patches/0003-ANGLE-Fix-compilation-on-MSVC2010-2012.patch @@ -0,0 +1,363 @@ +From 11304df7f66d0d8bc5dfdc960b86b5cac0f18313 Mon Sep 17 00:00:00 2001 +From: Andrew Knight <andrew.knight@intopalo.com> +Date: Wed, 8 Apr 2015 17:09:47 +0300 +Subject: [PATCH 3/5] ANGLE: Fix compilation on MSVC2010/2012 + +Allow the D3D11 renderer to build with the June 2010 DirectX SDK. +This mainly addresses C++11 language incompatibilities, such as replacing +range-based for loops with iterators. + +Change-Id: I2343acedab16845d6a0d4a53cf3145f583efc4a7 +--- + src/3rdparty/angle/src/common/angleutils.h | 2 ++ + src/3rdparty/angle/src/common/platform.h | 9 +++++++ + .../angle/src/compiler/translator/OutputHLSL.cpp | 31 +++++++++++++--------- + src/3rdparty/angle/src/libANGLE/Context.cpp | 4 +-- + src/3rdparty/angle/src/libANGLE/Error.h | 1 + + src/3rdparty/angle/src/libANGLE/Framebuffer.cpp | 23 ++++++++-------- + src/3rdparty/angle/src/libANGLE/State.cpp | 3 ++- + src/3rdparty/angle/src/libANGLE/Texture.cpp | 2 +- + .../angle/src/libANGLE/renderer/d3d/DisplayD3D.cpp | 6 +++-- + .../src/libANGLE/renderer/d3d/RendererD3D.cpp | 4 +-- + .../libANGLE/renderer/d3d/d3d11/Framebuffer11.cpp | 3 ++- + 11 files changed, 55 insertions(+), 33 deletions(-) + +diff --git a/src/3rdparty/angle/src/common/angleutils.h b/src/3rdparty/angle/src/common/angleutils.h +index f3d2019..4cf84a3 100644 +--- a/src/3rdparty/angle/src/common/angleutils.h ++++ b/src/3rdparty/angle/src/common/angleutils.h +@@ -25,12 +25,14 @@ namespace angle + + class NonCopyable + { ++#if !defined(_MSC_VER) || (_MSC_VER >= 1800) + public: + NonCopyable() = default; + ~NonCopyable() = default; + protected: + NonCopyable(const NonCopyable&) = delete; + void operator=(const NonCopyable&) = delete; ++#endif + }; + + } +diff --git a/src/3rdparty/angle/src/common/platform.h b/src/3rdparty/angle/src/common/platform.h +index be4cb94..3a2aa91 100644 +--- a/src/3rdparty/angle/src/common/platform.h ++++ b/src/3rdparty/angle/src/common/platform.h +@@ -53,7 +53,9 @@ + + # if defined(ANGLE_ENABLE_D3D9) + # include <d3d9.h> ++# if !defined(ANGLE_TRANSLATOR_IMPLEMENTATION) + # include <d3dcompiler.h> ++# endif + # endif + + # if defined(ANGLE_ENABLE_D3D11) +@@ -70,7 +72,9 @@ + # include <d3d11_1.h> + # include <dxgi1_2.h> + # endif ++# if !defined(ANGLE_TRANSLATOR_IMPLEMENTATION) + # include <d3dcompiler.h> ++# endif + # endif + + # if defined(ANGLE_ENABLE_WINDOWS_STORE) +@@ -83,6 +87,11 @@ + # endif + # endif + ++# if defined(_MSC_VER) && (_MSC_VER <= 1600) ++# define final ++# define override ++# endif ++ + # undef near + # undef far + #endif +diff --git a/src/3rdparty/angle/src/compiler/translator/OutputHLSL.cpp b/src/3rdparty/angle/src/compiler/translator/OutputHLSL.cpp +index c3240f5..94225b8 100644 +--- a/src/3rdparty/angle/src/compiler/translator/OutputHLSL.cpp ++++ b/src/3rdparty/angle/src/compiler/translator/OutputHLSL.cpp +@@ -158,13 +158,13 @@ OutputHLSL::~OutputHLSL() + SafeDelete(mUnfoldShortCircuit); + SafeDelete(mStructureHLSL); + SafeDelete(mUniformHLSL); +- for (auto &eqFunction : mStructEqualityFunctions) ++ for (auto it = mStructEqualityFunctions.begin(); it != mStructEqualityFunctions.end(); ++it) + { +- SafeDelete(eqFunction); ++ SafeDelete(*it); + } +- for (auto &eqFunction : mArrayEqualityFunctions) ++ for (auto it = mArrayEqualityFunctions.begin(); it != mArrayEqualityFunctions.end(); ++it) + { +- SafeDelete(eqFunction); ++ SafeDelete(*it); + } + } + +@@ -340,17 +340,17 @@ void OutputHLSL::header(const BuiltInFunctionEmulator *builtInFunctionEmulator) + if (!mEqualityFunctions.empty()) + { + out << "\n// Equality functions\n\n"; +- for (const auto &eqFunction : mEqualityFunctions) ++ for (auto it = mEqualityFunctions.cbegin(); it != mEqualityFunctions.cend(); ++it) + { +- out << eqFunction->functionDefinition << "\n"; ++ out << (*it)->functionDefinition << "\n"; + } + } + if (!mArrayAssignmentFunctions.empty()) + { + out << "\n// Assignment functions\n\n"; +- for (const auto &assignmentFunction : mArrayAssignmentFunctions) ++ for (auto it = mArrayAssignmentFunctions.cbegin(); it != mArrayAssignmentFunctions.cend(); ++it) + { +- out << assignmentFunction.functionDefinition << "\n"; ++ out << it->functionDefinition << "\n"; + } + } + +@@ -1858,8 +1858,9 @@ bool OutputHLSL::visitAggregate(Visit visit, TIntermAggregate *node) + + if (!variable->getAsSymbolNode() || variable->getAsSymbolNode()->getSymbol() != "") // Variable declaration + { +- for (const auto &seqElement : *sequence) ++ for (auto it = sequence->cbegin(); it != sequence->cend(); ++it) + { ++ const auto &seqElement = *it; + if (isSingleStatement(seqElement)) + { + mUnfoldShortCircuit->traverse(seqElement); +@@ -2941,8 +2942,9 @@ void OutputHLSL::writeDeferredGlobalInitializers(TInfoSinkBase &out) + << "void initializeDeferredGlobals()\n" + << "{\n"; + +- for (const auto &deferredGlobal : mDeferredGlobalInitializers) ++ for (auto it = mDeferredGlobalInitializers.cbegin(); it != mDeferredGlobalInitializers.cend(); ++it) + { ++ const auto &deferredGlobal = *it; + TIntermSymbol *symbol = deferredGlobal.first; + TIntermTyped *expression = deferredGlobal.second; + ASSERT(symbol); +@@ -2967,8 +2969,9 @@ TString OutputHLSL::addStructEqualityFunction(const TStructure &structure) + { + const TFieldList &fields = structure.fields(); + +- for (const auto &eqFunction : mStructEqualityFunctions) ++ for (auto it = mStructEqualityFunctions.cbegin(); it != mStructEqualityFunctions.cend(); ++it) + { ++ auto *eqFunction = *it; + if (eqFunction->structure == &structure) + { + return eqFunction->functionName; +@@ -3021,8 +3024,9 @@ TString OutputHLSL::addStructEqualityFunction(const TStructure &structure) + + TString OutputHLSL::addArrayEqualityFunction(const TType& type) + { +- for (const auto &eqFunction : mArrayEqualityFunctions) ++ for (auto it = mArrayEqualityFunctions.cbegin(); it != mArrayEqualityFunctions.cend(); ++it) + { ++ const auto &eqFunction = *it; + if (eqFunction->type == type) + { + return eqFunction->functionName; +@@ -3072,8 +3076,9 @@ TString OutputHLSL::addArrayEqualityFunction(const TType& type) + + TString OutputHLSL::addArrayAssignmentFunction(const TType& type) + { +- for (const auto &assignFunction : mArrayAssignmentFunctions) ++ for (auto it = mArrayAssignmentFunctions.cbegin(); it != mArrayAssignmentFunctions.cend(); ++it) + { ++ const auto &assignFunction = *it; + if (assignFunction.type == type) + { + return assignFunction.functionName; +diff --git a/src/3rdparty/angle/src/libANGLE/Context.cpp b/src/3rdparty/angle/src/libANGLE/Context.cpp +index 5ea039f..1da5fda 100644 +--- a/src/3rdparty/angle/src/libANGLE/Context.cpp ++++ b/src/3rdparty/angle/src/libANGLE/Context.cpp +@@ -158,9 +158,9 @@ Context::~Context() + deleteTransformFeedback(mTransformFeedbackMap.begin()->first); + } + +- for (auto &zeroTexture : mZeroTextures) ++ for (auto it = mZeroTextures.begin(); it != mZeroTextures.end(); ++it) + { +- zeroTexture.second.set(NULL); ++ it->second.set(NULL); + } + mZeroTextures.clear(); + +diff --git a/src/3rdparty/angle/src/libANGLE/Error.h b/src/3rdparty/angle/src/libANGLE/Error.h +index 5812943..896b777 100644 +--- a/src/3rdparty/angle/src/libANGLE/Error.h ++++ b/src/3rdparty/angle/src/libANGLE/Error.h +@@ -10,6 +10,7 @@ + #define LIBANGLE_ERROR_H_ + + #include "angle_gl.h" ++#include "common/platform.h" + #include <EGL/egl.h> + + #include <string> +diff --git a/src/3rdparty/angle/src/libANGLE/Framebuffer.cpp b/src/3rdparty/angle/src/libANGLE/Framebuffer.cpp +index 5fa7513..b1dd4a1 100644 +--- a/src/3rdparty/angle/src/libANGLE/Framebuffer.cpp ++++ b/src/3rdparty/angle/src/libANGLE/Framebuffer.cpp +@@ -48,9 +48,9 @@ Framebuffer::Data::Data(const Caps &caps) + + Framebuffer::Data::~Data() + { +- for (auto &colorAttachment : mColorAttachments) ++ for (auto it = mColorAttachments.begin(); it != mColorAttachments.end(); ++it) + { +- SafeDelete(colorAttachment); ++ SafeDelete(*it); + } + SafeDelete(mDepthAttachment); + SafeDelete(mStencilAttachment); +@@ -66,11 +66,11 @@ FramebufferAttachment *Framebuffer::Data::getReadAttachment() const + + FramebufferAttachment *Framebuffer::Data::getFirstColorAttachment() const + { +- for (FramebufferAttachment *colorAttachment : mColorAttachments) ++ for (auto it = mColorAttachments.cbegin(); it != mColorAttachments.cend(); ++it) + { +- if (colorAttachment != nullptr) ++ if (*it != nullptr) + { +- return colorAttachment; ++ return *it; + } + } + +@@ -115,9 +115,9 @@ void Framebuffer::detachRenderbuffer(GLuint renderbufferId) + + void Framebuffer::detachResourceById(GLenum resourceType, GLuint resourceId) + { +- for (auto &colorAttachment : mData.mColorAttachments) ++ for (auto it = mData.mColorAttachments.begin(); it != mData.mColorAttachments.end(); ++it) + { +- DeleteMatchingAttachment(colorAttachment, resourceType, resourceId); ++ DeleteMatchingAttachment(*it, resourceType, resourceId); + } + + DeleteMatchingAttachment(mData.mDepthAttachment, resourceType, resourceId); +@@ -278,8 +278,9 @@ GLenum Framebuffer::checkStatus(const gl::Data &data) const + int samples = -1; + bool missingAttachment = true; + +- for (const FramebufferAttachment *colorAttachment : mData.mColorAttachments) ++ for (auto it = mData.mColorAttachments.cbegin(); it != mData.mColorAttachments.cend(); ++it) + { ++ const auto &colorAttachment = *it; + if (colorAttachment != nullptr) + { + if (colorAttachment->getWidth() == 0 || colorAttachment->getHeight() == 0) +@@ -533,11 +534,11 @@ int Framebuffer::getSamples(const gl::Data &data) const + { + // for a complete framebuffer, all attachments must have the same sample count + // in this case return the first nonzero sample size +- for (const FramebufferAttachment *colorAttachment : mData.mColorAttachments) ++ for (auto it = mData.mColorAttachments.cbegin(); it != mData.mColorAttachments.cend(); ++it) + { +- if (colorAttachment != nullptr) ++ if (*it != nullptr) + { +- return colorAttachment->getSamples(); ++ return (*it)->getSamples(); + } + } + } +diff --git a/src/3rdparty/angle/src/libANGLE/State.cpp b/src/3rdparty/angle/src/libANGLE/State.cpp +index 15274c6..4c044d2 100644 +--- a/src/3rdparty/angle/src/libANGLE/State.cpp ++++ b/src/3rdparty/angle/src/libANGLE/State.cpp +@@ -633,8 +633,9 @@ void State::detachTexture(const TextureMap &zeroTextures, GLuint texture) + + void State::initializeZeroTextures(const TextureMap &zeroTextures) + { +- for (const auto &zeroTexture : zeroTextures) ++ for (auto it = zeroTextures.cbegin(); it != zeroTextures.cend(); ++it) + { ++ const auto &zeroTexture = *it; + auto &samplerTextureArray = mSamplerTextures[zeroTexture.first]; + + for (size_t textureUnit = 0; textureUnit < samplerTextureArray.size(); ++textureUnit) +diff --git a/src/3rdparty/angle/src/libANGLE/Texture.cpp b/src/3rdparty/angle/src/libANGLE/Texture.cpp +index 2d68bec..cd4584f 100644 +--- a/src/3rdparty/angle/src/libANGLE/Texture.cpp ++++ b/src/3rdparty/angle/src/libANGLE/Texture.cpp +@@ -316,7 +316,7 @@ void Texture::setImageDescChain(size_t levels, Extents baseSize, GLenum sizedInt + } + + Texture::ImageDesc::ImageDesc() +- : ImageDesc(Extents(0, 0, 0), GL_NONE) ++ : size(0, 0, 0), internalFormat(GL_NONE) + { + } + +diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/DisplayD3D.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/DisplayD3D.cpp +index db5f445..add5d62 100644 +--- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/DisplayD3D.cpp ++++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/DisplayD3D.cpp +@@ -276,8 +276,9 @@ bool DisplayD3D::testDeviceLost() + egl::Error DisplayD3D::restoreLostDevice() + { + // Release surface resources to make the Reset() succeed +- for (auto &surface : mSurfaceSet) ++ for (auto it = mSurfaceSet.cbegin(); it != mSurfaceSet.cend(); ++it) + { ++ const auto &surface = *it; + if (surface->getBoundTexture()) + { + surface->releaseTexImage(EGL_BACK_BUFFER); +@@ -292,8 +293,9 @@ egl::Error DisplayD3D::restoreLostDevice() + } + + // Restore any surfaces that may have been lost +- for (const auto &surface : mSurfaceSet) ++ for (auto it = mSurfaceSet.cbegin(); it != mSurfaceSet.cend(); ++it) + { ++ const auto &surface = *it; + SurfaceD3D *surfaceD3D = GetImplAs<SurfaceD3D>(surface); + + egl::Error error = surfaceD3D->resetSwapChain(); +diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/RendererD3D.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/RendererD3D.cpp +index ff9600e..2ce0ce5 100644 +--- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/RendererD3D.cpp ++++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/RendererD3D.cpp +@@ -47,9 +47,9 @@ RendererD3D::~RendererD3D() + void RendererD3D::cleanup() + { + mScratchMemoryBuffer.resize(0); +- for (auto &incompleteTexture : mIncompleteTextures) ++ for (auto it = mIncompleteTextures.begin(); it != mIncompleteTextures.end(); ++it) + { +- incompleteTexture.second.set(NULL); ++ it->second.set(NULL); + } + mIncompleteTextures.clear(); + } +diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Framebuffer11.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Framebuffer11.cpp +index ab2a902..da01f32 100644 +--- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Framebuffer11.cpp ++++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Framebuffer11.cpp +@@ -64,8 +64,9 @@ static gl::Error InvalidateAttachmentSwizzles(const gl::FramebufferAttachment *a + + gl::Error Framebuffer11::invalidateSwizzles() const + { +- for (gl::FramebufferAttachment *colorAttachment : mData.mColorAttachments) ++ for (auto it = mData.mColorAttachments.cbegin(); it != mData.mColorAttachments.cend(); ++it) + { ++ gl::FramebufferAttachment *colorAttachment = *it; + gl::Error error = InvalidateAttachmentSwizzles(colorAttachment); + if (error.isError()) + { +-- +2.1.4 + |