浏览代码

Utility library builds on x64

Marko Pintera 13 年之前
父节点
当前提交
612644f309

+ 22 - 0
CamelotRenderer.sln

@@ -65,9 +65,11 @@ Global
 		Debug|Any CPU = Debug|Any CPU
 		Debug|Mixed Platforms = Debug|Mixed Platforms
 		Debug|Win32 = Debug|Win32
+		Debug|x64 = Debug|x64
 		Release|Any CPU = Release|Any CPU
 		Release|Mixed Platforms = Release|Mixed Platforms
 		Release|Win32 = Release|Win32
+		Release|x64 = Release|x64
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
 		{9B21D41C-516B-43BF-9B10-E99B599C7589}.Debug|Any CPU.ActiveCfg = Debug|Win32
@@ -75,91 +77,111 @@ Global
 		{9B21D41C-516B-43BF-9B10-E99B599C7589}.Debug|Mixed Platforms.Build.0 = Debug|Win32
 		{9B21D41C-516B-43BF-9B10-E99B599C7589}.Debug|Win32.ActiveCfg = Debug|Win32
 		{9B21D41C-516B-43BF-9B10-E99B599C7589}.Debug|Win32.Build.0 = Debug|Win32
+		{9B21D41C-516B-43BF-9B10-E99B599C7589}.Debug|x64.ActiveCfg = Debug|Win32
 		{9B21D41C-516B-43BF-9B10-E99B599C7589}.Release|Any CPU.ActiveCfg = Release|Win32
 		{9B21D41C-516B-43BF-9B10-E99B599C7589}.Release|Mixed Platforms.ActiveCfg = Release|Win32
 		{9B21D41C-516B-43BF-9B10-E99B599C7589}.Release|Mixed Platforms.Build.0 = Release|Win32
 		{9B21D41C-516B-43BF-9B10-E99B599C7589}.Release|Win32.ActiveCfg = Release|Win32
 		{9B21D41C-516B-43BF-9B10-E99B599C7589}.Release|Win32.Build.0 = Release|Win32
+		{9B21D41C-516B-43BF-9B10-E99B599C7589}.Release|x64.ActiveCfg = Release|Win32
 		{CC7F9445-71C9-4559-9976-FF0A64DCB582}.Debug|Any CPU.ActiveCfg = Debug|Win32
 		{CC7F9445-71C9-4559-9976-FF0A64DCB582}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
 		{CC7F9445-71C9-4559-9976-FF0A64DCB582}.Debug|Mixed Platforms.Build.0 = Debug|Win32
 		{CC7F9445-71C9-4559-9976-FF0A64DCB582}.Debug|Win32.ActiveCfg = Debug|Win32
 		{CC7F9445-71C9-4559-9976-FF0A64DCB582}.Debug|Win32.Build.0 = Debug|Win32
+		{CC7F9445-71C9-4559-9976-FF0A64DCB582}.Debug|x64.ActiveCfg = Debug|x64
+		{CC7F9445-71C9-4559-9976-FF0A64DCB582}.Debug|x64.Build.0 = Debug|x64
 		{CC7F9445-71C9-4559-9976-FF0A64DCB582}.Release|Any CPU.ActiveCfg = Release|Win32
 		{CC7F9445-71C9-4559-9976-FF0A64DCB582}.Release|Mixed Platforms.ActiveCfg = Release|Win32
 		{CC7F9445-71C9-4559-9976-FF0A64DCB582}.Release|Mixed Platforms.Build.0 = Release|Win32
 		{CC7F9445-71C9-4559-9976-FF0A64DCB582}.Release|Win32.ActiveCfg = Release|Win32
 		{CC7F9445-71C9-4559-9976-FF0A64DCB582}.Release|Win32.Build.0 = Release|Win32
+		{CC7F9445-71C9-4559-9976-FF0A64DCB582}.Release|x64.ActiveCfg = Release|x64
+		{CC7F9445-71C9-4559-9976-FF0A64DCB582}.Release|x64.Build.0 = Release|x64
 		{796B6DFF-BA04-42B7-A43A-2B14D707A33A}.Debug|Any CPU.ActiveCfg = Debug|Win32
 		{796B6DFF-BA04-42B7-A43A-2B14D707A33A}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
 		{796B6DFF-BA04-42B7-A43A-2B14D707A33A}.Debug|Mixed Platforms.Build.0 = Debug|Win32
 		{796B6DFF-BA04-42B7-A43A-2B14D707A33A}.Debug|Win32.ActiveCfg = Debug|Win32
 		{796B6DFF-BA04-42B7-A43A-2B14D707A33A}.Debug|Win32.Build.0 = Debug|Win32
