diff -r 000000000000 -r 6474c204b198 gfx/angle/angle-build-mingw.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gfx/angle/angle-build-mingw.patch Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,201 @@ +From: Jacek Caban +Bug 945292 - Fixed ANGLE compilation on mingw. + + +diff --git a/gfx/angle/src/common/debug.h b/gfx/angle/src/common/debug.h +index 23ee26d..060b727 100644 +--- a/gfx/angle/src/common/debug.h ++++ b/gfx/angle/src/common/debug.h +@@ -94,18 +94,20 @@ namespace gl + #define UNREACHABLE() do { \ + ERR("\t! Unreachable reached: %s(%d)\n", __FUNCTION__, __LINE__); \ + assert(false); \ + } while(0) + #else + #define UNREACHABLE() ERR("\t! Unreachable reached: %s(%d)\n", __FUNCTION__, __LINE__) + #endif + +-// A macro that determines whether an object has a given runtime type. +-#if !defined(NDEBUG) && (!defined(_MSC_VER) || defined(_CPPRTTI)) ++// A macro that determines whether an object has a given runtime type. MSVC uses _CPPRTTI. ++// GCC uses __GXX_RTTI, but the macro was introduced in version 4.3, so we assume that all older ++// versions support RTTI. ++#if !defined(NDEBUG) && (!defined(_MSC_VER) || defined(_CPPRTTI)) && (!defined(__GNUC__) || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 3) || defined(__GXX_RTTI)) + #define HAS_DYNAMIC_TYPE(type, obj) (dynamic_cast(obj) != NULL) + #else + #define HAS_DYNAMIC_TYPE(type, obj) true + #endif + + // A macro functioning as a compile-time assert to validate constant conditions + #define META_ASSERT(condition) typedef int COMPILE_TIME_ASSERT_##__LINE__[static_cast(condition)?1:-1] + +diff --git a/gfx/angle/src/libGLESv2/Constants.h b/gfx/angle/src/libGLESv2/Constants.h +new file mode 100644 +index 0000000..9f24d66 +--- /dev/null ++++ b/gfx/angle/src/libGLESv2/Constants.h +@@ -0,0 +1,34 @@ ++// ++// Copyright (c) 2013 The ANGLE Project Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style license that can be ++// found in the LICENSE file. ++// ++ ++// Contants.h: Defines some implementation specific and gl constants ++ ++#ifndef LIBGLESV2_CONSTANTS_H_ ++#define LIBGLESV2_CONSTANTS_H_ ++ ++namespace gl ++{ ++ ++enum ++{ ++ MAX_VERTEX_ATTRIBS = 16, ++ MAX_TEXTURE_IMAGE_UNITS = 16, ++ ++ // Implementation upper limits, real maximums depend on the hardware ++ IMPLEMENTATION_MAX_VERTEX_TEXTURE_IMAGE_UNITS = 16, ++ IMPLEMENTATION_MAX_COMBINED_TEXTURE_IMAGE_UNITS = MAX_TEXTURE_IMAGE_UNITS + IMPLEMENTATION_MAX_VERTEX_TEXTURE_IMAGE_UNITS, ++ ++ IMPLEMENTATION_MAX_VARYING_VECTORS = 32, ++ IMPLEMENTATION_MAX_DRAW_BUFFERS = 8 ++}; ++ ++const float ALIASED_LINE_WIDTH_RANGE_MIN = 1.0f; ++const float ALIASED_LINE_WIDTH_RANGE_MAX = 1.0f; ++const float ALIASED_POINT_SIZE_RANGE_MIN = 1.0f; ++ ++} ++ ++#endif // LIBGLESV2_CONSTANTS_H_ +diff --git a/gfx/angle/src/libGLESv2/Framebuffer.h b/gfx/angle/src/libGLESv2/Framebuffer.h +index b54e008..50bfd4f 100644 +--- a/gfx/angle/src/libGLESv2/Framebuffer.h ++++ b/gfx/angle/src/libGLESv2/Framebuffer.h +@@ -7,17 +7,17 @@ + // Framebuffer.h: Defines the gl::Framebuffer class. Implements GL framebuffer + // objects and related functionality. [OpenGL ES 2.0.24] section 4.4 page 105. + + #ifndef LIBGLESV2_FRAMEBUFFER_H_ + #define LIBGLESV2_FRAMEBUFFER_H_ + + #include "common/angleutils.h" + #include "common/RefCountObject.h" +-#include "constants.h" ++#include "Constants.h" + + namespace rx + { + class Renderer; + } + + namespace gl + { +diff --git a/gfx/angle/src/libGLESv2/constants.h b/gfx/angle/src/libGLESv2/constants.h +deleted file mode 100644 +index 9f24d66..0000000 +--- a/gfx/angle/src/libGLESv2/constants.h ++++ /dev/null +@@ -1,34 +0,0 @@ +-// +-// Copyright (c) 2013 The ANGLE Project Authors. All rights reserved. +-// Use of this source code is governed by a BSD-style license that can be +-// found in the LICENSE file. +-// +- +-// Contants.h: Defines some implementation specific and gl constants +- +-#ifndef LIBGLESV2_CONSTANTS_H_ +-#define LIBGLESV2_CONSTANTS_H_ +- +-namespace gl +-{ +- +-enum +-{ +- MAX_VERTEX_ATTRIBS = 16, +- MAX_TEXTURE_IMAGE_UNITS = 16, +- +- // Implementation upper limits, real maximums depend on the hardware +- IMPLEMENTATION_MAX_VERTEX_TEXTURE_IMAGE_UNITS = 16, +- IMPLEMENTATION_MAX_COMBINED_TEXTURE_IMAGE_UNITS = MAX_TEXTURE_IMAGE_UNITS + IMPLEMENTATION_MAX_VERTEX_TEXTURE_IMAGE_UNITS, +- +- IMPLEMENTATION_MAX_VARYING_VECTORS = 32, +- IMPLEMENTATION_MAX_DRAW_BUFFERS = 8 +-}; +- +-const float ALIASED_LINE_WIDTH_RANGE_MIN = 1.0f; +-const float ALIASED_LINE_WIDTH_RANGE_MAX = 1.0f; +-const float ALIASED_POINT_SIZE_RANGE_MIN = 1.0f; +- +-} +- +-#endif // LIBGLESV2_CONSTANTS_H_ +diff --git a/gfx/angle/src/libGLESv2/precompiled.h b/gfx/angle/src/libGLESv2/precompiled.h +index f62e71b..58ad181 100644 +--- a/gfx/angle/src/libGLESv2/precompiled.h ++++ b/gfx/angle/src/libGLESv2/precompiled.h +@@ -28,15 +28,15 @@ + #include + #include + #include + #include + #include + #include + + #include +-#include ++#include + #include + #include + + #ifdef _MSC_VER + #include + #endif +diff --git a/gfx/angle/src/libGLESv2/renderer/Renderer11.cpp b/gfx/angle/src/libGLESv2/renderer/Renderer11.cpp +index 774cd71..1f2b31d 100644 +--- a/gfx/angle/src/libGLESv2/renderer/Renderer11.cpp ++++ b/gfx/angle/src/libGLESv2/renderer/Renderer11.cpp +@@ -7,17 +7,17 @@ + + // Renderer11.cpp: Implements a back-end specific class for the D3D11 renderer. + + #include "libGLESv2/main.h" + #include "libGLESv2/utilities.h" + #include "libGLESv2/Buffer.h" + #include "libGLESv2/ProgramBinary.h" + #include "libGLESv2/Framebuffer.h" +-#include "libGLESv2/RenderBuffer.h" ++#include "libGLESv2/Renderbuffer.h" + #include "libGLESv2/renderer/Renderer11.h" + #include "libGLESv2/renderer/RenderTarget11.h" + #include "libGLESv2/renderer/renderer11_utils.h" + #include "libGLESv2/renderer/ShaderExecutable11.h" + #include "libGLESv2/renderer/SwapChain11.h" + #include "libGLESv2/renderer/Image11.h" + #include "libGLESv2/renderer/VertexBuffer11.h" + #include "libGLESv2/renderer/IndexBuffer11.h" +diff --git a/gfx/angle/src/libGLESv2/renderer/Renderer11.h b/gfx/angle/src/libGLESv2/renderer/Renderer11.h +index f024855..90ef04d 100644 +--- a/gfx/angle/src/libGLESv2/renderer/Renderer11.h ++++ b/gfx/angle/src/libGLESv2/renderer/Renderer11.h +@@ -230,17 +230,17 @@ class Renderer11 : public Renderer + bool mDepthTextureSupport; + + // Multisample format support + struct MultisampleSupportInfo + { + unsigned int qualityLevels[D3D11_MAX_MULTISAMPLE_SAMPLE_COUNT]; + }; + +- typedef std::unordered_map MultisampleSupportMap; ++ typedef std::unordered_map > MultisampleSupportMap; + MultisampleSupportMap mMultisampleSupportMap; + + unsigned int mMaxSupportedSamples; + + // current render target states + unsigned int mAppliedRenderTargetSerials[gl::IMPLEMENTATION_MAX_DRAW_BUFFERS]; + unsigned int mAppliedDepthbufferSerial; + unsigned int mAppliedStencilbufferSerial;