Moved utilities.h/cpp and mathutils.h to the shared common code folder.

The HLSL translator needs to compute the sizes of various GL types for computing block layouts.

TRAC #22930

Signed-off-by: Nicolas Capens
Signed-off-by: Geoff Lang
Author: Jamie Madill

git-svn-id: https://angleproject.googlecode.com/svn/branches/es3proto@2342 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/build_angle.gypi b/src/build_angle.gypi
index d822c36..e513b3c 100644
--- a/src/build_angle.gypi
+++ b/src/build_angle.gypi
@@ -231,8 +231,11 @@
             'common/angleutils.h',
             'common/debug.cpp',
             'common/debug.h',
+            'common/mathutil.h',
             'common/RefCountObject.cpp',
             'common/RefCountObject.h',
+            'common/utilities.cpp',
+            'common/utilities.h',
             'common/version.h',
             'libGLESv2/precompiled.h',
             'libGLESv2/precompiled.cpp',
@@ -255,7 +258,6 @@
             'libGLESv2/libGLESv2.rc',
             'libGLESv2/main.cpp',
             'libGLESv2/main.h',
-            'libGLESv2/mathutil.h',
             'libGLESv2/Program.cpp',
             'libGLESv2/Program.h',
             'libGLESv2/ProgramBinary.cpp',
@@ -353,8 +355,6 @@
             'libGLESv2/Texture.h',
             'libGLESv2/Uniform.cpp',
             'libGLESv2/Uniform.h',
-            'libGLESv2/utilities.cpp',
-            'libGLESv2/utilities.h',
           ],
           # TODO(jschuh): http://crbug.com/167187 size_t -> int
           'msvs_disabled_warnings': [ 4267 ],
diff --git a/src/libGLESv2/mathutil.h b/src/common/mathutil.h
similarity index 97%
rename from src/libGLESv2/mathutil.h
rename to src/common/mathutil.h
index 3beb6db..bb5158e 100644
--- a/src/libGLESv2/mathutil.h
+++ b/src/common/mathutil.h
@@ -12,6 +12,10 @@
 #include "common/system.h"
 #include "common/debug.h"
 