+		{796B6DFF-BA04-42B7-A43A-2B14D707A33A}.Debug|x64.ActiveCfg = Debug|Win32
 		{796B6DFF-BA04-42B7-A43A-2B14D707A33A}.Release|Any CPU.ActiveCfg = Release|Win32
 		{796B6DFF-BA04-42B7-A43A-2B14D707A33A}.Release|Mixed Platforms.ActiveCfg = Release|Win32
 		{796B6DFF-BA04-42B7-A43A-2B14D707A33A}.Release|Mixed Platforms.Build.0 = Release|Win32
 		{796B6DFF-BA04-42B7-A43A-2B14D707A33A}.Release|Win32.ActiveCfg = Release|Win32
 		{796B6DFF-BA04-42B7-A43A-2B14D707A33A}.Release|Win32.Build.0 = Release|Win32
+		{796B6DFF-BA04-42B7-A43A-2B14D707A33A}.Release|x64.ActiveCfg = Release|Win32
 		{67137A0D-7A67-4D0C-9FBF-AF904FABEF05}.Debug|Any CPU.ActiveCfg = Debug|Win32
 		{67137A0D-7A67-4D0C-9FBF-AF904FABEF05}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
 		{67137A0D-7A67-4D0C-9FBF-AF904FABEF05}.Debug|Mixed Platforms.Build.0 = Debug|Win32
 		{67137A0D-7A67-4D0C-9FBF-AF904FABEF05}.Debug|Win32.ActiveCfg = Debug|Win32
 		{67137A0D-7A67-4D0C-9FBF-AF904FABEF05}.Debug|Win32.Build.0 = Debug|Win32
+		{67137A0D-7A67-4D0C-9FBF-AF904FABEF05}.Debug|x64.ActiveCfg = Debug|Win32
 		{67137A0D-7A67-4D0C-9FBF-AF904FABEF05}.Release|Any CPU.ActiveCfg = Release|Win32
 		{67137A0D-7A67-4D0C-9FBF-AF904FABEF05}.Release|Mixed Platforms.ActiveCfg = Release|Win32
 		{67137A0D-7A67-4D0C-9FBF-AF904FABEF05}.Release|Mixed Platforms.Build.0 = Release|Win32
 		{67137A0D-7A67-4D0C-9FBF-AF904FABEF05}.Release|Win32.ActiveCfg = Release|Win32
 		{67137A0D-7A67-4D0C-9FBF-AF904FABEF05}.Release|Win32.Build.0 = Release|Win32
+		{67137A0D-7A67-4D0C-9FBF-AF904FABEF05}.Release|x64.ActiveCfg = Release|Win32
 		{F58FF869-2EA6-4FFF-AB84-328C531BA9D9}.Debug|Any CPU.ActiveCfg = Debug|Win32
 		{F58FF869-2EA6-4FFF-AB84-328C531BA9D9}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
 		{F58FF869-2EA6-4FFF-AB84-328C531BA9D9}.Debug|Mixed Platforms.Build.0 = Debug|Win32
 		{F58FF869-2EA6-4FFF-AB84-328C531BA9D9}.Debug|Win32.ActiveCfg = Debug|Win32
 		{F58FF869-2EA6-4FFF-AB84-328C531BA9D9}.Debug|Win32.Build.0 = Debug|Win32
+		{F58FF869-2EA6-4FFF-AB84-328C531BA9D9}.Debug|x64.ActiveCfg = Debug|Win32
 		{F58FF869-2EA6-4FFF-AB84-328C531BA9D9}.Release|Any CPU.ActiveCfg = Release|Win32
 		{F58FF869-2EA6-4FFF-AB84-328C531BA9D9}.Release|Mixed Platforms.ActiveCfg = Release|Win32
 		{F58FF869-2EA6-4FFF-AB84-328C531BA9D9}.Release|Mixed Platforms.Build.0 = Release|Win32
 		{F58FF869-2EA6-4FFF-AB84-328C531BA9D9}.Release|Win32.ActiveCfg = Release|Win32
 		{F58FF869-2EA6-4FFF-AB84-328C531BA9D9}.Release|Win32.Build.0 = Release|Win32
+		{F58FF869-2EA6-4FFF-AB84-328C531BA9D9}.Release|x64.ActiveCfg = Release|Win32
 		{122B7A22-0C62-4B35-B661-EBF3F394EA79}.Debug|Any CPU.ActiveCfg = Debug|Win32
 		{122B7A22-0C62-4B35-B661-EBF3F394EA79}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
 		{122B7A22-0C62-4B35-B661-EBF3F394EA79}.Debug|Mixed Platforms.Build.0 = Debug|Win32
 		{122B7A22-0C62-4B35-B661-EBF3F394EA79}.Debug|Win32.ActiveCfg = Debug|Win32
 		{122B7A22-0C62-4B35-B661-EBF3F394EA79}.Debug|Win32.Build.0 = Debug|Win32
+		{122B7A22-0C62-4B35-B661-EBF3F394EA79}.Debug|x64.ActiveCfg = Debug|Win32
 		{122B7A22-0C62-4B35-B661-EBF3F394EA79}.Release|Any CPU.ActiveCfg = Release|Win32
 		{122B7A22-0C62-4B35-B661-EBF3F394EA79}.Release|Mixed Platforms.ActiveCfg = Release|Win32
 		{122B7A22-0C62-4B35-B661-EBF3F394EA79}.Release|Mixed Platforms.Build.0 = Release|Win32
 		{122B7A22-0C62-4B35-B661-EBF3F394EA79}.Release|Win32.ActiveCfg = Release|Win32
 		{122B7A22-0C62-4B35-B661-EBF3F394EA79}.Release|Win32.Build.0 = Release|Win32
+		{122B7A22-0C62-4B35-B661-EBF3F394EA79}.Release|x64.ActiveCfg = Release|Win32
 		{7F449698-73DF-4203-9F31-0877DBF01695}.Debug|Any CPU.ActiveCfg = Debug|Win32
 		{7F449698-73DF-4203-9F31-0877DBF01695}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
 		{7F449698-73DF-4203-9F31-0877DBF01695}.Debug|Mixed Platforms.Build.0 = Debug|Win32
 		{7F449698-73DF-4203-9F31-0877DBF01695}.Debug|Win32.ActiveCfg = Debug|Win32
 		{7F449698-73DF-4203-9F31-0877DBF01695}.Debug|Win32.Build.0 = Debug|Win32
+		{7F449698-73DF-4203-9F31-0877DBF01695}.Debug|x64.ActiveCfg = Debug|Win32
 		{7F449698-73DF-4203-9F31-0877DBF01695}.Release|Any CPU.ActiveCfg = Release|Win32
 		{7F449698-73DF-4203-9F31-0877DBF01695}.Release|Mixed Platforms.ActiveCfg = Release|Win32
 		{7F449698-73DF-4203-9F31-0877DBF01695}.Release|Mixed Platforms.Build.0 = Release|Win32
 		{7F449698-73DF-4203-9F31-0877DBF01695}.Release|Win32.ActiveCfg = Release|Win32
 		{7F449698-73DF-4203-9F31-0877DBF01695}.Release|Win32.Build.0 = Release|Win32
+		{7F449698-73DF-4203-9F31-0877DBF01695}.Release|x64.ActiveCfg = Release|Win32
 		{BFEBBAF8-8A84-4899-8899-D0D7196AF9A1}.Debug|Any CPU.ActiveCfg = Debug|Win32
 		{BFEBBAF8-8A84-4899-8899-D0D7196AF9A1}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
 		{BFEBBAF8-8A84-4899-8899-D0D7196AF9A1}.Debug|Mixed Platforms.Build.0 = Debug|Win32
 		{BFEBBAF8-8A84-4899-8899-D0D7196AF9A1}.Debug|Win32.ActiveCfg = Debug|Win32
 		{BFEBBAF8-8A84-4899-8899-D0D7196AF9A1}.Debug|Win32.Build.0 = Debug|Win32
+		{BFEBBAF8-8A84-4899-8899-D0D7196AF9A1}.Debug|x64.ActiveCfg = Debug|Win32
 		{BFEBBAF8-8A84-4899-8899-D0D7196AF9A1}.Release|Any CPU.ActiveCfg = Release|Win32
 		{BFEBBAF8-8A84-4899-8899-D0D7196AF9A1}.Release|Mixed Platforms.ActiveCfg = Release|Win32
 		{BFEBBAF8-8A84-4899-8899-D0D7196AF9A1}.Release|Mixed Platforms.Build.0 = Release|Win32
 		{BFEBBAF8-8A84-4899-8899-D0D7196AF9A1}.Release|Win32.ActiveCfg = Release|Win32
 		{BFEBBAF8-8A84-4899-8899-D0D7196AF9A1}.Release|Win32.Build.0 = Release|Win32
+		{BFEBBAF8-8A84-4899-8899-D0D7196AF9A1}.Release|x64.ActiveCfg = Release|Win32
 		{08975177-4A13-4EE7-BB21-3BB92FB3F3CC}.Debug|Any CPU.ActiveCfg = Debug|Win32
 		{08975177-4A13-4EE7-BB21-3BB92FB3F3CC}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
 		{08975177-4A13-4EE7-BB21-3BB92FB3F3CC}.Debug|Mixed Platforms.Build.0 = Debug|Win32
 		{08975177-4A13-4EE7-BB21-3BB92FB3F3CC}.Debug|Win32.ActiveCfg = Debug|Win32
 		{08975177-4A13-4EE7-BB21-3BB92FB3F3CC}.Debug|Win32.Build.0 = Debug|Win32
+		{08975177-4A13-4EE7-BB21-3BB92FB3F3CC}.Debug|x64.ActiveCfg = Debug|Win32
 		{08975177-4A13-4EE7-BB21-3BB92FB3F3CC}.Release|Any CPU.ActiveCfg = Release|Win32
 		{08975177-4A13-4EE7-BB21-3BB92FB3F3CC}.Release|Mixed Platforms.ActiveCfg = Release|Win32
 		{08975177-4A13-4EE7-BB21-3BB92FB3F3CC}.Release|Mixed Platforms.Build.0 = Release|Win32
 		{08975177-4A13-4EE7-BB21-3BB92FB3F3CC}.Release|Win32.ActiveCfg = Release|Win32
 		{08975177-4A13-4EE7-BB21-3BB92FB3F3CC}.Release|Win32.Build.0 = Release|Win32