+#ifdef _WINDOWS_
+#include <intrin.h>
+#endif
+
 namespace gl
 {
 struct Vector4
@@ -93,7 +97,7 @@
 
     int info[4];
     __cpuid(info, 0);
-    
+
     if (info[0] >= 1)
     {
         __cpuid(info, 1);
@@ -118,7 +122,7 @@
     }
     else if(abs < 0x38800000)   // Denormal
     {
-        unsigned int mantissa = (abs & 0x007FFFFF) | 0x00800000;   
+        unsigned int mantissa = (abs & 0x007FFFFF) | 0x00800000;
         int e = 113 - (abs >> 23);
 
         if(e < 24)
diff --git a/src/libGLESv2/utilities.cpp b/src/common/utilities.cpp
similarity index 98%
rename from src/libGLESv2/utilities.cpp
rename to src/common/utilities.cpp
index 8d52b05..40a4a32 100644
--- a/src/libGLESv2/utilities.cpp
+++ b/src/common/utilities.cpp
@@ -1,4 +1,3 @@
-#include "precompiled.h"
 //
 // Copyright (c) 2002-2013 The ANGLE Project Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
@@ -7,8 +6,10 @@
 
 // utilities.cpp: Conversion functions and other utility routines.
 
-#include "libGLESv2/utilities.h"
-#include "libGLESv2/mathutil.h"
+#include "common/utilities.h"
+#include "common/mathutil.h"
+
+#include <set>
 
 namespace gl
 {
@@ -376,7 +377,7 @@
         UNREACHABLE();
         return std::string();
     }
-    
+
     return path;
 }
 
diff --git a/src/libGLESv2/utilities.h b/src/common/utilities.h
similarity index 97%
rename from src/libGLESv2/utilities.h
rename to src/common/utilities.h
index 21d2125..cbbfaec 100644
--- a/src/libGLESv2/utilities.h
+++ b/src/common/utilities.h
@@ -9,7 +9,9 @@
 #ifndef LIBGLESV2_UTILITIES_H
 #define LIBGLESV2_UTILITIES_H
 
+#ifndef GL_APICALL
 #define GL_APICALL
+#endif
 #include <GLES3/gl3.h>
 #include <GLES3/gl3ext.h>
 #include <GLES2/gl2.h>
diff --git a/src/compiler/translator_common.vcxproj b/src/compiler/translator_common.vcxproj
index 7d0195b..ac4d4c5 100644
--- a/src/compiler/translator_common.vcxproj
+++ b/src/compiler/translator_common.vcxproj
@@ -138,6 +138,7 @@
     </ClCompile>

   </ItemDefinitionGroup>

   <ItemGroup>

+    <ClCompile Include="..\common\utilities.cpp" />

     <ClCompile Include="BuiltInFunctionEmulator.cpp" />

     <ClCompile Include="Compiler.cpp" />

     <ClCompile Include="debug.cpp" />

@@ -270,4 +271,4 @@
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

   <ImportGroup Label="ExtensionTargets">

   </ImportGroup>

-</Project>
+</Project>
\ No newline at end of file
diff --git a/src/compiler/translator_common.vcxproj.filters b/src/compiler/translator_common.vcxproj.filters
index a6fa99c..7dc64e4 100644
--- a/src/compiler/translator_common.vcxproj.filters
+++ b/src/compiler/translator_common.vcxproj.filters
@@ -134,7 +134,10 @@
     <ClCompile Include="timing\RestrictVertexShaderTiming.cpp">

       <Filter>Source Files\timing</Filter>

     </ClCompile>

-    <ClCompile Include="ArrayBoundsClamper.cpp">

+    <ClCompile Include="..\third_party\compiler\ArrayBoundsClamper.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="..\common\utilities.cpp">

       <Filter>Source Files</Filter>

     </ClCompile>

   </ItemGroup>

@@ -256,7 +259,7 @@
     <ClInclude Include="HashNames.h">

       <Filter>Header Files</Filter>

     </ClInclude>

-    <ClInclude Include="ArrayBoundsClamper.h">

+    <ClInclude Include="..\third_party\compiler\ArrayBoundsClamper.h">

       <Filter>Header Files</Filter>

     </ClInclude>

   </ItemGroup>

diff --git a/src/libEGL/Display.cpp b/src/libEGL/Display.cpp
index 8459a62..cfeecb0 100644
--- a/src/libEGL/Display.cpp
+++ b/src/libEGL/Display.cpp
@@ -15,7 +15,7 @@
 #include <vector>
 
 #include "common/debug.h"
-#include "libGLESv2/mathutil.h"
+#include "common/mathutil.h"
 #include "libGLESv2/main.h"
 #include "libGLESv2/Context.h"
 #include "libGLESv2/renderer/SwapChain.h"
diff --git a/src/libGLESv2/Context.cpp b/src/libGLESv2/Context.cpp
index b39bd6b..a490408 100644
--- a/src/libGLESv2/Context.cpp
+++ b/src/libGLESv2/Context.cpp
@@ -11,7 +11,7 @@
 #include "libGLESv2/Context.h"
 
 #include "libGLESv2/main.h"
-#include "libGLESv2/utilities.h"
+#include "common/utilities.h"
 #include "libGLESv2/formatutils.h"
 #include "libGLESv2/Buffer.h"
 #include "libGLESv2/Fence.h"
diff --git a/src/libGLESv2/Context.h b/src/libGLESv2/Context.h
index 110735e..1c028e4 100644
--- a/src/libGLESv2/Context.h
+++ b/src/libGLESv2/Context.h
@@ -10,7 +10,9 @@
 #ifndef LIBGLESV2_CONTEXT_H_
 #define LIBGLESV2_CONTEXT_H_
 
+#ifndef GL_APICALL
 #define GL_APICALL
+#endif
 #include <GLES3/gl3.h>
 #include <GLES3/gl3ext.h>
 #include <GLES2/gl2.h>
diff --git a/src/libGLESv2/Framebuffer.cpp b/src/libGLESv2/Framebuffer.cpp
index 21a06c3..2f8d374 100644
--- a/src/libGLESv2/Framebuffer.cpp
+++ b/src/libGLESv2/Framebuffer.cpp
@@ -11,7 +11,7 @@
 #include "libGLESv2/Framebuffer.h"
 
 #include "libGLESv2/main.h"
-#include "libGLESv2/utilities.h"
+#include "common/utilities.h"
 #include "libGLESv2/formatutils.h"
 #include "libGLESv2/Texture.h"
 #include "libGLESv2/Context.h"
diff --git a/src/libGLESv2/ProgramBinary.cpp b/src/libGLESv2/ProgramBinary.cpp
index 584b4ac..ca92742 100644
--- a/src/libGLESv2/ProgramBinary.cpp
+++ b/src/libGLESv2/ProgramBinary.cpp
@@ -14,7 +14,7 @@
 
 #include "common/debug.h"
 #include "common/version.h"
-#include "utilities.h"
+#include "common/utilities.h"
 
 #include "libGLESv2/main.h"
 #include "libGLESv2/Shader.h"
diff --git a/src/libGLESv2/ProgramBinary.h b/src/libGLESv2/ProgramBinary.h
index 7b0fdd5..2ea8489 100644
--- a/src/libGLESv2/ProgramBinary.h
+++ b/src/libGLESv2/ProgramBinary.h
@@ -21,7 +21,7 @@
 
 #include "common/RefCountObject.h"
 #include "angletypes.h"
-#include "libGLESv2/mathutil.h"
+#include "common/mathutil.h"
 #include "libGLESv2/Uniform.h"
 #include "libGLESv2/Shader.h"
 #include "libGLESv2/Constants.h"
diff --git a/src/libGLESv2/Renderbuffer.cpp b/src/libGLESv2/Renderbuffer.cpp
index 2831500..6bec10b 100644
--- a/src/libGLESv2/Renderbuffer.cpp
+++ b/src/libGLESv2/Renderbuffer.cpp
@@ -14,7 +14,7 @@
 
 #include "libGLESv2/Texture.h"
 #include "libGLESv2/renderer/Renderer.h"
-#include "libGLESv2/utilities.h"
+#include "common/utilities.h"
 #include "libGLESv2/formatutils.h"
 
 namespace gl
diff --git a/src/libGLESv2/Shader.cpp b/src/libGLESv2/Shader.cpp
index f9df3f8..a52cf5b 100644
--- a/src/libGLESv2/Shader.cpp
+++ b/src/libGLESv2/Shader.cpp
@@ -12,7 +12,7 @@
 #include "libGLESv2/Shader.h"
 
 #include "GLSLANG/ShaderLang.h"
-#include "libGLESv2/utilities.h"
+#include "common/utilities.h"
 #include "libGLESv2/renderer/Renderer.h"
 #include "libGLESv2/Constants.h"
 #include "libGLESv2/ResourceManager.h"
diff --git a/src/libGLESv2/Texture.cpp b/src/libGLESv2/Texture.cpp
index 564ea41..9d6ed14 100644
--- a/src/libGLESv2/Texture.cpp
+++ b/src/libGLESv2/Texture.cpp
@@ -12,8 +12,8 @@
 #include "libGLESv2/Texture.h"
 
 #include "libGLESv2/main.h"
-#include "libGLESv2/mathutil.h"
-#include "libGLESv2/utilities.h"
+#include "common/mathutil.h"
+#include "common/utilities.h"
 #include "libGLESv2/formatutils.h"
 #include "libGLESv2/renderer/Blit.h"
 #include "libGLESv2/Renderbuffer.h"
diff --git a/src/libGLESv2/Uniform.cpp b/src/libGLESv2/Uniform.cpp
index eb73f83..3ee7769 100644
--- a/src/libGLESv2/Uniform.cpp
+++ b/src/libGLESv2/Uniform.cpp
@@ -7,7 +7,7 @@
 
 #include "libGLESv2/Uniform.h"
 
-#include "libGLESv2/utilities.h"
+#include "common/utilities.h"
 
 namespace gl
 {
diff --git a/src/libGLESv2/formatutils.cpp b/src/libGLESv2/formatutils.cpp
index 13445c4..4eebaaa 100644
--- a/src/libGLESv2/formatutils.cpp
+++ b/src/libGLESv2/formatutils.cpp
@@ -9,7 +9,7 @@
 
 #include "libGLESv2/formatutils.h"
 #include "libGLESv2/Context.h"
-#include "libGLESv2/mathutil.h"
+#include "common/mathutil.h"
 #include "libGLESv2/renderer/Renderer.h"
 
 namespace gl
diff --git a/src/libGLESv2/libGLESv2.cpp b/src/libGLESv2/libGLESv2.cpp
index 80681c8..937e70f 100644
--- a/src/libGLESv2/libGLESv2.cpp
+++ b/src/libGLESv2/libGLESv2.cpp
@@ -10,7 +10,7 @@
 #include "common/version.h"
 
 #include "libGLESv2/main.h"
-#include "libGLESv2/utilities.h"
+#include "common/utilities.h"
 #include "libGLESv2/formatutils.h"
 #include "libGLESv2/Buffer.h"
 #include "libGLESv2/Fence.h"
diff --git a/src/libGLESv2/libGLESv2.vcxproj b/src/libGLESv2/libGLESv2.vcxproj
index e887241..3800f78 100644
--- a/src/libGLESv2/libGLESv2.vcxproj
+++ b/src/libGLESv2/libGLESv2.vcxproj
@@ -228,6 +228,12 @@
     </PostBuildEvent>

   </ItemDefinitionGroup>

   <ItemGroup>

+    <ClCompile Include="..\common\utilities.cpp">

+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>

+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>

+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader>

+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">NotUsing</PrecompiledHeader>

+    </ClCompile>

     <ClCompile Include="..\third_party\murmurhash\MurmurHash3.cpp">

       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>

       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>

@@ -304,7 +310,6 @@
     <ClCompile Include="Shader.cpp" />

     <ClCompile Include="Texture.cpp" />

     <ClCompile Include="Uniform.cpp" />

-    <ClCompile Include="utilities.cpp" />

   </ItemGroup>

   <ItemGroup>

     <ClInclude Include="..\..\include\GLES2\gl2.h" />

@@ -313,8 +318,11 @@
     <ClInclude Include="..\..\include\GLES3\gl3.h" />

     <ClInclude Include="..\..\include\GLES3\gl3ext.h" />

     <ClInclude Include="..\..\include\GLES3\gl3platform.h" />

+    <ClInclude Include="..\common\angleutils.h" />

     <ClInclude Include="..\common\debug.h" />

+    <ClInclude Include="..\common\mathutil.h" />

     <ClInclude Include="..\common\system.h" />

+    <ClInclude Include="..\common\utilities.h" />

     <ClInclude Include="..\third_party\murmurhash\MurmurHash3.h" />

     <ClInclude Include="angletypes.h" />

     <ClInclude Include="BinaryStream.h" />

@@ -326,7 +334,6 @@
     <ClInclude Include="Framebuffer.h" />

     <ClInclude Include="HandleAllocator.h" />

     <ClInclude Include="main.h" />

-    <ClInclude Include="mathutil.h" />

     <ClInclude Include="precompiled.h" />

     <ClInclude Include="Program.h" />

     <ClInclude Include="ProgramBinary.h" />

@@ -398,7 +405,6 @@
     <ClInclude Include="Shader.h" />

     <ClInclude Include="Texture.h" />

     <ClInclude Include="Uniform.h" />

-    <ClInclude Include="utilities.h" />

     <ClInclude Include="..\common\version.h" />

   </ItemGroup>

   <ItemGroup>

diff --git a/src/libGLESv2/libGLESv2.vcxproj.filters b/src/libGLESv2/libGLESv2.vcxproj.filters
index ad68132..e5fdbe2 100644
--- a/src/libGLESv2/libGLESv2.vcxproj.filters
+++ b/src/libGLESv2/libGLESv2.vcxproj.filters
@@ -92,9 +92,6 @@
     <ClCompile Include="Texture.cpp">

       <Filter>Source Files</Filter>

     </ClCompile>

-    <ClCompile Include="utilities.cpp">

-      <Filter>Source Files</Filter>

-    </ClCompile>

     <ClCompile Include="renderer\Image.cpp">

       <Filter>Source Files\Renderer</Filter>

     </ClCompile>

@@ -230,6 +227,9 @@
     <ClCompile Include="formatutils.cpp">

       <Filter>Source Files</Filter>

     </ClCompile>

+    <ClCompile Include="..\common\utilities.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

   </ItemGroup>

   <ItemGroup>

     <ClInclude Include="BinaryStream.h">

@@ -253,9 +253,6 @@
     <ClInclude Include="main.h">

       <Filter>Header Files</Filter>

     </ClInclude>

-    <ClInclude Include="mathutil.h">

-      <Filter>Header Files</Filter>

-    </ClInclude>

     <ClInclude Include="Program.h">

       <Filter>Header Files</Filter>

     </ClInclude>

@@ -283,9 +280,6 @@
     <ClInclude Include="Texture.h">

       <Filter>Header Files</Filter>

     </ClInclude>

-    <ClInclude Include="utilities.h">

-      <Filter>Header Files</Filter>

-    </ClInclude>

     <ClInclude Include="..\common\version.h">

       <Filter>Header Files</Filter>

     </ClInclude>

@@ -517,6 +511,15 @@
     <ClInclude Include="formatutils.h">

       <Filter>Header Files</Filter>

     </ClInclude>

+    <ClInclude Include="..\common\mathutil.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="..\common\utilities.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="..\common\angleutils.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

   </ItemGroup>

   <ItemGroup>

     <None Include="renderer\shaders\Blit.ps">

diff --git a/src/libGLESv2/renderer/Image11.cpp b/src/libGLESv2/renderer/Image11.cpp
index 5430b68..6e343b3 100644
--- a/src/libGLESv2/renderer/Image11.cpp
+++ b/src/libGLESv2/renderer/Image11.cpp
@@ -15,7 +15,7 @@
 #include "libGLESv2/Renderbuffer.h"
 
 #include "libGLESv2/main.h"
-#include "libGLESv2/utilities.h"
+#include "common/utilities.h"
 #include "libGLESv2/renderer/formatutils11.h"
 #include "libGLESv2/renderer/renderer11_utils.h"
 
diff --git a/src/libGLESv2/renderer/Renderer.cpp b/src/libGLESv2/renderer/Renderer.cpp
index 61fa214..fd2af1e 100644
--- a/src/libGLESv2/renderer/Renderer.cpp
+++ b/src/libGLESv2/renderer/Renderer.cpp
@@ -13,7 +13,7 @@
 #include "libGLESv2/renderer/Renderer.h"
 #include "libGLESv2/renderer/Renderer9.h"
 #include "libGLESv2/renderer/Renderer11.h"
-#include "libGLESv2/utilities.h"
+#include "common/utilities.h"
 
 #if !defined(ANGLE_ENABLE_D3D11)
 // Enables use of the Direct3D 11 API for a default display, when available
diff --git a/src/libGLESv2/renderer/Renderer11.cpp b/src/libGLESv2/renderer/Renderer11.cpp
index dc331f8..656e014 100644
--- a/src/libGLESv2/renderer/Renderer11.cpp
+++ b/src/libGLESv2/renderer/Renderer11.cpp
@@ -8,7 +8,7 @@
 // Renderer11.cpp: Implements a back-end specific class for the D3D11 renderer.
 
 #include "libGLESv2/main.h"
-#include "libGLESv2/utilities.h"
+#include "common/utilities.h"
 #include "libGLESv2/Buffer.h"
 #include "libGLESv2/ProgramBinary.h"
 #include "libGLESv2/Framebuffer.h"
diff --git a/src/libGLESv2/renderer/Renderer11.h b/src/libGLESv2/renderer/Renderer11.h
index 117e1aa..db375ef 100644
--- a/src/libGLESv2/renderer/Renderer11.h
+++ b/src/libGLESv2/renderer/Renderer11.h
@@ -11,7 +11,7 @@
 
 #include "common/angleutils.h"
 #include "libGLESv2/angletypes.h"
-#include "libGLESv2/mathutil.h"
+#include "common/mathutil.h"
 
 #include "libGLESv2/renderer/Renderer.h"
 #include "libGLESv2/renderer/RenderStateCache.h"
diff --git a/src/libGLESv2/renderer/Renderer9.h b/src/libGLESv2/renderer/Renderer9.h
index 39943b1..a65f0f5 100644
--- a/src/libGLESv2/renderer/Renderer9.h
+++ b/src/libGLESv2/renderer/Renderer9.h
@@ -10,7 +10,7 @@
 #define LIBGLESV2_RENDERER_RENDERER9_H_
 
 #include "common/angleutils.h"
-#include "libGLESv2/mathutil.h"
+#include "common/mathutil.h"
 #include "libGLESv2/renderer/ShaderCache.h"
 #include "libGLESv2/renderer/VertexDeclarationCache.h"
 #include "libGLESv2/renderer/Renderer.h"
diff --git a/src/libGLESv2/renderer/TextureStorage11.cpp b/src/libGLESv2/renderer/TextureStorage11.cpp
index 57f570e..6bffec9 100644
--- a/src/libGLESv2/renderer/TextureStorage11.cpp
+++ b/src/libGLESv2/renderer/TextureStorage11.cpp
@@ -16,7 +16,7 @@
 #include "libGLESv2/renderer/renderer11_utils.h"
 #include "libGLESv2/renderer/formatutils11.h"
 
-#include "libGLESv2/utilities.h"
+#include "common/utilities.h"
 #include "libGLESv2/main.h"
 
 namespace rx
diff --git a/src/libGLESv2/renderer/generatemip.h b/src/libGLESv2/renderer/generatemip.h
index 1d3d5af..1ea5979 100644
--- a/src/libGLESv2/renderer/generatemip.h
+++ b/src/libGLESv2/renderer/generatemip.h
@@ -10,7 +10,7 @@
 #ifndef LIBGLESV2_RENDERER_GENERATEMIP_H_
 #define LIBGLESV2_RENDERER_GENERATEMIP_H_
 
-#include "libGLESv2/mathutil.h"
+#include "common/mathutil.h"
 
 namespace rx
 {
diff --git a/src/libGLESv2/renderer/renderer9_utils.cpp b/src/libGLESv2/renderer/renderer9_utils.cpp
index ae01f4f..b78f5f5 100644
--- a/src/libGLESv2/renderer/renderer9_utils.cpp
+++ b/src/libGLESv2/renderer/renderer9_utils.cpp
@@ -9,7 +9,7 @@
 // specific to the D3D9 renderer.
 
 #include "libGLESv2/renderer/renderer9_utils.h"
-#include "libGLESv2/mathutil.h"
+#include "common/mathutil.h"
 #include "libGLESv2/Context.h"
 
 #include "common/debug.h"
diff --git a/src/libGLESv2/renderer/renderer9_utils.h b/src/libGLESv2/renderer/renderer9_utils.h
index 3888fa9..9bd6526 100644
--- a/src/libGLESv2/renderer/renderer9_utils.h
+++ b/src/libGLESv2/renderer/renderer9_utils.h
@@ -10,7 +10,7 @@
 #ifndef LIBGLESV2_RENDERER_RENDERER9_UTILS_H
 #define LIBGLESV2_RENDERER_RENDERER9_UTILS_H
 
-#include "libGLESv2/utilities.h"
+#include "common/utilities.h"
 
 namespace rx
 {