+		{08975177-4A13-4EE7-BB21-3BB92FB3F3CC}.Release|x64.ActiveCfg = Release|Win32
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE

+ 70 - 0
CamelotUtility/CamelotUtility.vcxproj

@@ -5,10 +5,18 @@
       <Configuration>Debug</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
     <ProjectConfiguration Include="Release|Win32">
       <Configuration>Release</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
   </ItemGroup>
   <PropertyGroup Label="Globals">
     <ProjectGuid>{CC7F9445-71C9-4559-9976-FF0A64DCB582}</ProjectGuid>
@@ -21,6 +29,12 @@
     <PlatformToolset>v110</PlatformToolset>
     <CharacterSet>NotSet</CharacterSet>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v110</PlatformToolset>
+    <CharacterSet>NotSet</CharacterSet>
+  </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>DynamicLibrary</ConfigurationType>
     <UseDebugLibraries>false</UseDebugLibraries>
@@ -28,22 +42,41 @@
     <WholeProgramOptimization>true</WholeProgramOptimization>
     <CharacterSet>NotSet</CharacterSet>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v110</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>NotSet</CharacterSet>
+  </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   </ImportGroup>
   <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
   <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <OutDir>..\bin\$(Configuration)\</OutDir>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>..\bin\$(Platform)\$(Configuration)\</OutDir>
+  </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <OutDir>..\bin\$(Configuration)\</OutDir>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>..\bin\$(Platform)\$(Configuration)\</OutDir>
+  </PropertyGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <WarningLevel>Level3</WarningLevel>
@@ -62,6 +95,24 @@
       </EntryPointSymbol>
     </Link>
   </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>./Include;../Dependencies/Include</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>CM_UTILITY_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ImportLibrary>..\lib\$(Configuration)\x64\$(TargetName).lib</ImportLibrary>
+      <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>../Dependencies/lib/Debug/x64</AdditionalLibraryDirectories>
+      <SubSystem>NotSet</SubSystem>
+      <NoEntryPoint>false</NoEntryPoint>
+      <EntryPointSymbol>
+      </EntryPointSymbol>
+    </Link>
+  </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
       <WarningLevel>Level3</WarningLevel>
@@ -81,6 +132,25 @@
       <NoEntryPoint>false</NoEntryPoint>
     </Link>
   </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <PreprocessorDefinitions>CM_UTILITY_EXPORTS</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>./Include;../Dependencies/Include</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <ImportLibrary>..\lib\$(Configuration)\x64\$(TargetName).lib</ImportLibrary>
+      <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>../Dependencies/lib/Release/x64</AdditionalLibraryDirectories>
+      <NoEntryPoint>false</NoEntryPoint>
+    </Link>
+  </ItemDefinitionGroup>
   <ItemGroup>
     <ClCompile Include="..\CamelotRenderer\Source\CmManagedDataBlock.cpp" />
     <ClCompile Include="Source\CmInt2.cpp" />

+ 6 - 6
CamelotUtility/Include/CmBox.h

@@ -10,7 +10,7 @@ namespace CamelotEngine
     */
 	struct CM_UTILITY_EXPORT Box
 	{
-		size_t left, top, right, bottom, front, back;
+		UINT32 left, top, right, bottom, front, back;
 		/// Parameterless constructor for setting the members manually
 		Box()
 			: left(0), top(0), right(1), bottom(1), front(0), back(1)
@@ -25,7 +25,7 @@ namespace CamelotEngine
 			@note Note that the left, top, and front edges are included 
  				but the right, bottom and back ones are not.
 		*/
-		Box( size_t l, size_t t, size_t r, size_t b ):
+		Box( UINT32 l, UINT32 t, UINT32 r, UINT32 b ):
 			left(l),
 			top(t),   
 			right(r),
@@ -46,7 +46,7 @@ namespace CamelotEngine
 			@note Note that the left, top, and front edges are included 
  				but the right, bottom and back ones are not.
 		*/
-		Box( size_t l, size_t t, size_t ff, size_t r, size_t b, size_t bb ):
+		Box( UINT32 l, UINT32 t, UINT32 ff, UINT32 r, UINT32 b, UINT32 bb ):
 			left(l),
 			top(t),   
 			right(r),
@@ -65,10 +65,10 @@ namespace CamelotEngine
 		}
             
 		/// Get the width of this box
-		size_t getWidth() const { return right-left; }
+		UINT32 getWidth() const { return right-left; }
 		/// Get the height of this box
-		size_t getHeight() const { return bottom-top; }
+		UINT32 getHeight() const { return bottom-top; }
 		/// Get the depth of this box
-		size_t getDepth() const { return back-front; }
+		UINT32 getDepth() const { return back-front; }
 	};
 }

+ 2 - 2
CamelotUtility/Include/CmMathAsm.h

@@ -180,7 +180,7 @@ float asm_rsq( float r )
 
 #else
 
-	return 1. / sqrt( r );
+	return 1.0f / sqrt( r );
 
 #endif
 }
@@ -210,7 +210,7 @@ float apx_rsq( float r ) {
 
 #else
 
-	return 1. / sqrt( r );
+	return 1.0f / sqrt( r );
 
 #endif
 }

+ 8 - 8
CamelotUtility/Include/CmPixelData.h

@@ -193,7 +193,7 @@ namespace CamelotEngine
     		@param pixelData    Pointer to the actual data
 			@param ownsPixelData  If true then PixelData owns the data buffer and will release it when destroyed.
     	*/
-    	PixelData(size_t width, size_t height, size_t depth, PixelFormat pixelFormat, 
+    	PixelData(UINT32 width, UINT32 height, UINT32 depth, PixelFormat pixelFormat, 
 				void *pixelData = 0, bool ownsPixelData = false):
     		Box(0, 0, 0, width, height, depth),
     		data(pixelData), format(pixelFormat), ownsData(ownsPixelData)
@@ -209,13 +209,13 @@ namespace CamelotEngine
          	pixel of the next. This value must always be equal to getWidth() (consecutive) 
 			for compressed formats.
         */
-        size_t rowPitch;
+        UINT32 rowPitch;
         /** Number of elements between the top left pixel of one (depth) slice and 
          	the top left pixel of the next. This can be a negative value. Must be a multiple of
          	rowPitch. This value must always be equal to getWidth()*getHeight() (consecutive) 
 			for compressed formats.
         */
-        size_t slicePitch;
+        UINT32 slicePitch;
 
 		/**
 		 * @brief	If true then PixelData owns the data buffer and will release it when destroyed.
@@ -234,12 +234,12 @@ namespace CamelotEngine
          	one row and the leftmost pixel of the next row. (IE this is zero if rows
          	are consecutive).
         */
-        size_t getRowSkip() const { return rowPitch - getWidth(); }
+        UINT32 getRowSkip() const { return rowPitch - getWidth(); }
         /** Get the number of elements between one past the right bottom pixel of
          	one slice and the left top pixel of the next slice. (IE this is zero if slices
          	are consecutive).
         */
-        size_t getSliceSkip() const { return slicePitch - (getHeight() * rowPitch); }
+        UINT32 getSliceSkip() const { return slicePitch - (getHeight() * rowPitch); }
 
         /** Return whether this buffer is laid out consecutive in memory (ie the pitches
          	are equal to the dimensions)
@@ -251,7 +251,7 @@ namespace CamelotEngine
         /** Return the size (in bytes) this image would take if it was
         	laid out consecutive in memory
       	*/
-      	size_t getConsecutiveSize() const;
+      	UINT32 getConsecutiveSize() const;
       	/** Return a subvolume of this PixelBox.
       		@param def	Defines the bounds of the subregion to return
       		@returns	A pixel box describing the region and the data in it
@@ -267,14 +267,14 @@ namespace CamelotEngine
          * is only valid for cubemaps and volume textures. This uses the first (largest)
          * mipmap.
          */
-        Color getColourAt(size_t x, size_t y, size_t z);
+        Color getColourAt(UINT32 x, UINT32 y, UINT32 z);
 
         /**
          * Set colour value at a certain location in the PixelBox. The z coordinate
          * is only valid for cubemaps and volume textures. This uses the first (largest)
          * mipmap.
          */
-        void setColourAt(Color const &cv, size_t x, size_t y, size_t z);
+        void setColourAt(Color const &cv, UINT32 x, UINT32 y, UINT32 z);
 
 		/************************************************************************/
 		/* 								SERIALIZATION                      		*/

+ 16 - 16
CamelotUtility/Include/CmPixelDataRTTI.h

@@ -9,29 +9,29 @@ namespace CamelotEngine
 {
 	class CM_UTILITY_EXPORT PixelDataRTTI : public RTTIType<PixelData, IReflectable, PixelDataRTTI>
 	{
-		size_t& getLeft(PixelData* obj) { return obj->left; }
-		void setLeft(PixelData* obj, size_t& val) { obj->left = val; }
+		UINT32& getLeft(PixelData* obj) { return obj->left; }
+		void setLeft(PixelData* obj, UINT32& val) { obj->left = val; }
 
-		size_t& getTop(PixelData* obj) { return obj->top; }
-		void setTop(PixelData* obj, size_t& val) { obj->top = val; }
+		UINT32& getTop(PixelData* obj) { return obj->top; }
+		void setTop(PixelData* obj, UINT32& val) { obj->top = val; }
 
-		size_t& getRight(PixelData* obj) { return obj->right; }
-		void setRight(PixelData* obj, size_t& val) { obj->right = val; }
+		UINT32& getRight(PixelData* obj) { return obj->right; }
+		void setRight(PixelData* obj, UINT32& val) { obj->right = val; }
 
-		size_t& getBottom(PixelData* obj) { return obj->bottom; }
-		void setBottom(PixelData* obj, size_t& val) { obj->bottom = val; }
+		UINT32& getBottom(PixelData* obj) { return obj->bottom; }
+		void setBottom(PixelData* obj, UINT32& val) { obj->bottom = val; }
 
-		size_t& getFront(PixelData* obj) { return obj->front; }
-		void setFront(PixelData* obj, size_t& val) { obj->front = val; }
+		UINT32& getFront(PixelData* obj) { return obj->front; }
+		void setFront(PixelData* obj, UINT32& val) { obj->front = val; }
 
-		size_t& getBack(PixelData* obj) { return obj->back; }
-		void setBack(PixelData* obj, size_t& val) { obj->back = val; }
+		UINT32& getBack(PixelData* obj) { return obj->back; }
+		void setBack(PixelData* obj, UINT32& val) { obj->back = val; }
 
-		size_t& getRowPitch(PixelData* obj) { return obj->rowPitch; }
-		void setRowPitch(PixelData* obj, size_t& val) { obj->rowPitch = val; }
+		UINT32& getRowPitch(PixelData* obj) { return obj->rowPitch; }
+		void setRowPitch(PixelData* obj, UINT32& val) { obj->rowPitch = val; }
 
-		size_t& getSlicePitch(PixelData* obj) { return obj->slicePitch; }
-		void setSlicePitch(PixelData* obj, size_t& val) { obj->slicePitch = val; }
+		UINT32& getSlicePitch(PixelData* obj) { return obj->slicePitch; }
+		void setSlicePitch(PixelData* obj, UINT32& val) { obj->slicePitch = val; }
 
 		ManagedDataBlock getData(PixelData* obj) 
 		{ 

+ 3 - 3
CamelotUtility/Include/CmPixelUtil.h

@@ -43,7 +43,7 @@ namespace CamelotEngine {
          @remarks
                Passing PF_UNKNOWN will result in returning a size of 0 bytes.
         */
-        static size_t getNumElemBytes( PixelFormat format );
+        static UINT32 getNumElemBytes( PixelFormat format );
 
         /** Returns the size in bits of an element of the given pixel format.
           @returns
@@ -51,7 +51,7 @@ namespace CamelotEngine {
            @remarks
                Passing PF_UNKNOWN will result in returning a size of 0 bits.
         */
-        static size_t getNumElemBits( PixelFormat format );
+        static UINT32 getNumElemBits( PixelFormat format );
 
 		/** Returns the size in memory of a region with the given extents and pixel
 			format with consecutive memory layout.
@@ -70,7 +70,7 @@ namespace CamelotEngine {
 				width*height*depth*PixelUtil::getNumElemBytes(format). In the compressed
 				case, this does serious magic.
 		*/
-		static size_t getMemorySize(size_t width, size_t height, size_t depth, PixelFormat format);
+		static UINT32 getMemorySize(UINT32 width, UINT32 height, UINT32 depth, PixelFormat format);
 		
         /** Returns the property flags for this pixel format
           @returns

+ 11 - 1
CamelotUtility/Include/CmRTTIField.h

@@ -9,6 +9,7 @@
 #include "CmPrerequisitesUtil.h"
 #include "CmIReflectable.h"
 #include "CmManagedDataBlock.h"
+#include "CmException.h"
 
 namespace CamelotEngine
 {
@@ -97,7 +98,16 @@ namespace CamelotEngine
 
 		static UINT32 getDynamicSize(String& data)	
 		{ 
-			return data.size() * sizeof(String::value_type) + sizeof(UINT32);
+			UINT64 dataSize = data.size() * sizeof(String::value_type) + sizeof(UINT32);
+
+#if CM_DEBUG_MODE
+			if(dataSize > std::numeric_limits<UINT32>::max())
+			{
+				CM_EXCEPT(InternalErrorException, "Data overflow! Size doesn't fit into 32 bits.");
+			}
+#endif
+
+			return (UINT32)dataSize;
 		}	
 	}; 
 

+ 1 - 1
CamelotUtility/Include/CmRTTIType.h

@@ -223,7 +223,7 @@ namespace CamelotEngine
 			field->setArraySize(object, size);
 		}	
 
-		UINT32 getNumFields() { return mFields.size(); }
+		UINT32 getNumFields() { return (UINT32)mFields.size(); }
 		RTTIField* getField(UINT32 idx) { return mFields.at(idx); }
 
 		/**

+ 5 - 6
CamelotUtility/Include/CmString.h

@@ -230,7 +230,7 @@ namespace CamelotEngine {
     CM_UTILITY_EXPORT String toString(int val, unsigned short width = 0, 
         char fill = ' ', 
         std::ios::fmtflags flags = std::ios::fmtflags(0) );
-#if CM_ARCH_TYPE == CM_ARCHITECTURE_64 || CM_PLATFORM == CM_PLATFORM_APPLE
+#if CM_ARCH_TYPE == CM_ARCHITECTURE_64
     /** Converts an unsigned int to a String. */
     CM_UTILITY_EXPORT String toString(unsigned int val, 
         unsigned short width = 0, char fill = ' ', 
@@ -255,17 +255,16 @@ namespace CamelotEngine {
     CM_UTILITY_EXPORT String toString(unsigned long val, 
         unsigned short width = 0, char fill = ' ', 
         std::ios::fmtflags flags = std::ios::fmtflags(0) );
+	/** Converts a long long to a String. */
+	CM_UTILITY_EXPORT String toString(unsigned long long int val, 
+		unsigned short width = 0, char fill = ' ', 
+		std::ios::fmtflags flags = std::ios::fmtflags(0) );
 #endif
     /** Converts a long to a String. */
     CM_UTILITY_EXPORT String toString(long val, 
         unsigned short width = 0, char fill = ' ', 
         std::ios::fmtflags flags = std::ios::fmtflags(0) );
 
-	/** Converts a long long to a String. */
-	CM_UTILITY_EXPORT String toString(unsigned long long int val, 
-		unsigned short width = 0, char fill = ' ', 
-		std::ios::fmtflags flags = std::ios::fmtflags(0) );
-
 	/** Global conversion methods **/
 
     /** Converts a boolean to a String. 

+ 18 - 18
CamelotUtility/Source/CmPixelUtil.cpp

@@ -118,7 +118,7 @@ namespace CamelotEngine {
 				temp = static_cast<unsigned int>(sz_48 >> 32);
 				temp = (temp > 0x8000)? temp - 0x8000 : 0;
 				size_t sz1 = temp >> 16;				 // src z, sample #1
-				size_t sz2 = std::min(sz1+1,src.getDepth()-1);// src z, sample #2
+				size_t sz2 = std::min(sz1+1,(UINT64)src.getDepth()-1);// src z, sample #2
 				float szf = (temp & 0xFFFF) / 65536.f; // weight of sample #2
 
 				UINT64 sy_48 = (stepy >> 1) - 1;
@@ -126,7 +126,7 @@ namespace CamelotEngine {
 					temp = static_cast<unsigned int>(sy_48 >> 32);
 					temp = (temp > 0x8000)? temp - 0x8000 : 0;
 					size_t sy1 = temp >> 16;					// src y #1
-					size_t sy2 = std::min(sy1+1,src.getHeight()-1);// src y #2
+					size_t sy2 = std::min(sy1+1,(UINT64)src.getHeight()-1);// src y #2
 					float syf = (temp & 0xFFFF) / 65536.f; // weight of #2
 
 					UINT64 sx_48 = (stepx >> 1) - 1;
@@ -134,7 +134,7 @@ namespace CamelotEngine {
 						temp = static_cast<unsigned int>(sx_48 >> 32);
 						temp = (temp > 0x8000)? temp - 0x8000 : 0;
 						size_t sx1 = temp >> 16;					// src x #1
-						size_t sx2 = std::min(sx1+1,src.getWidth()-1);// src x #2
+						size_t sx2 = std::min(sx1+1,(UINT64)src.getWidth()-1);// src x #2
 						float sxf = (temp & 0xFFFF) / 65536.f; // weight of #2
 
 						Color x1y1z1, x2y1z1, x1y2z1, x2y2z1;
@@ -203,7 +203,7 @@ namespace CamelotEngine {
 				temp = static_cast<unsigned int>(sz_48 >> 32);
 				temp = (temp > 0x8000)? temp - 0x8000 : 0;
 				size_t sz1 = temp >> 16;				 // src z, sample #1
-				size_t sz2 = std::min(sz1+1,src.getDepth()-1);// src z, sample #2
+				size_t sz2 = std::min(sz1+1,(UINT64)src.getDepth()-1);// src z, sample #2
 				float szf = (temp & 0xFFFF) / 65536.f; // weight of sample #2
 
 				UINT64 sy_48 = (stepy >> 1) - 1;
@@ -211,7 +211,7 @@ namespace CamelotEngine {
 					temp = static_cast<unsigned int>(sy_48 >> 32);
 					temp = (temp > 0x8000)? temp - 0x8000 : 0;
 					size_t sy1 = temp >> 16;					// src y #1
-					size_t sy2 = std::min(sy1+1,src.getHeight()-1);// src y #2
+					size_t sy2 = std::min(sy1+1,(UINT64)src.getHeight()-1);// src y #2
 					float syf = (temp & 0xFFFF) / 65536.f; // weight of #2
 
 					UINT64 sx_48 = (stepx >> 1) - 1;
@@ -219,7 +219,7 @@ namespace CamelotEngine {
 						temp = static_cast<unsigned int>(sx_48 >> 32);
 						temp = (temp > 0x8000)? temp - 0x8000 : 0;
 						size_t sx1 = temp >> 16;					// src x #1
-						size_t sx2 = std::min(sx1+1,src.getWidth()-1);// src x #2
+						size_t sx2 = std::min(sx1+1,(UINT64)src.getWidth()-1);// src x #2
 						float sxf = (temp & 0xFFFF) / 65536.f; // weight of #2
 
 						// process R,G,B,A simultaneously for cache coherence?
@@ -312,7 +312,7 @@ namespace CamelotEngine {
 				temp = (temp > 0x800)? temp - 0x800: 0;
 				unsigned int syf = temp & 0xFFF;
 				size_t sy1 = temp >> 12;
-				size_t sy2 = std::min(sy1+1, src.bottom-src.top-1);
+				size_t sy2 = std::min(sy1+1, (UINT64)src.bottom-src.top-1);
 				size_t syoff1 = sy1 * src.rowPitch;
 				size_t syoff2 = sy2 * src.rowPitch;
 
@@ -322,7 +322,7 @@ namespace CamelotEngine {
 					temp = (temp > 0x800)? temp - 0x800 : 0;
 					unsigned int sxf = temp & 0xFFF;
 					size_t sx1 = temp >> 12;
-					size_t sx2 = std::min(sx1+1, src.right-src.left-1);
+					size_t sx2 = std::min(sx1+1, (UINT64)src.right-src.left-1);
 
 					unsigned int sxfsyf = sxf*syf;
 					for (unsigned int k = 0; k < channels; k++) {
@@ -936,7 +936,7 @@ namespace CamelotEngine {
         
     };
     //-----------------------------------------------------------------------
-	size_t PixelData::getConsecutiveSize() const
+	UINT32 PixelData::getConsecutiveSize() const
 	{
 		return PixelUtil::getMemorySize(getWidth(), getHeight(), getDepth(), format);
 	}
@@ -986,12 +986,12 @@ namespace CamelotEngine {
         return _pixelFormats[ord];
     }
     //-----------------------------------------------------------------------
-    size_t PixelUtil::getNumElemBytes( PixelFormat format )
+    UINT32 PixelUtil::getNumElemBytes( PixelFormat format )
     {
         return getDescriptionFor(format).elemBytes;
     }
 	//-----------------------------------------------------------------------
-	size_t PixelUtil::getMemorySize(size_t width, size_t height, size_t depth, PixelFormat format)
+	UINT32 PixelUtil::getMemorySize(UINT32 width, UINT32 height, UINT32 depth, PixelFormat format)
 	{
 		if(isCompressed(format))
 		{
@@ -1028,7 +1028,7 @@ namespace CamelotEngine {
 		}
 	}
     //-----------------------------------------------------------------------
-    size_t PixelUtil::getNumElemBits( PixelFormat format )
+    UINT32 PixelUtil::getNumElemBits( PixelFormat format )
     {
         return getDescriptionFor(format).elemBytes * 8;
     }
@@ -1805,21 +1805,21 @@ namespace CamelotEngine {
 		}
 	}
 
-    Color PixelData::getColourAt(size_t x, size_t y, size_t z)
+    Color PixelData::getColourAt(UINT32 x, UINT32 y, UINT32 z)
     {
         Color cv;
 
-        unsigned char pixelSize = PixelUtil::getNumElemBytes(format);
-        size_t pixelOffset = pixelSize * (z * slicePitch + y * rowPitch + x);
+        UINT32 pixelSize = PixelUtil::getNumElemBytes(format);
+        UINT32 pixelOffset = pixelSize * (z * slicePitch + y * rowPitch + x);
         PixelUtil::unpackColour(&cv, format, (unsigned char *)data + pixelOffset);
 
         return cv;
     }
 
-    void PixelData::setColourAt(Color const &cv, size_t x, size_t y, size_t z)
+    void PixelData::setColourAt(Color const &cv, UINT32 x, UINT32 y, UINT32 z)
     {
-        unsigned char pixelSize = PixelUtil::getNumElemBytes(format);
-        size_t pixelOffset = pixelSize * (z * slicePitch + y * rowPitch + x);
+        UINT32 pixelSize = PixelUtil::getNumElemBytes(format);
+        UINT32 pixelOffset = pixelSize * (z * slicePitch + y * rowPitch + x);
         PixelUtil::packColour(cv, format, (unsigned char *)data + pixelOffset);
     }
 }

+ 3 - 3
CamelotUtility/Source/CmString.cpp

@@ -473,8 +473,7 @@ namespace CamelotEngine {
 		return stream.str();
 	}
 	//-----------------------------------------------------------------------
-#endif
-	String toString(long val, 
+	String toString(unsigned long long int val, 
 		unsigned short width, char fill, std::ios::fmtflags flags)
 	{
 		stringstream stream;
@@ -486,7 +485,8 @@ namespace CamelotEngine {
 		return stream.str();
 	}
 	//-----------------------------------------------------------------------
-	String toString(unsigned long long int val, 
+#endif
+	String toString(long val, 
 		unsigned short width, char fill, std::ios::fmtflags flags)
 	{
 		stringstream stream;