Преглед изворни кода

WIP ability to customize renderer materials using defines

BearishSun пре 9 година
родитељ
комит
77b0fe421e

+ 671 - 666
Build/VS2015/BansheeCore.vcxproj

@@ -1,667 +1,672 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="DebugRelease|Win32">
-      <Configuration>DebugRelease</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="DebugRelease|x64">
-      <Configuration>DebugRelease</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Debug|Win32">
-      <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>{9B21D41C-516B-43BF-9B10-E99B599C7589}</ProjectGuid>
-    <Keyword>Win32Proj</Keyword>
-    <RootNamespace>CamelotCore</RootNamespace>
-    <ProjectName>BansheeCore</ProjectName>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-    <ConfigurationType>DynamicLibrary</ConfigurationType>
-    <UseDebugLibraries>true</UseDebugLibraries>
-    <PlatformToolset>v140</PlatformToolset>
-    <CharacterSet>NotSet</CharacterSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
-    <ConfigurationType>DynamicLibrary</ConfigurationType>
-    <UseDebugLibraries>true</UseDebugLibraries>
-    <PlatformToolset>v140</PlatformToolset>
-    <CharacterSet>NotSet</CharacterSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-    <ConfigurationType>DynamicLibrary</ConfigurationType>
-    <UseDebugLibraries>false</UseDebugLibraries>
-    <PlatformToolset>v140</PlatformToolset>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-    <CharacterSet>NotSet</CharacterSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugRelease|Win32'" Label="Configuration">
-    <ConfigurationType>DynamicLibrary</ConfigurationType>
-    <UseDebugLibraries>false</UseDebugLibraries>
-    <PlatformToolset>v140</PlatformToolset>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-    <CharacterSet>NotSet</CharacterSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
-    <ConfigurationType>DynamicLibrary</ConfigurationType>
-    <UseDebugLibraries>false</UseDebugLibraries>
-    <PlatformToolset>v140</PlatformToolset>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-    <CharacterSet>NotSet</CharacterSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugRelease|x64'" Label="Configuration">
-    <ConfigurationType>DynamicLibrary</ConfigurationType>
-    <UseDebugLibraries>false</UseDebugLibraries>
-    <PlatformToolset>v140</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)'=='DebugRelease|Win32'" Label="PropertySheets">
-    <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>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugRelease|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'">
-    <LinkIncremental>true</LinkIncremental>
-    <IncludePath>C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Include;$(IncludePath)</IncludePath>
-    <LibraryPath>C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Lib\x86;$(LibraryPath)</LibraryPath>
-    <OutDir>..\..\bin\x86\$(Configuration)\</OutDir>
-    <IntDir>.\Intermediate\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <LinkIncremental>true</LinkIncremental>
-    <IncludePath>C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Include;$(IncludePath)</IncludePath>
-    <LibraryPath>C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Lib\x64;$(LibraryPath)</LibraryPath>
-    <OutDir>..\..\bin\$(Platform)\$(Configuration)\</OutDir>
-    <IntDir>.\Intermediate\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <LinkIncremental>false</LinkIncremental>
-    <IncludePath>C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Include;$(IncludePath)</IncludePath>
-    <LibraryPath>C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Lib\x86;$(LibraryPath)</LibraryPath>
-    <OutDir>..\..\bin\x86\$(Configuration)\</OutDir>
-    <IntDir>.\Intermediate\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugRelease|Win32'">
-    <LinkIncremental>false</LinkIncremental>
-    <IncludePath>C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Include;$(IncludePath)</IncludePath>
-    <LibraryPath>C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Lib\x86;$(LibraryPath)</LibraryPath>
-    <OutDir>..\..\bin\x86\$(Configuration)\</OutDir>
-    <IntDir>.\Intermediate\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <LinkIncremental>false</LinkIncremental>
-    <IncludePath>C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Include;$(IncludePath)</IncludePath>
-    <LibraryPath>C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Lib\x64;$(LibraryPath)</LibraryPath>
-    <OutDir>..\..\bin\$(Platform)\$(Configuration)\</OutDir>
-    <IntDir>.\Intermediate\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugRelease|x64'">
-    <LinkIncremental>false</LinkIncremental>
-    <IncludePath>C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Include;$(IncludePath)</IncludePath>
-    <LibraryPath>C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Lib\x64;$(LibraryPath)</LibraryPath>
-    <OutDir>..\..\bin\$(Platform)\$(Configuration)\</OutDir>
-    <IntDir>.\Intermediate\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <ClCompile>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <Optimization>Disabled</Optimization>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;BS_CORE_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>../../Source/BansheeCore/Include;../../Source/BansheeUtility/Include;..\..\Dependencies\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
-      <InlineFunctionExpansion>Default</InlineFunctionExpansion>
-      <RuntimeTypeInfo>false</RuntimeTypeInfo>
-      <ExceptionHandling>false</ExceptionHandling>
-      <DisableSpecificWarnings>4530;4577</DisableSpecificWarnings>
-    </ClCompile>
-    <Link>
-      <SubSystem>NotSet</SubSystem>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <AdditionalDependencies>BansheeUtility.lib;nvtt.lib;Winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <AdditionalLibraryDirectories>../../lib/x86/$(Configuration);../../Dependencies/lib/x86/Debug</AdditionalLibraryDirectories>
-      <ImportLibrary>..\..\lib\x86\$(Configuration)\$(TargetName).lib</ImportLibrary>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <ClCompile>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <Optimization>Disabled</Optimization>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;BS_CORE_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>../../Source/BansheeCore/Include;../../Source/BansheeUtility/Include;..\..\Dependencies\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
-      <InlineFunctionExpansion>Default</InlineFunctionExpansion>
-      <RuntimeTypeInfo>false</RuntimeTypeInfo>
-      <ExceptionHandling>false</ExceptionHandling>
-      <DisableSpecificWarnings>4530;4577</DisableSpecificWarnings>
-    </ClCompile>
-    <Link>
-      <SubSystem>NotSet</SubSystem>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <AdditionalDependencies>BansheeUtility.lib;nvtt.lib;Winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <AdditionalLibraryDirectories>../../lib/$(Platform)/$(Configuration);../../Dependencies/lib/x64/Debug</AdditionalLibraryDirectories>
-      <ImportLibrary>..\..\lib\$(Platform)\$(Configuration)\$(TargetName).lib</ImportLibrary>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <ClCompile>
-      <WarningLevel>Level3</WarningLevel>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <Optimization>MaxSpeed</Optimization>
-      <FunctionLevelLinking>true</FunctionLevelLinking>
-      <IntrinsicFunctions>true</IntrinsicFunctions>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;BS_CORE_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>../../Source/BansheeCore/Include;../../Source/BansheeUtility/Include;..\..\Dependencies\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
-      <DebugInformationFormat>None</DebugInformationFormat>
-      <BufferSecurityCheck>false</BufferSecurityCheck>
-      <InlineFunctionExpansion>Default</InlineFunctionExpansion>
-      <RuntimeTypeInfo>false</RuntimeTypeInfo>
-      <ExceptionHandling>false</ExceptionHandling>
-      <DisableSpecificWarnings>4530;4577</DisableSpecificWarnings>
-    </ClCompile>
-    <Link>
-      <SubSystem>NotSet</SubSystem>
-      <GenerateDebugInformation>false</GenerateDebugInformation>
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-      <OptimizeReferences>true</OptimizeReferences>
-      <AdditionalDependencies>BansheeUtility.lib;nvtt.lib;Winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <AdditionalLibraryDirectories>../../lib/x86/$(Configuration);../../Dependencies/lib/x86/Release</AdditionalLibraryDirectories>
-      <ImportLibrary>..\..\lib\x86\$(Configuration)\$(TargetName).lib</ImportLibrary>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugRelease|Win32'">
-    <ClCompile>
-      <WarningLevel>Level3</WarningLevel>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <Optimization>MaxSpeed</Optimization>
-      <FunctionLevelLinking>true</FunctionLevelLinking>
-      <IntrinsicFunctions>true</IntrinsicFunctions>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;BS_CORE_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>../../Source/BansheeCore/Include;../../Source/BansheeUtility/Include;..\..\Dependencies\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
-      <BufferSecurityCheck>false</BufferSecurityCheck>
-      <MinimalRebuild>true</MinimalRebuild>
-      <InlineFunctionExpansion>Default</InlineFunctionExpansion>
-      <RuntimeTypeInfo>false</RuntimeTypeInfo>
-      <ExceptionHandling>false</ExceptionHandling>
-      <DisableSpecificWarnings>4530;4577</DisableSpecificWarnings>
-    </ClCompile>
-    <Link>
-      <SubSystem>NotSet</SubSystem>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-      <OptimizeReferences>true</OptimizeReferences>
-      <AdditionalDependencies>BansheeUtility.lib;nvtt.lib;Winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <AdditionalLibraryDirectories>../../lib/x86/$(Configuration);../../Dependencies/lib/x86/DebugRelease</AdditionalLibraryDirectories>
-      <ImportLibrary>..\..\lib\x86\$(Configuration)\$(TargetName).lib</ImportLibrary>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <ClCompile>
-      <WarningLevel>Level3</WarningLevel>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <Optimization>MaxSpeed</Optimization>
-      <FunctionLevelLinking>true</FunctionLevelLinking>
-      <IntrinsicFunctions>true</IntrinsicFunctions>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;BS_CORE_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>../../Source/BansheeCore/Include;../../Source/BansheeUtility/Include;..\..\Dependencies\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
-      <DebugInformationFormat>None</DebugInformationFormat>
-      <BufferSecurityCheck>false</BufferSecurityCheck>
-      <InlineFunctionExpansion>Default</InlineFunctionExpansion>
-      <RuntimeTypeInfo>false</RuntimeTypeInfo>
-      <ExceptionHandling>false</ExceptionHandling>
-      <DisableSpecificWarnings>4530;4577</DisableSpecificWarnings>
-    </ClCompile>
-    <Link>
-      <SubSystem>NotSet</SubSystem>
-      <GenerateDebugInformation>false</GenerateDebugInformation>
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-      <OptimizeReferences>true</OptimizeReferences>
-      <AdditionalDependencies>BansheeUtility.lib;nvtt.lib;Winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <AdditionalLibraryDirectories>../../lib/$(Platform)/$(Configuration);../../Dependencies/lib/x64/Release</AdditionalLibraryDirectories>
-      <ImportLibrary>..\..\lib\$(Platform)\$(Configuration)\$(TargetName).lib</ImportLibrary>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugRelease|x64'">
-    <ClCompile>
-      <WarningLevel>Level3</WarningLevel>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <Optimization>MaxSpeed</Optimization>
-      <FunctionLevelLinking>true</FunctionLevelLinking>
-      <IntrinsicFunctions>true</IntrinsicFunctions>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;BS_CORE_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>../../Source/BansheeCore/Include;../../Source/BansheeUtility/Include;..\..\Dependencies\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
-      <BufferSecurityCheck>false</BufferSecurityCheck>
-      <MinimalRebuild>true</MinimalRebuild>
-      <InlineFunctionExpansion>Default</InlineFunctionExpansion>
-      <RuntimeTypeInfo>false</RuntimeTypeInfo>
-      <ExceptionHandling>false</ExceptionHandling>
-      <DisableSpecificWarnings>4530;4577</DisableSpecificWarnings>
-    </ClCompile>
-    <Link>
-      <SubSystem>NotSet</SubSystem>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-      <OptimizeReferences>true</OptimizeReferences>
-      <AdditionalDependencies>BansheeUtility.lib;nvtt.lib;Winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <AdditionalLibraryDirectories>../../lib/$(Platform)/$(Configuration);../../Dependencies/lib/x64/DebugRelease</AdditionalLibraryDirectories>
-      <ImportLibrary>..\..\lib\$(Platform)\$(Configuration)\$(TargetName).lib</ImportLibrary>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsBoxCollider.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCBoxColliderRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCapsuleCollider.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCBoxCollider.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCCapsuleCollider.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCCapsuleColliderRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCCharacterController.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCCollider.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCColliderRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCD6Joint.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCD6JointRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCDistanceJoint.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCDistanceJointRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCFixedJointRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCharacterController.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCCharacterControllerRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCHingeJoint.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCHingeJointRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCJointRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCMeshCollider.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCMeshColliderRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCollider.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPhysicsCommon.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCoreObjectCore.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCPlaneCollider.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCPlaneColliderRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCRigidbody.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCRigidbodyRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCSliderJoint.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCSliderJointRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCSphereCollider.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCSphereColliderRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCSphericalJoint.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCSphericalJointRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsD6Joint.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsDistanceJoint.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsFCollider.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsFixedJoint.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsFJoint.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsHingeJoint.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsHString.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsIconUtility.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsJoint.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMaterialParams.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMaterialParamsRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshCollider.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshImportOptions.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshImportOptionsRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshUtility.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsParamBlocks.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPhysics.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPhysicsMaterial.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPhysicsMaterialRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPhysicsMesh.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPlaneCollider.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPrefab.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPrefabDiff.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPrefabDiffRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPrefabRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPrefabUtility.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRendererMeshData.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRigidbody.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsShaderIncludeRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsIResourceListener.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMaterialParam.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRenderStats.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCoreThread.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsProfilerCPU.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsDeferredCallManager.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsDrawOps.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsEventQuery.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsFolderMonitor.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGameObjectHandle.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGameObject.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGameObjectHandleRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGameObjectManager.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGameObjectRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsProfilerGPU.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuResourceData.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuParamBlockBuffer.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuResourceDataRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuParam.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsInputFwd.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshBase.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshBaseRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshHeap.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsOSInputHandler.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPixelData.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPixelDataRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPixelUtil.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPixelVolume.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPlatform.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsProfilingManager.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsQueryManager.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSavedResourceData.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSavedResourceDataRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsResourceListenerManager.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsResourceManifest.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsResourceManifestRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsResourceMetaData.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsResourceMetaDataRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSceneObjectRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCoreApplication.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsBlendStateRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCommandQueue.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCommonTypes.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsComponentRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCoreObject.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCoreObjectManager.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCoreThreadAccessor.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsDepthStencilStateRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsDepthStencilState.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsFont.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsFontDesc.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsFontImportOptions.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsFontImportOptionsRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsFontManager.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsFontRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuBuffer.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuBufferView.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuParamDesc.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuParams.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsShaderInclude.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuProgram.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuProgramRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsHardwareBuffer.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsHardwareBufferManager.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsImportOptions.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsImportOptionsRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsIndexBuffer.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMaterialManager.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshManager.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsOcclusionQuery.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPixelBuffer.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsShaderIncludeImporter.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsShaderManager.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSliderJoint.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSphereCollider.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSphericalJoint.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsStringTable.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsStringTableManager.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsStringTableRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSubMesh.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTextureImportOptions.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTextureImportOptionsRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTextureView.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTextData.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTimerQuery.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTransientMesh.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsUtility.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsUUID.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsVertexBuffer.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuProgramManager.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsImporter.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsInput.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRawInputHandler.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMaterial.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMaterialRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMesh.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshData.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshDataRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMultiRenderTexture.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPass.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPassRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCorePrerequisites.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRasterizerState.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRasterizerStateRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCoreRenderer.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRendererFactory.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRendererManager.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRenderStateManager.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRenderAPI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRenderAPICapabilities.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRenderAPIFactory.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRenderAPIManager.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRenderTarget.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRenderTexture.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRenderWindow.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRenderWindowManager.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsResource.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsResourceHandle.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsResourceHandleRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsResources.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSamplerStateRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCoreSceneManager.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsShaderRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSpecificImporter.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTechniqueRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTexture.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTextureManager.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTextureRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSamplerState.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsVertexDataDesc.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsVertexDataDescRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsVertexDeclaration.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsVertexData.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsVideoModeInfo.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsViewport.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsResourceRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSceneObject.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsComponent.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsShader.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsBlendState.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsVertexDeclarationRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTechnique.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsViewportRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPhysicsManager.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCJoint.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCFixedJoint.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\Win32\BsWin32Defs.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\Win32\BsWin32Platform.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\Win32\BsWin32DropTarget.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\Win32\BsWin32FolderMonitor.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\Win32\BSWin32PlatformData.h" />
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPhysicsMeshRTTI.h" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsBoxCollider.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCapsuleCollider.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCBoxCollider.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCCapsuleCollider.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCCharacterController.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCCollider.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCD6Joint.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCDistanceJoint.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCFixedJoint.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCharacterController.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCHingeJoint.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCJoint.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCMeshCollider.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCollider.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCoreObjectCore.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCoreThread.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCPlaneCollider.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCRigidbody.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCSliderJoint.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCSphereCollider.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCSphericalJoint.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsD6Joint.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsDistanceJoint.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsFCollider.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsFixedJoint.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsFJoint.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsHingeJoint.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsHString.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsIconUtility.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsIResourceListener.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsJoint.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMaterialParam.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMeshCollider.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMeshImportOptions.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMeshUtility.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPhysics.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPhysicsManager.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPhysicsMaterial.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPhysicsMesh.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPlaneCollider.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPrefab.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPrefabDiff.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPrefabUtility.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsProfilerCPU.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsDeferredCallManager.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsDrawOps.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsEventQuery.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGameObjectHandle.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGameObject.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCoreApplication.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsBlendState.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCommandQueue.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCoreObject.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCoreObjectManager.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCoreThreadAccessor.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsDepthStencilState.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsFont.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsFontImportOptions.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsFontManager.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGameObjectManager.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGpuBuffer.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGpuBufferView.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGpuParamBlockBuffer.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGpuParams.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsProfilerGPU.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRendererMeshData.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRigidbody.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsShaderInclude.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGpuProgram.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGpuResourceData.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsHardwareBufferManager.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGpuParam.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsImportOptions.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsIndexBuffer.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMaterialManager.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMeshBase.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMeshHeap.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMeshManager.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsOcclusionQuery.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsOSInputHandler.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPixelBuffer.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsShaderIncludeImporter.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPixelData.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPixelUtil.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPlatform.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsProfilingManager.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsQueryManager.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCoreRenderer.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsSavedResourceData.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsResourceListenerManager.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsResourceManifest.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsResourceMetaData.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsShaderManager.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsSliderJoint.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsSphereCollider.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsSphericalJoint.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsStringTable.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsStringTableManager.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsTextureImportOptions.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsTextureView.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsTextData.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsTimerQuery.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsTransientMesh.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsUtility.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsUUID.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsVertexBuffer.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGpuProgramManager.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsImporter.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsInput.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMaterial.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMaterialRTTI.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMesh.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMeshData.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMultiRenderTexture.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPass.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRasterizerState.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRendererManager.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRenderAPI.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRenderAPICapabilities.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRenderAPIManager.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRenderTarget.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRenderTexture.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRenderWindow.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRenderWindowManager.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsResource.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsResourceHandle.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsResources.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRenderStateManager.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCoreSceneManager.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsShader.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsSpecificImporter.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsTechnique.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsTexture.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsTextureManager.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsSamplerState.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsVertexDataDesc.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsVertexDeclaration.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsVertexData.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsVideoModeInfo.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsViewport.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsSceneObject.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsComponent.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMaterialParams.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\Win32\BsWin32BrowseDialogs.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\Win32\BsWin32Platform.cpp" />
-    <ClCompile Include="..\..\Source\BansheeCore\Source\Win32\BsWin32FolderMonitor.cpp" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-  </ImportGroup>
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="DebugRelease|Win32">
+      <Configuration>DebugRelease</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="DebugRelease|x64">
+      <Configuration>DebugRelease</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|Win32">
+      <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>{9B21D41C-516B-43BF-9B10-E99B599C7589}</ProjectGuid>
+    <Keyword>Win32Proj</Keyword>
+    <RootNamespace>CamelotCore</RootNamespace>
+    <ProjectName>BansheeCore</ProjectName>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v140</PlatformToolset>
+    <CharacterSet>NotSet</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v140</PlatformToolset>
+    <CharacterSet>NotSet</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v140</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>NotSet</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugRelease|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v140</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>NotSet</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v140</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>NotSet</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugRelease|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v140</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)'=='DebugRelease|Win32'" Label="PropertySheets">
+    <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>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugRelease|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'">
+    <LinkIncremental>true</LinkIncremental>
+    <IncludePath>C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Include;$(IncludePath)</IncludePath>
+    <LibraryPath>C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Lib\x86;$(LibraryPath)</LibraryPath>
+    <OutDir>..\..\bin\x86\$(Configuration)\</OutDir>
+    <IntDir>.\Intermediate\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <LinkIncremental>true</LinkIncremental>
+    <IncludePath>C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Include;$(IncludePath)</IncludePath>
+    <LibraryPath>C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Lib\x64;$(LibraryPath)</LibraryPath>
+    <OutDir>..\..\bin\$(Platform)\$(Configuration)\</OutDir>
+    <IntDir>.\Intermediate\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <LinkIncremental>false</LinkIncremental>
+    <IncludePath>C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Include;$(IncludePath)</IncludePath>
+    <LibraryPath>C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Lib\x86;$(LibraryPath)</LibraryPath>
+    <OutDir>..\..\bin\x86\$(Configuration)\</OutDir>
+    <IntDir>.\Intermediate\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugRelease|Win32'">
+    <LinkIncremental>false</LinkIncremental>
+    <IncludePath>C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Include;$(IncludePath)</IncludePath>
+    <LibraryPath>C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Lib\x86;$(LibraryPath)</LibraryPath>
+    <OutDir>..\..\bin\x86\$(Configuration)\</OutDir>
+    <IntDir>.\Intermediate\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <LinkIncremental>false</LinkIncremental>
+    <IncludePath>C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Include;$(IncludePath)</IncludePath>
+    <LibraryPath>C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Lib\x64;$(LibraryPath)</LibraryPath>
+    <OutDir>..\..\bin\$(Platform)\$(Configuration)\</OutDir>
+    <IntDir>.\Intermediate\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugRelease|x64'">
+    <LinkIncremental>false</LinkIncremental>
+    <IncludePath>C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Include;$(IncludePath)</IncludePath>
+    <LibraryPath>C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Lib\x64;$(LibraryPath)</LibraryPath>
+    <OutDir>..\..\bin\$(Platform)\$(Configuration)\</OutDir>
+    <IntDir>.\Intermediate\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;BS_CORE_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>../../Source/BansheeCore/Include;../../Source/BansheeUtility/Include;..\..\Dependencies\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
+      <InlineFunctionExpansion>Default</InlineFunctionExpansion>
+      <RuntimeTypeInfo>false</RuntimeTypeInfo>
+      <ExceptionHandling>false</ExceptionHandling>
+      <DisableSpecificWarnings>4530;4577</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <SubSystem>NotSet</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <AdditionalDependencies>BansheeUtility.lib;nvtt.lib;Winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>../../lib/x86/$(Configuration);../../Dependencies/lib/x86/Debug</AdditionalLibraryDirectories>
+      <ImportLibrary>..\..\lib\x86\$(Configuration)\$(TargetName).lib</ImportLibrary>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;BS_CORE_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>../../Source/BansheeCore/Include;../../Source/BansheeUtility/Include;..\..\Dependencies\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
+      <InlineFunctionExpansion>Default</InlineFunctionExpansion>
+      <RuntimeTypeInfo>false</RuntimeTypeInfo>
+      <ExceptionHandling>false</ExceptionHandling>
+      <DisableSpecificWarnings>4530;4577</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <SubSystem>NotSet</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <AdditionalDependencies>BansheeUtility.lib;nvtt.lib;Winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>../../lib/$(Platform)/$(Configuration);../../Dependencies/lib/x64/Debug</AdditionalLibraryDirectories>
+      <ImportLibrary>..\..\lib\$(Platform)\$(Configuration)\$(TargetName).lib</ImportLibrary>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;BS_CORE_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>../../Source/BansheeCore/Include;../../Source/BansheeUtility/Include;..\..\Dependencies\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
+      <DebugInformationFormat>None</DebugInformationFormat>
+      <BufferSecurityCheck>false</BufferSecurityCheck>
+      <InlineFunctionExpansion>Default</InlineFunctionExpansion>
+      <RuntimeTypeInfo>false</RuntimeTypeInfo>
+      <ExceptionHandling>false</ExceptionHandling>
+      <DisableSpecificWarnings>4530;4577</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <SubSystem>NotSet</SubSystem>
+      <GenerateDebugInformation>false</GenerateDebugInformation>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <AdditionalDependencies>BansheeUtility.lib;nvtt.lib;Winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>../../lib/x86/$(Configuration);../../Dependencies/lib/x86/Release</AdditionalLibraryDirectories>
+      <ImportLibrary>..\..\lib\x86\$(Configuration)\$(TargetName).lib</ImportLibrary>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugRelease|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;BS_CORE_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>../../Source/BansheeCore/Include;../../Source/BansheeUtility/Include;..\..\Dependencies\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <BufferSecurityCheck>false</BufferSecurityCheck>
+      <MinimalRebuild>true</MinimalRebuild>
+      <InlineFunctionExpansion>Default</InlineFunctionExpansion>
+      <RuntimeTypeInfo>false</RuntimeTypeInfo>
+      <ExceptionHandling>false</ExceptionHandling>
+      <DisableSpecificWarnings>4530;4577</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <SubSystem>NotSet</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <AdditionalDependencies>BansheeUtility.lib;nvtt.lib;Winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>../../lib/x86/$(Configuration);../../Dependencies/lib/x86/DebugRelease</AdditionalLibraryDirectories>
+      <ImportLibrary>..\..\lib\x86\$(Configuration)\$(TargetName).lib</ImportLibrary>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;BS_CORE_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>../../Source/BansheeCore/Include;../../Source/BansheeUtility/Include;..\..\Dependencies\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
+      <DebugInformationFormat>None</DebugInformationFormat>
+      <BufferSecurityCheck>false</BufferSecurityCheck>
+      <InlineFunctionExpansion>Default</InlineFunctionExpansion>
+      <RuntimeTypeInfo>false</RuntimeTypeInfo>
+      <ExceptionHandling>false</ExceptionHandling>
+      <DisableSpecificWarnings>4530;4577</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <SubSystem>NotSet</SubSystem>
+      <GenerateDebugInformation>false</GenerateDebugInformation>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <AdditionalDependencies>BansheeUtility.lib;nvtt.lib;Winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>../../lib/$(Platform)/$(Configuration);../../Dependencies/lib/x64/Release</AdditionalLibraryDirectories>
+      <ImportLibrary>..\..\lib\$(Platform)\$(Configuration)\$(TargetName).lib</ImportLibrary>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugRelease|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;BS_CORE_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>../../Source/BansheeCore/Include;../../Source/BansheeUtility/Include;..\..\Dependencies\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <BufferSecurityCheck>false</BufferSecurityCheck>
+      <MinimalRebuild>true</MinimalRebuild>
+      <InlineFunctionExpansion>Default</InlineFunctionExpansion>
+      <RuntimeTypeInfo>false</RuntimeTypeInfo>
+      <ExceptionHandling>false</ExceptionHandling>
+      <DisableSpecificWarnings>4530;4577</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <SubSystem>NotSet</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <AdditionalDependencies>BansheeUtility.lib;nvtt.lib;Winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>../../lib/$(Platform)/$(Configuration);../../Dependencies/lib/x64/DebugRelease</AdditionalLibraryDirectories>
+      <ImportLibrary>..\..\lib\$(Platform)\$(Configuration)\$(TargetName).lib</ImportLibrary>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsBoxCollider.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCBoxColliderRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCapsuleCollider.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCBoxCollider.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCCapsuleCollider.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCCapsuleColliderRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCCharacterController.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCCollider.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCColliderRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCD6Joint.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCD6JointRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCDistanceJoint.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCDistanceJointRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCFixedJointRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCharacterController.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCCharacterControllerRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCHingeJoint.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCHingeJointRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCJointRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCMeshCollider.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCMeshColliderRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCollider.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPhysicsCommon.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCoreObjectCore.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCPlaneCollider.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCPlaneColliderRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCRigidbody.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCRigidbodyRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCSliderJoint.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCSliderJointRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCSphereCollider.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCSphereColliderRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCSphericalJoint.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCSphericalJointRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsD6Joint.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsDistanceJoint.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsFCollider.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsFixedJoint.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsFJoint.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsHingeJoint.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsHString.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsIconUtility.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsJoint.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMaterialParams.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMaterialParamsRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshCollider.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshImportOptions.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshImportOptionsRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshUtility.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsParamBlocks.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPhysics.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPhysicsMaterial.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPhysicsMaterialRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPhysicsMesh.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPlaneCollider.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPrefab.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPrefabDiff.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPrefabDiffRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPrefabRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPrefabUtility.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRendererMeshData.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRigidbody.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsShaderDefines.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsShaderImportOptions.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsShaderImportOptionsRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsShaderIncludeRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsIResourceListener.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMaterialParam.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRenderStats.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCoreThread.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsProfilerCPU.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsDeferredCallManager.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsDrawOps.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsEventQuery.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsFolderMonitor.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGameObjectHandle.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGameObject.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGameObjectHandleRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGameObjectManager.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGameObjectRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsProfilerGPU.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuResourceData.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuParamBlockBuffer.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuResourceDataRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuParam.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsInputFwd.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshBase.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshBaseRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshHeap.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsOSInputHandler.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPixelData.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPixelDataRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPixelUtil.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPixelVolume.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPlatform.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsProfilingManager.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsQueryManager.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSavedResourceData.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSavedResourceDataRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsResourceListenerManager.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsResourceManifest.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsResourceManifestRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsResourceMetaData.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsResourceMetaDataRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSceneObjectRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCoreApplication.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsBlendStateRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCommandQueue.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCommonTypes.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsComponentRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCoreObject.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCoreObjectManager.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCoreThreadAccessor.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsDepthStencilStateRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsDepthStencilState.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsFont.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsFontDesc.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsFontImportOptions.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsFontImportOptionsRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsFontManager.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsFontRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuBuffer.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuBufferView.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuParamDesc.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuParams.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsShaderInclude.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuProgram.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuProgramRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsHardwareBuffer.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsHardwareBufferManager.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsImportOptions.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsImportOptionsRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsIndexBuffer.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMaterialManager.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshManager.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsOcclusionQuery.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPixelBuffer.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsShaderIncludeImporter.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsShaderManager.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSliderJoint.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSphereCollider.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSphericalJoint.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsStringTable.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsStringTableManager.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsStringTableRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSubMesh.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTextureImportOptions.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTextureImportOptionsRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTextureView.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTextData.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTimerQuery.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTransientMesh.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsUtility.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsUUID.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsVertexBuffer.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuProgramManager.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsImporter.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsInput.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRawInputHandler.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMaterial.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMaterialRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMesh.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshData.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshDataRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMultiRenderTexture.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPass.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPassRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCorePrerequisites.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRasterizerState.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRasterizerStateRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCoreRenderer.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRendererFactory.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRendererManager.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRenderStateManager.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRenderAPI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRenderAPICapabilities.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRenderAPIFactory.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRenderAPIManager.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRenderTarget.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRenderTexture.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRenderWindow.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRenderWindowManager.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsResource.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsResourceHandle.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsResourceHandleRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsResources.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSamplerStateRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCoreSceneManager.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsShaderRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSpecificImporter.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTechniqueRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTexture.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTextureManager.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTextureRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSamplerState.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsVertexDataDesc.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsVertexDataDescRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsVertexDeclaration.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsVertexData.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsVideoModeInfo.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsViewport.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsResourceRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSceneObject.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsComponent.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsShader.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsBlendState.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsVertexDeclarationRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTechnique.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsViewportRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPhysicsManager.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCJoint.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCFixedJoint.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\Win32\BsWin32Defs.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\Win32\BsWin32Platform.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\Win32\BsWin32DropTarget.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\Win32\BsWin32FolderMonitor.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\Win32\BSWin32PlatformData.h" />
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPhysicsMeshRTTI.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsBoxCollider.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCapsuleCollider.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCBoxCollider.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCCapsuleCollider.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCCharacterController.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCCollider.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCD6Joint.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCDistanceJoint.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCFixedJoint.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCharacterController.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCHingeJoint.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCJoint.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCMeshCollider.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCollider.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCoreObjectCore.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCoreThread.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCPlaneCollider.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCRigidbody.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCSliderJoint.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCSphereCollider.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCSphericalJoint.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsD6Joint.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsDistanceJoint.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsFCollider.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsFixedJoint.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsFJoint.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsHingeJoint.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsHString.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsIconUtility.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsIResourceListener.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsJoint.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMaterialParam.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMeshCollider.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMeshImportOptions.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMeshUtility.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPhysics.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPhysicsManager.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPhysicsMaterial.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPhysicsMesh.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPlaneCollider.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPrefab.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPrefabDiff.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPrefabUtility.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsProfilerCPU.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsDeferredCallManager.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsDrawOps.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsEventQuery.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGameObjectHandle.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGameObject.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCoreApplication.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsBlendState.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCommandQueue.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCoreObject.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCoreObjectManager.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCoreThreadAccessor.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsDepthStencilState.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsFont.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsFontImportOptions.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsFontManager.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGameObjectManager.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGpuBuffer.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGpuBufferView.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGpuParamBlockBuffer.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGpuParams.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsProfilerGPU.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRendererMeshData.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRigidbody.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsShaderDefines.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsShaderImportOptions.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsShaderInclude.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGpuProgram.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGpuResourceData.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsHardwareBufferManager.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGpuParam.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsImportOptions.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsIndexBuffer.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMaterialManager.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMeshBase.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMeshHeap.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMeshManager.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsOcclusionQuery.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsOSInputHandler.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPixelBuffer.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsShaderIncludeImporter.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPixelData.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPixelUtil.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPlatform.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsProfilingManager.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsQueryManager.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCoreRenderer.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsSavedResourceData.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsResourceListenerManager.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsResourceManifest.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsResourceMetaData.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsShaderManager.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsSliderJoint.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsSphereCollider.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsSphericalJoint.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsStringTable.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsStringTableManager.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsTextureImportOptions.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsTextureView.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsTextData.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsTimerQuery.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsTransientMesh.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsUtility.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsUUID.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsVertexBuffer.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGpuProgramManager.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsImporter.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsInput.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMaterial.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMaterialRTTI.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMesh.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMeshData.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMultiRenderTexture.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPass.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRasterizerState.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRendererManager.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRenderAPI.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRenderAPICapabilities.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRenderAPIManager.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRenderTarget.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRenderTexture.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRenderWindow.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRenderWindowManager.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsResource.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsResourceHandle.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsResources.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRenderStateManager.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCoreSceneManager.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsShader.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsSpecificImporter.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsTechnique.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsTexture.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsTextureManager.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsSamplerState.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsVertexDataDesc.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsVertexDeclaration.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsVertexData.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsVideoModeInfo.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsViewport.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsSceneObject.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsComponent.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMaterialParams.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\Win32\BsWin32BrowseDialogs.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\Win32\BsWin32Platform.cpp" />
+    <ClCompile Include="..\..\Source\BansheeCore\Source\Win32\BsWin32FolderMonitor.cpp" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
 </Project>

+ 1213 - 1198
Build/VS2015/BansheeCore.vcxproj.filters

@@ -1,1199 +1,1214 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup>
-    <Filter Include="Source Files">
-      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
-      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
-    </Filter>
-    <Filter Include="Header Files">
-      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
-      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
-    </Filter>
-    <Filter Include="Header Files\Utility">
-      <UniqueIdentifier>{2c09857e-4a4a-480f-8ebb-1661a9ce78dd}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\Importer">
-      <UniqueIdentifier>{f1fb2bc5-43c6-476a-89e3-b7de86c5aebe}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\Resources">
-      <UniqueIdentifier>{e091a28f-6a0f-44ab-a88f-83e3c970c2f3}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\Importer">
-      <UniqueIdentifier>{7ac6e5cb-48f7-4a49-a793-fb2ccfabe895}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\Resources">
-      <UniqueIdentifier>{6df1cc13-bf9e-45e7-90ae-337999c702cf}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\Scene">
-      <UniqueIdentifier>{327fbccb-fd0d-4fb1-af08-5d00cd7d56a7}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\Scene">
-      <UniqueIdentifier>{2211ce11-e426-4aad-a5e6-73727d44bb98}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\RTTI">
-      <UniqueIdentifier>{75249db9-4f2e-43c3-8df4-37250c4b60a2}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\Input">
-      <UniqueIdentifier>{7f8e94f3-6990-4723-965a-2b4f9346a7ee}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\Input">
-      <UniqueIdentifier>{724588b9-04e2-4e9b-9467-b064ed44f05e}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\Material">
-      <UniqueIdentifier>{299ec378-4e67-4818-92f6-ab5ffb9aa9ad}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\Material">
-      <UniqueIdentifier>{96caf3fa-c267-4fb4-aaa8-83519666d079}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\Renderer">
-      <UniqueIdentifier>{5303462d-20d9-4c00-86b8-162e3a430b07}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\Renderer">
-      <UniqueIdentifier>{307618fb-e6a0-41ed-b274-fb1f5f4c6f74}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\RTTI">
-      <UniqueIdentifier>{dc50e07b-6351-4bc2-8bfa-cc3fc1d26c39}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\Text">
-      <UniqueIdentifier>{1daa1a6e-95c0-4e63-b339-4a884773fa64}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\Text">
-      <UniqueIdentifier>{96b913ee-4ffb-4c60-9aa9-a51e0faf8060}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\Platform">
-      <UniqueIdentifier>{d53f502a-b966-4162-a828-af2654f0408f}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\Platform">
-      <UniqueIdentifier>{88dfbdf1-6999-424c-ac32-1ffe65b6c9f6}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\RenderAPI">
-      <UniqueIdentifier>{3480589d-111c-44b8-b0f1-a178cd00f31e}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\RenderAPI">
-      <UniqueIdentifier>{e0bdc5fc-afd1-46f9-9e3e-f85ca3e220b8}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\Utility">
-      <UniqueIdentifier>{0d63b345-0a58-4df2-9d01-f4da53fc40c9}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\Localization">
-      <UniqueIdentifier>{df01dcc2-a0b0-48a8-a6fd-59a556cb67f9}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\Localization">
-      <UniqueIdentifier>{f8c05475-0bc9-44d9-9702-985ec016f0ba}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\Profiling">
-      <UniqueIdentifier>{4ecc02bc-09b0-4d03-a3c0-0ebb7f154d3c}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\Profiling">
-      <UniqueIdentifier>{66694132-958f-435a-808f-3c6eb325a322}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\CoreThread">
-      <UniqueIdentifier>{402fe837-7d94-4343-a288-c8308fda8c18}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\CoreThread">
-      <UniqueIdentifier>{62281c40-1fc0-47f6-bc61-ff28314d8e13}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\Physics">
-      <UniqueIdentifier>{3a7a5aa1-38d4-4db1-af3a-0ece60598879}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\Physics">
-      <UniqueIdentifier>{d8f2a51b-1e51-4594-a369-a496b0de73bf}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\Components">
-      <UniqueIdentifier>{ce72f780-9587-40e7-a178-a79d85bcf952}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\Components">
-      <UniqueIdentifier>{a0113695-a6e4-42af-9c38-f6140bc45cc7}</UniqueIdentifier>
-    </Filter>
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCommonTypes.h">
-      <Filter>Header Files\Utility</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCoreApplication.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTextData.h">
-      <Filter>Header Files\Text</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsFontManager.h">
-      <Filter>Header Files\Text</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsFontImportOptions.h">
-      <Filter>Header Files\Text</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsFontDesc.h">
-      <Filter>Header Files\Text</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsFont.h">
-      <Filter>Header Files\Text</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsComponent.h">
-      <Filter>Header Files\Scene</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGameObject.h">
-      <Filter>Header Files\Scene</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGameObjectHandle.h">
-      <Filter>Header Files\Scene</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGameObjectManager.h">
-      <Filter>Header Files\Scene</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSceneObject.h">
-      <Filter>Header Files\Scene</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsBlendStateRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsComponentRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsDepthStencilStateRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsFontImportOptionsRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsFontRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGameObjectHandleRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGameObjectRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuProgramRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuResourceDataRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsImportOptionsRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMaterialRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshBaseRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshDataRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPassRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPixelDataRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRasterizerStateRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsResourceHandleRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsResourceManifestRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsResourceRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSamplerStateRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSceneObjectRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsShaderRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTechniqueRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTextureRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsVertexDataDescRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsVertexDeclarationRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsVertexDataDesc.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTransientMesh.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTextureManager.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTexture.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsResources.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsResourceManifest.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsResourceHandle.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsResource.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPixelData.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshHeap.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshData.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshBase.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMesh.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuResourceData.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsVideoModeInfo.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsVertexDeclaration.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsVertexData.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsVertexBuffer.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTimerQuery.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTextureView.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSubMesh.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSamplerState.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRenderWindowManager.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRenderWindow.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRenderTexture.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRenderTarget.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRenderStateManager.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRasterizerState.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsQueryManager.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPixelBuffer.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsOcclusionQuery.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMultiRenderTexture.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshManager.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsIndexBuffer.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsHardwareBufferManager.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsHardwareBuffer.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuProgramManager.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuProgram.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuParams.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuParamDesc.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuParamBlockBuffer.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuParam.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuBufferView.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuBuffer.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsEventQuery.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsDrawOps.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsDepthStencilState.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsBlendState.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRendererManager.h">
-      <Filter>Header Files\Renderer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRendererFactory.h">
-      <Filter>Header Files\Renderer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\Win32\BsWin32FolderMonitor.h">
-      <Filter>Header Files\Platform</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\Win32\BsWin32DropTarget.h">
-      <Filter>Header Files\Platform</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPlatform.h">
-      <Filter>Header Files\Platform</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsFolderMonitor.h">
-      <Filter>Header Files\Platform</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTechnique.h">
-      <Filter>Header Files\Material</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsShader.h">
-      <Filter>Header Files\Material</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPass.h">
-      <Filter>Header Files\Material</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMaterialManager.h">
-      <Filter>Header Files\Material</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMaterial.h">
-      <Filter>Header Files\Material</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRawInputHandler.h">
-      <Filter>Header Files\Input</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsOSInputHandler.h">
-      <Filter>Header Files\Input</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsInputFwd.h">
-      <Filter>Header Files\Input</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsInput.h">
-      <Filter>Header Files\Input</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSpecificImporter.h">
-      <Filter>Header Files\Importer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsImportOptions.h">
-      <Filter>Header Files\Importer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsImporter.h">
-      <Filter>Header Files\Importer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCoreThreadAccessor.h">
-      <Filter>Header Files\CoreThread</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCoreThread.h">
-      <Filter>Header Files\CoreThread</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCoreObjectManager.h">
-      <Filter>Header Files\CoreThread</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCoreObject.h">
-      <Filter>Header Files\CoreThread</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCommandQueue.h">
-      <Filter>Header Files\CoreThread</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCoreSceneManager.h">
-      <Filter>Header Files\Scene</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCorePrerequisites.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTextureImportOptions.h">
-      <Filter>Header Files\Importer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTextureImportOptionsRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsResourceMetaData.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsResourceMetaDataRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsViewportRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMaterialParam.h">
-      <Filter>Header Files\Material</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCoreObjectCore.h">
-      <Filter>Header Files\CoreThread</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCoreRenderer.h">
-      <Filter>Header Files\Renderer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRenderAPI.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRenderAPIManager.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRenderAPIFactory.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRenderAPICapabilities.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsUtility.h">
-      <Filter>Header Files\Utility</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSavedResourceData.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSavedResourceDataRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\Win32\BsWin32Defs.h">
-      <Filter>Header Files\Platform</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\Win32\BSWin32PlatformData.h">
-      <Filter>Header Files\Platform</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\Win32\BsWin32Platform.h">
-      <Filter>Header Files\Platform</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsShaderIncludeImporter.h">
-      <Filter>Header Files\Importer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsShaderInclude.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsShaderIncludeRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsShaderManager.h">
-      <Filter>Header Files\Material</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshImportOptions.h">
-      <Filter>Header Files\Importer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshImportOptionsRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPrefab.h">
-      <Filter>Header Files\Scene</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPrefabRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPrefabDiff.h">
-      <Filter>Header Files\Scene</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPrefabDiffRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshUtility.h">
-      <Filter>Header Files\Utility</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPrefabUtility.h">
-      <Filter>Header Files\Scene</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRendererMeshData.h">
-      <Filter>Header Files\Renderer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsHString.h">
-      <Filter>Header Files\Localization</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsStringTable.h">
-      <Filter>Header Files\Localization</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsStringTableManager.h">
-      <Filter>Header Files\Localization</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsStringTableRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsParamBlocks.h">
-      <Filter>Header Files\Renderer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsProfilerCPU.h">
-      <Filter>Header Files\Profiling</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsProfilerGPU.h">
-      <Filter>Header Files\Profiling</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsProfilingManager.h">
-      <Filter>Header Files\Profiling</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRenderStats.h">
-      <Filter>Header Files\Profiling</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsDeferredCallManager.h">
-      <Filter>Header Files\Utility</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsResourceListenerManager.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsIconUtility.h">
-      <Filter>Header Files\Utility</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsIResourceListener.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsUUID.h">
-      <Filter>Header Files\Utility</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsViewport.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPixelUtil.h">
-      <Filter>Header Files\Utility</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPixelVolume.h">
-      <Filter>Header Files\Utility</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMaterialParams.h">
-      <Filter>Header Files\Material</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMaterialParamsRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPhysicsManager.h">
-      <Filter>Header Files\Physics</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPhysics.h">
-      <Filter>Header Files\Physics</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPhysicsMaterial.h">
-      <Filter>Header Files\Physics</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPhysicsMaterialRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRigidbody.h">
-      <Filter>Header Files\Physics</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsBoxCollider.h">
-      <Filter>Header Files\Physics</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSphereCollider.h">
-      <Filter>Header Files\Physics</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCapsuleCollider.h">
-      <Filter>Header Files\Physics</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPlaneCollider.h">
-      <Filter>Header Files\Physics</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsFCollider.h">
-      <Filter>Header Files\Physics</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCBoxCollider.h">
-      <Filter>Header Files\Components</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCBoxColliderRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCCollider.h">
-      <Filter>Header Files\Components</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCRigidbody.h">
-      <Filter>Header Files\Components</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCColliderRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCRigidbodyRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCSphereCollider.h">
-      <Filter>Header Files\Components</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCCapsuleCollider.h">
-      <Filter>Header Files\Components</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCPlaneCollider.h">
-      <Filter>Header Files\Components</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCSphereColliderRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCPlaneColliderRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCCapsuleColliderRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPhysicsMesh.h">
-      <Filter>Header Files\Physics</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Source\BsPhysicsMeshRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshCollider.h">
-      <Filter>Header Files\Physics</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCMeshCollider.h">
-      <Filter>Header Files\Components</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCMeshColliderRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsFJoint.h">
-      <Filter>Header Files\Physics</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsJoint.h">
-      <Filter>Header Files\Physics</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsFixedJoint.h">
-      <Filter>Header Files\Physics</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsDistanceJoint.h">
-      <Filter>Header Files\Physics</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsHingeJoint.h">
-      <Filter>Header Files\Physics</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSliderJoint.h">
-      <Filter>Header Files\Physics</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSphericalJoint.h">
-      <Filter>Header Files\Physics</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsD6Joint.h">
-      <Filter>Header Files\Physics</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCJoint.h">
-      <Filter>Header Files\Components</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCJointRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCFixedJoint.h">
-      <Filter>Header Files\Components</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCFixedJointRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCHingeJoint.h">
-      <Filter>Header Files\Components</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCHingeJointRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCDistanceJoint.h">
-      <Filter>Header Files\Components</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCDistanceJointRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCSliderJoint.h">
-      <Filter>Header Files\Components</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCSliderJointRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCSphericalJoint.h">
-      <Filter>Header Files\Components</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCSphericalJointRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCD6Joint.h">
-      <Filter>Header Files\Components</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCD6JointRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCharacterController.h">
-      <Filter>Header Files\Physics</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCCharacterController.h">
-      <Filter>Header Files\Components</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCCharacterControllerRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCollider.h">
-      <Filter>Header Files\Physics</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPhysicsCommon.h">
-      <Filter>Header Files\Physics</Filter>
-    </ClInclude>
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCoreApplication.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsFont.cpp">
-      <Filter>Source Files\Text</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsFontImportOptions.cpp">
-      <Filter>Source Files\Text</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsFontManager.cpp">
-      <Filter>Source Files\Text</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsTextData.cpp">
-      <Filter>Source Files\Text</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsComponent.cpp">
-      <Filter>Source Files\Scene</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGameObject.cpp">
-      <Filter>Source Files\Scene</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGameObjectHandle.cpp">
-      <Filter>Source Files\Scene</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGameObjectManager.cpp">
-      <Filter>Source Files\Scene</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsSceneObject.cpp">
-      <Filter>Source Files\Scene</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMaterialRTTI.cpp">
-      <Filter>Source Files\RTTI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGpuResourceData.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMesh.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMeshBase.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMeshData.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMeshHeap.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPixelData.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsResource.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsResourceHandle.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsResourceManifest.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsResources.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsTexture.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsTextureManager.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsTransientMesh.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsVertexDataDesc.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsBlendState.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsDepthStencilState.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsEventQuery.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGpuBuffer.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGpuBufferView.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGpuParam.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGpuParamBlockBuffer.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGpuParams.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGpuProgram.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGpuProgramManager.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsHardwareBufferManager.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsIndexBuffer.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMeshManager.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMultiRenderTexture.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsOcclusionQuery.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPixelBuffer.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsQueryManager.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRasterizerState.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRenderStateManager.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRenderTarget.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRenderTexture.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRenderWindow.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRenderWindowManager.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsSamplerState.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsTextureView.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsTimerQuery.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsVertexBuffer.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsVertexData.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsVertexDeclaration.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsVideoModeInfo.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRendererManager.cpp">
-      <Filter>Source Files\Renderer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\Win32\BsWin32FolderMonitor.cpp">
-      <Filter>Source Files\Platform</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMaterial.cpp">
-      <Filter>Source Files\Material</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMaterialManager.cpp">
-      <Filter>Source Files\Material</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPass.cpp">
-      <Filter>Source Files\Material</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsShader.cpp">
-      <Filter>Source Files\Material</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsTechnique.cpp">
-      <Filter>Source Files\Material</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsInput.cpp">
-      <Filter>Source Files\Input</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsOSInputHandler.cpp">
-      <Filter>Source Files\Input</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsImporter.cpp">
-      <Filter>Source Files\Importer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsImportOptions.cpp">
-      <Filter>Source Files\Importer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsSpecificImporter.cpp">
-      <Filter>Source Files\Importer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCommandQueue.cpp">
-      <Filter>Source Files\CoreThread</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCoreObject.cpp">
-      <Filter>Source Files\CoreThread</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCoreObjectManager.cpp">
-      <Filter>Source Files\CoreThread</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCoreThread.cpp">
-      <Filter>Source Files\CoreThread</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCoreThreadAccessor.cpp">
-      <Filter>Source Files\CoreThread</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCoreSceneManager.cpp">
-      <Filter>Source Files\Scene</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsTextureImportOptions.cpp">
-      <Filter>Source Files\Importer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsResourceMetaData.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMaterialParam.cpp">
-      <Filter>Source Files\Material</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCoreObjectCore.cpp">
-      <Filter>Source Files\CoreThread</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCoreRenderer.cpp">
-      <Filter>Source Files\Renderer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRenderAPI.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRenderAPIManager.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRenderAPICapabilities.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsUtility.cpp">
-      <Filter>Source Files\Utility</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsSavedResourceData.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPlatform.cpp">
-      <Filter>Source Files\Platform</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\Win32\BsWin32Platform.cpp">
-      <Filter>Source Files\Platform</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsShaderIncludeImporter.cpp">
-      <Filter>Source Files\Importer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsShaderInclude.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsShaderManager.cpp">
-      <Filter>Source Files\Material</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMeshImportOptions.cpp">
-      <Filter>Source Files\Importer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPrefab.cpp">
-      <Filter>Source Files\Scene</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPrefabDiff.cpp">
-      <Filter>Source Files\Scene</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMeshUtility.cpp">
-      <Filter>Source Files\Utility</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPrefabUtility.cpp">
-      <Filter>Source Files\Scene</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRendererMeshData.cpp">
-      <Filter>Source Files\Renderer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsHString.cpp">
-      <Filter>Source Files\Localization</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsStringTable.cpp">
-      <Filter>Source Files\Localization</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsStringTableManager.cpp">
-      <Filter>Source Files\Localization</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsProfilerCPU.cpp">
-      <Filter>Source Files\Profiling</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsProfilerGPU.cpp">
-      <Filter>Source Files\Profiling</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsProfilingManager.cpp">
-      <Filter>Source Files\Profiling</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsDeferredCallManager.cpp">
-      <Filter>Source Files\Utility</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsResourceListenerManager.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsDrawOps.cpp">
-      <Filter>Source Files\Utility</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsIconUtility.cpp">
-      <Filter>Source Files\Utility</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsUUID.cpp">
-      <Filter>Source Files\Utility</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsIResourceListener.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsViewport.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPixelUtil.cpp">
-      <Filter>Source Files\Utility</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMaterialParams.cpp">
-      <Filter>Source Files\Material</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\Win32\BsWin32BrowseDialogs.cpp">
-      <Filter>Source Files\Platform</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPhysicsManager.cpp">
-      <Filter>Source Files\Physics</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPhysics.cpp">
-      <Filter>Source Files\Physics</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPhysicsMaterial.cpp">
-      <Filter>Source Files\Physics</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCollider.cpp">
-      <Filter>Source Files\Physics</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRigidbody.cpp">
-      <Filter>Source Files\Physics</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsBoxCollider.cpp">
-      <Filter>Source Files\Physics</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsSphereCollider.cpp">
-      <Filter>Source Files\Physics</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPlaneCollider.cpp">
-      <Filter>Source Files\Physics</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCapsuleCollider.cpp">
-      <Filter>Source Files\Physics</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsFCollider.cpp">
-      <Filter>Source Files\Physics</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCBoxCollider.cpp">
-      <Filter>Source Files\Components</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCCollider.cpp">
-      <Filter>Source Files\Components</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCRigidbody.cpp">
-      <Filter>Source Files\Components</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCSphereCollider.cpp">
-      <Filter>Source Files\Components</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCPlaneCollider.cpp">
-      <Filter>Source Files\Components</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCCapsuleCollider.cpp">
-      <Filter>Source Files\Components</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPhysicsMesh.cpp">
-      <Filter>Source Files\Physics</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMeshCollider.cpp">
-      <Filter>Source Files\Physics</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCMeshCollider.cpp">
-      <Filter>Source Files\Components</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsFJoint.cpp">
-      <Filter>Source Files\Physics</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsJoint.cpp">
-      <Filter>Source Files\Physics</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsFixedJoint.cpp">
-      <Filter>Source Files\Physics</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsDistanceJoint.cpp">
-      <Filter>Source Files\Physics</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsHingeJoint.cpp">
-      <Filter>Source Files\Physics</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsSliderJoint.cpp">
-      <Filter>Source Files\Physics</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsSphericalJoint.cpp">
-      <Filter>Source Files\Physics</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsD6Joint.cpp">
-      <Filter>Source Files\Physics</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCJoint.cpp">
-      <Filter>Source Files\Components</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCFixedJoint.cpp">
-      <Filter>Source Files\Components</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCHingeJoint.cpp">
-      <Filter>Source Files\Components</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCDistanceJoint.cpp">
-      <Filter>Source Files\Components</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCSliderJoint.cpp">
-      <Filter>Source Files\Components</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCSphericalJoint.cpp">
-      <Filter>Source Files\Components</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCD6Joint.cpp">
-      <Filter>Source Files\Components</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCharacterController.cpp">
-      <Filter>Source Files\Physics</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCCharacterController.cpp">
-      <Filter>Source Files\Components</Filter>
-    </ClCompile>
-  </ItemGroup>
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+    </Filter>
+    <Filter Include="Header Files\Utility">
+      <UniqueIdentifier>{2c09857e-4a4a-480f-8ebb-1661a9ce78dd}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files\Importer">
+      <UniqueIdentifier>{f1fb2bc5-43c6-476a-89e3-b7de86c5aebe}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files\Resources">
+      <UniqueIdentifier>{e091a28f-6a0f-44ab-a88f-83e3c970c2f3}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Source Files\Importer">
+      <UniqueIdentifier>{7ac6e5cb-48f7-4a49-a793-fb2ccfabe895}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Source Files\Resources">
+      <UniqueIdentifier>{6df1cc13-bf9e-45e7-90ae-337999c702cf}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files\Scene">
+      <UniqueIdentifier>{327fbccb-fd0d-4fb1-af08-5d00cd7d56a7}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Source Files\Scene">
+      <UniqueIdentifier>{2211ce11-e426-4aad-a5e6-73727d44bb98}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files\RTTI">
+      <UniqueIdentifier>{75249db9-4f2e-43c3-8df4-37250c4b60a2}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Source Files\Input">
+      <UniqueIdentifier>{7f8e94f3-6990-4723-965a-2b4f9346a7ee}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files\Input">
+      <UniqueIdentifier>{724588b9-04e2-4e9b-9467-b064ed44f05e}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files\Material">
+      <UniqueIdentifier>{299ec378-4e67-4818-92f6-ab5ffb9aa9ad}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Source Files\Material">
+      <UniqueIdentifier>{96caf3fa-c267-4fb4-aaa8-83519666d079}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files\Renderer">
+      <UniqueIdentifier>{5303462d-20d9-4c00-86b8-162e3a430b07}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Source Files\Renderer">
+      <UniqueIdentifier>{307618fb-e6a0-41ed-b274-fb1f5f4c6f74}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Source Files\RTTI">
+      <UniqueIdentifier>{dc50e07b-6351-4bc2-8bfa-cc3fc1d26c39}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files\Text">
+      <UniqueIdentifier>{1daa1a6e-95c0-4e63-b339-4a884773fa64}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Source Files\Text">
+      <UniqueIdentifier>{96b913ee-4ffb-4c60-9aa9-a51e0faf8060}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files\Platform">
+      <UniqueIdentifier>{d53f502a-b966-4162-a828-af2654f0408f}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Source Files\Platform">
+      <UniqueIdentifier>{88dfbdf1-6999-424c-ac32-1ffe65b6c9f6}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files\RenderAPI">
+      <UniqueIdentifier>{3480589d-111c-44b8-b0f1-a178cd00f31e}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Source Files\RenderAPI">
+      <UniqueIdentifier>{e0bdc5fc-afd1-46f9-9e3e-f85ca3e220b8}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Source Files\Utility">
+      <UniqueIdentifier>{0d63b345-0a58-4df2-9d01-f4da53fc40c9}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files\Localization">
+      <UniqueIdentifier>{df01dcc2-a0b0-48a8-a6fd-59a556cb67f9}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Source Files\Localization">
+      <UniqueIdentifier>{f8c05475-0bc9-44d9-9702-985ec016f0ba}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files\Profiling">
+      <UniqueIdentifier>{4ecc02bc-09b0-4d03-a3c0-0ebb7f154d3c}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Source Files\Profiling">
+      <UniqueIdentifier>{66694132-958f-435a-808f-3c6eb325a322}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Source Files\CoreThread">
+      <UniqueIdentifier>{402fe837-7d94-4343-a288-c8308fda8c18}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files\CoreThread">
+      <UniqueIdentifier>{62281c40-1fc0-47f6-bc61-ff28314d8e13}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files\Physics">
+      <UniqueIdentifier>{3a7a5aa1-38d4-4db1-af3a-0ece60598879}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Source Files\Physics">
+      <UniqueIdentifier>{d8f2a51b-1e51-4594-a369-a496b0de73bf}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files\Components">
+      <UniqueIdentifier>{ce72f780-9587-40e7-a178-a79d85bcf952}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Source Files\Components">
+      <UniqueIdentifier>{a0113695-a6e4-42af-9c38-f6140bc45cc7}</UniqueIdentifier>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCommonTypes.h">
+      <Filter>Header Files\Utility</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCoreApplication.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTextData.h">
+      <Filter>Header Files\Text</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsFontManager.h">
+      <Filter>Header Files\Text</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsFontImportOptions.h">
+      <Filter>Header Files\Text</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsFontDesc.h">
+      <Filter>Header Files\Text</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsFont.h">
+      <Filter>Header Files\Text</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsComponent.h">
+      <Filter>Header Files\Scene</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGameObject.h">
+      <Filter>Header Files\Scene</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGameObjectHandle.h">
+      <Filter>Header Files\Scene</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGameObjectManager.h">
+      <Filter>Header Files\Scene</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSceneObject.h">
+      <Filter>Header Files\Scene</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsBlendStateRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsComponentRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsDepthStencilStateRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsFontImportOptionsRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsFontRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGameObjectHandleRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGameObjectRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuProgramRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuResourceDataRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsImportOptionsRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMaterialRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshBaseRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshDataRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPassRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPixelDataRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRasterizerStateRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsResourceHandleRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsResourceManifestRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsResourceRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSamplerStateRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSceneObjectRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsShaderRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTechniqueRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTextureRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsVertexDataDescRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsVertexDeclarationRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsVertexDataDesc.h">
+      <Filter>Header Files\Resources</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTransientMesh.h">
+      <Filter>Header Files\Resources</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTextureManager.h">
+      <Filter>Header Files\Resources</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTexture.h">
+      <Filter>Header Files\Resources</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsResources.h">
+      <Filter>Header Files\Resources</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsResourceManifest.h">
+      <Filter>Header Files\Resources</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsResourceHandle.h">
+      <Filter>Header Files\Resources</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsResource.h">
+      <Filter>Header Files\Resources</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPixelData.h">
+      <Filter>Header Files\Resources</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshHeap.h">
+      <Filter>Header Files\Resources</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshData.h">
+      <Filter>Header Files\Resources</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshBase.h">
+      <Filter>Header Files\Resources</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMesh.h">
+      <Filter>Header Files\Resources</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuResourceData.h">
+      <Filter>Header Files\Resources</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsVideoModeInfo.h">
+      <Filter>Header Files\RenderAPI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsVertexDeclaration.h">
+      <Filter>Header Files\RenderAPI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsVertexData.h">
+      <Filter>Header Files\RenderAPI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsVertexBuffer.h">
+      <Filter>Header Files\RenderAPI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTimerQuery.h">
+      <Filter>Header Files\RenderAPI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTextureView.h">
+      <Filter>Header Files\RenderAPI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSubMesh.h">
+      <Filter>Header Files\RenderAPI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSamplerState.h">
+      <Filter>Header Files\RenderAPI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRenderWindowManager.h">
+      <Filter>Header Files\RenderAPI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRenderWindow.h">
+      <Filter>Header Files\RenderAPI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRenderTexture.h">
+      <Filter>Header Files\RenderAPI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRenderTarget.h">
+      <Filter>Header Files\RenderAPI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRenderStateManager.h">
+      <Filter>Header Files\RenderAPI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRasterizerState.h">
+      <Filter>Header Files\RenderAPI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsQueryManager.h">
+      <Filter>Header Files\RenderAPI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPixelBuffer.h">
+      <Filter>Header Files\RenderAPI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsOcclusionQuery.h">
+      <Filter>Header Files\RenderAPI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMultiRenderTexture.h">
+      <Filter>Header Files\RenderAPI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshManager.h">
+      <Filter>Header Files\RenderAPI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsIndexBuffer.h">
+      <Filter>Header Files\RenderAPI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsHardwareBufferManager.h">
+      <Filter>Header Files\RenderAPI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsHardwareBuffer.h">
+      <Filter>Header Files\RenderAPI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuProgramManager.h">
+      <Filter>Header Files\RenderAPI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuProgram.h">
+      <Filter>Header Files\RenderAPI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuParams.h">
+      <Filter>Header Files\RenderAPI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuParamDesc.h">
+      <Filter>Header Files\RenderAPI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuParamBlockBuffer.h">
+      <Filter>Header Files\RenderAPI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuParam.h">
+      <Filter>Header Files\RenderAPI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuBufferView.h">
+      <Filter>Header Files\RenderAPI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsGpuBuffer.h">
+      <Filter>Header Files\RenderAPI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsEventQuery.h">
+      <Filter>Header Files\RenderAPI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsDrawOps.h">
+      <Filter>Header Files\RenderAPI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsDepthStencilState.h">
+      <Filter>Header Files\RenderAPI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsBlendState.h">
+      <Filter>Header Files\RenderAPI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRendererManager.h">
+      <Filter>Header Files\Renderer</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRendererFactory.h">
+      <Filter>Header Files\Renderer</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\Win32\BsWin32FolderMonitor.h">
+      <Filter>Header Files\Platform</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\Win32\BsWin32DropTarget.h">
+      <Filter>Header Files\Platform</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPlatform.h">
+      <Filter>Header Files\Platform</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsFolderMonitor.h">
+      <Filter>Header Files\Platform</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTechnique.h">
+      <Filter>Header Files\Material</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsShader.h">
+      <Filter>Header Files\Material</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPass.h">
+      <Filter>Header Files\Material</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMaterialManager.h">
+      <Filter>Header Files\Material</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMaterial.h">
+      <Filter>Header Files\Material</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRawInputHandler.h">
+      <Filter>Header Files\Input</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsOSInputHandler.h">
+      <Filter>Header Files\Input</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsInputFwd.h">
+      <Filter>Header Files\Input</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsInput.h">
+      <Filter>Header Files\Input</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSpecificImporter.h">
+      <Filter>Header Files\Importer</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsImportOptions.h">
+      <Filter>Header Files\Importer</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsImporter.h">
+      <Filter>Header Files\Importer</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCoreThreadAccessor.h">
+      <Filter>Header Files\CoreThread</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCoreThread.h">
+      <Filter>Header Files\CoreThread</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCoreObjectManager.h">
+      <Filter>Header Files\CoreThread</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCoreObject.h">
+      <Filter>Header Files\CoreThread</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCommandQueue.h">
+      <Filter>Header Files\CoreThread</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCoreSceneManager.h">
+      <Filter>Header Files\Scene</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCorePrerequisites.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTextureImportOptions.h">
+      <Filter>Header Files\Importer</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsTextureImportOptionsRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsResourceMetaData.h">
+      <Filter>Header Files\Resources</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsResourceMetaDataRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsViewportRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMaterialParam.h">
+      <Filter>Header Files\Material</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCoreObjectCore.h">
+      <Filter>Header Files\CoreThread</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCoreRenderer.h">
+      <Filter>Header Files\Renderer</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRenderAPI.h">
+      <Filter>Header Files\RenderAPI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRenderAPIManager.h">
+      <Filter>Header Files\RenderAPI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRenderAPIFactory.h">
+      <Filter>Header Files\RenderAPI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRenderAPICapabilities.h">
+      <Filter>Header Files\RenderAPI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsUtility.h">
+      <Filter>Header Files\Utility</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSavedResourceData.h">
+      <Filter>Header Files\Resources</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSavedResourceDataRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\Win32\BsWin32Defs.h">
+      <Filter>Header Files\Platform</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\Win32\BSWin32PlatformData.h">
+      <Filter>Header Files\Platform</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\Win32\BsWin32Platform.h">
+      <Filter>Header Files\Platform</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsShaderIncludeImporter.h">
+      <Filter>Header Files\Importer</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsShaderInclude.h">
+      <Filter>Header Files\Resources</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsShaderIncludeRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsShaderManager.h">
+      <Filter>Header Files\Material</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshImportOptions.h">
+      <Filter>Header Files\Importer</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshImportOptionsRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPrefab.h">
+      <Filter>Header Files\Scene</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPrefabRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPrefabDiff.h">
+      <Filter>Header Files\Scene</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPrefabDiffRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshUtility.h">
+      <Filter>Header Files\Utility</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPrefabUtility.h">
+      <Filter>Header Files\Scene</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRendererMeshData.h">
+      <Filter>Header Files\Renderer</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsHString.h">
+      <Filter>Header Files\Localization</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsStringTable.h">
+      <Filter>Header Files\Localization</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsStringTableManager.h">
+      <Filter>Header Files\Localization</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsStringTableRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsParamBlocks.h">
+      <Filter>Header Files\Renderer</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsProfilerCPU.h">
+      <Filter>Header Files\Profiling</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsProfilerGPU.h">
+      <Filter>Header Files\Profiling</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsProfilingManager.h">
+      <Filter>Header Files\Profiling</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRenderStats.h">
+      <Filter>Header Files\Profiling</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsDeferredCallManager.h">
+      <Filter>Header Files\Utility</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsResourceListenerManager.h">
+      <Filter>Header Files\Resources</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsIconUtility.h">
+      <Filter>Header Files\Utility</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsIResourceListener.h">
+      <Filter>Header Files\Resources</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsUUID.h">
+      <Filter>Header Files\Utility</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsViewport.h">
+      <Filter>Header Files\RenderAPI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPixelUtil.h">
+      <Filter>Header Files\Utility</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPixelVolume.h">
+      <Filter>Header Files\Utility</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMaterialParams.h">
+      <Filter>Header Files\Material</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMaterialParamsRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPhysicsManager.h">
+      <Filter>Header Files\Physics</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPhysics.h">
+      <Filter>Header Files\Physics</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPhysicsMaterial.h">
+      <Filter>Header Files\Physics</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPhysicsMaterialRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsRigidbody.h">
+      <Filter>Header Files\Physics</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsBoxCollider.h">
+      <Filter>Header Files\Physics</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSphereCollider.h">
+      <Filter>Header Files\Physics</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCapsuleCollider.h">
+      <Filter>Header Files\Physics</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPlaneCollider.h">
+      <Filter>Header Files\Physics</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsFCollider.h">
+      <Filter>Header Files\Physics</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCBoxCollider.h">
+      <Filter>Header Files\Components</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCBoxColliderRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCCollider.h">
+      <Filter>Header Files\Components</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCRigidbody.h">
+      <Filter>Header Files\Components</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCColliderRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCRigidbodyRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCSphereCollider.h">
+      <Filter>Header Files\Components</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCCapsuleCollider.h">
+      <Filter>Header Files\Components</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCPlaneCollider.h">
+      <Filter>Header Files\Components</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCSphereColliderRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCPlaneColliderRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCCapsuleColliderRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPhysicsMesh.h">
+      <Filter>Header Files\Physics</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsMeshCollider.h">
+      <Filter>Header Files\Physics</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCMeshCollider.h">
+      <Filter>Header Files\Components</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCMeshColliderRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsFJoint.h">
+      <Filter>Header Files\Physics</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsJoint.h">
+      <Filter>Header Files\Physics</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsFixedJoint.h">
+      <Filter>Header Files\Physics</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsDistanceJoint.h">
+      <Filter>Header Files\Physics</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsHingeJoint.h">
+      <Filter>Header Files\Physics</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSliderJoint.h">
+      <Filter>Header Files\Physics</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsSphericalJoint.h">
+      <Filter>Header Files\Physics</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsD6Joint.h">
+      <Filter>Header Files\Physics</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCJoint.h">
+      <Filter>Header Files\Components</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCJointRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCFixedJoint.h">
+      <Filter>Header Files\Components</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCFixedJointRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCHingeJoint.h">
+      <Filter>Header Files\Components</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCHingeJointRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCDistanceJoint.h">
+      <Filter>Header Files\Components</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCDistanceJointRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCSliderJoint.h">
+      <Filter>Header Files\Components</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCSliderJointRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCSphericalJoint.h">
+      <Filter>Header Files\Components</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCSphericalJointRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCD6Joint.h">
+      <Filter>Header Files\Components</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCD6JointRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCharacterController.h">
+      <Filter>Header Files\Physics</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCCharacterController.h">
+      <Filter>Header Files\Components</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCCharacterControllerRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsCollider.h">
+      <Filter>Header Files\Physics</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPhysicsCommon.h">
+      <Filter>Header Files\Physics</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsPhysicsMeshRTTI.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsShaderDefines.h">
+      <Filter>Header Files\Material</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsShaderImportOptions.h">
+      <Filter>Header Files\Importer</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeCore\Include\BsShaderImportOptionsRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCoreApplication.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsFont.cpp">
+      <Filter>Source Files\Text</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsFontImportOptions.cpp">
+      <Filter>Source Files\Text</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsFontManager.cpp">
+      <Filter>Source Files\Text</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsTextData.cpp">
+      <Filter>Source Files\Text</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsComponent.cpp">
+      <Filter>Source Files\Scene</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGameObject.cpp">
+      <Filter>Source Files\Scene</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGameObjectHandle.cpp">
+      <Filter>Source Files\Scene</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGameObjectManager.cpp">
+      <Filter>Source Files\Scene</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsSceneObject.cpp">
+      <Filter>Source Files\Scene</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMaterialRTTI.cpp">
+      <Filter>Source Files\RTTI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGpuResourceData.cpp">
+      <Filter>Source Files\Resources</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMesh.cpp">
+      <Filter>Source Files\Resources</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMeshBase.cpp">
+      <Filter>Source Files\Resources</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMeshData.cpp">
+      <Filter>Source Files\Resources</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMeshHeap.cpp">
+      <Filter>Source Files\Resources</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPixelData.cpp">
+      <Filter>Source Files\Resources</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsResource.cpp">
+      <Filter>Source Files\Resources</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsResourceHandle.cpp">
+      <Filter>Source Files\Resources</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsResourceManifest.cpp">
+      <Filter>Source Files\Resources</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsResources.cpp">
+      <Filter>Source Files\Resources</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsTexture.cpp">
+      <Filter>Source Files\Resources</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsTextureManager.cpp">
+      <Filter>Source Files\Resources</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsTransientMesh.cpp">
+      <Filter>Source Files\Resources</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsVertexDataDesc.cpp">
+      <Filter>Source Files\Resources</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsBlendState.cpp">
+      <Filter>Source Files\RenderAPI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsDepthStencilState.cpp">
+      <Filter>Source Files\RenderAPI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsEventQuery.cpp">
+      <Filter>Source Files\RenderAPI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGpuBuffer.cpp">
+      <Filter>Source Files\RenderAPI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGpuBufferView.cpp">
+      <Filter>Source Files\RenderAPI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGpuParam.cpp">
+      <Filter>Source Files\RenderAPI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGpuParamBlockBuffer.cpp">
+      <Filter>Source Files\RenderAPI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGpuParams.cpp">
+      <Filter>Source Files\RenderAPI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGpuProgram.cpp">
+      <Filter>Source Files\RenderAPI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsGpuProgramManager.cpp">
+      <Filter>Source Files\RenderAPI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsHardwareBufferManager.cpp">
+      <Filter>Source Files\RenderAPI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsIndexBuffer.cpp">
+      <Filter>Source Files\RenderAPI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMeshManager.cpp">
+      <Filter>Source Files\RenderAPI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMultiRenderTexture.cpp">
+      <Filter>Source Files\RenderAPI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsOcclusionQuery.cpp">
+      <Filter>Source Files\RenderAPI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPixelBuffer.cpp">
+      <Filter>Source Files\RenderAPI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsQueryManager.cpp">
+      <Filter>Source Files\RenderAPI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRasterizerState.cpp">
+      <Filter>Source Files\RenderAPI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRenderStateManager.cpp">
+      <Filter>Source Files\RenderAPI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRenderTarget.cpp">
+      <Filter>Source Files\RenderAPI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRenderTexture.cpp">
+      <Filter>Source Files\RenderAPI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRenderWindow.cpp">
+      <Filter>Source Files\RenderAPI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRenderWindowManager.cpp">
+      <Filter>Source Files\RenderAPI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsSamplerState.cpp">
+      <Filter>Source Files\RenderAPI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsTextureView.cpp">
+      <Filter>Source Files\RenderAPI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsTimerQuery.cpp">
+      <Filter>Source Files\RenderAPI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsVertexBuffer.cpp">
+      <Filter>Source Files\RenderAPI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsVertexData.cpp">
+      <Filter>Source Files\RenderAPI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsVertexDeclaration.cpp">
+      <Filter>Source Files\RenderAPI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsVideoModeInfo.cpp">
+      <Filter>Source Files\RenderAPI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRendererManager.cpp">
+      <Filter>Source Files\Renderer</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\Win32\BsWin32FolderMonitor.cpp">
+      <Filter>Source Files\Platform</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMaterial.cpp">
+      <Filter>Source Files\Material</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMaterialManager.cpp">
+      <Filter>Source Files\Material</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPass.cpp">
+      <Filter>Source Files\Material</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsShader.cpp">
+      <Filter>Source Files\Material</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsTechnique.cpp">
+      <Filter>Source Files\Material</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsInput.cpp">
+      <Filter>Source Files\Input</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsOSInputHandler.cpp">
+      <Filter>Source Files\Input</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsImporter.cpp">
+      <Filter>Source Files\Importer</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsImportOptions.cpp">
+      <Filter>Source Files\Importer</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsSpecificImporter.cpp">
+      <Filter>Source Files\Importer</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCommandQueue.cpp">
+      <Filter>Source Files\CoreThread</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCoreObject.cpp">
+      <Filter>Source Files\CoreThread</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCoreObjectManager.cpp">
+      <Filter>Source Files\CoreThread</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCoreThread.cpp">
+      <Filter>Source Files\CoreThread</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCoreThreadAccessor.cpp">
+      <Filter>Source Files\CoreThread</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCoreSceneManager.cpp">
+      <Filter>Source Files\Scene</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsTextureImportOptions.cpp">
+      <Filter>Source Files\Importer</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsResourceMetaData.cpp">
+      <Filter>Source Files\Resources</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMaterialParam.cpp">
+      <Filter>Source Files\Material</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCoreObjectCore.cpp">
+      <Filter>Source Files\CoreThread</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCoreRenderer.cpp">
+      <Filter>Source Files\Renderer</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRenderAPI.cpp">
+      <Filter>Source Files\RenderAPI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRenderAPIManager.cpp">
+      <Filter>Source Files\RenderAPI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRenderAPICapabilities.cpp">
+      <Filter>Source Files\RenderAPI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsUtility.cpp">
+      <Filter>Source Files\Utility</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsSavedResourceData.cpp">
+      <Filter>Source Files\Resources</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPlatform.cpp">
+      <Filter>Source Files\Platform</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\Win32\BsWin32Platform.cpp">
+      <Filter>Source Files\Platform</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsShaderIncludeImporter.cpp">
+      <Filter>Source Files\Importer</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsShaderInclude.cpp">
+      <Filter>Source Files\Resources</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsShaderManager.cpp">
+      <Filter>Source Files\Material</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMeshImportOptions.cpp">
+      <Filter>Source Files\Importer</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPrefab.cpp">
+      <Filter>Source Files\Scene</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPrefabDiff.cpp">
+      <Filter>Source Files\Scene</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMeshUtility.cpp">
+      <Filter>Source Files\Utility</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPrefabUtility.cpp">
+      <Filter>Source Files\Scene</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRendererMeshData.cpp">
+      <Filter>Source Files\Renderer</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsHString.cpp">
+      <Filter>Source Files\Localization</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsStringTable.cpp">
+      <Filter>Source Files\Localization</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsStringTableManager.cpp">
+      <Filter>Source Files\Localization</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsProfilerCPU.cpp">
+      <Filter>Source Files\Profiling</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsProfilerGPU.cpp">
+      <Filter>Source Files\Profiling</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsProfilingManager.cpp">
+      <Filter>Source Files\Profiling</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsDeferredCallManager.cpp">
+      <Filter>Source Files\Utility</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsResourceListenerManager.cpp">
+      <Filter>Source Files\Resources</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsDrawOps.cpp">
+      <Filter>Source Files\Utility</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsIconUtility.cpp">
+      <Filter>Source Files\Utility</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsUUID.cpp">
+      <Filter>Source Files\Utility</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsIResourceListener.cpp">
+      <Filter>Source Files\Resources</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsViewport.cpp">
+      <Filter>Source Files\RenderAPI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPixelUtil.cpp">
+      <Filter>Source Files\Utility</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMaterialParams.cpp">
+      <Filter>Source Files\Material</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\Win32\BsWin32BrowseDialogs.cpp">
+      <Filter>Source Files\Platform</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPhysicsManager.cpp">
+      <Filter>Source Files\Physics</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPhysics.cpp">
+      <Filter>Source Files\Physics</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPhysicsMaterial.cpp">
+      <Filter>Source Files\Physics</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCollider.cpp">
+      <Filter>Source Files\Physics</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsRigidbody.cpp">
+      <Filter>Source Files\Physics</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsBoxCollider.cpp">
+      <Filter>Source Files\Physics</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsSphereCollider.cpp">
+      <Filter>Source Files\Physics</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPlaneCollider.cpp">
+      <Filter>Source Files\Physics</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCapsuleCollider.cpp">
+      <Filter>Source Files\Physics</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsFCollider.cpp">
+      <Filter>Source Files\Physics</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCBoxCollider.cpp">
+      <Filter>Source Files\Components</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCCollider.cpp">
+      <Filter>Source Files\Components</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCRigidbody.cpp">
+      <Filter>Source Files\Components</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCSphereCollider.cpp">
+      <Filter>Source Files\Components</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCPlaneCollider.cpp">
+      <Filter>Source Files\Components</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCCapsuleCollider.cpp">
+      <Filter>Source Files\Components</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsPhysicsMesh.cpp">
+      <Filter>Source Files\Physics</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsMeshCollider.cpp">
+      <Filter>Source Files\Physics</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCMeshCollider.cpp">
+      <Filter>Source Files\Components</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsFJoint.cpp">
+      <Filter>Source Files\Physics</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsJoint.cpp">
+      <Filter>Source Files\Physics</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsFixedJoint.cpp">
+      <Filter>Source Files\Physics</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsDistanceJoint.cpp">
+      <Filter>Source Files\Physics</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsHingeJoint.cpp">
+      <Filter>Source Files\Physics</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsSliderJoint.cpp">
+      <Filter>Source Files\Physics</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsSphericalJoint.cpp">
+      <Filter>Source Files\Physics</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsD6Joint.cpp">
+      <Filter>Source Files\Physics</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCJoint.cpp">
+      <Filter>Source Files\Components</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCFixedJoint.cpp">
+      <Filter>Source Files\Components</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCHingeJoint.cpp">
+      <Filter>Source Files\Components</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCDistanceJoint.cpp">
+      <Filter>Source Files\Components</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCSliderJoint.cpp">
+      <Filter>Source Files\Components</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCSphericalJoint.cpp">
+      <Filter>Source Files\Components</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCD6Joint.cpp">
+      <Filter>Source Files\Components</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCharacterController.cpp">
+      <Filter>Source Files\Physics</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsCCharacterController.cpp">
+      <Filter>Source Files\Components</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsShaderDefines.cpp">
+      <Filter>Source Files\Material</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeCore\Source\BsShaderImportOptions.cpp">
+      <Filter>Source Files\Importer</Filter>
+    </ClCompile>
+  </ItemGroup>
 </Project>

+ 462 - 462
Build/VS2015/BansheeEngine.vcxproj

@@ -1,463 +1,463 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="DebugRelease|Win32">
-      <Configuration>DebugRelease</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="DebugRelease|x64">
-      <Configuration>DebugRelease</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Debug|Win32">
-      <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>{07B0C186-5173-46F2-BE26-7E4148BD0CCA}</ProjectGuid>
-    <RootNamespace>BansheeEngine</RootNamespace>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-    <ConfigurationType>DynamicLibrary</ConfigurationType>
-    <UseDebugLibraries>true</UseDebugLibraries>
-    <PlatformToolset>v140</PlatformToolset>
-    <CharacterSet>NotSet</CharacterSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
-    <ConfigurationType>DynamicLibrary</ConfigurationType>
-    <UseDebugLibraries>true</UseDebugLibraries>
-    <PlatformToolset>v140</PlatformToolset>
-    <CharacterSet>NotSet</CharacterSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-    <ConfigurationType>DynamicLibrary</ConfigurationType>
-    <UseDebugLibraries>false</UseDebugLibraries>
-    <PlatformToolset>v140</PlatformToolset>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-    <CharacterSet>NotSet</CharacterSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugRelease|Win32'" Label="Configuration">
-    <ConfigurationType>DynamicLibrary</ConfigurationType>
-    <UseDebugLibraries>false</UseDebugLibraries>
-    <PlatformToolset>v140</PlatformToolset>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-    <CharacterSet>NotSet</CharacterSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
-    <ConfigurationType>DynamicLibrary</ConfigurationType>
-    <UseDebugLibraries>false</UseDebugLibraries>
-    <PlatformToolset>v140</PlatformToolset>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-    <CharacterSet>NotSet</CharacterSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugRelease|x64'" Label="Configuration">
-    <ConfigurationType>DynamicLibrary</ConfigurationType>
-    <UseDebugLibraries>false</UseDebugLibraries>
-    <PlatformToolset>v140</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)'=='DebugRelease|Win32'" Label="PropertySheets">
-    <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>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugRelease|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\x86\$(Configuration)\</OutDir>
-    <IntDir>.\Intermediate\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <OutDir>..\..\bin\$(Platform)\$(Configuration)\</OutDir>
-    <IntDir>.\Intermediate\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <OutDir>..\..\bin\x86\$(Configuration)\</OutDir>
-    <IntDir>.\Intermediate\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugRelease|Win32'">
-    <OutDir>..\..\bin\x86\$(Configuration)\</OutDir>
-    <IntDir>.\Intermediate\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <OutDir>..\..\bin\$(Platform)\$(Configuration)\</OutDir>
-    <IntDir>.\Intermediate\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugRelease|x64'">
-    <OutDir>..\..\bin\$(Platform)\$(Configuration)\</OutDir>
-    <IntDir>.\Intermediate\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <ClCompile>
-      <WarningLevel>Level3</WarningLevel>
-      <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>../../Source/BansheeEngine/Include;../../Source/BansheeCore/Include;../../Source/BansheeUtility/Include;..\..\Dependencies\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>BS_EXPORTS;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <InlineFunctionExpansion>Default</InlineFunctionExpansion>
-      <RuntimeTypeInfo>false</RuntimeTypeInfo>
-      <ExceptionHandling>false</ExceptionHandling>
-      <DisableSpecificWarnings>4530;4577</DisableSpecificWarnings>
-    </ClCompile>
-    <Link>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <AdditionalLibraryDirectories>..\..\lib\x86\$(Configuration);..\..\Dependencies\lib\x86\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <AdditionalDependencies>BansheeCore.lib;BansheeUtility.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <ImportLibrary>..\..\lib\x86\$(Configuration)\$(TargetName).lib</ImportLibrary>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <ClCompile>
-      <WarningLevel>Level3</WarningLevel>
-      <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>../../Source/BansheeEngine/Include;../../Source/BansheeCore/Include;../../Source/BansheeUtility/Include;..\..\Dependencies\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>BS_EXPORTS;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <InlineFunctionExpansion>Default</InlineFunctionExpansion>
-      <RuntimeTypeInfo>false</RuntimeTypeInfo>
-      <ExceptionHandling>false</ExceptionHandling>
-      <DisableSpecificWarnings>4530;4577</DisableSpecificWarnings>
-    </ClCompile>
-    <Link>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <AdditionalLibraryDirectories>..\..\lib\$(Platform)\$(Configuration);..\..\Dependencies\lib\x64\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <AdditionalDependencies>BansheeCore.lib;BansheeUtility.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <ImportLibrary>..\..\lib\$(Platform)\$(Configuration)\$(TargetName).lib</ImportLibrary>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <ClCompile>
-      <WarningLevel>Level3</WarningLevel>
-      <Optimization>MaxSpeed</Optimization>
-      <FunctionLevelLinking>true</FunctionLevelLinking>
-      <IntrinsicFunctions>true</IntrinsicFunctions>
-      <AdditionalIncludeDirectories>../../Source/BansheeEngine/Include;../../Source/BansheeCore/Include;../../Source/BansheeUtility/Include;..\..\Dependencies\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>BS_EXPORTS;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <BufferSecurityCheck>false</BufferSecurityCheck>
-      <DebugInformationFormat>None</DebugInformationFormat>
-      <InlineFunctionExpansion>Default</InlineFunctionExpansion>
-      <RuntimeTypeInfo>false</RuntimeTypeInfo>
-      <ExceptionHandling>false</ExceptionHandling>
-      <DisableSpecificWarnings>4530;4577</DisableSpecificWarnings>
-    </ClCompile>
-    <Link>
-      <GenerateDebugInformation>false</GenerateDebugInformation>
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-      <OptimizeReferences>true</OptimizeReferences>
-      <AdditionalLibraryDirectories>..\..\lib\x86\$(Configuration);..\..\Dependencies\lib\x86\Release</AdditionalLibraryDirectories>
-      <AdditionalDependencies>BansheeCore.lib;BansheeUtility.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <ImportLibrary>..\..\lib\x86\$(Configuration)\$(TargetName).lib</ImportLibrary>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugRelease|Win32'">
-    <ClCompile>
-      <WarningLevel>Level3</WarningLevel>
-      <Optimization>MaxSpeed</Optimization>
-      <FunctionLevelLinking>true</FunctionLevelLinking>
-      <IntrinsicFunctions>true</IntrinsicFunctions>
-      <AdditionalIncludeDirectories>../../Source/BansheeEngine/Include;../../Source/BansheeCore/Include;../../Source/BansheeUtility/Include;..\..\Dependencies\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>BS_EXPORTS;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <BufferSecurityCheck>false</BufferSecurityCheck>
-      <MinimalRebuild>true</MinimalRebuild>
-      <InlineFunctionExpansion>Default</InlineFunctionExpansion>
-      <RuntimeTypeInfo>false</RuntimeTypeInfo>
-      <ExceptionHandling>false</ExceptionHandling>
-      <DisableSpecificWarnings>4530;4577</DisableSpecificWarnings>
-    </ClCompile>
-    <Link>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-      <OptimizeReferences>true</OptimizeReferences>
-      <AdditionalLibraryDirectories>..\..\lib\x86\$(Configuration);..\..\Dependencies\lib\x86\DebugRelease</AdditionalLibraryDirectories>
-      <AdditionalDependencies>BansheeCore.lib;BansheeUtility.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <ImportLibrary>..\..\lib\x86\$(Configuration)\$(TargetName).lib</ImportLibrary>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <ClCompile>
-      <WarningLevel>Level3</WarningLevel>
-      <Optimization>MaxSpeed</Optimization>
-      <FunctionLevelLinking>true</FunctionLevelLinking>
-      <IntrinsicFunctions>true</IntrinsicFunctions>
-      <AdditionalIncludeDirectories>../../Source/BansheeEngine/Include;../../Source/BansheeCore/Include;../../Source/BansheeUtility/Include;..\..\Dependencies\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>BS_EXPORTS;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <BufferSecurityCheck>false</BufferSecurityCheck>
-      <DebugInformationFormat>None</DebugInformationFormat>
-      <InlineFunctionExpansion>Default</InlineFunctionExpansion>
-      <RuntimeTypeInfo>false</RuntimeTypeInfo>
-      <ExceptionHandling>false</ExceptionHandling>
-      <DisableSpecificWarnings>4530;4577</DisableSpecificWarnings>
-    </ClCompile>
-    <Link>
-      <GenerateDebugInformation>false</GenerateDebugInformation>
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-      <OptimizeReferences>true</OptimizeReferences>
-      <AdditionalLibraryDirectories>..\..\lib\$(Platform)\$(Configuration);..\..\Dependencies\lib\x64\Release</AdditionalLibraryDirectories>
-      <AdditionalDependencies>BansheeCore.lib;BansheeUtility.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <ImportLibrary>..\..\lib\$(Platform)\$(Configuration)\$(TargetName).lib</ImportLibrary>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugRelease|x64'">
-    <ClCompile>
-      <WarningLevel>Level3</WarningLevel>
-      <Optimization>MaxSpeed</Optimization>
-      <FunctionLevelLinking>true</FunctionLevelLinking>
-      <IntrinsicFunctions>true</IntrinsicFunctions>
-      <AdditionalIncludeDirectories>../../Source/BansheeEngine/Include;../../Source/BansheeCore/Include;../../Source/BansheeUtility/Include;..\..\Dependencies\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>BS_EXPORTS;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <BufferSecurityCheck>false</BufferSecurityCheck>
-      <MinimalRebuild>true</MinimalRebuild>
-      <InlineFunctionExpansion>Default</InlineFunctionExpansion>
-      <RuntimeTypeInfo>false</RuntimeTypeInfo>
-      <ExceptionHandling>false</ExceptionHandling>
-      <DisableSpecificWarnings>4530;4577</DisableSpecificWarnings>
-    </ClCompile>
-    <Link>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-      <OptimizeReferences>true</OptimizeReferences>
-      <AdditionalLibraryDirectories>..\..\lib\$(Platform)\$(Configuration);..\..\Dependencies\lib\x64\DebugRelease</AdditionalLibraryDirectories>
-      <AdditionalDependencies>BansheeCore.lib;BansheeUtility.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <ImportLibrary>..\..\lib\$(Platform)\$(Configuration)\$(TargetName).lib</ImportLibrary>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsCamera.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsCGUIWidget.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsCursor.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsDrawHelper.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsDropDownAreaPlacement.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGameResourceManager.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIDropDownContent.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIElementStyle.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIPanel.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUILayoutUtility.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIProgressBar.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUISkinRTTI.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUISlider.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUISpace.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUITooltip.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUITooltipManager.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsHEString.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsInputConfiguration.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsCLight.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsPlainText.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsPlainTextImporter.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsRenderableHandler.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsRenderable.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsRenderer.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsRendererMaterial.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsRendererMaterialManager.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsRendererUtility.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsRenderQueue.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsScriptCode.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsScriptCodeImporter.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsScriptCodeImportOptions.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsShortcutKey.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsShortcutManager.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsSplashScreen.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsVirtualInput.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsLight.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGameSettings.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsPaths.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsEngineShaderIncludeHandler.cpp" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsApplication.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCamera.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCameraRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCGUIWidget.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCursor.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsDrawHelper.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsDropDownAreaPlacement.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsEngineShaderIncludeHandler.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGameResourceManager.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGameSettings.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGameSettingsRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIDropDownContent.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIElementStyleRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUILayoutData.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIPanel.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIProgressBar.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUISkinRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUISlider.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCGUIWidgetRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUITooltip.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUITooltipManager.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsHEString.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCLight.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsLight.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsLightRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCLightRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsPlainText.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsPlainTextImporter.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsPlainTextRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsRenderableElement.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsRenderable.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsRenderableRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsRenderer.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsRendererMaterial.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsRendererMaterialManager.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsRendererUtility.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsResourceMappingRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsScriptCode.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsScriptCodeImporter.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsScriptCodeImportOptions.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsScriptCodeImportOptionsRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsScriptCodeRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsShapeMeshes3D.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsDragAndDropManager.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsShapeMeshes2D.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsBuiltinResources.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsEnums.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIButton.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIButtonBase.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUICommandEvent.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIContent.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIContextMenu.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIDropDownMenu.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIDropDownBoxManager.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIDropDownHitBox.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIElementContainer.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIHelper.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUILayoutUtility.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIListBox.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIElementBase.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIInputTool.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIInputBox.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIOptions.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIRenderTexture.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUITextInputEvent.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIInputCaret.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIInputSelection.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIDimensions.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUILayoutX.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUILayout.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUILayoutY.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIMenu.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIScrollBar.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUISliderHandle.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIScrollBarHorz.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIScrollBarVert.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUISpace.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUITexture.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIToggle.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIToggleGroup.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIViewport.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIVirtualButtonEvent.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsInputConfiguration.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsPrerequisites.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIElement.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIElementStyle.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUILabel.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIManager.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIMouseEvent.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUISkin.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIWidget.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsImageSprite.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsProfilerOverlay.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsRectOffset.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsRenderableHandler.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsRenderQueue.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsSceneManager.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIScrollArea.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsScriptManager.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsShortcutKey.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsShortcutManager.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsSplashScreen.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsSpriteTextureRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsSprite.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsSpriteTexture.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsTextSprite.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCCamera.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCCameraRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCRenderable.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCRenderableRTTI.h" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIButtonBase.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIContextMenu.cpp" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsVirtualInput.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsProfilerOverlayRTTI.h" />
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsPaths.h" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsApplication.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsShapeMeshes2D.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsShapeMeshes3D.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsDragAndDropManager.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsBuiltinResources.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIButton.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIContent.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIDropDownMenu.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIDropDownBoxManager.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIDropDownHitBox.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIElementContainer.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIHelper.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIDimensions.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIListBox.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIElement.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIElementBase.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIInputBox.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIOptions.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIRenderTexture.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUITextInputEvent.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIInputCaret.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIInputSelection.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIInputTool.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUILabel.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUILayout.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUILayoutY.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIManager.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIMouseEvent.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIScrollBar.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUISliderHandle.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIScrollBarHorz.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIScrollBarVert.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUISkin.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUITexture.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIToggle.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIToggleGroup.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIWidget.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsImageSprite.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsProfilerOverlay.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsSceneManager.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIScrollArea.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsScriptManager.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsSprite.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsSpriteTexture.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsTextSprite.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsCCamera.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsCRenderable.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUILayoutX.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIViewport.cpp" />
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIMenu.cpp" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-  </ImportGroup>
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="DebugRelease|Win32">
+      <Configuration>DebugRelease</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="DebugRelease|x64">
+      <Configuration>DebugRelease</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|Win32">
+      <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>{07B0C186-5173-46F2-BE26-7E4148BD0CCA}</ProjectGuid>
+    <RootNamespace>BansheeEngine</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v140</PlatformToolset>
+    <CharacterSet>NotSet</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v140</PlatformToolset>
+    <CharacterSet>NotSet</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v140</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>NotSet</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugRelease|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v140</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>NotSet</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v140</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>NotSet</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugRelease|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v140</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)'=='DebugRelease|Win32'" Label="PropertySheets">
+    <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>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugRelease|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\x86\$(Configuration)\</OutDir>
+    <IntDir>.\Intermediate\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <OutDir>..\..\bin\$(Platform)\$(Configuration)\</OutDir>
+    <IntDir>.\Intermediate\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <OutDir>..\..\bin\x86\$(Configuration)\</OutDir>
+    <IntDir>.\Intermediate\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugRelease|Win32'">
+    <OutDir>..\..\bin\x86\$(Configuration)\</OutDir>
+    <IntDir>.\Intermediate\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>..\..\bin\$(Platform)\$(Configuration)\</OutDir>
+    <IntDir>.\Intermediate\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugRelease|x64'">
+    <OutDir>..\..\bin\$(Platform)\$(Configuration)\</OutDir>
+    <IntDir>.\Intermediate\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>../../Source/BansheeEngine/Include;../../Source/BansheeCore/Include;../../Source/BansheeUtility/Include;..\..\Dependencies\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>BS_EXPORTS;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <InlineFunctionExpansion>Default</InlineFunctionExpansion>
+      <RuntimeTypeInfo>false</RuntimeTypeInfo>
+      <ExceptionHandling>false</ExceptionHandling>
+      <DisableSpecificWarnings>4530;4577</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <AdditionalLibraryDirectories>..\..\lib\x86\$(Configuration);..\..\Dependencies\lib\x86\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalDependencies>BansheeCore.lib;BansheeUtility.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <ImportLibrary>..\..\lib\x86\$(Configuration)\$(TargetName).lib</ImportLibrary>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>../../Source/BansheeEngine/Include;../../Source/BansheeCore/Include;../../Source/BansheeUtility/Include;..\..\Dependencies\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>BS_EXPORTS;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <InlineFunctionExpansion>Default</InlineFunctionExpansion>
+      <RuntimeTypeInfo>false</RuntimeTypeInfo>
+      <ExceptionHandling>false</ExceptionHandling>
+      <DisableSpecificWarnings>4530;4577</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <AdditionalLibraryDirectories>..\..\lib\$(Platform)\$(Configuration);..\..\Dependencies\lib\x64\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalDependencies>BansheeCore.lib;BansheeUtility.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <ImportLibrary>..\..\lib\$(Platform)\$(Configuration)\$(TargetName).lib</ImportLibrary>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <AdditionalIncludeDirectories>../../Source/BansheeEngine/Include;../../Source/BansheeCore/Include;../../Source/BansheeUtility/Include;..\..\Dependencies\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>BS_EXPORTS;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BufferSecurityCheck>false</BufferSecurityCheck>
+      <DebugInformationFormat>None</DebugInformationFormat>
+      <InlineFunctionExpansion>Default</InlineFunctionExpansion>
+      <RuntimeTypeInfo>false</RuntimeTypeInfo>
+      <ExceptionHandling>false</ExceptionHandling>
+      <DisableSpecificWarnings>4530;4577</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>false</GenerateDebugInformation>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <AdditionalLibraryDirectories>..\..\lib\x86\$(Configuration);..\..\Dependencies\lib\x86\Release</AdditionalLibraryDirectories>
+      <AdditionalDependencies>BansheeCore.lib;BansheeUtility.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <ImportLibrary>..\..\lib\x86\$(Configuration)\$(TargetName).lib</ImportLibrary>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugRelease|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <AdditionalIncludeDirectories>../../Source/BansheeEngine/Include;../../Source/BansheeCore/Include;../../Source/BansheeUtility/Include;..\..\Dependencies\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>BS_EXPORTS;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BufferSecurityCheck>false</BufferSecurityCheck>
+      <MinimalRebuild>true</MinimalRebuild>
+      <InlineFunctionExpansion>Default</InlineFunctionExpansion>
+      <RuntimeTypeInfo>false</RuntimeTypeInfo>
+      <ExceptionHandling>false</ExceptionHandling>
+      <DisableSpecificWarnings>4530;4577</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <AdditionalLibraryDirectories>..\..\lib\x86\$(Configuration);..\..\Dependencies\lib\x86\DebugRelease</AdditionalLibraryDirectories>
+      <AdditionalDependencies>BansheeCore.lib;BansheeUtility.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <ImportLibrary>..\..\lib\x86\$(Configuration)\$(TargetName).lib</ImportLibrary>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <AdditionalIncludeDirectories>../../Source/BansheeEngine/Include;../../Source/BansheeCore/Include;../../Source/BansheeUtility/Include;..\..\Dependencies\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>BS_EXPORTS;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BufferSecurityCheck>false</BufferSecurityCheck>
+      <DebugInformationFormat>None</DebugInformationFormat>
+      <InlineFunctionExpansion>Default</InlineFunctionExpansion>
+      <RuntimeTypeInfo>false</RuntimeTypeInfo>
+      <ExceptionHandling>false</ExceptionHandling>
+      <DisableSpecificWarnings>4530;4577</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>false</GenerateDebugInformation>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <AdditionalLibraryDirectories>..\..\lib\$(Platform)\$(Configuration);..\..\Dependencies\lib\x64\Release</AdditionalLibraryDirectories>
+      <AdditionalDependencies>BansheeCore.lib;BansheeUtility.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <ImportLibrary>..\..\lib\$(Platform)\$(Configuration)\$(TargetName).lib</ImportLibrary>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugRelease|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <AdditionalIncludeDirectories>../../Source/BansheeEngine/Include;../../Source/BansheeCore/Include;../../Source/BansheeUtility/Include;..\..\Dependencies\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>BS_EXPORTS;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BufferSecurityCheck>false</BufferSecurityCheck>
+      <MinimalRebuild>true</MinimalRebuild>
+      <InlineFunctionExpansion>Default</InlineFunctionExpansion>
+      <RuntimeTypeInfo>false</RuntimeTypeInfo>
+      <ExceptionHandling>false</ExceptionHandling>
+      <DisableSpecificWarnings>4530;4577</DisableSpecificWarnings>
+    </ClCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <AdditionalLibraryDirectories>..\..\lib\$(Platform)\$(Configuration);..\..\Dependencies\lib\x64\DebugRelease</AdditionalLibraryDirectories>
+      <AdditionalDependencies>BansheeCore.lib;BansheeUtility.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <ImportLibrary>..\..\lib\$(Platform)\$(Configuration)\$(TargetName).lib</ImportLibrary>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsCamera.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsCGUIWidget.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsCursor.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsDrawHelper.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsDropDownAreaPlacement.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGameResourceManager.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIDropDownContent.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIElementStyle.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIPanel.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUILayoutUtility.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIProgressBar.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUISkinRTTI.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUISlider.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUISpace.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUITooltip.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUITooltipManager.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsHEString.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsInputConfiguration.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsCLight.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsPlainText.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsPlainTextImporter.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsRenderableHandler.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsRenderable.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsRenderer.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsRendererMaterial.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsRendererMaterialManager.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsRendererUtility.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsRenderQueue.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsScriptCode.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsScriptCodeImporter.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsScriptCodeImportOptions.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsShortcutKey.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsShortcutManager.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsSplashScreen.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsVirtualInput.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsLight.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGameSettings.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsPaths.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsEngineShaderIncludeHandler.cpp" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsApplication.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCamera.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCameraRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCGUIWidget.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCursor.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsDrawHelper.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsDropDownAreaPlacement.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsEngineShaderIncludeHandler.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGameResourceManager.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGameSettings.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGameSettingsRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIDropDownContent.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIElementStyleRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUILayoutData.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIPanel.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIProgressBar.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUISkinRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUISlider.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCGUIWidgetRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUITooltip.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUITooltipManager.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsHEString.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCLight.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsLight.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsLightRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCLightRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsPlainText.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsPlainTextImporter.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsPlainTextRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsRenderableElement.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsRenderable.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsRenderableRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsRenderer.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsRendererMaterial.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsRendererMaterialManager.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsRendererUtility.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsResourceMappingRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsScriptCode.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsScriptCodeImporter.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsScriptCodeImportOptions.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsScriptCodeImportOptionsRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsScriptCodeRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsShapeMeshes3D.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsDragAndDropManager.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsShapeMeshes2D.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsBuiltinResources.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsEnums.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIButton.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIButtonBase.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUICommandEvent.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIContent.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIContextMenu.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIDropDownMenu.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIDropDownBoxManager.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIDropDownHitBox.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIElementContainer.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIHelper.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUILayoutUtility.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIListBox.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIElementBase.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIInputTool.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIInputBox.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIOptions.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIRenderTexture.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUITextInputEvent.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIInputCaret.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIInputSelection.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIDimensions.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUILayoutX.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUILayout.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUILayoutY.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIMenu.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIScrollBar.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUISliderHandle.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIScrollBarHorz.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIScrollBarVert.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUISpace.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUITexture.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIToggle.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIToggleGroup.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIViewport.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIVirtualButtonEvent.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsInputConfiguration.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsPrerequisites.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIElement.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIElementStyle.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUILabel.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIManager.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIMouseEvent.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUISkin.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIWidget.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsImageSprite.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsProfilerOverlay.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsRectOffset.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsRenderableHandler.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsRenderQueue.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsSceneManager.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIScrollArea.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsScriptManager.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsShortcutKey.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsShortcutManager.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsSplashScreen.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsSpriteTextureRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsSprite.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsSpriteTexture.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsTextSprite.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCCamera.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCCameraRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCRenderable.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCRenderableRTTI.h" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIButtonBase.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIContextMenu.cpp" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsVirtualInput.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsProfilerOverlayRTTI.h" />
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsPaths.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsApplication.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsShapeMeshes2D.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsShapeMeshes3D.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsDragAndDropManager.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsBuiltinResources.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIButton.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIContent.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIDropDownMenu.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIDropDownBoxManager.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIDropDownHitBox.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIElementContainer.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIHelper.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIDimensions.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIListBox.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIElement.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIElementBase.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIInputBox.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIOptions.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIRenderTexture.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUITextInputEvent.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIInputCaret.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIInputSelection.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIInputTool.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUILabel.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUILayout.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUILayoutY.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIManager.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIMouseEvent.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIScrollBar.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUISliderHandle.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIScrollBarHorz.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIScrollBarVert.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUISkin.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUITexture.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIToggle.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIToggleGroup.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIWidget.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsImageSprite.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsProfilerOverlay.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsSceneManager.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIScrollArea.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsScriptManager.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsSprite.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsSpriteTexture.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsTextSprite.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsCCamera.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsCRenderable.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUILayoutX.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIViewport.cpp" />
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIMenu.cpp" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
 </Project>

+ 688 - 688
Build/VS2015/BansheeEngine.vcxproj.filters

@@ -1,689 +1,689 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup>
-    <Filter Include="Source Files">
-      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
-      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
-    </Filter>
-    <Filter Include="Header Files">
-      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
-      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
-    </Filter>
-    <Filter Include="Header Files\GUI">
-      <UniqueIdentifier>{d21e5e3c-e647-46a5-99e6-e2fdeb3dc842}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\GUI">
-      <UniqueIdentifier>{e362bd0a-2c27-483e-96c9-60603548be35}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\2D">
-      <UniqueIdentifier>{e3db645e-b8cb-48fc-9eef-75c31ab7cd8b}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\2D">
-      <UniqueIdentifier>{95b6f738-cc0a-4dde-81f8-b0246ab32938}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\Components">
-      <UniqueIdentifier>{99e50dfa-7d20-4416-9616-5de20a1067db}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\Components">
-      <UniqueIdentifier>{e9931182-3579-4d89-993e-da67c1fcd4c9}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\RTTI">
-      <UniqueIdentifier>{8d0002f5-5505-4292-9043-a8fbb489362e}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\Script">
-      <UniqueIdentifier>{316651aa-66a0-49dc-8f54-dcc0e037d6b7}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\Script">
-      <UniqueIdentifier>{74630e1e-ef0d-4dbc-9e23-0ae6ea24fc02}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\RTTI">
-      <UniqueIdentifier>{ced1e9e9-483b-493e-b64b-9de22ec86f3e}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\Renderer">
-      <UniqueIdentifier>{fceaa158-0e8b-4f59-9e3c-50ce361e39c0}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\Renderer">
-      <UniqueIdentifier>{8b28e418-8a2a-47b5-889b-17dc8a356392}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\Resources">
-      <UniqueIdentifier>{52edf0ee-4afa-4842-8e30-a9e77674cd72}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\Resources">
-      <UniqueIdentifier>{f0fdd7c2-8168-4dc8-b70d-83ffabf689e3}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\Input">
-      <UniqueIdentifier>{38aef70c-b12d-4883-baa1-77172b45af95}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\Input">
-      <UniqueIdentifier>{9885424e-7fa7-4d1e-9c88-170ba337f18b}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\Utility">
-      <UniqueIdentifier>{9070ba6d-7d9d-437e-b74a-88d633ec0722}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\Platform">
-      <UniqueIdentifier>{9f2d37e4-5945-460d-989e-51fcf041bf0f}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\Utility">
-      <UniqueIdentifier>{411909d3-5bb3-4965-b34d-15b540e7a383}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\Platform">
-      <UniqueIdentifier>{9aee3cb0-8e54-4bf3-8b7e-2ea42c2b82a2}</UniqueIdentifier>
-    </Filter>
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIElement.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIElementStyle.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUILabel.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIManager.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUISkin.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsImageSprite.h">
-      <Filter>Header Files\2D</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsSprite.h">
-      <Filter>Header Files\2D</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsSpriteTexture.h">
-      <Filter>Header Files\2D</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsTextSprite.h">
-      <Filter>Header Files\2D</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsApplication.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUILayout.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUILayoutX.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUILayoutY.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUISpace.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIButton.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUITexture.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIToggle.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIInputBox.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUICommandEvent.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIInputCaret.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIInputSelection.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIInputTool.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIElementBase.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIScrollBarVert.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIScrollBarHorz.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIScrollArea.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIScrollBar.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIToggleGroup.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsDragAndDropManager.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIViewport.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIContent.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIListBox.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIMenu.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIContextMenu.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIHelper.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIDropDownBoxManager.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIButtonBase.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUITextInputEvent.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIMouseEvent.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsProfilerOverlay.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIOptions.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIRenderTexture.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsScriptManager.h">
-      <Filter>Header Files\Script</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsSpriteTextureRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIElementContainer.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIDropDownHitBox.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIVirtualButtonEvent.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUILayoutUtility.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUISliderHandle.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUISlider.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIProgressBar.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsPlainTextRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsScriptCodeRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsScriptCodeImportOptionsRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIDropDownContent.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIElementStyleRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUISkinRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIDimensions.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIPanel.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUILayoutData.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIDropDownMenu.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsDropDownAreaPlacement.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsProfilerOverlayRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCCamera.h">
-      <Filter>Header Files\Components</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCCameraRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCRenderableRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCRenderable.h">
-      <Filter>Header Files\Components</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCLightRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCLight.h">
-      <Filter>Header Files\Components</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCameraRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsRenderableRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsLightRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCGUIWidgetRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGameSettingsRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUITooltipManager.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUITooltip.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIWidget.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCGUIWidget.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCamera.h">
-      <Filter>Header Files\Renderer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsLight.h">
-      <Filter>Header Files\Renderer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsRenderable.h">
-      <Filter>Header Files\Renderer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsRenderableElement.h">
-      <Filter>Header Files\Renderer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsRenderableHandler.h">
-      <Filter>Header Files\Renderer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsRenderer.h">
-      <Filter>Header Files\Renderer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsRendererMaterial.h">
-      <Filter>Header Files\Renderer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsRendererMaterialManager.h">
-      <Filter>Header Files\Renderer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsRenderQueue.h">
-      <Filter>Header Files\Renderer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsSceneManager.h">
-      <Filter>Header Files\Renderer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsPlainText.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsPlainTextImporter.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsScriptCode.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsScriptCodeImporter.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsScriptCodeImportOptions.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsBuiltinResources.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsInputConfiguration.h">
-      <Filter>Header Files\Input</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsVirtualInput.h">
-      <Filter>Header Files\Input</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsDrawHelper.h">
-      <Filter>Header Files\Utility</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsEnums.h">
-      <Filter>Header Files\Utility</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGameSettings.h">
-      <Filter>Header Files\Utility</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsHEString.h">
-      <Filter>Header Files\Utility</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsPaths.h">
-      <Filter>Header Files\Utility</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsRectOffset.h">
-      <Filter>Header Files\Utility</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsShapeMeshes2D.h">
-      <Filter>Header Files\Utility</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsShapeMeshes3D.h">
-      <Filter>Header Files\Utility</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsPrerequisites.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCursor.h">
-      <Filter>Header Files\Platform</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsSplashScreen.h">
-      <Filter>Header Files\Platform</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsShortcutManager.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsShortcutKey.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsRendererUtility.h">
-      <Filter>Header Files\Renderer</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsEngineShaderIncludeHandler.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGameResourceManager.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsResourceMappingRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIElement.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUILabel.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIManager.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUISkin.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsImageSprite.cpp">
-      <Filter>Source Files\2D</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsSprite.cpp">
-      <Filter>Source Files\2D</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsSpriteTexture.cpp">
-      <Filter>Source Files\2D</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsTextSprite.cpp">
-      <Filter>Source Files\2D</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsApplication.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUILayout.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUILayoutX.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUILayoutY.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIButton.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUITexture.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIToggle.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIInputBox.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIMouseEvent.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIInputCaret.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIInputSelection.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIInputTool.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIElementBase.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIScrollBarVert.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIScrollBarHorz.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIScrollArea.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIScrollBar.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIToggleGroup.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsDragAndDropManager.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIViewport.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIContent.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIListBox.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIMenu.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIHelper.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIDropDownBoxManager.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIContextMenu.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIButtonBase.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUITextInputEvent.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsProfilerOverlay.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIOptions.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIRenderTexture.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsScriptManager.cpp">
-      <Filter>Source Files\Script</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIElementContainer.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIDropDownHitBox.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUILayoutUtility.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUISliderHandle.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUISlider.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIProgressBar.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUISpace.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIDropDownContent.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIElementStyle.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUISkinRTTI.cpp">
-      <Filter>Source Files\RTTI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIDimensions.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIPanel.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIDropDownMenu.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsDropDownAreaPlacement.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsCCamera.cpp">
-      <Filter>Source Files\Components</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsCRenderable.cpp">
-      <Filter>Source Files\Components</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsCLight.cpp">
-      <Filter>Source Files\Components</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUITooltipManager.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUITooltip.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIWidget.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsCamera.cpp">
-      <Filter>Source Files\Renderer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsLight.cpp">
-      <Filter>Source Files\Renderer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsRenderable.cpp">
-      <Filter>Source Files\Renderer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsRenderableHandler.cpp">
-      <Filter>Source Files\Renderer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsRenderer.cpp">
-      <Filter>Source Files\Renderer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsRendererMaterial.cpp">
-      <Filter>Source Files\Renderer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsRendererMaterialManager.cpp">
-      <Filter>Source Files\Renderer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsRenderQueue.cpp">
-      <Filter>Source Files\Renderer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsSceneManager.cpp">
-      <Filter>Source Files\Renderer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsScriptCodeImportOptions.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsScriptCodeImporter.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsScriptCode.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsPlainTextImporter.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsPlainText.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsBuiltinResources.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsInputConfiguration.cpp">
-      <Filter>Source Files\Input</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsVirtualInput.cpp">
-      <Filter>Source Files\Input</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsDrawHelper.cpp">
-      <Filter>Source Files\Utility</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGameSettings.cpp">
-      <Filter>Source Files\Utility</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsHEString.cpp">
-      <Filter>Source Files\Utility</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsPaths.cpp">
-      <Filter>Source Files\Utility</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsShapeMeshes2D.cpp">
-      <Filter>Source Files\Utility</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsShapeMeshes3D.cpp">
-      <Filter>Source Files\Utility</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsShortcutKey.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsShortcutManager.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsCursor.cpp">
-      <Filter>Source Files\Platform</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsSplashScreen.cpp">
-      <Filter>Source Files\Platform</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsCGUIWidget.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsRendererUtility.cpp">
-      <Filter>Source Files\Renderer</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsEngineShaderIncludeHandler.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGameResourceManager.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-  </ItemGroup>
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+    </Filter>
+    <Filter Include="Header Files\GUI">
+      <UniqueIdentifier>{d21e5e3c-e647-46a5-99e6-e2fdeb3dc842}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Source Files\GUI">
+      <UniqueIdentifier>{e362bd0a-2c27-483e-96c9-60603548be35}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files\2D">
+      <UniqueIdentifier>{e3db645e-b8cb-48fc-9eef-75c31ab7cd8b}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Source Files\2D">
+      <UniqueIdentifier>{95b6f738-cc0a-4dde-81f8-b0246ab32938}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Source Files\Components">
+      <UniqueIdentifier>{99e50dfa-7d20-4416-9616-5de20a1067db}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files\Components">
+      <UniqueIdentifier>{e9931182-3579-4d89-993e-da67c1fcd4c9}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files\RTTI">
+      <UniqueIdentifier>{8d0002f5-5505-4292-9043-a8fbb489362e}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files\Script">
+      <UniqueIdentifier>{316651aa-66a0-49dc-8f54-dcc0e037d6b7}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Source Files\Script">
+      <UniqueIdentifier>{74630e1e-ef0d-4dbc-9e23-0ae6ea24fc02}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Source Files\RTTI">
+      <UniqueIdentifier>{ced1e9e9-483b-493e-b64b-9de22ec86f3e}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files\Renderer">
+      <UniqueIdentifier>{fceaa158-0e8b-4f59-9e3c-50ce361e39c0}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Source Files\Renderer">
+      <UniqueIdentifier>{8b28e418-8a2a-47b5-889b-17dc8a356392}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files\Resources">
+      <UniqueIdentifier>{52edf0ee-4afa-4842-8e30-a9e77674cd72}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Source Files\Resources">
+      <UniqueIdentifier>{f0fdd7c2-8168-4dc8-b70d-83ffabf689e3}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files\Input">
+      <UniqueIdentifier>{38aef70c-b12d-4883-baa1-77172b45af95}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Source Files\Input">
+      <UniqueIdentifier>{9885424e-7fa7-4d1e-9c88-170ba337f18b}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files\Utility">
+      <UniqueIdentifier>{9070ba6d-7d9d-437e-b74a-88d633ec0722}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files\Platform">
+      <UniqueIdentifier>{9f2d37e4-5945-460d-989e-51fcf041bf0f}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Source Files\Utility">
+      <UniqueIdentifier>{411909d3-5bb3-4965-b34d-15b540e7a383}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Source Files\Platform">
+      <UniqueIdentifier>{9aee3cb0-8e54-4bf3-8b7e-2ea42c2b82a2}</UniqueIdentifier>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIElement.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIElementStyle.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUILabel.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIManager.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUISkin.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsImageSprite.h">
+      <Filter>Header Files\2D</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsSprite.h">
+      <Filter>Header Files\2D</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsSpriteTexture.h">
+      <Filter>Header Files\2D</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsTextSprite.h">
+      <Filter>Header Files\2D</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsApplication.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUILayout.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUILayoutX.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUILayoutY.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUISpace.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIButton.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUITexture.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIToggle.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIInputBox.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUICommandEvent.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIInputCaret.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIInputSelection.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIInputTool.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIElementBase.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIScrollBarVert.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIScrollBarHorz.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIScrollArea.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIScrollBar.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIToggleGroup.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsDragAndDropManager.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIViewport.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIContent.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIListBox.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIMenu.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIContextMenu.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIHelper.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIDropDownBoxManager.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIButtonBase.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUITextInputEvent.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIMouseEvent.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsProfilerOverlay.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIOptions.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIRenderTexture.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsScriptManager.h">
+      <Filter>Header Files\Script</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsSpriteTextureRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIElementContainer.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIDropDownHitBox.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIVirtualButtonEvent.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUILayoutUtility.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUISliderHandle.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUISlider.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIProgressBar.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsPlainTextRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsScriptCodeRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsScriptCodeImportOptionsRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIDropDownContent.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIElementStyleRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUISkinRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIDimensions.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIPanel.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUILayoutData.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIDropDownMenu.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsDropDownAreaPlacement.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsProfilerOverlayRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCCamera.h">
+      <Filter>Header Files\Components</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCCameraRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCRenderableRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCRenderable.h">
+      <Filter>Header Files\Components</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCLightRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCLight.h">
+      <Filter>Header Files\Components</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCameraRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsRenderableRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsLightRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCGUIWidgetRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGameSettingsRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUITooltipManager.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUITooltip.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGUIWidget.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCGUIWidget.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCamera.h">
+      <Filter>Header Files\Renderer</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsLight.h">
+      <Filter>Header Files\Renderer</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsRenderable.h">
+      <Filter>Header Files\Renderer</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsRenderableElement.h">
+      <Filter>Header Files\Renderer</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsRenderableHandler.h">
+      <Filter>Header Files\Renderer</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsRenderer.h">
+      <Filter>Header Files\Renderer</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsRendererMaterial.h">
+      <Filter>Header Files\Renderer</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsRendererMaterialManager.h">
+      <Filter>Header Files\Renderer</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsRenderQueue.h">
+      <Filter>Header Files\Renderer</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsSceneManager.h">
+      <Filter>Header Files\Renderer</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsPlainText.h">
+      <Filter>Header Files\Resources</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsPlainTextImporter.h">
+      <Filter>Header Files\Resources</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsScriptCode.h">
+      <Filter>Header Files\Resources</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsScriptCodeImporter.h">
+      <Filter>Header Files\Resources</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsScriptCodeImportOptions.h">
+      <Filter>Header Files\Resources</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsBuiltinResources.h">
+      <Filter>Header Files\Resources</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsInputConfiguration.h">
+      <Filter>Header Files\Input</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsVirtualInput.h">
+      <Filter>Header Files\Input</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsDrawHelper.h">
+      <Filter>Header Files\Utility</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsEnums.h">
+      <Filter>Header Files\Utility</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGameSettings.h">
+      <Filter>Header Files\Utility</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsHEString.h">
+      <Filter>Header Files\Utility</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsPaths.h">
+      <Filter>Header Files\Utility</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsRectOffset.h">
+      <Filter>Header Files\Utility</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsShapeMeshes2D.h">
+      <Filter>Header Files\Utility</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsShapeMeshes3D.h">
+      <Filter>Header Files\Utility</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsPrerequisites.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsCursor.h">
+      <Filter>Header Files\Platform</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsSplashScreen.h">
+      <Filter>Header Files\Platform</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsShortcutManager.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsShortcutKey.h">
+      <Filter>Header Files\GUI</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsRendererUtility.h">
+      <Filter>Header Files\Renderer</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsEngineShaderIncludeHandler.h">
+      <Filter>Header Files\Resources</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsGameResourceManager.h">
+      <Filter>Header Files\Resources</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\BansheeEngine\Include\BsResourceMappingRTTI.h">
+      <Filter>Header Files\RTTI</Filter>
+    </ClInclude>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIElement.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUILabel.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIManager.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUISkin.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsImageSprite.cpp">
+      <Filter>Source Files\2D</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsSprite.cpp">
+      <Filter>Source Files\2D</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsSpriteTexture.cpp">
+      <Filter>Source Files\2D</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsTextSprite.cpp">
+      <Filter>Source Files\2D</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsApplication.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUILayout.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUILayoutX.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUILayoutY.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIButton.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUITexture.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIToggle.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIInputBox.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIMouseEvent.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIInputCaret.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIInputSelection.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIInputTool.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIElementBase.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIScrollBarVert.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIScrollBarHorz.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIScrollArea.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIScrollBar.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIToggleGroup.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsDragAndDropManager.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIViewport.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIContent.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIListBox.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIMenu.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIHelper.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIDropDownBoxManager.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIContextMenu.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIButtonBase.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUITextInputEvent.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsProfilerOverlay.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIOptions.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIRenderTexture.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsScriptManager.cpp">
+      <Filter>Source Files\Script</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIElementContainer.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIDropDownHitBox.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUILayoutUtility.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUISliderHandle.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUISlider.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIProgressBar.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUISpace.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIDropDownContent.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIElementStyle.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUISkinRTTI.cpp">
+      <Filter>Source Files\RTTI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIDimensions.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIPanel.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIDropDownMenu.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsDropDownAreaPlacement.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsCCamera.cpp">
+      <Filter>Source Files\Components</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsCRenderable.cpp">
+      <Filter>Source Files\Components</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsCLight.cpp">
+      <Filter>Source Files\Components</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUITooltipManager.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUITooltip.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGUIWidget.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsCamera.cpp">
+      <Filter>Source Files\Renderer</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsLight.cpp">
+      <Filter>Source Files\Renderer</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsRenderable.cpp">
+      <Filter>Source Files\Renderer</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsRenderableHandler.cpp">
+      <Filter>Source Files\Renderer</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsRenderer.cpp">
+      <Filter>Source Files\Renderer</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsRendererMaterial.cpp">
+      <Filter>Source Files\Renderer</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsRendererMaterialManager.cpp">
+      <Filter>Source Files\Renderer</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsRenderQueue.cpp">
+      <Filter>Source Files\Renderer</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsSceneManager.cpp">
+      <Filter>Source Files\Renderer</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsScriptCodeImportOptions.cpp">
+      <Filter>Source Files\Resources</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsScriptCodeImporter.cpp">
+      <Filter>Source Files\Resources</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsScriptCode.cpp">
+      <Filter>Source Files\Resources</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsPlainTextImporter.cpp">
+      <Filter>Source Files\Resources</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsPlainText.cpp">
+      <Filter>Source Files\Resources</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsBuiltinResources.cpp">
+      <Filter>Source Files\Resources</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsInputConfiguration.cpp">
+      <Filter>Source Files\Input</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsVirtualInput.cpp">
+      <Filter>Source Files\Input</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsDrawHelper.cpp">
+      <Filter>Source Files\Utility</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGameSettings.cpp">
+      <Filter>Source Files\Utility</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsHEString.cpp">
+      <Filter>Source Files\Utility</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsPaths.cpp">
+      <Filter>Source Files\Utility</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsShapeMeshes2D.cpp">
+      <Filter>Source Files\Utility</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsShapeMeshes3D.cpp">
+      <Filter>Source Files\Utility</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsShortcutKey.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsShortcutManager.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsCursor.cpp">
+      <Filter>Source Files\Platform</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsSplashScreen.cpp">
+      <Filter>Source Files\Platform</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsCGUIWidget.cpp">
+      <Filter>Source Files\GUI</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsRendererUtility.cpp">
+      <Filter>Source Files\Renderer</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsEngineShaderIncludeHandler.cpp">
+      <Filter>Source Files\Resources</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\BansheeEngine\Source\BsGameResourceManager.cpp">
+      <Filter>Source Files\Resources</Filter>
+    </ClCompile>
+  </ItemGroup>
 </Project>

+ 3 - 0
Source/BansheeCore/Include/BsCorePrerequisites.h

@@ -272,6 +272,8 @@ namespace BansheeEngine
 	class CSliderJoint;
 	class CD6Joint;
 	class CCharacterController;
+	class ShaderDefines;
+	class ShaderImportOptions;
 	// Asset import
 	class SpecificImporter;
 	class Importer;
@@ -465,6 +467,7 @@ namespace BansheeEngine
 		TID_CD6Joint = 1107,
 		TID_CCharacterController = 1108,
 		TID_FPhysicsMesh = 1109,
+		TID_ShaderImportOptions = 1110,
 	};
 }
 

+ 39 - 0
Source/BansheeCore/Include/BsShaderDefines.h

@@ -0,0 +1,39 @@
+//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
+//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
+#pragma once
+
+#include "BsCorePrerequisites.h"
+
+namespace BansheeEngine
+{
+	/** @cond INTERNAL */
+	/** @addtogroup Material
+	 *  @{
+	 */
+
+	/**	Allows you to specify defines that can control shader compilation. */
+	class BS_CORE_EXPORT ShaderDefines
+	{
+	public:
+		/** Adds a new define with a floating point value. */
+		void set(const String& name, float value);
+
+		/** Adds a new define with an integer value. */
+		void set(const String& name, int value);
+
+		/** Adds a new define with a string point value. */
+		void set(const String& name, const String& value);
+
+		/**	Returns a list of all defines. */
+		UnorderedMap<String, String> getAll() const { return mDefines; }
+
+		/** Removes all defines. */
+		void clear() { mDefines.clear(); }
+
+	protected:
+		UnorderedMap<String, String> mDefines;
+	};
+
+	/** @} */
+	/** @endcond */
+}

+ 34 - 0
Source/BansheeCore/Include/BsShaderImportOptions.h

@@ -0,0 +1,34 @@
+//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
+//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
+#pragma once
+
+#include "BsCorePrerequisites.h"
+#include "BsImportOptions.h"
+
+namespace BansheeEngine
+{
+	/** @addtogroup Importer
+	 *  @{
+	 */
+
+	/** Contains import options you may use to control how is a shader imported. */
+	class BS_CORE_EXPORT ShaderImportOptions : public ImportOptions
+	{
+	public:
+		/** Returns a modifiable list of defines that will control shader compilation. */
+		UnorderedMap<String, String>& getDefines() { return mDefines; }
+
+		/************************************************************************/
+		/* 								SERIALIZATION                      		*/
+		/************************************************************************/
+	public:
+		friend class ShaderImportOptionsRTTI;
+		static RTTITypeBase* getRTTIStatic();
+		virtual RTTITypeBase* getRTTI() const override;
+
+	private:
+		UnorderedMap<String, String> mDefines;
+	};
+
+	/** @} */
+}

+ 87 - 0
Source/BansheeCore/Include/BsShaderImportOptionsRTTI.h

@@ -0,0 +1,87 @@
+//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
+//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
+#pragma once
+
+#include "BsCorePrerequisites.h"
+#include "BsRTTIType.h"
+#include "BsShaderImportOptions.h"
+
+namespace BansheeEngine
+{
+	/** @cond RTTI */
+	/** @addtogroup RTTI-Impl-Core
+	 *  @{
+	 */
+
+	class BS_CORE_EXPORT ShaderImportOptionsRTTI : public RTTIType<ShaderImportOptions, ImportOptions, ShaderImportOptionsRTTI>
+	{
+	private:
+		std::pair<String, String>& getDefinePair(ShaderImportOptions* obj, UINT32 idx)
+		{
+			Vector<std::pair<String, String>>& definePairs = 
+				any_cast_ref<Vector<std::pair<String, String>>>(obj->mRTTIData);
+
+			return definePairs[idx];
+		}
+
+
+		void setDefinePair(ShaderImportOptions* obj, UINT32 idx, std::pair<String, String>& val)
+		{
+			obj->getDefines()[val.first] = val.second;
+		}
+
+		UINT32 getNumDefines(ShaderImportOptions* obj) { return (UINT32)obj->getDefines().size(); }
+		void setNumDefines(ShaderImportOptions* obj, UINT32 val) { /* Do nothing */ }
+
+	public:
+		ShaderImportOptionsRTTI()
+		{
+			addPlainArrayField("mDefines", 0, &ShaderImportOptionsRTTI::getDefinePair, 
+				&ShaderImportOptionsRTTI::getNumDefines, &ShaderImportOptionsRTTI::setDefinePair, 
+				&ShaderImportOptionsRTTI::setNumDefines);
+		}
+
+		/** @copydoc ShaderImportOptionsRTTI::onSerializationStarted */
+		void onSerializationStarted(IReflectable* obj) override
+		{
+			ShaderImportOptions* importOptions = static_cast<ShaderImportOptions*>(obj);
+
+			Vector<std::pair<String, String>> definePairs;
+			UnorderedMap<String, String>& defines = importOptions->getDefines();
+
+			for (auto& entry : defines)
+				definePairs.push_back(entry);
+
+			importOptions->mRTTIData = definePairs;
+		}
+
+		/** @copydoc RTTIType::onSerializationEnded */
+		void onSerializationEnded(IReflectable* obj) override
+		{
+			ShaderImportOptions* importOptions = static_cast<ShaderImportOptions*>(obj);
+			importOptions->mRTTIData = nullptr;
+		}
+
+		/** @copydoc RTTIType::getRTTIName */
+		const String& getRTTIName() override
+		{
+			static String name = "ShaderImportOptions";
+			return name;
+		}
+
+		/** @copydoc RTTIType::getRTTIId */
+		UINT32 getRTTIId() override
+		{
+			return TID_ShaderImportOptions;
+		}
+
+		/** @copydoc RTTIType::newRTTIObject */
+		std::shared_ptr<IReflectable> newRTTIObject() override
+		{
+			return bs_shared_ptr_new<ShaderImportOptions>();
+		}
+	};
+
+	/** @} */
+	/** @endcond */
+}

+ 21 - 0
Source/BansheeCore/Source/BsShaderDefines.cpp

@@ -0,0 +1,21 @@
+//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
+//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
+#include "BsShaderDefines.h"
+
+namespace BansheeEngine
+{
+	void ShaderDefines::set(const String& name, float value)
+	{
+		mDefines[name] = toString(value);
+	}
+
+	void ShaderDefines::set(const String& name, int value)
+	{
+		mDefines[name] = toString(value);
+	}
+
+	void ShaderDefines::set(const String& name, const String& value)
+	{
+		mDefines[name] = value;
+	}
+}

+ 20 - 0
Source/BansheeCore/Source/BsShaderImportOptions.cpp

@@ -0,0 +1,20 @@
+//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
+//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
+#include "BsShaderImportOptions.h"
+#include "BsShaderImportOptionsRTTI.h"
+
+namespace BansheeEngine
+{
+	/************************************************************************/
+	/* 								SERIALIZATION                      		*/
+	/************************************************************************/
+	RTTITypeBase* ShaderImportOptions::getRTTIStatic()
+	{
+		return ShaderImportOptionsRTTI::instance();
+	}
+
+	RTTITypeBase* ShaderImportOptions::getRTTI() const
+	{
+		return ShaderImportOptions::getRTTIStatic();
+	}
+}

+ 10 - 6
Source/BansheeEngine/Include/BsRendererMaterial.h

@@ -5,13 +5,16 @@
 #include "BsPrerequisites.h"
 #include "BsMaterial.h"
 #include "BsRendererMaterialManager.h"
+#include "BsShaderDefines.h"
 
-#define RMAT_DEF(path)\
-	public: \
-	static void _initMetaData() \
-	{ \
-		RendererMaterialManager::_registerMaterial(&mMetaData, path); \
-	}; \
+#define RMAT_DEF(path)														\
+	public:																	\
+	static void _initMetaData()												\
+	{																		\
+		_initDefines(mMetaData.defines);									\
+		RendererMaterialManager::_registerMaterial(&mMetaData, path);		\
+	};																		\
+	static void _initDefines(ShaderDefines& defines);
 
 namespace BansheeEngine
 {
@@ -24,6 +27,7 @@ namespace BansheeEngine
 	struct RendererMaterialMetaData
 	{
 		SPtr<ShaderCore> shader;
+		ShaderDefines defines;
 	};
 
 	/**	Base class for all RendererMaterial instances, containing common data and methods. */

+ 3 - 0
Source/BansheeEngine/Include/BsRendererMaterialManager.h

@@ -33,6 +33,9 @@ namespace BansheeEngine
 		/**	Registers a new material that should be initialized on module start-up. */
 		static void _registerMaterial(RendererMaterialMetaData* metaData, const Path& shaderPath);
 
+		/** Returns all available variations (specified by #defines) of a shader at the provided path. */
+		static Vector<ShaderDefines> _getVariations(const Path& shaderPath);
+
 	private:
 		template<class T>
 		friend class RendererMaterial;

+ 1347 - 1297
Source/BansheeEngine/Source/BsBuiltinResources.cpp

@@ -1,1298 +1,1348 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#include "BsBuiltinResources.h"
-#include "BsGUIElementStyle.h"
-#include "BsGUILabel.h"
-#include "BsGUIButton.h"
-#include "BsGUIInputBox.h"
-#include "BsGUIToggle.h"
-#include "BsGUIDropDownContent.h"
-#include "BsTextSprite.h"
-#include "BsSpriteTexture.h"
-#include "BsFont.h"
-#include "BsFontImportOptions.h"
-#include "BsTexture.h"
-#include "BsImporter.h"
-#include "BsResources.h"
-#include "BsShader.h"
-#include "BsMaterial.h"
-#include "BsRTTIType.h"
-#include "BsFileSystem.h"
-#include "BsCoreApplication.h"
-#include "BsCoreThread.h"
-#include "BsDataStream.h"
-#include "BsResourceManifest.h"
-#include "BsVertexDataDesc.h"
-#include "BsShapeMeshes3D.h"
-#include "BsMesh.h"
-#include "BsGUITooltip.h"
-#include "BsFileSerializer.h"
-#include "BsTextureImportOptions.h"
-
-namespace BansheeEngine
-{
-	const WString BuiltinResources::DefaultFontFilename = L"arial.ttf";
-	const UINT32 BuiltinResources::DefaultFontSize = 11;
-
-	const Color BuiltinResources::TextNormalColor = Color(0.7f, 0.7f, 0.7f);
-	const Color BuiltinResources::TextActiveColor = Color(0.0f, 0.0f, 0.0f);
-
-	const String BuiltinResources::MultiLineLabelStyle = "MultiLineLabel";
-
-	const WString BuiltinResources::GUISkinFile = L"GUISkin";
-
-	const char* BuiltinResources::CursorFolder = "Cursors\\";
-	const char* BuiltinResources::IconFolder = "Icons\\";
-	const char* BuiltinResources::ShaderFolder = "Shaders\\";
-	const char* BuiltinResources::SkinFolder = "Skin\\";
-	const char* BuiltinResources::ShaderIncludeFolder = "Includes\\";
-	const char* BuiltinResources::MeshFolder = "Meshes\\";
-	const char* BuiltinResources::TextureFolder = "Textures\\";
-
-	/************************************************************************/
-	/* 								GUI TEXTURES                      		*/
-	/************************************************************************/
-
-	const WString BuiltinResources::WhiteTex = L"White.psd";
-	const wchar_t* BuiltinResources::SplashScreenName = L"SplashScreen.png";
-
-	const WString BuiltinResources::ButtonNormalTex = L"ButtonNormal.png";
-	const WString BuiltinResources::ButtonHoverTex = L"ButtonHover.png";
-	const WString BuiltinResources::ButtonActiveTex = L"ButtonActive.png";
-
-	const WString BuiltinResources::ToggleNormalTex = L"ToggleNormal.png";
-	const WString BuiltinResources::ToggleHoverTex = L"ToggleHover.png";
-	const WString BuiltinResources::ToggleNormalOnTex = L"ToggleNormalOn.png";
-	const WString BuiltinResources::ToggleHoverOnTex = L"ToggleHoverOn.png";
-
-	const WString BuiltinResources::InputBoxNormalTex = L"InputBoxNormal.png";
-	const WString BuiltinResources::InputBoxHoverTex = L"InputBoxHover.png";
-	const WString BuiltinResources::InputBoxFocusedTex = L"InputBoxActive.png";
-
-	const WString BuiltinResources::ScrollBarUpNormalTex = L"ScrollArrowUpNormal.png";
-	const WString BuiltinResources::ScrollBarUpHoverTex = L"ScrollArrowUpHover.png";
-	const WString BuiltinResources::ScrollBarUpActiveTex = L"ScrollArrowUpActive.png";
-
-	const WString BuiltinResources::ScrollBarDownNormalTex = L"ScrollArrowDownNormal.png";
-	const WString BuiltinResources::ScrollBarDownHoverTex = L"ScrollArrowDownHover.png";
-	const WString BuiltinResources::ScrollBarDownActiveTex = L"ScrollArrowDownActive.png";
-
-	const WString BuiltinResources::ScrollBarLeftNormalTex = L"ScrollArrowLeftNormal.png";
-	const WString BuiltinResources::ScrollBarLeftHoverTex = L"ScrollArrowLeftHover.png";
-	const WString BuiltinResources::ScrollBarLeftActiveTex = L"ScrollArrowLeftActive.png";
-
-	const WString BuiltinResources::ScrollBarRightNormalTex = L"ScrollArrowRightNormal.png";
-	const WString BuiltinResources::ScrollBarRightHoverTex = L"ScrollArrowRightHover.png";
-	const WString BuiltinResources::ScrollBarRightActiveTex = L"ScrollArrowRightActive.png";
-
-	const WString BuiltinResources::ScrollBarHandleHorzNormalTex = L"ScrollBarHHandleNormal.png";
-	const WString BuiltinResources::ScrollBarHandleHorzHoverTex = L"ScrollBarHHandleHover.png";
-	const WString BuiltinResources::ScrollBarHandleHorzActiveTex = L"ScrollBarHHandleActive.png";
-
-	const WString BuiltinResources::ScrollBarHandleVertNormalTex = L"ScrollBarVHandleNormal.png";
-	const WString BuiltinResources::ScrollBarHandleVertHoverTex = L"ScrollBarVHandleHover.png";
-	const WString BuiltinResources::ScrollBarHandleVertActiveTex = L"ScrollBarVHandleActive.png";
-
-	const WString BuiltinResources::ScrollBarHBgTex = L"ScrollBarHBackground.png";
-	const WString BuiltinResources::ScrollBarVBgTex = L"ScrollBarVBackground.png";
-
-	const WString BuiltinResources::DropDownBtnNormalTex = L"DropDownButtonNormal.png";
-	const WString BuiltinResources::DropDownBtnHoverTex = L"DropDownButtonHover.png";
-	const WString BuiltinResources::DropDownBtnActiveTex = L"DropDownButtonActive.png";
-
-	const WString BuiltinResources::DropDownBoxBgTex = L"DropDownBoxBg.png";
-	const WString BuiltinResources::DropDownBoxSideBgTex = L"DropDownBoxSideBg.png";
-	const WString BuiltinResources::DropDownBoxHandleTex = L"DropDownBoxScrollHandle.png";
-
-	const WString BuiltinResources::DropDownBoxEntryNormalTex = L"DropDownBoxEntryNormal.png";
-	const WString BuiltinResources::DropDownBoxEntryHoverTex = L"DropDownBoxEntryHover.png";
-
-	const WString BuiltinResources::DropDownBoxBtnUpNormalTex = L"DropDownBoxArrowUpNormal.png";
-	const WString BuiltinResources::DropDownBoxBtnUpHoverTex = L"DropDownBoxArrowUpHover.png";
-
-	const WString BuiltinResources::DropDownBoxBtnDownNormalTex = L"DropDownBoxArrowDownNormal.png";
-	const WString BuiltinResources::DropDownBoxBtnDownHoverTex = L"DropDownBoxArrowDownHover.png";
-
-	const WString BuiltinResources::DropDownBoxEntryExpNormalTex = L"DropDownBoxExpandBtnNormal.png";
-	const WString BuiltinResources::DropDownBoxEntryExpHoverTex = L"DropDownBoxExpandBtnHover.png";
-
-	const WString BuiltinResources::DropDownSeparatorTex = L"DropDownBoxSeparator.png";
-
-	/************************************************************************/
-	/* 							CURSOR TEXTURES                      		*/
-	/************************************************************************/
-
-	const WString BuiltinResources::CursorArrowTex = L"Arrow.psd";
-	const WString BuiltinResources::CursorArrowDragTex = L"ArrowDrag.psd";
-	const WString BuiltinResources::CursorArrowLeftRightTex = L"ArrowLeftRight.psd";
-	const WString BuiltinResources::CursorIBeamTex = L"IBeam.psd";
-	const WString BuiltinResources::CursorDenyTex = L"Deny.psd";
-	const WString BuiltinResources::CursorWaitTex = L"Wait.psd";
-	const WString BuiltinResources::CursorSizeNESWTex = L"SizeNESW.psd";
-	const WString BuiltinResources::CursorSizeNSTex = L"SizeNS.psd";
-	const WString BuiltinResources::CursorSizeNWSETex = L"SizeNWSE.psd";
-	const WString BuiltinResources::CursorSizeWETex = L"SizeWE.psd";
-
-	const Vector2I BuiltinResources::CursorArrowHotspot = Vector2I(10, 8);
-	const Vector2I BuiltinResources::CursorArrowDragHotspot = Vector2I(8, 4);
-	const Vector2I BuiltinResources::CursorArrowLeftRightHotspot = Vector2I(13, 9);
-	const Vector2I BuiltinResources::CursorIBeamHotspot = Vector2I(16, 15);
-	const Vector2I BuiltinResources::CursorDenyHotspot = Vector2I(15, 15);
-	const Vector2I BuiltinResources::CursorWaitHotspot = Vector2I(15, 15);
-	const Vector2I BuiltinResources::CursorSizeNESWHotspot = Vector2I(16, 15);
-	const Vector2I BuiltinResources::CursorSizeNSHotspot = Vector2I(16, 15);
-	const Vector2I BuiltinResources::CursorSizeNWSEHotspot = Vector2I(16, 15);
-	const Vector2I BuiltinResources::CursorSizeWEHotspot = Vector2I(16, 15);
-
-	/************************************************************************/
-	/* 							ICON TEXTURES					    		*/
-	/************************************************************************/
-
-	const WString BuiltinResources::IconTextureName = L"BansheeIcon.png";
-
-	/************************************************************************/
-	/* 									SHADERS                      		*/
-	/************************************************************************/
-
-	const WString BuiltinResources::ShaderSpriteTextFile = L"SpriteText.bsl";
-	const WString BuiltinResources::ShaderSpriteImageAlphaFile = L"SpriteImageAlpha.bsl";
-	const WString BuiltinResources::ShaderSpriteImageNoAlphaFile = L"SpriteImageNoAlpha.bsl";
-	const WString BuiltinResources::ShaderDiffuseFile = L"Diffuse.bsl";
-
-	/************************************************************************/
-	/* 								MESHES							  		*/
-	/************************************************************************/
-
-	const WString BuiltinResources::MeshSphereFile = L"Sphere.asset";
-	const WString BuiltinResources::MeshBoxFile = L"Box.asset";
-	const WString BuiltinResources::MeshConeFile = L"Cone.asset";
-	const WString BuiltinResources::MeshQuadFile = L"Quad.asset";
-	const WString BuiltinResources::MeshDiscFile = L"Disc.asset";
-
-	/************************************************************************/
-	/* 								TEXTURES							  	*/
-	/************************************************************************/
-
-	const WString BuiltinResources::TextureWhiteFile = L"White.asset";
-	const WString BuiltinResources::TextureBlackFile = L"Black.asset";
-	const WString BuiltinResources::TextureNormalFile = L"Normal.asset";
-
-	BuiltinResources::~BuiltinResources()
-	{
-		mCursorArrow = nullptr;
-		mCursorArrowDrag = nullptr;
-		mCursorArrowLeftRight = nullptr;
-		mCursorIBeam = nullptr;
-		mCursorDeny = nullptr;
-		mCursorWait = nullptr;
-		mCursorSizeNESW = nullptr;
-		mCursorSizeNS = nullptr;
-		mCursorSizeNWSE = nullptr;
-		mCursorSizeWE = nullptr;
-		mBansheeIcon = nullptr;
-	}
-
-	BuiltinResources::BuiltinResources()
-	{
-		// Set up paths
-		mBuiltinRawDataFolder = Paths::getRuntimeDataPath() + L"Raw\\Engine\\";
-		mEngineRawSkinFolder = mBuiltinRawDataFolder + SkinFolder;
-		mEngineRawCursorFolder = mBuiltinRawDataFolder + CursorFolder;
-		mEngineRawIconFolder = mBuiltinRawDataFolder + IconFolder;
-		mEngineRawShaderFolder = mBuiltinRawDataFolder + ShaderFolder;
-		mEngineRawShaderIncludeFolder = mBuiltinRawDataFolder + ShaderIncludeFolder;
-
-		mBuiltinDataFolder = Paths::getEngineDataPath();
-		mEngineSkinFolder = mBuiltinDataFolder + SkinFolder;
-		mEngineCursorFolder = mBuiltinDataFolder + CursorFolder;
-		mEngineIconFolder = mBuiltinDataFolder + IconFolder;
-		mEngineShaderFolder = mBuiltinDataFolder + ShaderFolder;
-		mEngineShaderIncludeFolder = mBuiltinDataFolder + ShaderIncludeFolder;
-		mEngineMeshFolder = mBuiltinDataFolder + MeshFolder;
-		mEngineTextureFolder = mBuiltinDataFolder + TextureFolder;
-
-		ResourceManifestPath = mBuiltinDataFolder + "ResourceManifest.asset";
-
-		// Load manifest
-		Path absoluteDataPath = FileSystem::getWorkingDirectoryPath();
-		absoluteDataPath.append(mBuiltinDataFolder);
-
-		if (FileSystem::exists(ResourceManifestPath))
-			mResourceManifest = ResourceManifest::load(ResourceManifestPath, absoluteDataPath);
-
-		if (mResourceManifest == nullptr)
-			mResourceManifest = ResourceManifest::create("BuiltinResources");
-
-		gResources().registerResourceManifest(mResourceManifest);
-
-		// Update from raw assets if needed
-#if BS_DEBUG_MODE
-		if (FileSystem::exists(mBuiltinRawDataFolder))
-		{
-			if (BuiltinResourcesHelper::checkForModifications(mBuiltinRawDataFolder, mBuiltinDataFolder + L"Timestamp.asset"))
-			{
-				preprocess();
-				BuiltinResourcesHelper::writeTimestamp(mBuiltinDataFolder + L"Timestamp.asset");
-
-				Path absoluteDataPath = FileSystem::getWorkingDirectoryPath();
-				absoluteDataPath.append(mBuiltinDataFolder);
-
-				ResourceManifest::save(mResourceManifest, ResourceManifestPath, absoluteDataPath);
-			}
-		}
-#endif
-		
-		// Load basic resources
-		mShaderSpriteText = getShader(ShaderSpriteTextFile);
-		mShaderSpriteImage = getShader(ShaderSpriteImageAlphaFile);
-		mShaderSpriteNonAlphaImage = getShader(ShaderSpriteImageNoAlphaFile);
-		mShaderDiffuse = getShader(ShaderDiffuseFile);
-
-		PixelDataPtr dummyPixelData = PixelData::create(2, 2, 1, PF_R8G8B8A8);
-
-		dummyPixelData->setColorAt(Color::Red, 0, 0);
-		dummyPixelData->setColorAt(Color::Red, 0, 1);
-		dummyPixelData->setColorAt(Color::Red, 1, 0);
-		dummyPixelData->setColorAt(Color::Red, 1, 1);
-
-		mDummyTexture = Texture::create(dummyPixelData);
-
-		mWhiteSpriteTexture = getSkinTexture(WhiteTex);
-		mDummySpriteTexture = SpriteTexture::create(mDummyTexture);
-
-		mSkin = gResources().load<GUISkin>(mBuiltinDataFolder + (GUISkinFile + L".asset"));
-		mEmptySkin = GUISkin::create();
-
-		/************************************************************************/
-		/* 								CURSOR		                     		*/
-		/************************************************************************/
-
-		HTexture cursorArrowTex = getCursorTexture(CursorArrowTex);
-		HTexture cursorArrowDragTex = getCursorTexture(CursorArrowDragTex);
-		HTexture cursorArrowLeftRightTex = getCursorTexture(CursorArrowLeftRightTex);
-		HTexture cursorIBeamTex = getCursorTexture(CursorIBeamTex);
-		HTexture cursorDenyTex = getCursorTexture(CursorDenyTex);
-		HTexture cursorWaitTex = getCursorTexture(CursorWaitTex);
-		HTexture cursorSizeNESWTex = getCursorTexture(CursorSizeNESWTex);
-		HTexture cursorSizeNSTex = getCursorTexture(CursorSizeNSTex);
-		HTexture cursorSizeNWSETex = getCursorTexture(CursorSizeNWSETex);
-		HTexture cursorSizeWETex = getCursorTexture(CursorSizeWETex);
-
-		mCursorArrow = cursorArrowTex->getProperties().allocateSubresourceBuffer(0);
-		cursorArrowTex->readSubresource(gCoreAccessor(), 0, mCursorArrow);
-
-		mCursorArrowDrag = cursorArrowDragTex->getProperties().allocateSubresourceBuffer(0);
-		cursorArrowDragTex->readSubresource(gCoreAccessor(), 0, mCursorArrowDrag);
-
-		mCursorArrowLeftRight = cursorArrowLeftRightTex->getProperties().allocateSubresourceBuffer(0);
-		cursorArrowLeftRightTex->readSubresource(gCoreAccessor(), 0, mCursorArrowLeftRight);
-
-		mCursorIBeam = cursorIBeamTex->getProperties().allocateSubresourceBuffer(0);
-		cursorIBeamTex->readSubresource(gCoreAccessor(), 0, mCursorIBeam);
-
-		mCursorDeny = cursorDenyTex->getProperties().allocateSubresourceBuffer(0);
-		cursorDenyTex->readSubresource(gCoreAccessor(), 0, mCursorDeny);
-
-		mCursorWait = cursorWaitTex->getProperties().allocateSubresourceBuffer(0);
-		cursorWaitTex->readSubresource(gCoreAccessor(), 0, mCursorWait);
-
-		mCursorSizeNESW = cursorSizeNESWTex->getProperties().allocateSubresourceBuffer(0);
-		cursorSizeNESWTex->readSubresource(gCoreAccessor(), 0, mCursorSizeNESW);
-
-		mCursorSizeNS = cursorSizeNSTex->getProperties().allocateSubresourceBuffer(0);
-		cursorSizeNSTex->readSubresource(gCoreAccessor(), 0, mCursorSizeNS);
-
-		mCursorSizeNWSE = cursorSizeNWSETex->getProperties().allocateSubresourceBuffer(0);
-		cursorSizeNWSETex->readSubresource(gCoreAccessor(), 0, mCursorSizeNWSE);
-
-		mCursorSizeWE = cursorSizeWETex->getProperties().allocateSubresourceBuffer(0);
-		cursorSizeWETex->readSubresource(gCoreAccessor(), 0, mCursorSizeWE);
-
-		/************************************************************************/
-		/* 								ICON		                     		*/
-		/************************************************************************/
-
-		Path iconPath = FileSystem::getWorkingDirectoryPath();
-		iconPath.append(mEngineIconFolder);
-		iconPath.append(IconTextureName + L".asset");
-
-		HTexture iconTex = gResources().load<Texture>(iconPath);
-
-		mBansheeIcon = iconTex->getProperties().allocateSubresourceBuffer(0);
-		iconTex->readSubresource(gCoreAccessor(), 0, mBansheeIcon);
-
-		gCoreAccessor().submitToCoreThread(true);
-	}
-
-	void BuiltinResources::preprocess()
-	{
-		// Hidden dependency: Textures need to be generated before shaders as they may use the default textures
-		generateTextures();
-
-		BuiltinResourcesHelper::importAssets(mEngineRawCursorFolder, mEngineCursorFolder, mResourceManifest);
-		BuiltinResourcesHelper::importAssets(mEngineRawIconFolder, mEngineIconFolder, mResourceManifest);
-		BuiltinResourcesHelper::importAssets(mEngineRawShaderIncludeFolder, mEngineShaderIncludeFolder, mResourceManifest); // Hidden dependency: Includes must be imported before shaders
-		BuiltinResourcesHelper::importAssets(mEngineRawShaderFolder, mEngineShaderFolder, mResourceManifest);
-		BuiltinResourcesHelper::importAssets(mEngineRawSkinFolder, mEngineSkinFolder, mResourceManifest);
-
-		// Import font
-		BuiltinResourcesHelper::importFont(mBuiltinRawDataFolder + DefaultFontFilename, DefaultFontFilename, mBuiltinDataFolder,
-			{ DefaultFontSize }, false, mResourceManifest);
-
-		// Import splash screen
-		{
-			Path inputPath = mBuiltinRawDataFolder + WString(SplashScreenName);
-			Path outputPath = mBuiltinDataFolder + (WString(SplashScreenName) + L".asset");
-
-			auto textureIO = gImporter().createImportOptions<TextureImportOptions>(inputPath);
-			textureIO->setCPUReadable(true);
-			textureIO->setGenerateMipmaps(false);
-			HTexture splashTexture = gImporter().import<Texture>(inputPath, textureIO);
-
-			PixelDataPtr splashPixelData = splashTexture->getProperties().allocateSubresourceBuffer(0);
-			splashTexture->readData(*splashPixelData);
-
-			FileEncoder fe(outputPath);
-			fe.encode(splashPixelData.get());
-		}
-
-		// Generate & save GUI sprite textures
-		BuiltinResourcesHelper::generateSpriteTextures(mEngineSkinFolder, mResourceManifest);
-
-		// Generate & save GUI skin
-		{
-			GUISkinPtr skin = generateGUISkin();
-			Path outputPath = FileSystem::getWorkingDirectoryPath() + mBuiltinDataFolder + (GUISkinFile + L".asset");
-
-			HResource skinResource;
-			if (FileSystem::exists(outputPath))
-				skinResource = gResources().load(outputPath);
-
-			if (skinResource.isLoaded())
-				gResources().update(skinResource, skin);
-			else
-				skinResource = gResources()._createResourceHandle(skin);
-
-			gResources().save(skinResource, outputPath, true);
-			mResourceManifest->registerResource(skinResource.getUUID(), outputPath);
-		}
-
-		// Generate & save meshes
-		generateMeshes();
-		
-		Resources::instance().unloadAllUnused();
-	}
-
-	GUISkinPtr BuiltinResources::generateGUISkin()
-	{
-		Path fontPath = FileSystem::getWorkingDirectoryPath();
-		fontPath.append(mBuiltinDataFolder);
-		fontPath.append(DefaultFontFilename + L".asset");
-
-		HFont font = gResources().load<Font>(fontPath);
-		GUISkinPtr skin = GUISkin::_createPtr();
-
-		// Label
-		GUIElementStyle labelStyle;
-		labelStyle.font = font;
-		labelStyle.fontSize = DefaultFontSize;
-		labelStyle.normal.textColor = TextNormalColor;
-		labelStyle.fixedWidth = false;
-		labelStyle.fixedHeight = true;
-		labelStyle.height = 14;
-		labelStyle.minWidth = 10;
-
-		skin->setStyle(GUILabel::getGUITypeName(), labelStyle);
-
-		// Button
-		GUIElementStyle buttonStyle;
-		buttonStyle.normal.texture = getSkinTexture(ButtonNormalTex);
-		buttonStyle.hover.texture = getSkinTexture(ButtonHoverTex);
-		buttonStyle.active.texture = getSkinTexture(ButtonActiveTex);
-		buttonStyle.normalOn.texture = getSkinTexture(ButtonActiveTex);
-		buttonStyle.hoverOn.texture = getSkinTexture(ButtonActiveTex);
-		buttonStyle.activeOn.texture = getSkinTexture(ButtonActiveTex);
-		buttonStyle.normal.textColor = TextNormalColor;
-		buttonStyle.hover.textColor = TextNormalColor;
-		buttonStyle.active.textColor = TextActiveColor;
-		buttonStyle.normalOn.textColor = TextActiveColor;
-		buttonStyle.hoverOn.textColor = TextActiveColor;
-		buttonStyle.activeOn.textColor = TextActiveColor;
-		buttonStyle.border.left = 2;
-		buttonStyle.border.right = 2;
-		buttonStyle.border.top = 2;
-		buttonStyle.border.bottom = 4;
-		buttonStyle.contentOffset.top = 2;
-		buttonStyle.contentOffset.left = 3;
-		buttonStyle.contentOffset.right = 3;
-		buttonStyle.margins.bottom = 2;
-		buttonStyle.fixedHeight = true;
-		buttonStyle.height = 21;
-		buttonStyle.minWidth = 20;
-		buttonStyle.font = font;
-		buttonStyle.fontSize = DefaultFontSize;
-		buttonStyle.textHorzAlign = THA_Center;
-		buttonStyle.textVertAlign = TVA_Center;
-
-		skin->setStyle(GUIButton::getGUITypeName(), buttonStyle);
-
-		// Toggle
-		GUIElementStyle toggleStyle;
-		toggleStyle.normal.texture = getSkinTexture(ToggleNormalTex);
-		toggleStyle.hover.texture = getSkinTexture(ToggleHoverTex);
-		toggleStyle.active.texture = toggleStyle.hover.texture;
-		toggleStyle.normalOn.texture = getSkinTexture(ToggleNormalOnTex);
-		toggleStyle.hoverOn.texture = getSkinTexture(ToggleHoverOnTex);
-		toggleStyle.activeOn.texture = toggleStyle.hoverOn.texture;
-		toggleStyle.fixedHeight = true;
-		toggleStyle.fixedWidth = true;
-		toggleStyle.margins.bottom = 2;
-		toggleStyle.height = 15;
-		toggleStyle.width = 13;
-
-		skin->setStyle(GUIToggle::getGUITypeName(), toggleStyle);
-
-		// Input box
-		GUIElementStyle inputBoxStyle;
-		inputBoxStyle.normal.texture = getSkinTexture(InputBoxNormalTex);
-		inputBoxStyle.hover.texture = getSkinTexture(InputBoxHoverTex);
-		inputBoxStyle.focused.texture = getSkinTexture(InputBoxFocusedTex);
-		inputBoxStyle.active.texture = inputBoxStyle.normal.texture;
-		inputBoxStyle.normal.textColor = TextNormalColor;
-		inputBoxStyle.hover.textColor = TextNormalColor;
-		inputBoxStyle.focused.textColor = TextNormalColor;
-		inputBoxStyle.active.textColor = TextNormalColor;
-		inputBoxStyle.border.left = 4;
-		inputBoxStyle.border.right = 4;
-		inputBoxStyle.border.top = 4;
-		inputBoxStyle.border.bottom = 6;
-		inputBoxStyle.contentOffset.left = 4;
-		inputBoxStyle.contentOffset.right = 4;
-		inputBoxStyle.contentOffset.top = 4;
-		inputBoxStyle.contentOffset.bottom = 4;
-		inputBoxStyle.margins.bottom = 2;
-		inputBoxStyle.fixedHeight = true;
-		inputBoxStyle.height = 21;
-		inputBoxStyle.minWidth = 10;
-		inputBoxStyle.font = font;
-		inputBoxStyle.fontSize = DefaultFontSize;
-		inputBoxStyle.textHorzAlign = THA_Left;
-		inputBoxStyle.textVertAlign = TVA_Top;
-
-		skin->setStyle(GUIInputBox::getGUITypeName(), inputBoxStyle);
-
-		/************************************************************************/
-		/* 								SCROLL BAR                      		*/
-		/************************************************************************/
-
-		// Up button
-		GUIElementStyle scrollUpBtnStyle;
-		scrollUpBtnStyle.normal.texture = getSkinTexture(ScrollBarUpNormalTex);
-		scrollUpBtnStyle.hover.texture = getSkinTexture(ScrollBarUpHoverTex);
-		scrollUpBtnStyle.active.texture = getSkinTexture(ScrollBarUpActiveTex);
-		scrollUpBtnStyle.fixedHeight = true;
-		scrollUpBtnStyle.fixedWidth = true;
-		scrollUpBtnStyle.height = 11;
-		scrollUpBtnStyle.width = 13;
-
-		skin->setStyle("ScrollUpBtn", scrollUpBtnStyle);
-
-		// Down button
-		GUIElementStyle scrollDownBtnStyle;
-		scrollDownBtnStyle.normal.texture = getSkinTexture(ScrollBarDownNormalTex);
-		scrollDownBtnStyle.hover.texture = getSkinTexture(ScrollBarDownHoverTex);
-		scrollDownBtnStyle.active.texture = getSkinTexture(ScrollBarDownActiveTex);
-		scrollDownBtnStyle.fixedHeight = true;
-		scrollDownBtnStyle.fixedWidth = true;
-		scrollDownBtnStyle.height = 11;
-		scrollDownBtnStyle.width = 13;
-
-		skin->setStyle("ScrollDownBtn", scrollDownBtnStyle);
-
-		// Left button
-		GUIElementStyle scrollLeftBtnStyle;
-		scrollLeftBtnStyle.normal.texture = getSkinTexture(ScrollBarLeftNormalTex);
-		scrollLeftBtnStyle.hover.texture = getSkinTexture(ScrollBarLeftHoverTex);
-		scrollLeftBtnStyle.active.texture = getSkinTexture(ScrollBarLeftActiveTex);
-		scrollLeftBtnStyle.fixedHeight = true;
-		scrollLeftBtnStyle.fixedWidth = true;
-		scrollLeftBtnStyle.height = 13;
-		scrollLeftBtnStyle.width = 11;
-
-		skin->setStyle("ScrollLeftBtn", scrollLeftBtnStyle);
-
-		// Right button
-		GUIElementStyle scrollRightBtnStyle;
-		scrollRightBtnStyle.normal.texture = getSkinTexture(ScrollBarRightNormalTex);
-		scrollRightBtnStyle.hover.texture = getSkinTexture(ScrollBarRightHoverTex);
-		scrollRightBtnStyle.active.texture = getSkinTexture(ScrollBarRightActiveTex);
-		scrollRightBtnStyle.fixedHeight = true;
-		scrollRightBtnStyle.fixedWidth = true;
-		scrollRightBtnStyle.height = 13;
-		scrollRightBtnStyle.width = 11;
-
-		skin->setStyle("ScrollRightBtn", scrollRightBtnStyle);
-
-		// Horizontal handle
-		GUIElementStyle scrollBarHorzBtnStyle;
-		scrollBarHorzBtnStyle.normal.texture = getSkinTexture(ScrollBarHandleHorzNormalTex);
-		scrollBarHorzBtnStyle.hover.texture = getSkinTexture(ScrollBarHandleHorzHoverTex);
-		scrollBarHorzBtnStyle.active.texture = getSkinTexture(ScrollBarHandleHorzActiveTex);
-		scrollBarHorzBtnStyle.fixedHeight = true;
-		scrollBarHorzBtnStyle.fixedWidth = false;
-		scrollBarHorzBtnStyle.width = 10;
-		scrollBarHorzBtnStyle.height = 13;
-		scrollBarHorzBtnStyle.border.left = 4;
-		scrollBarHorzBtnStyle.border.right = 4;
-
-		skin->setStyle("ScrollBarHorzBtn", scrollBarHorzBtnStyle);
-
-		// Vertical handle
-		GUIElementStyle scrollBarVertBtnStyle;
-		scrollBarVertBtnStyle.normal.texture = getSkinTexture(ScrollBarHandleVertNormalTex);
-		scrollBarVertBtnStyle.hover.texture = getSkinTexture(ScrollBarHandleVertHoverTex);
-		scrollBarVertBtnStyle.active.texture = getSkinTexture(ScrollBarHandleVertActiveTex);
-		scrollBarVertBtnStyle.fixedHeight = false;
-		scrollBarVertBtnStyle.fixedWidth = true;
-		scrollBarVertBtnStyle.width = 13;
-		scrollBarVertBtnStyle.height = 10;
-		scrollBarVertBtnStyle.border.top = 4;
-		scrollBarVertBtnStyle.border.bottom = 4;
-
-		skin->setStyle("ScrollBarVertBtn", scrollBarVertBtnStyle);
-
-		// Vertical scroll bar
-		GUIElementStyle vertScrollBarStyle;
-		vertScrollBarStyle.normal.texture = getSkinTexture(ScrollBarVBgTex);
-		vertScrollBarStyle.hover.texture = vertScrollBarStyle.normal.texture;
-		vertScrollBarStyle.active.texture = vertScrollBarStyle.normal.texture;
-		vertScrollBarStyle.fixedHeight = false;
-		vertScrollBarStyle.fixedWidth = true;
-		vertScrollBarStyle.minHeight = 8;
-		vertScrollBarStyle.width = 16;
-
-		skin->setStyle("ScrollBarVert", vertScrollBarStyle);
-
-		// Horizontal scroll bar
-		GUIElementStyle horzScrollBarStyle;
-		horzScrollBarStyle.normal.texture = getSkinTexture(ScrollBarHBgTex);
-		horzScrollBarStyle.hover.texture = horzScrollBarStyle.normal.texture;
-		horzScrollBarStyle.active.texture = horzScrollBarStyle.normal.texture;
-		horzScrollBarStyle.fixedHeight = true;
-		horzScrollBarStyle.fixedWidth = false;
-		horzScrollBarStyle.minWidth = 8;
-		horzScrollBarStyle.height = 16;
-
-		skin->setStyle("ScrollBarHorz", horzScrollBarStyle);
-
-		/************************************************************************/
-		/* 								DROP DOWN BOX                      		*/
-		/************************************************************************/
-
-		// ListBox button
-		GUIElementStyle dropDownListStyle;
-		dropDownListStyle.normal.texture = getSkinTexture(DropDownBtnNormalTex);
-		dropDownListStyle.hover.texture = getSkinTexture(DropDownBtnHoverTex);
-		dropDownListStyle.active.texture = getSkinTexture(DropDownBtnActiveTex);
-		dropDownListStyle.normalOn.texture = dropDownListStyle.active.texture;
-		dropDownListStyle.hoverOn.texture = dropDownListStyle.active.texture;
-		dropDownListStyle.activeOn.texture = dropDownListStyle.active.texture;
-		dropDownListStyle.normal.textColor = TextNormalColor;
-		dropDownListStyle.hover.textColor = TextNormalColor;
-		dropDownListStyle.active.textColor = TextNormalColor;
-		dropDownListStyle.normalOn.textColor = TextNormalColor;
-		dropDownListStyle.hoverOn.textColor = TextNormalColor;
-		dropDownListStyle.activeOn.textColor = TextNormalColor;
-		dropDownListStyle.fixedHeight = true;
-		dropDownListStyle.fixedWidth = false;
-		dropDownListStyle.height = 21;
-		dropDownListStyle.minWidth = 20;
-		dropDownListStyle.contentOffset.left = 3;
-		dropDownListStyle.contentOffset.right = 18;
-		dropDownListStyle.contentOffset.top = 2;
-		dropDownListStyle.contentOffset.bottom = 2;
-		dropDownListStyle.border.left = 2;
-		dropDownListStyle.border.right = 16;
-		dropDownListStyle.border.top = 2;
-		dropDownListStyle.border.bottom = 4;
-		dropDownListStyle.margins.bottom = 2;
-		dropDownListStyle.font = font;
-		dropDownListStyle.fontSize = DefaultFontSize;
-		dropDownListStyle.textHorzAlign = THA_Left;
-		dropDownListStyle.textVertAlign = TVA_Center;
-
-		skin->setStyle("ListBox", dropDownListStyle);
-
-		// DropDown scroll up button
-		GUIElementStyle dropDownScrollUpBtnStyle;
-		dropDownScrollUpBtnStyle.normal.texture = getSkinTexture(DropDownBoxBtnUpNormalTex);
-		dropDownScrollUpBtnStyle.hover.texture = getSkinTexture(DropDownBoxBtnUpHoverTex);
-		dropDownScrollUpBtnStyle.active.texture = dropDownScrollUpBtnStyle.hover.texture;
-		dropDownScrollUpBtnStyle.fixedHeight = true;
-		dropDownScrollUpBtnStyle.fixedWidth = true;
-		dropDownScrollUpBtnStyle.width = 8;
-		dropDownScrollUpBtnStyle.height = 12;
-
-		skin->setStyle("ListBoxScrollUpBtn", dropDownScrollUpBtnStyle);
-		skin->setStyle("MenuBarScrollUpBtn", dropDownScrollUpBtnStyle);
-		skin->setStyle("ContextMenuScrollUpBtn", dropDownScrollUpBtnStyle);
-
-		// DropDown scroll down button
-		GUIElementStyle dropDownScrollDownBtnStyle;
-		dropDownScrollDownBtnStyle.normal.texture = getSkinTexture(DropDownBoxBtnDownNormalTex);
-		dropDownScrollDownBtnStyle.hover.texture = getSkinTexture(DropDownBoxBtnDownHoverTex);
-		dropDownScrollDownBtnStyle.active.texture = dropDownScrollDownBtnStyle.hover.texture;
-		dropDownScrollDownBtnStyle.fixedHeight = true;
-		dropDownScrollDownBtnStyle.fixedWidth = true;
-		dropDownScrollDownBtnStyle.width = 8;
-		dropDownScrollDownBtnStyle.height = 12;
-
-		skin->setStyle("ListBoxScrollDownBtn", dropDownScrollDownBtnStyle);
-		skin->setStyle("MenuBarScrollDownBtn", dropDownScrollDownBtnStyle);
-		skin->setStyle("ContextMenuScrollDownBtn", dropDownScrollDownBtnStyle);
-
-		// DropDown handle
-		GUIElementStyle dropDownScrollHandleStyle;
-		dropDownScrollHandleStyle.normal.texture = getSkinTexture(DropDownBoxHandleTex);
-		dropDownScrollHandleStyle.fixedHeight = false;
-		dropDownScrollHandleStyle.fixedWidth = true;
-		dropDownScrollHandleStyle.height = 8;
-		dropDownScrollHandleStyle.width = 8;
-
-		skin->setStyle("ListBoxHandle", dropDownScrollHandleStyle);
-		skin->setStyle("MenuBarHandle", dropDownScrollHandleStyle);
-		skin->setStyle("ContextMenuHandle", dropDownScrollHandleStyle);
-
-		// DropDown sidebar background
-		GUIElementStyle dropDownSidebarBg;
-		dropDownSidebarBg.normal.texture = getSkinTexture(DropDownBoxSideBgTex);
-		dropDownSidebarBg.fixedHeight = false;
-		dropDownSidebarBg.fixedWidth = true;
-		dropDownSidebarBg.height = 8;
-		dropDownSidebarBg.width = 9;
-		dropDownSidebarBg.border.left = 1;
-		dropDownSidebarBg.border.top = 1;
-		dropDownSidebarBg.border.bottom = 1;
-
-		skin->setStyle("ListBoxSidebarBg", dropDownSidebarBg);
-		skin->setStyle("MenuBarSidebarBg", dropDownSidebarBg);
-		skin->setStyle("ContextMenuSidebarBg", dropDownSidebarBg);
-
-		// DropDown entry button
-		GUIElementStyle dropDownEntryBtnStyle;
-		dropDownEntryBtnStyle.normal.texture = getSkinTexture(DropDownBoxEntryNormalTex);
-		dropDownEntryBtnStyle.hover.texture = getSkinTexture(DropDownBoxEntryHoverTex);
-		dropDownEntryBtnStyle.active.texture = dropDownEntryBtnStyle.hover.texture;
-		dropDownEntryBtnStyle.normalOn.texture = dropDownEntryBtnStyle.hover.texture;
-		dropDownEntryBtnStyle.hoverOn.texture = dropDownEntryBtnStyle.hover.texture;
-		dropDownEntryBtnStyle.activeOn.texture = dropDownEntryBtnStyle.hover.texture;
-		dropDownEntryBtnStyle.normal.textColor = TextNormalColor;
-		dropDownEntryBtnStyle.hover.textColor = TextNormalColor;
-		dropDownEntryBtnStyle.active.textColor = TextNormalColor;
-		dropDownEntryBtnStyle.normalOn.textColor = TextNormalColor;
-		dropDownEntryBtnStyle.hoverOn.textColor = TextNormalColor;
-		dropDownEntryBtnStyle.activeOn.textColor = TextNormalColor;
-		dropDownEntryBtnStyle.fixedHeight = true;
-		dropDownEntryBtnStyle.fixedWidth = false;
-		dropDownEntryBtnStyle.height = 16;
-		dropDownEntryBtnStyle.width = 30;
-		dropDownEntryBtnStyle.font = font;
-		dropDownEntryBtnStyle.fontSize = DefaultFontSize;
-		dropDownEntryBtnStyle.textHorzAlign = THA_Left;
-		dropDownEntryBtnStyle.textVertAlign = TVA_Center;
-
-		skin->setStyle(GUIDropDownContent::ENTRY_STYLE_TYPE, dropDownEntryBtnStyle);
-
-		// DropDown entry button with expand
-		GUIElementStyle dropDownEntryExpBtnStyle;
-		dropDownEntryExpBtnStyle.normal.texture = getSkinTexture(DropDownBoxEntryExpNormalTex);
-		dropDownEntryExpBtnStyle.hover.texture = getSkinTexture(DropDownBoxEntryExpHoverTex);
-		dropDownEntryExpBtnStyle.active.texture = dropDownEntryExpBtnStyle.hover.texture;
-		dropDownEntryExpBtnStyle.normalOn.texture = dropDownEntryExpBtnStyle.hover.texture;
-		dropDownEntryExpBtnStyle.hoverOn.texture = dropDownEntryExpBtnStyle.hover.texture;
-		dropDownEntryExpBtnStyle.activeOn.texture = dropDownEntryExpBtnStyle.hover.texture;
-		dropDownEntryExpBtnStyle.normal.textColor = TextNormalColor;
-		dropDownEntryExpBtnStyle.hover.textColor = TextNormalColor;
-		dropDownEntryExpBtnStyle.active.textColor = TextNormalColor;
-		dropDownEntryExpBtnStyle.normalOn.textColor = TextNormalColor;
-		dropDownEntryExpBtnStyle.hoverOn.textColor = TextNormalColor;
-		dropDownEntryExpBtnStyle.activeOn.textColor = TextNormalColor;
-		dropDownEntryExpBtnStyle.fixedHeight = true;
-		dropDownEntryExpBtnStyle.fixedWidth = false;
-		dropDownEntryExpBtnStyle.height = 16;
-		dropDownEntryExpBtnStyle.width = 30;
-		dropDownEntryExpBtnStyle.border.right = 13;
-		dropDownEntryExpBtnStyle.font = font;
-		dropDownEntryExpBtnStyle.fontSize = DefaultFontSize;
-		dropDownEntryExpBtnStyle.textHorzAlign = THA_Left;
-		dropDownEntryExpBtnStyle.textVertAlign = TVA_Center;
-
-		skin->setStyle(GUIDropDownContent::ENTRY_EXP_STYLE_TYPE, dropDownEntryExpBtnStyle);
-
-		// Drop down separator
-		GUIElementStyle dropDownSeparatorStyle;
-		dropDownSeparatorStyle.normal.texture = getSkinTexture(DropDownSeparatorTex);
-		dropDownSeparatorStyle.fixedHeight = true;
-		dropDownSeparatorStyle.fixedWidth = false;
-		dropDownSeparatorStyle.height = 3;
-		dropDownSeparatorStyle.width = 30;
-
-		skin->setStyle(GUIDropDownContent::SEPARATOR_STYLE_TYPE, dropDownSeparatorStyle);
-
-		// Drop down content
-		GUIElementStyle dropDownContentStyle;
-		dropDownContentStyle.minWidth = 50;
-		dropDownContentStyle.minHeight = 20;
-		dropDownContentStyle.subStyles[GUIDropDownContent::ENTRY_STYLE_TYPE] = GUIDropDownContent::ENTRY_STYLE_TYPE;
-		dropDownContentStyle.subStyles[GUIDropDownContent::ENTRY_EXP_STYLE_TYPE] = GUIDropDownContent::ENTRY_EXP_STYLE_TYPE;
-		dropDownContentStyle.subStyles[GUIDropDownContent::SEPARATOR_STYLE_TYPE] = GUIDropDownContent::SEPARATOR_STYLE_TYPE;
-
-		skin->setStyle("ListBoxContent", dropDownContentStyle);
-		skin->setStyle("MenuBarContent", dropDownContentStyle);
-		skin->setStyle("ContextMenuContent", dropDownContentStyle);
-
-		// DropDown box frame
-		GUIElementStyle dropDownBoxStyle;
-		dropDownBoxStyle.normal.texture = getSkinTexture(DropDownBoxBgTex);
-		dropDownBoxStyle.hover.texture = dropDownBoxStyle.normal.texture;
-		dropDownBoxStyle.active.texture = dropDownBoxStyle.hover.texture;
-		dropDownBoxStyle.fixedHeight = false;
-		dropDownBoxStyle.fixedWidth = false;
-		dropDownBoxStyle.border.left = 2;
-		dropDownBoxStyle.border.right = 2;
-		dropDownBoxStyle.border.top = 2;
-		dropDownBoxStyle.border.bottom = 4;
-		dropDownBoxStyle.margins.left = 6;
-		dropDownBoxStyle.margins.right = 6;
-		dropDownBoxStyle.margins.top = 4;
-		dropDownBoxStyle.margins.bottom = 6;
-
-		skin->setStyle("ListBoxFrame", dropDownBoxStyle);
-		skin->setStyle("MenuBarFrame", dropDownBoxStyle);
-		skin->setStyle("ContextMenuFrame", dropDownBoxStyle);
-
-		/************************************************************************/
-		/* 								TOOLTIP                      			*/
-		/************************************************************************/
-
-		GUIElementStyle tooltipFrameStyle;
-		tooltipFrameStyle.normal.texture = getSkinTexture(DropDownBoxBgTex);
-		tooltipFrameStyle.hover.texture = tooltipFrameStyle.normal.texture;
-		tooltipFrameStyle.active.texture = tooltipFrameStyle.hover.texture;
-		tooltipFrameStyle.fixedHeight = false;
-		tooltipFrameStyle.fixedWidth = false;
-		tooltipFrameStyle.border.left = 2;
-		tooltipFrameStyle.border.right = 2;
-		tooltipFrameStyle.border.top = 2;
-		tooltipFrameStyle.border.bottom = 4;
-		tooltipFrameStyle.margins.left = 6;
-		tooltipFrameStyle.margins.right = 6;
-		tooltipFrameStyle.margins.top = 4;
-		tooltipFrameStyle.margins.bottom = 6;
-
-		skin->setStyle(GUITooltip::getFrameStyleName(), tooltipFrameStyle);
-
-		/************************************************************************/
-		/* 									OTHER                      			*/
-		/************************************************************************/
-
-		// Right-aligned label
-		GUIElementStyle rightAlignedLabelStyle;
-		rightAlignedLabelStyle.font = font;
-		rightAlignedLabelStyle.fontSize = DefaultFontSize;
-		rightAlignedLabelStyle.fixedWidth = false;
-		rightAlignedLabelStyle.fixedHeight = true;
-		rightAlignedLabelStyle.height = 11;
-		rightAlignedLabelStyle.minWidth = 10;
-		rightAlignedLabelStyle.textHorzAlign = THA_Right;
-		rightAlignedLabelStyle.normal.textColor = TextNormalColor;
-
-		skin->setStyle("RightAlignedLabel", rightAlignedLabelStyle);
-
-		return skin;
-	}
-
-	void BuiltinResources::generateTextures()
-	{
-		PixelDataPtr blackPixelData = PixelData::create(2, 2, 1, PF_R8G8B8A8);
-		blackPixelData->setColorAt(Color::Black, 0, 0);
-		blackPixelData->setColorAt(Color::Black, 0, 1);
-		blackPixelData->setColorAt(Color::Black, 1, 0);
-		blackPixelData->setColorAt(Color::Black, 1, 1);
-
-		TexturePtr blackTexture = Texture::_createPtr(blackPixelData);
-
-		PixelDataPtr whitePixelData = PixelData::create(2, 2, 1, PF_R8G8B8A8);
-		whitePixelData->setColorAt(Color::White, 0, 0);
-		whitePixelData->setColorAt(Color::White, 0, 1);
-		whitePixelData->setColorAt(Color::White, 1, 0);
-		whitePixelData->setColorAt(Color::White, 1, 1);
-
-		TexturePtr whiteTexture = Texture::_createPtr(whitePixelData);
-
-		PixelDataPtr normalPixelData = PixelData::create(2, 2, 1, PF_R8G8B8A8);
-
-		Color encodedNormal(0.5f, 0.5f, 1.0f);
-		normalPixelData->setColorAt(encodedNormal, 0, 0);
-		normalPixelData->setColorAt(encodedNormal, 0, 1);
-		normalPixelData->setColorAt(encodedNormal, 1, 0);
-		normalPixelData->setColorAt(encodedNormal, 1, 1);
-
-		TexturePtr normalTexture = Texture::_createPtr(normalPixelData);
-
-		// Save all textures
-		Path outputDir = FileSystem::getWorkingDirectoryPath() + mEngineTextureFolder;
-
-		auto saveTexture = [&](const Path& path, const SPtr<Texture>& texture)
-		{
-			HResource textureResource;
-			if (FileSystem::exists(path))
-				textureResource = gResources().load(path);
-
-			if (textureResource.isLoaded())
-				gResources().update(textureResource, texture);
-			else
-				textureResource = gResources()._createResourceHandle(texture);
-
-			gResources().save(textureResource, path, true);
-			mResourceManifest->registerResource(textureResource.getUUID(), path);
-		};
-
-		Path whitePath = outputDir + TextureWhiteFile;
-		saveTexture(whitePath, whiteTexture);
-
-		Path blackPath = outputDir + TextureBlackFile;
-		saveTexture(blackPath, blackTexture);
-
-		Path normalPath = outputDir + TextureNormalFile;
-		saveTexture(normalPath, normalTexture);
-	}
-
-	void BuiltinResources::generateMeshes()
-	{
-		VertexDataDescPtr vertexDesc = bs_shared_ptr_new<VertexDataDesc>();
-		vertexDesc->addVertElem(VET_FLOAT3, VES_POSITION);
-		vertexDesc->addVertElem(VET_FLOAT3, VES_NORMAL);
-		vertexDesc->addVertElem(VET_COLOR, VES_COLOR);
-
-		UINT32 boxNumVertices = 0;
-		UINT32 boxNumIndices = 0;
-		ShapeMeshes3D::getNumElementsAABox(boxNumVertices, boxNumIndices);
-		MeshDataPtr boxMeshData = bs_shared_ptr_new<MeshData>(boxNumVertices, boxNumIndices, vertexDesc);
-		AABox box(Vector3(-0.5f, -0.5f, -0.5f), Vector3(0.5f, 0.5f, 0.5f));
-
-		ShapeMeshes3D::solidAABox(box, boxMeshData, 0, 0);
-		MeshPtr boxMesh = Mesh::_createPtr(boxMeshData);
-
-		UINT32 sphereNumVertices = 0;
-		UINT32 sphereNumIndices = 0;
-		ShapeMeshes3D::getNumElementsSphere(3, sphereNumVertices, sphereNumIndices);
-		MeshDataPtr sphereMeshData = bs_shared_ptr_new<MeshData>(sphereNumVertices, sphereNumIndices, vertexDesc);
-
-		ShapeMeshes3D::solidSphere(Sphere(Vector3::ZERO, 1.0f), sphereMeshData, 0, 0, 3);
-		MeshPtr sphereMesh = Mesh::_createPtr(sphereMeshData);
-
-		UINT32 coneNumVertices = 0;
-		UINT32 coneNumIndices = 0;
-		ShapeMeshes3D::getNumElementsCone(10, coneNumVertices, coneNumIndices);
-		MeshDataPtr coneMeshData = bs_shared_ptr_new<MeshData>(coneNumVertices, coneNumIndices, vertexDesc);
-
-		ShapeMeshes3D::solidCone(Vector3::ZERO, Vector3::UNIT_Y, 1.0f, 1.0f, coneMeshData, 0, 0);
-		MeshPtr coneMesh = Mesh::_createPtr(coneMeshData);
-
-		UINT32 quadNumVertices = 8;
-		UINT32 quadNumIndices = 12;
-		ShapeMeshes3D::getNumElementsQuad(quadNumVertices, quadNumIndices);
-		MeshDataPtr quadMeshData = bs_shared_ptr_new<MeshData>(quadNumVertices, quadNumIndices, vertexDesc);
-
-		std::array<Vector3, 2> axes = { Vector3::UNIT_X, Vector3::UNIT_Y };
-		std::array<float, 2> sizes = { 1.0f, 1.0f };
-		Rect3 rect(Vector3::ZERO, axes, sizes);
-		ShapeMeshes3D::solidQuad(rect, quadMeshData, 0, 0);
-		MeshPtr quadMesh = Mesh::_createPtr(quadMeshData);
-
-		UINT32 discNumVertices = 0;
-		UINT32 discNumIndices = 0;
-		ShapeMeshes3D::getNumElementsDisc(10, discNumVertices, discNumIndices);
-		MeshDataPtr discMeshData = bs_shared_ptr_new<MeshData>(discNumVertices, discNumIndices, vertexDesc);
-
-		ShapeMeshes3D::solidDisc(Vector3::ZERO, 1.0f, Vector3::UNIT_Y, discMeshData, 0, 0);
-		MeshPtr discMesh = Mesh::_createPtr(discMeshData);
-
-		// Save all meshes
-		Path outputDir = FileSystem::getWorkingDirectoryPath() + mEngineMeshFolder;
-
-		auto saveMesh = [&](const Path& path, const MeshPtr& mesh)
-		{
-			HResource meshResource;
-			if (FileSystem::exists(path))
-				meshResource = gResources().load(path);
-			
-			if (meshResource.isLoaded())
-				gResources().update(meshResource, mesh);
-			else
-				meshResource = gResources()._createResourceHandle(mesh);
-
-			gResources().save(meshResource, path, true);
-			mResourceManifest->registerResource(meshResource.getUUID(), path);
-		};
-
-		Path boxPath = outputDir + MeshBoxFile;
-		saveMesh(boxPath, boxMesh);
-
-		Path spherePath = outputDir + MeshSphereFile;
-		saveMesh(spherePath, sphereMesh);
-
-		Path conePath = outputDir + MeshConeFile;
-		saveMesh(conePath, coneMesh);
-
-		Path quadPath = outputDir + MeshQuadFile;
-		saveMesh(quadPath, quadMesh);
-
-		Path discPath = outputDir + MeshDiscFile;
-		saveMesh(discPath, discMesh);
-	}
-
-	HSpriteTexture BuiltinResources::getSkinTexture(const WString& name)
-	{
-		Path texturePath = FileSystem::getWorkingDirectoryPath();
-		texturePath.append(mEngineSkinFolder);
-		texturePath.append(L"sprite_" + name + L".asset");
-
-		return gResources().load<SpriteTexture>(texturePath);
-	}
-
-	HShader BuiltinResources::getShader(const Path& path)
-	{
-		Path programPath = mEngineShaderFolder;
-		programPath.append(path);
-		programPath.setExtension(programPath.getExtension() + ".asset");
-
-		return gResources().load<Shader>(programPath);
-	}
-
-	HTexture BuiltinResources::getCursorTexture(const WString& name)
-	{
-		Path cursorPath = FileSystem::getWorkingDirectoryPath();
-		cursorPath.append(mEngineCursorFolder);
-		cursorPath.append(name + L".asset");
-
-		return gResources().load<Texture>(cursorPath);
-	}
-
-	const PixelData& BuiltinResources::getCursorArrow(Vector2I& hotSpot)
-	{
-		hotSpot = CursorArrowHotspot;
-		return *mCursorArrow.get();
-	}
-
-	const PixelData& BuiltinResources::getCursorArrowDrag(Vector2I& hotSpot)
-	{
-		hotSpot = CursorArrowDragHotspot;
-		return *mCursorArrowDrag.get();
-	}
-
-	const PixelData& BuiltinResources::getCursorWait(Vector2I& hotSpot)
-	{
-		hotSpot = CursorWaitHotspot;
-		return *mCursorWait.get();
-	}
-
-	const PixelData& BuiltinResources::getCursorIBeam(Vector2I& hotSpot)
-	{
-		hotSpot = CursorIBeamHotspot;
-		return *mCursorIBeam.get();
-	}
-
-	const PixelData& BuiltinResources::getCursorSizeNESW(Vector2I& hotSpot)
-	{
-		hotSpot = CursorSizeNESWHotspot;
-		return *mCursorSizeNESW.get();
-	}
-
-	const PixelData& BuiltinResources::getCursorSizeNS(Vector2I& hotSpot)
-	{
-		hotSpot = CursorSizeNSHotspot;
-		return *mCursorSizeNS.get();
-	}
-
-	const PixelData& BuiltinResources::getCursorSizeNWSE(Vector2I& hotSpot)
-	{
-		hotSpot = CursorSizeNWSEHotspot;
-		return *mCursorSizeNWSE.get();
-	}
-
-	const PixelData& BuiltinResources::getCursorSizeWE(Vector2I& hotSpot)
-	{
-		hotSpot = CursorSizeWEHotspot;
-		return *mCursorSizeWE.get();
-	}
-
-	const PixelData& BuiltinResources::getCursorDeny(Vector2I& hotSpot)
-	{
-		hotSpot = CursorDenyHotspot;
-		return *mCursorDeny.get();
-	}
-
-	const PixelData& BuiltinResources::getCursorMoveLeftRight(Vector2I& hotSpot)
-	{
-		hotSpot = CursorArrowLeftRightHotspot;
-		return *mCursorArrowLeftRight.get();
-	}
-
-	const PixelData& BuiltinResources::getBansheeIcon()
-	{
-		return *mBansheeIcon.get();
-	}
-
-	PixelDataPtr BuiltinResources::getSplashScreen()
-	{
-		Path splashScreenPath = Paths::getEngineDataPath() + (WString(SplashScreenName) + L".asset");
-		FileDecoder fd(splashScreenPath);
-
-		return std::static_pointer_cast<PixelData>(fd.decode());
-	}
-
-	Path BuiltinResources::getShaderIncludeFolder()
-	{
-		return Paths::getEngineDataPath() + ShaderIncludeFolder;
-	}
-
-	Path BuiltinResources::getIconFolder()
-	{
-		return Paths::getEngineDataPath() + IconFolder;
-	}
-
-	HMesh BuiltinResources::getMesh(BuiltinMesh mesh) const
-	{
-		Path meshPath = FileSystem::getWorkingDirectoryPath();
-		meshPath.append(mEngineMeshFolder);
-
-		switch (mesh)
-		{
-		case BuiltinMesh::Box:
-			meshPath.append(MeshBoxFile);
-			break;
-		case BuiltinMesh::Sphere:
-			meshPath.append(MeshSphereFile);
-			break;
-		case BuiltinMesh::Cone:
-			meshPath.append(MeshConeFile);
-			break;
-		case BuiltinMesh::Quad:
-			meshPath.append(MeshQuadFile);
-			break;
-		case BuiltinMesh::Disc:
-			meshPath.append(MeshDiscFile);
-			break;
-		}
-
-		return gResources().load<Mesh>(meshPath);
-	}
-
-	HTexture BuiltinResources::getTexture(BuiltinTexture type)
-	{
-		Path texturePath = FileSystem::getWorkingDirectoryPath();
-		texturePath.append(Paths::getEngineDataPath());
-		texturePath.append(TextureFolder);
-
-		switch (type)
-		{
-		case BuiltinTexture::Black:
-			texturePath.append(TextureBlackFile);
-			break;
-		case BuiltinTexture::White:
-			texturePath.append(TextureWhiteFile);
-			break;
-		case BuiltinTexture::Normal:
-			texturePath.append(TextureNormalFile);
-			break;
-		}
-
-		return gResources().load<Texture>(texturePath);
-	}
-
-	HMaterial BuiltinResources::createSpriteTextMaterial() const
-	{
-		return Material::create(mShaderSpriteText);
-	}
-
-	HMaterial BuiltinResources::createSpriteImageMaterial() const
-	{
-		return Material::create(mShaderSpriteImage);
-	}
-
-	HMaterial BuiltinResources::createSpriteNonAlphaImageMaterial() const
-	{
-		return Material::create(mShaderSpriteNonAlphaImage);
-	}
-
-	void BuiltinResourcesHelper::importAssets(const Path& inputFolder, const Path& outputFolder, const ResourceManifestPtr& manifest)
-	{
-		if (!FileSystem::exists(inputFolder))
-			return;
-
-		UnorderedSet<Path> outputAssets;
-		auto importResource = [&](const Path& filePath)
-		{
-			Path relativePath = filePath.getRelative(inputFolder);
-			relativePath = outputFolder + relativePath;;
-			relativePath.setFilename(relativePath.getWFilename() + L".asset");
-
-			Path outputPath = FileSystem::getWorkingDirectoryPath() + relativePath;
-
-			HResource resource;
-			if (FileSystem::exists(outputPath))
-				resource = gResources().load(outputPath);
-
-			ImportOptionsPtr importOptions = gImporter().createImportOptions(filePath);
-			if(importOptions != nullptr && rtti_is_of_type<TextureImportOptions>(importOptions))
-			{
-				SPtr<TextureImportOptions> texImportOptions = std::static_pointer_cast<TextureImportOptions>(importOptions);
-				texImportOptions->setGenerateMipmaps(false);
-			}
-
-			if (resource != nullptr)
-				gImporter().reimport(resource, filePath, importOptions);
-			else
-				resource = Importer::instance().import(filePath, importOptions);
-
-			if (resource != nullptr)
-			{
-				Resources::instance().save(resource, outputPath, true);
-				manifest->registerResource(resource.getUUID(), outputPath);
-
-				outputAssets.insert(relativePath);
-			}
-
-			return true;
-		};
-
-		Vector<Path> obsoleteAssets;
-		auto gatherObsolete = [&](const Path& filePath)
-		{
-			auto iterFind = outputAssets.find(filePath);
-			if (iterFind == outputAssets.end())
-				obsoleteAssets.push_back(filePath);
-
-			return true;
-		};
-
-		FileSystem::iterate(inputFolder, importResource);
-		FileSystem::iterate(outputFolder, gatherObsolete);
-
-		for (auto& obsoleteAssetPath : obsoleteAssets)
-			FileSystem::remove(obsoleteAssetPath);
-	}
-
-	void BuiltinResourcesHelper::importFont(const Path& inputFile, const WString& outputName, const Path& outputFolder,
-		const Vector<UINT32>& fontSizes, bool antialiasing, const ResourceManifestPtr& manifest)
-	{
-		ImportOptionsPtr fontImportOptions = Importer::instance().createImportOptions(inputFile);
-		if (rtti_is_of_type<FontImportOptions>(fontImportOptions))
-		{
-			FontImportOptions* importOptions = static_cast<FontImportOptions*>(fontImportOptions.get());
-
-			importOptions->setFontSizes(fontSizes);
-			importOptions->setRenderMode(antialiasing ? FontRenderMode::HintedSmooth : FontRenderMode::HintedRaster);
-		}
-		else
-			return;
-
-		HFont font = Importer::instance().import<Font>(inputFile, fontImportOptions);
-
-		WString fontName = outputName;
-		Path outputPath = FileSystem::getWorkingDirectoryPath() + outputFolder + fontName;
-		outputPath.setFilename(outputPath.getWFilename() + L".asset");
-
-		Resources::instance().save(font, outputPath, true);
-		manifest->registerResource(font.getUUID(), outputPath);
-
-		// Save font texture pages as well. TODO - Later maybe figure out a more automatic way to do this
-		for (auto& size : fontSizes)
-		{
-			SPtr<const FontBitmap> fontData = font->getBitmap(size);
-
-			Path texPageOutputPath = FileSystem::getWorkingDirectoryPath() + outputFolder;
-
-			UINT32 pageIdx = 0;
-			for (auto tex : fontData->texturePages)
-			{
-				texPageOutputPath.setFilename(fontName + L"_" + toWString(size) + L"_texpage_" + 
-					toWString(pageIdx) + L".asset");
-
-				Resources::instance().save(tex, texPageOutputPath, true);
-				manifest->registerResource(tex.getUUID(), texPageOutputPath);
-			}
-		}
-	}
-
-	void BuiltinResourcesHelper::generateSpriteTextures(const Path& folder, const ResourceManifestPtr& manifest)
-	{
-		if (!FileSystem::exists(folder))
-			return;
-
-		Vector<Path> filesToProcess;
-		auto gather = [&](const Path& filePath)
-		{
-			filesToProcess.push_back(filePath);
-
-			return true;
-		};
-
-		FileSystem::iterate(folder, gather);
-
-		for (auto& filePath : filesToProcess)
-		{
-			Path outputPath = FileSystem::getWorkingDirectoryPath() + filePath;
-			outputPath.setFilename(L"sprite_" + outputPath.getWFilename());
-
-			HTexture source = gResources().load<Texture>(filePath);
-
-			if (source != nullptr)
-			{
-				HSpriteTexture spriteTex = SpriteTexture::create(source);
-				Resources::instance().save(spriteTex, outputPath, true);
-				manifest->registerResource(spriteTex.getUUID(), outputPath);
-			}
-		}
-	}
-
-	void BuiltinResourcesHelper::writeTimestamp(const Path& file)
-	{
-		DataStreamPtr fileStream = FileSystem::createAndOpenFile(file);
-
-		time_t currentTime = std::time(nullptr);
-		fileStream->write(&currentTime, sizeof(currentTime));
-		fileStream->close();
-	}
-
-	bool BuiltinResourcesHelper::checkForModifications(const Path& folder, const Path& timeStampFile)
-	{
-		if (!FileSystem::exists(timeStampFile))
-			return true;
-
-		DataStreamPtr fileStream = FileSystem::openFile(timeStampFile);
-		time_t lastUpdateTime = 0;
-		fileStream->read(&lastUpdateTime, sizeof(lastUpdateTime));
-		fileStream->close();
-
-		bool upToDate = true;
-		auto checkUpToDate = [&](const Path& filePath)
-		{
-			time_t fileLastModified = FileSystem::getLastModifiedTime(filePath);
-
-			if (fileLastModified > lastUpdateTime)
-			{
-				upToDate = false;
-				return false;
-			}
-
-			return true;
-		};
-
-		FileSystem::iterate(folder, checkUpToDate, checkUpToDate);
-
-		return !upToDate;
-	}
+//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
+//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
+#include "BsBuiltinResources.h"
+#include "BsGUIElementStyle.h"
+#include "BsGUILabel.h"
+#include "BsGUIButton.h"
+#include "BsGUIInputBox.h"
+#include "BsGUIToggle.h"
+#include "BsGUIDropDownContent.h"
+#include "BsTextSprite.h"
+#include "BsSpriteTexture.h"
+#include "BsFont.h"
+#include "BsFontImportOptions.h"
+#include "BsTexture.h"
+#include "BsImporter.h"
+#include "BsResources.h"
+#include "BsShader.h"
+#include "BsMaterial.h"
+#include "BsRTTIType.h"
+#include "BsFileSystem.h"
+#include "BsCoreApplication.h"
+#include "BsCoreThread.h"
+#include "BsDataStream.h"
+#include "BsResourceManifest.h"
+#include "BsVertexDataDesc.h"
+#include "BsShapeMeshes3D.h"
+#include "BsMesh.h"
+#include "BsGUITooltip.h"
+#include "BsFileSerializer.h"
+#include "BsTextureImportOptions.h"
+#include "BsShaderImportOptions.h"
+#include "BsRendererMaterialManager.h"
+
+namespace BansheeEngine
+{
+	const WString BuiltinResources::DefaultFontFilename = L"arial.ttf";
+	const UINT32 BuiltinResources::DefaultFontSize = 11;
+
+	const Color BuiltinResources::TextNormalColor = Color(0.7f, 0.7f, 0.7f);
+	const Color BuiltinResources::TextActiveColor = Color(0.0f, 0.0f, 0.0f);
+
+	const String BuiltinResources::MultiLineLabelStyle = "MultiLineLabel";
+
+	const WString BuiltinResources::GUISkinFile = L"GUISkin";
+
+	const char* BuiltinResources::CursorFolder = "Cursors\\";
+	const char* BuiltinResources::IconFolder = "Icons\\";
+	const char* BuiltinResources::ShaderFolder = "Shaders\\";
+	const char* BuiltinResources::SkinFolder = "Skin\\";
+	const char* BuiltinResources::ShaderIncludeFolder = "Includes\\";
+	const char* BuiltinResources::MeshFolder = "Meshes\\";
+	const char* BuiltinResources::TextureFolder = "Textures\\";
+
+	/************************************************************************/
+	/* 								GUI TEXTURES                      		*/
+	/************************************************************************/
+
+	const WString BuiltinResources::WhiteTex = L"White.psd";
+	const wchar_t* BuiltinResources::SplashScreenName = L"SplashScreen.png";
+
+	const WString BuiltinResources::ButtonNormalTex = L"ButtonNormal.png";
+	const WString BuiltinResources::ButtonHoverTex = L"ButtonHover.png";
+	const WString BuiltinResources::ButtonActiveTex = L"ButtonActive.png";
+
+	const WString BuiltinResources::ToggleNormalTex = L"ToggleNormal.png";
+	const WString BuiltinResources::ToggleHoverTex = L"ToggleHover.png";
+	const WString BuiltinResources::ToggleNormalOnTex = L"ToggleNormalOn.png";
+	const WString BuiltinResources::ToggleHoverOnTex = L"ToggleHoverOn.png";
+
+	const WString BuiltinResources::InputBoxNormalTex = L"InputBoxNormal.png";
+	const WString BuiltinResources::InputBoxHoverTex = L"InputBoxHover.png";
+	const WString BuiltinResources::InputBoxFocusedTex = L"InputBoxActive.png";
+
+	const WString BuiltinResources::ScrollBarUpNormalTex = L"ScrollArrowUpNormal.png";
+	const WString BuiltinResources::ScrollBarUpHoverTex = L"ScrollArrowUpHover.png";
+	const WString BuiltinResources::ScrollBarUpActiveTex = L"ScrollArrowUpActive.png";
+
+	const WString BuiltinResources::ScrollBarDownNormalTex = L"ScrollArrowDownNormal.png";
+	const WString BuiltinResources::ScrollBarDownHoverTex = L"ScrollArrowDownHover.png";
+	const WString BuiltinResources::ScrollBarDownActiveTex = L"ScrollArrowDownActive.png";
+
+	const WString BuiltinResources::ScrollBarLeftNormalTex = L"ScrollArrowLeftNormal.png";
+	const WString BuiltinResources::ScrollBarLeftHoverTex = L"ScrollArrowLeftHover.png";
+	const WString BuiltinResources::ScrollBarLeftActiveTex = L"ScrollArrowLeftActive.png";
+
+	const WString BuiltinResources::ScrollBarRightNormalTex = L"ScrollArrowRightNormal.png";
+	const WString BuiltinResources::ScrollBarRightHoverTex = L"ScrollArrowRightHover.png";
+	const WString BuiltinResources::ScrollBarRightActiveTex = L"ScrollArrowRightActive.png";
+
+	const WString BuiltinResources::ScrollBarHandleHorzNormalTex = L"ScrollBarHHandleNormal.png";
+	const WString BuiltinResources::ScrollBarHandleHorzHoverTex = L"ScrollBarHHandleHover.png";
+	const WString BuiltinResources::ScrollBarHandleHorzActiveTex = L"ScrollBarHHandleActive.png";
+
+	const WString BuiltinResources::ScrollBarHandleVertNormalTex = L"ScrollBarVHandleNormal.png";
+	const WString BuiltinResources::ScrollBarHandleVertHoverTex = L"ScrollBarVHandleHover.png";
+	const WString BuiltinResources::ScrollBarHandleVertActiveTex = L"ScrollBarVHandleActive.png";
+
+	const WString BuiltinResources::ScrollBarHBgTex = L"ScrollBarHBackground.png";
+	const WString BuiltinResources::ScrollBarVBgTex = L"ScrollBarVBackground.png";
+
+	const WString BuiltinResources::DropDownBtnNormalTex = L"DropDownButtonNormal.png";
+	const WString BuiltinResources::DropDownBtnHoverTex = L"DropDownButtonHover.png";
+	const WString BuiltinResources::DropDownBtnActiveTex = L"DropDownButtonActive.png";
+
+	const WString BuiltinResources::DropDownBoxBgTex = L"DropDownBoxBg.png";
+	const WString BuiltinResources::DropDownBoxSideBgTex = L"DropDownBoxSideBg.png";
+	const WString BuiltinResources::DropDownBoxHandleTex = L"DropDownBoxScrollHandle.png";
+
+	const WString BuiltinResources::DropDownBoxEntryNormalTex = L"DropDownBoxEntryNormal.png";
+	const WString BuiltinResources::DropDownBoxEntryHoverTex = L"DropDownBoxEntryHover.png";
+
+	const WString BuiltinResources::DropDownBoxBtnUpNormalTex = L"DropDownBoxArrowUpNormal.png";
+	const WString BuiltinResources::DropDownBoxBtnUpHoverTex = L"DropDownBoxArrowUpHover.png";
+
+	const WString BuiltinResources::DropDownBoxBtnDownNormalTex = L"DropDownBoxArrowDownNormal.png";
+	const WString BuiltinResources::DropDownBoxBtnDownHoverTex = L"DropDownBoxArrowDownHover.png";
+
+	const WString BuiltinResources::DropDownBoxEntryExpNormalTex = L"DropDownBoxExpandBtnNormal.png";
+	const WString BuiltinResources::DropDownBoxEntryExpHoverTex = L"DropDownBoxExpandBtnHover.png";
+
+	const WString BuiltinResources::DropDownSeparatorTex = L"DropDownBoxSeparator.png";
+
+	/************************************************************************/
+	/* 							CURSOR TEXTURES                      		*/
+	/************************************************************************/
+
+	const WString BuiltinResources::CursorArrowTex = L"Arrow.psd";
+	const WString BuiltinResources::CursorArrowDragTex = L"ArrowDrag.psd";
+	const WString BuiltinResources::CursorArrowLeftRightTex = L"ArrowLeftRight.psd";
+	const WString BuiltinResources::CursorIBeamTex = L"IBeam.psd";
+	const WString BuiltinResources::CursorDenyTex = L"Deny.psd";
+	const WString BuiltinResources::CursorWaitTex = L"Wait.psd";
+	const WString BuiltinResources::CursorSizeNESWTex = L"SizeNESW.psd";
+	const WString BuiltinResources::CursorSizeNSTex = L"SizeNS.psd";
+	const WString BuiltinResources::CursorSizeNWSETex = L"SizeNWSE.psd";
+	const WString BuiltinResources::CursorSizeWETex = L"SizeWE.psd";
+
+	const Vector2I BuiltinResources::CursorArrowHotspot = Vector2I(10, 8);
+	const Vector2I BuiltinResources::CursorArrowDragHotspot = Vector2I(8, 4);
+	const Vector2I BuiltinResources::CursorArrowLeftRightHotspot = Vector2I(13, 9);
+	const Vector2I BuiltinResources::CursorIBeamHotspot = Vector2I(16, 15);
+	const Vector2I BuiltinResources::CursorDenyHotspot = Vector2I(15, 15);
+	const Vector2I BuiltinResources::CursorWaitHotspot = Vector2I(15, 15);
+	const Vector2I BuiltinResources::CursorSizeNESWHotspot = Vector2I(16, 15);
+	const Vector2I BuiltinResources::CursorSizeNSHotspot = Vector2I(16, 15);
+	const Vector2I BuiltinResources::CursorSizeNWSEHotspot = Vector2I(16, 15);
+	const Vector2I BuiltinResources::CursorSizeWEHotspot = Vector2I(16, 15);
+
+	/************************************************************************/
+	/* 							ICON TEXTURES					    		*/
+	/************************************************************************/
+
+	const WString BuiltinResources::IconTextureName = L"BansheeIcon.png";
+
+	/************************************************************************/
+	/* 									SHADERS                      		*/
+	/************************************************************************/
+
+	const WString BuiltinResources::ShaderSpriteTextFile = L"SpriteText.bsl";
+	const WString BuiltinResources::ShaderSpriteImageAlphaFile = L"SpriteImageAlpha.bsl";
+	const WString BuiltinResources::ShaderSpriteImageNoAlphaFile = L"SpriteImageNoAlpha.bsl";
+	const WString BuiltinResources::ShaderDiffuseFile = L"Diffuse.bsl";
+
+	/************************************************************************/
+	/* 								MESHES							  		*/
+	/************************************************************************/
+
+	const WString BuiltinResources::MeshSphereFile = L"Sphere.asset";
+	const WString BuiltinResources::MeshBoxFile = L"Box.asset";
+	const WString BuiltinResources::MeshConeFile = L"Cone.asset";
+	const WString BuiltinResources::MeshQuadFile = L"Quad.asset";
+	const WString BuiltinResources::MeshDiscFile = L"Disc.asset";
+
+	/************************************************************************/
+	/* 								TEXTURES							  	*/
+	/************************************************************************/
+
+	const WString BuiltinResources::TextureWhiteFile = L"White.asset";
+	const WString BuiltinResources::TextureBlackFile = L"Black.asset";
+	const WString BuiltinResources::TextureNormalFile = L"Normal.asset";
+
+	BuiltinResources::~BuiltinResources()
+	{
+		mCursorArrow = nullptr;
+		mCursorArrowDrag = nullptr;
+		mCursorArrowLeftRight = nullptr;
+		mCursorIBeam = nullptr;
+		mCursorDeny = nullptr;
+		mCursorWait = nullptr;
+		mCursorSizeNESW = nullptr;
+		mCursorSizeNS = nullptr;
+		mCursorSizeNWSE = nullptr;
+		mCursorSizeWE = nullptr;
+		mBansheeIcon = nullptr;
+	}
+
+	BuiltinResources::BuiltinResources()
+	{
+		// Set up paths
+		mBuiltinRawDataFolder = Paths::getRuntimeDataPath() + L"Raw\\Engine\\";
+		mEngineRawSkinFolder = mBuiltinRawDataFolder + SkinFolder;
+		mEngineRawCursorFolder = mBuiltinRawDataFolder + CursorFolder;
+		mEngineRawIconFolder = mBuiltinRawDataFolder + IconFolder;
+		mEngineRawShaderFolder = mBuiltinRawDataFolder + ShaderFolder;
+		mEngineRawShaderIncludeFolder = mBuiltinRawDataFolder + ShaderIncludeFolder;
+
+		mBuiltinDataFolder = Paths::getEngineDataPath();
+		mEngineSkinFolder = mBuiltinDataFolder + SkinFolder;
+		mEngineCursorFolder = mBuiltinDataFolder + CursorFolder;
+		mEngineIconFolder = mBuiltinDataFolder + IconFolder;
+		mEngineShaderFolder = mBuiltinDataFolder + ShaderFolder;
+		mEngineShaderIncludeFolder = mBuiltinDataFolder + ShaderIncludeFolder;
+		mEngineMeshFolder = mBuiltinDataFolder + MeshFolder;
+		mEngineTextureFolder = mBuiltinDataFolder + TextureFolder;
+
+		ResourceManifestPath = mBuiltinDataFolder + "ResourceManifest.asset";
+
+		// Load manifest
+		Path absoluteDataPath = FileSystem::getWorkingDirectoryPath();
+		absoluteDataPath.append(mBuiltinDataFolder);
+
+		if (FileSystem::exists(ResourceManifestPath))
+			mResourceManifest = ResourceManifest::load(ResourceManifestPath, absoluteDataPath);
+
+		if (mResourceManifest == nullptr)
+			mResourceManifest = ResourceManifest::create("BuiltinResources");
+
+		gResources().registerResourceManifest(mResourceManifest);
+
+		// Update from raw assets if needed
+#if BS_DEBUG_MODE
+		if (FileSystem::exists(mBuiltinRawDataFolder))
+		{
+			if (BuiltinResourcesHelper::checkForModifications(mBuiltinRawDataFolder, mBuiltinDataFolder + L"Timestamp.asset"))
+			{
+				preprocess();
+				BuiltinResourcesHelper::writeTimestamp(mBuiltinDataFolder + L"Timestamp.asset");
+
+				Path absoluteDataPath = FileSystem::getWorkingDirectoryPath();
+				absoluteDataPath.append(mBuiltinDataFolder);
+
+				ResourceManifest::save(mResourceManifest, ResourceManifestPath, absoluteDataPath);
+			}
+		}
+#endif
+		
+		// Load basic resources
+		mShaderSpriteText = getShader(ShaderSpriteTextFile);
+		mShaderSpriteImage = getShader(ShaderSpriteImageAlphaFile);
+		mShaderSpriteNonAlphaImage = getShader(ShaderSpriteImageNoAlphaFile);
+		mShaderDiffuse = getShader(ShaderDiffuseFile);
+
+		PixelDataPtr dummyPixelData = PixelData::create(2, 2, 1, PF_R8G8B8A8);
+
+		dummyPixelData->setColorAt(Color::Red, 0, 0);
+		dummyPixelData->setColorAt(Color::Red, 0, 1);
+		dummyPixelData->setColorAt(Color::Red, 1, 0);
+		dummyPixelData->setColorAt(Color::Red, 1, 1);
+
+		mDummyTexture = Texture::create(dummyPixelData);
+
+		mWhiteSpriteTexture = getSkinTexture(WhiteTex);
+		mDummySpriteTexture = SpriteTexture::create(mDummyTexture);
+
+		mSkin = gResources().load<GUISkin>(mBuiltinDataFolder + (GUISkinFile + L".asset"));
+		mEmptySkin = GUISkin::create();
+
+		/************************************************************************/
+		/* 								CURSOR		                     		*/
+		/************************************************************************/
+
+		HTexture cursorArrowTex = getCursorTexture(CursorArrowTex);
+		HTexture cursorArrowDragTex = getCursorTexture(CursorArrowDragTex);
+		HTexture cursorArrowLeftRightTex = getCursorTexture(CursorArrowLeftRightTex);
+		HTexture cursorIBeamTex = getCursorTexture(CursorIBeamTex);
+		HTexture cursorDenyTex = getCursorTexture(CursorDenyTex);
+		HTexture cursorWaitTex = getCursorTexture(CursorWaitTex);
+		HTexture cursorSizeNESWTex = getCursorTexture(CursorSizeNESWTex);
+		HTexture cursorSizeNSTex = getCursorTexture(CursorSizeNSTex);
+		HTexture cursorSizeNWSETex = getCursorTexture(CursorSizeNWSETex);
+		HTexture cursorSizeWETex = getCursorTexture(CursorSizeWETex);
+
+		mCursorArrow = cursorArrowTex->getProperties().allocateSubresourceBuffer(0);
+		cursorArrowTex->readSubresource(gCoreAccessor(), 0, mCursorArrow);
+
+		mCursorArrowDrag = cursorArrowDragTex->getProperties().allocateSubresourceBuffer(0);
+		cursorArrowDragTex->readSubresource(gCoreAccessor(), 0, mCursorArrowDrag);
+
+		mCursorArrowLeftRight = cursorArrowLeftRightTex->getProperties().allocateSubresourceBuffer(0);
+		cursorArrowLeftRightTex->readSubresource(gCoreAccessor(), 0, mCursorArrowLeftRight);
+
+		mCursorIBeam = cursorIBeamTex->getProperties().allocateSubresourceBuffer(0);
+		cursorIBeamTex->readSubresource(gCoreAccessor(), 0, mCursorIBeam);
+
+		mCursorDeny = cursorDenyTex->getProperties().allocateSubresourceBuffer(0);
+		cursorDenyTex->readSubresource(gCoreAccessor(), 0, mCursorDeny);
+
+		mCursorWait = cursorWaitTex->getProperties().allocateSubresourceBuffer(0);
+		cursorWaitTex->readSubresource(gCoreAccessor(), 0, mCursorWait);
+
+		mCursorSizeNESW = cursorSizeNESWTex->getProperties().allocateSubresourceBuffer(0);
+		cursorSizeNESWTex->readSubresource(gCoreAccessor(), 0, mCursorSizeNESW);
+
+		mCursorSizeNS = cursorSizeNSTex->getProperties().allocateSubresourceBuffer(0);
+		cursorSizeNSTex->readSubresource(gCoreAccessor(), 0, mCursorSizeNS);
+
+		mCursorSizeNWSE = cursorSizeNWSETex->getProperties().allocateSubresourceBuffer(0);
+		cursorSizeNWSETex->readSubresource(gCoreAccessor(), 0, mCursorSizeNWSE);
+
+		mCursorSizeWE = cursorSizeWETex->getProperties().allocateSubresourceBuffer(0);
+		cursorSizeWETex->readSubresource(gCoreAccessor(), 0, mCursorSizeWE);
+
+		/************************************************************************/
+		/* 								ICON		                     		*/
+		/************************************************************************/
+
+		Path iconPath = FileSystem::getWorkingDirectoryPath();
+		iconPath.append(mEngineIconFolder);
+		iconPath.append(IconTextureName + L".asset");
+
+		HTexture iconTex = gResources().load<Texture>(iconPath);
+
+		mBansheeIcon = iconTex->getProperties().allocateSubresourceBuffer(0);
+		iconTex->readSubresource(gCoreAccessor(), 0, mBansheeIcon);
+
+		gCoreAccessor().submitToCoreThread(true);
+	}
+
+	void BuiltinResources::preprocess()
+	{
+		// Hidden dependency: Textures need to be generated before shaders as they may use the default textures
+		generateTextures();
+
+		BuiltinResourcesHelper::importAssets(mEngineRawCursorFolder, mEngineCursorFolder, mResourceManifest);
+		BuiltinResourcesHelper::importAssets(mEngineRawIconFolder, mEngineIconFolder, mResourceManifest);
+		BuiltinResourcesHelper::importAssets(mEngineRawShaderIncludeFolder, mEngineShaderIncludeFolder, mResourceManifest); // Hidden dependency: Includes must be imported before shaders
+		BuiltinResourcesHelper::importAssets(mEngineRawShaderFolder, mEngineShaderFolder, mResourceManifest);
+		BuiltinResourcesHelper::importAssets(mEngineRawSkinFolder, mEngineSkinFolder, mResourceManifest);
+
+		// Import font
+		BuiltinResourcesHelper::importFont(mBuiltinRawDataFolder + DefaultFontFilename, DefaultFontFilename, mBuiltinDataFolder,
+			{ DefaultFontSize }, false, mResourceManifest);
+
+		// Import splash screen
+		{
+			Path inputPath = mBuiltinRawDataFolder + WString(SplashScreenName);
+			Path outputPath = mBuiltinDataFolder + (WString(SplashScreenName) + L".asset");
+
+			auto textureIO = gImporter().createImportOptions<TextureImportOptions>(inputPath);
+			textureIO->setCPUReadable(true);
+			textureIO->setGenerateMipmaps(false);
+			HTexture splashTexture = gImporter().import<Texture>(inputPath, textureIO);
+
+			PixelDataPtr splashPixelData = splashTexture->getProperties().allocateSubresourceBuffer(0);
+			splashTexture->readData(*splashPixelData);
+
+			FileEncoder fe(outputPath);
+			fe.encode(splashPixelData.get());
+		}
+
+		// Generate & save GUI sprite textures
+		BuiltinResourcesHelper::generateSpriteTextures(mEngineSkinFolder, mResourceManifest);
+
+		// Generate & save GUI skin
+		{
+			GUISkinPtr skin = generateGUISkin();
+			Path outputPath = FileSystem::getWorkingDirectoryPath() + mBuiltinDataFolder + (GUISkinFile + L".asset");
+
+			HResource skinResource;
+			if (FileSystem::exists(outputPath))
+				skinResource = gResources().load(outputPath);
+
+			if (skinResource.isLoaded())
+				gResources().update(skinResource, skin);
+			else
+				skinResource = gResources()._createResourceHandle(skin);
+
+			gResources().save(skinResource, outputPath, true);
+			mResourceManifest->registerResource(skinResource.getUUID(), outputPath);
+		}
+
+		// Generate & save meshes
+		generateMeshes();
+		
+		Resources::instance().unloadAllUnused();
+	}
+
+	GUISkinPtr BuiltinResources::generateGUISkin()
+	{
+		Path fontPath = FileSystem::getWorkingDirectoryPath();
+		fontPath.append(mBuiltinDataFolder);
+		fontPath.append(DefaultFontFilename + L".asset");
+
+		HFont font = gResources().load<Font>(fontPath);
+		GUISkinPtr skin = GUISkin::_createPtr();
+
+		// Label
+		GUIElementStyle labelStyle;
+		labelStyle.font = font;
+		labelStyle.fontSize = DefaultFontSize;
+		labelStyle.normal.textColor = TextNormalColor;
+		labelStyle.fixedWidth = false;
+		labelStyle.fixedHeight = true;
+		labelStyle.height = 14;
+		labelStyle.minWidth = 10;
+
+		skin->setStyle(GUILabel::getGUITypeName(), labelStyle);
+
+		// Button
+		GUIElementStyle buttonStyle;
+		buttonStyle.normal.texture = getSkinTexture(ButtonNormalTex);
+		buttonStyle.hover.texture = getSkinTexture(ButtonHoverTex);
+		buttonStyle.active.texture = getSkinTexture(ButtonActiveTex);
+		buttonStyle.normalOn.texture = getSkinTexture(ButtonActiveTex);
+		buttonStyle.hoverOn.texture = getSkinTexture(ButtonActiveTex);
+		buttonStyle.activeOn.texture = getSkinTexture(ButtonActiveTex);
+		buttonStyle.normal.textColor = TextNormalColor;
+		buttonStyle.hover.textColor = TextNormalColor;
+		buttonStyle.active.textColor = TextActiveColor;
+		buttonStyle.normalOn.textColor = TextActiveColor;
+		buttonStyle.hoverOn.textColor = TextActiveColor;
+		buttonStyle.activeOn.textColor = TextActiveColor;
+		buttonStyle.border.left = 2;
+		buttonStyle.border.right = 2;
+		buttonStyle.border.top = 2;
+		buttonStyle.border.bottom = 4;
+		buttonStyle.contentOffset.top = 2;
+		buttonStyle.contentOffset.left = 3;
+		buttonStyle.contentOffset.right = 3;
+		buttonStyle.margins.bottom = 2;
+		buttonStyle.fixedHeight = true;
+		buttonStyle.height = 21;
+		buttonStyle.minWidth = 20;
+		buttonStyle.font = font;
+		buttonStyle.fontSize = DefaultFontSize;
+		buttonStyle.textHorzAlign = THA_Center;
+		buttonStyle.textVertAlign = TVA_Center;
+
+		skin->setStyle(GUIButton::getGUITypeName(), buttonStyle);
+
+		// Toggle
+		GUIElementStyle toggleStyle;
+		toggleStyle.normal.texture = getSkinTexture(ToggleNormalTex);
+		toggleStyle.hover.texture = getSkinTexture(ToggleHoverTex);
+		toggleStyle.active.texture = toggleStyle.hover.texture;
+		toggleStyle.normalOn.texture = getSkinTexture(ToggleNormalOnTex);
+		toggleStyle.hoverOn.texture = getSkinTexture(ToggleHoverOnTex);
+		toggleStyle.activeOn.texture = toggleStyle.hoverOn.texture;
+		toggleStyle.fixedHeight = true;
+		toggleStyle.fixedWidth = true;
+		toggleStyle.margins.bottom = 2;
+		toggleStyle.height = 15;
+		toggleStyle.width = 13;
+
+		skin->setStyle(GUIToggle::getGUITypeName(), toggleStyle);
+
+		// Input box
+		GUIElementStyle inputBoxStyle;
+		inputBoxStyle.normal.texture = getSkinTexture(InputBoxNormalTex);
+		inputBoxStyle.hover.texture = getSkinTexture(InputBoxHoverTex);
+		inputBoxStyle.focused.texture = getSkinTexture(InputBoxFocusedTex);
+		inputBoxStyle.active.texture = inputBoxStyle.normal.texture;
+		inputBoxStyle.normal.textColor = TextNormalColor;
+		inputBoxStyle.hover.textColor = TextNormalColor;
+		inputBoxStyle.focused.textColor = TextNormalColor;
+		inputBoxStyle.active.textColor = TextNormalColor;
+		inputBoxStyle.border.left = 4;
+		inputBoxStyle.border.right = 4;
+		inputBoxStyle.border.top = 4;
+		inputBoxStyle.border.bottom = 6;
+		inputBoxStyle.contentOffset.left = 4;
+		inputBoxStyle.contentOffset.right = 4;
+		inputBoxStyle.contentOffset.top = 4;
+		inputBoxStyle.contentOffset.bottom = 4;
+		inputBoxStyle.margins.bottom = 2;
+		inputBoxStyle.fixedHeight = true;
+		inputBoxStyle.height = 21;
+		inputBoxStyle.minWidth = 10;
+		inputBoxStyle.font = font;
+		inputBoxStyle.fontSize = DefaultFontSize;
+		inputBoxStyle.textHorzAlign = THA_Left;
+		inputBoxStyle.textVertAlign = TVA_Top;
+
+		skin->setStyle(GUIInputBox::getGUITypeName(), inputBoxStyle);
+
+		/************************************************************************/
+		/* 								SCROLL BAR                      		*/
+		/************************************************************************/
+
+		// Up button
+		GUIElementStyle scrollUpBtnStyle;
+		scrollUpBtnStyle.normal.texture = getSkinTexture(ScrollBarUpNormalTex);
+		scrollUpBtnStyle.hover.texture = getSkinTexture(ScrollBarUpHoverTex);
+		scrollUpBtnStyle.active.texture = getSkinTexture(ScrollBarUpActiveTex);
+		scrollUpBtnStyle.fixedHeight = true;
+		scrollUpBtnStyle.fixedWidth = true;
+		scrollUpBtnStyle.height = 11;
+		scrollUpBtnStyle.width = 13;
+
+		skin->setStyle("ScrollUpBtn", scrollUpBtnStyle);
+
+		// Down button
+		GUIElementStyle scrollDownBtnStyle;
+		scrollDownBtnStyle.normal.texture = getSkinTexture(ScrollBarDownNormalTex);
+		scrollDownBtnStyle.hover.texture = getSkinTexture(ScrollBarDownHoverTex);
+		scrollDownBtnStyle.active.texture = getSkinTexture(ScrollBarDownActiveTex);
+		scrollDownBtnStyle.fixedHeight = true;
+		scrollDownBtnStyle.fixedWidth = true;
+		scrollDownBtnStyle.height = 11;
+		scrollDownBtnStyle.width = 13;
+
+		skin->setStyle("ScrollDownBtn", scrollDownBtnStyle);
+
+		// Left button
+		GUIElementStyle scrollLeftBtnStyle;
+		scrollLeftBtnStyle.normal.texture = getSkinTexture(ScrollBarLeftNormalTex);
+		scrollLeftBtnStyle.hover.texture = getSkinTexture(ScrollBarLeftHoverTex);
+		scrollLeftBtnStyle.active.texture = getSkinTexture(ScrollBarLeftActiveTex);
+		scrollLeftBtnStyle.fixedHeight = true;
+		scrollLeftBtnStyle.fixedWidth = true;
+		scrollLeftBtnStyle.height = 13;
+		scrollLeftBtnStyle.width = 11;
+
+		skin->setStyle("ScrollLeftBtn", scrollLeftBtnStyle);
+
+		// Right button
+		GUIElementStyle scrollRightBtnStyle;
+		scrollRightBtnStyle.normal.texture = getSkinTexture(ScrollBarRightNormalTex);
+		scrollRightBtnStyle.hover.texture = getSkinTexture(ScrollBarRightHoverTex);
+		scrollRightBtnStyle.active.texture = getSkinTexture(ScrollBarRightActiveTex);
+		scrollRightBtnStyle.fixedHeight = true;
+		scrollRightBtnStyle.fixedWidth = true;
+		scrollRightBtnStyle.height = 13;
+		scrollRightBtnStyle.width = 11;
+
+		skin->setStyle("ScrollRightBtn", scrollRightBtnStyle);
+
+		// Horizontal handle
+		GUIElementStyle scrollBarHorzBtnStyle;
+		scrollBarHorzBtnStyle.normal.texture = getSkinTexture(ScrollBarHandleHorzNormalTex);
+		scrollBarHorzBtnStyle.hover.texture = getSkinTexture(ScrollBarHandleHorzHoverTex);
+		scrollBarHorzBtnStyle.active.texture = getSkinTexture(ScrollBarHandleHorzActiveTex);
+		scrollBarHorzBtnStyle.fixedHeight = true;
+		scrollBarHorzBtnStyle.fixedWidth = false;
+		scrollBarHorzBtnStyle.width = 10;
+		scrollBarHorzBtnStyle.height = 13;
+		scrollBarHorzBtnStyle.border.left = 4;
+		scrollBarHorzBtnStyle.border.right = 4;
+
+		skin->setStyle("ScrollBarHorzBtn", scrollBarHorzBtnStyle);
+
+		// Vertical handle
+		GUIElementStyle scrollBarVertBtnStyle;
+		scrollBarVertBtnStyle.normal.texture = getSkinTexture(ScrollBarHandleVertNormalTex);
+		scrollBarVertBtnStyle.hover.texture = getSkinTexture(ScrollBarHandleVertHoverTex);
+		scrollBarVertBtnStyle.active.texture = getSkinTexture(ScrollBarHandleVertActiveTex);
+		scrollBarVertBtnStyle.fixedHeight = false;
+		scrollBarVertBtnStyle.fixedWidth = true;
+		scrollBarVertBtnStyle.width = 13;
+		scrollBarVertBtnStyle.height = 10;
+		scrollBarVertBtnStyle.border.top = 4;
+		scrollBarVertBtnStyle.border.bottom = 4;
+
+		skin->setStyle("ScrollBarVertBtn", scrollBarVertBtnStyle);
+
+		// Vertical scroll bar
+		GUIElementStyle vertScrollBarStyle;
+		vertScrollBarStyle.normal.texture = getSkinTexture(ScrollBarVBgTex);
+		vertScrollBarStyle.hover.texture = vertScrollBarStyle.normal.texture;
+		vertScrollBarStyle.active.texture = vertScrollBarStyle.normal.texture;
+		vertScrollBarStyle.fixedHeight = false;
+		vertScrollBarStyle.fixedWidth = true;
+		vertScrollBarStyle.minHeight = 8;
+		vertScrollBarStyle.width = 16;
+
+		skin->setStyle("ScrollBarVert", vertScrollBarStyle);
+
+		// Horizontal scroll bar
+		GUIElementStyle horzScrollBarStyle;
+		horzScrollBarStyle.normal.texture = getSkinTexture(ScrollBarHBgTex);
+		horzScrollBarStyle.hover.texture = horzScrollBarStyle.normal.texture;
+		horzScrollBarStyle.active.texture = horzScrollBarStyle.normal.texture;
+		horzScrollBarStyle.fixedHeight = true;
+		horzScrollBarStyle.fixedWidth = false;
+		horzScrollBarStyle.minWidth = 8;
+		horzScrollBarStyle.height = 16;
+
+		skin->setStyle("ScrollBarHorz", horzScrollBarStyle);
+
+		/************************************************************************/
+		/* 								DROP DOWN BOX                      		*/
+		/************************************************************************/
+
+		// ListBox button
+		GUIElementStyle dropDownListStyle;
+		dropDownListStyle.normal.texture = getSkinTexture(DropDownBtnNormalTex);
+		dropDownListStyle.hover.texture = getSkinTexture(DropDownBtnHoverTex);
+		dropDownListStyle.active.texture = getSkinTexture(DropDownBtnActiveTex);
+		dropDownListStyle.normalOn.texture = dropDownListStyle.active.texture;
+		dropDownListStyle.hoverOn.texture = dropDownListStyle.active.texture;
+		dropDownListStyle.activeOn.texture = dropDownListStyle.active.texture;
+		dropDownListStyle.normal.textColor = TextNormalColor;
+		dropDownListStyle.hover.textColor = TextNormalColor;
+		dropDownListStyle.active.textColor = TextNormalColor;
+		dropDownListStyle.normalOn.textColor = TextNormalColor;
+		dropDownListStyle.hoverOn.textColor = TextNormalColor;
+		dropDownListStyle.activeOn.textColor = TextNormalColor;
+		dropDownListStyle.fixedHeight = true;
+		dropDownListStyle.fixedWidth = false;
+		dropDownListStyle.height = 21;
+		dropDownListStyle.minWidth = 20;
+		dropDownListStyle.contentOffset.left = 3;
+		dropDownListStyle.contentOffset.right = 18;
+		dropDownListStyle.contentOffset.top = 2;
+		dropDownListStyle.contentOffset.bottom = 2;
+		dropDownListStyle.border.left = 2;
+		dropDownListStyle.border.right = 16;
+		dropDownListStyle.border.top = 2;
+		dropDownListStyle.border.bottom = 4;
+		dropDownListStyle.margins.bottom = 2;
+		dropDownListStyle.font = font;
+		dropDownListStyle.fontSize = DefaultFontSize;
+		dropDownListStyle.textHorzAlign = THA_Left;
+		dropDownListStyle.textVertAlign = TVA_Center;
+
+		skin->setStyle("ListBox", dropDownListStyle);
+
+		// DropDown scroll up button
+		GUIElementStyle dropDownScrollUpBtnStyle;
+		dropDownScrollUpBtnStyle.normal.texture = getSkinTexture(DropDownBoxBtnUpNormalTex);
+		dropDownScrollUpBtnStyle.hover.texture = getSkinTexture(DropDownBoxBtnUpHoverTex);
+		dropDownScrollUpBtnStyle.active.texture = dropDownScrollUpBtnStyle.hover.texture;
+		dropDownScrollUpBtnStyle.fixedHeight = true;
+		dropDownScrollUpBtnStyle.fixedWidth = true;
+		dropDownScrollUpBtnStyle.width = 8;
+		dropDownScrollUpBtnStyle.height = 12;
+
+		skin->setStyle("ListBoxScrollUpBtn", dropDownScrollUpBtnStyle);
+		skin->setStyle("MenuBarScrollUpBtn", dropDownScrollUpBtnStyle);
+		skin->setStyle("ContextMenuScrollUpBtn", dropDownScrollUpBtnStyle);
+
+		// DropDown scroll down button
+		GUIElementStyle dropDownScrollDownBtnStyle;
+		dropDownScrollDownBtnStyle.normal.texture = getSkinTexture(DropDownBoxBtnDownNormalTex);
+		dropDownScrollDownBtnStyle.hover.texture = getSkinTexture(DropDownBoxBtnDownHoverTex);
+		dropDownScrollDownBtnStyle.active.texture = dropDownScrollDownBtnStyle.hover.texture;
+		dropDownScrollDownBtnStyle.fixedHeight = true;
+		dropDownScrollDownBtnStyle.fixedWidth = true;
+		dropDownScrollDownBtnStyle.width = 8;
+		dropDownScrollDownBtnStyle.height = 12;
+
+		skin->setStyle("ListBoxScrollDownBtn", dropDownScrollDownBtnStyle);
+		skin->setStyle("MenuBarScrollDownBtn", dropDownScrollDownBtnStyle);
+		skin->setStyle("ContextMenuScrollDownBtn", dropDownScrollDownBtnStyle);
+
+		// DropDown handle
+		GUIElementStyle dropDownScrollHandleStyle;
+		dropDownScrollHandleStyle.normal.texture = getSkinTexture(DropDownBoxHandleTex);
+		dropDownScrollHandleStyle.fixedHeight = false;
+		dropDownScrollHandleStyle.fixedWidth = true;
+		dropDownScrollHandleStyle.height = 8;
+		dropDownScrollHandleStyle.width = 8;
+
+		skin->setStyle("ListBoxHandle", dropDownScrollHandleStyle);
+		skin->setStyle("MenuBarHandle", dropDownScrollHandleStyle);
+		skin->setStyle("ContextMenuHandle", dropDownScrollHandleStyle);
+
+		// DropDown sidebar background
+		GUIElementStyle dropDownSidebarBg;
+		dropDownSidebarBg.normal.texture = getSkinTexture(DropDownBoxSideBgTex);
+		dropDownSidebarBg.fixedHeight = false;
+		dropDownSidebarBg.fixedWidth = true;
+		dropDownSidebarBg.height = 8;
+		dropDownSidebarBg.width = 9;
+		dropDownSidebarBg.border.left = 1;
+		dropDownSidebarBg.border.top = 1;
+		dropDownSidebarBg.border.bottom = 1;
+
+		skin->setStyle("ListBoxSidebarBg", dropDownSidebarBg);
+		skin->setStyle("MenuBarSidebarBg", dropDownSidebarBg);
+		skin->setStyle("ContextMenuSidebarBg", dropDownSidebarBg);
+
+		// DropDown entry button
+		GUIElementStyle dropDownEntryBtnStyle;
+		dropDownEntryBtnStyle.normal.texture = getSkinTexture(DropDownBoxEntryNormalTex);
+		dropDownEntryBtnStyle.hover.texture = getSkinTexture(DropDownBoxEntryHoverTex);
+		dropDownEntryBtnStyle.active.texture = dropDownEntryBtnStyle.hover.texture;
+		dropDownEntryBtnStyle.normalOn.texture = dropDownEntryBtnStyle.hover.texture;
+		dropDownEntryBtnStyle.hoverOn.texture = dropDownEntryBtnStyle.hover.texture;
+		dropDownEntryBtnStyle.activeOn.texture = dropDownEntryBtnStyle.hover.texture;
+		dropDownEntryBtnStyle.normal.textColor = TextNormalColor;
+		dropDownEntryBtnStyle.hover.textColor = TextNormalColor;
+		dropDownEntryBtnStyle.active.textColor = TextNormalColor;
+		dropDownEntryBtnStyle.normalOn.textColor = TextNormalColor;
+		dropDownEntryBtnStyle.hoverOn.textColor = TextNormalColor;
+		dropDownEntryBtnStyle.activeOn.textColor = TextNormalColor;
+		dropDownEntryBtnStyle.fixedHeight = true;
+		dropDownEntryBtnStyle.fixedWidth = false;
+		dropDownEntryBtnStyle.height = 16;
+		dropDownEntryBtnStyle.width = 30;
+		dropDownEntryBtnStyle.font = font;
+		dropDownEntryBtnStyle.fontSize = DefaultFontSize;
+		dropDownEntryBtnStyle.textHorzAlign = THA_Left;
+		dropDownEntryBtnStyle.textVertAlign = TVA_Center;
+
+		skin->setStyle(GUIDropDownContent::ENTRY_STYLE_TYPE, dropDownEntryBtnStyle);
+
+		// DropDown entry button with expand
+		GUIElementStyle dropDownEntryExpBtnStyle;
+		dropDownEntryExpBtnStyle.normal.texture = getSkinTexture(DropDownBoxEntryExpNormalTex);
+		dropDownEntryExpBtnStyle.hover.texture = getSkinTexture(DropDownBoxEntryExpHoverTex);
+		dropDownEntryExpBtnStyle.active.texture = dropDownEntryExpBtnStyle.hover.texture;
+		dropDownEntryExpBtnStyle.normalOn.texture = dropDownEntryExpBtnStyle.hover.texture;
+		dropDownEntryExpBtnStyle.hoverOn.texture = dropDownEntryExpBtnStyle.hover.texture;
+		dropDownEntryExpBtnStyle.activeOn.texture = dropDownEntryExpBtnStyle.hover.texture;
+		dropDownEntryExpBtnStyle.normal.textColor = TextNormalColor;
+		dropDownEntryExpBtnStyle.hover.textColor = TextNormalColor;
+		dropDownEntryExpBtnStyle.active.textColor = TextNormalColor;
+		dropDownEntryExpBtnStyle.normalOn.textColor = TextNormalColor;
+		dropDownEntryExpBtnStyle.hoverOn.textColor = TextNormalColor;
+		dropDownEntryExpBtnStyle.activeOn.textColor = TextNormalColor;
+		dropDownEntryExpBtnStyle.fixedHeight = true;
+		dropDownEntryExpBtnStyle.fixedWidth = false;
+		dropDownEntryExpBtnStyle.height = 16;
+		dropDownEntryExpBtnStyle.width = 30;
+		dropDownEntryExpBtnStyle.border.right = 13;
+		dropDownEntryExpBtnStyle.font = font;
+		dropDownEntryExpBtnStyle.fontSize = DefaultFontSize;
+		dropDownEntryExpBtnStyle.textHorzAlign = THA_Left;
+		dropDownEntryExpBtnStyle.textVertAlign = TVA_Center;
+
+		skin->setStyle(GUIDropDownContent::ENTRY_EXP_STYLE_TYPE, dropDownEntryExpBtnStyle);
+
+		// Drop down separator
+		GUIElementStyle dropDownSeparatorStyle;
+		dropDownSeparatorStyle.normal.texture = getSkinTexture(DropDownSeparatorTex);
+		dropDownSeparatorStyle.fixedHeight = true;
+		dropDownSeparatorStyle.fixedWidth = false;
+		dropDownSeparatorStyle.height = 3;
+		dropDownSeparatorStyle.width = 30;
+
+		skin->setStyle(GUIDropDownContent::SEPARATOR_STYLE_TYPE, dropDownSeparatorStyle);
+
+		// Drop down content
+		GUIElementStyle dropDownContentStyle;
+		dropDownContentStyle.minWidth = 50;
+		dropDownContentStyle.minHeight = 20;
+		dropDownContentStyle.subStyles[GUIDropDownContent::ENTRY_STYLE_TYPE] = GUIDropDownContent::ENTRY_STYLE_TYPE;
+		dropDownContentStyle.subStyles[GUIDropDownContent::ENTRY_EXP_STYLE_TYPE] = GUIDropDownContent::ENTRY_EXP_STYLE_TYPE;
+		dropDownContentStyle.subStyles[GUIDropDownContent::SEPARATOR_STYLE_TYPE] = GUIDropDownContent::SEPARATOR_STYLE_TYPE;
+
+		skin->setStyle("ListBoxContent", dropDownContentStyle);
+		skin->setStyle("MenuBarContent", dropDownContentStyle);
+		skin->setStyle("ContextMenuContent", dropDownContentStyle);
+
+		// DropDown box frame
+		GUIElementStyle dropDownBoxStyle;
+		dropDownBoxStyle.normal.texture = getSkinTexture(DropDownBoxBgTex);
+		dropDownBoxStyle.hover.texture = dropDownBoxStyle.normal.texture;
+		dropDownBoxStyle.active.texture = dropDownBoxStyle.hover.texture;
+		dropDownBoxStyle.fixedHeight = false;
+		dropDownBoxStyle.fixedWidth = false;
+		dropDownBoxStyle.border.left = 2;
+		dropDownBoxStyle.border.right = 2;
+		dropDownBoxStyle.border.top = 2;
+		dropDownBoxStyle.border.bottom = 4;
+		dropDownBoxStyle.margins.left = 6;
+		dropDownBoxStyle.margins.right = 6;
+		dropDownBoxStyle.margins.top = 4;
+		dropDownBoxStyle.margins.bottom = 6;
+
+		skin->setStyle("ListBoxFrame", dropDownBoxStyle);
+		skin->setStyle("MenuBarFrame", dropDownBoxStyle);
+		skin->setStyle("ContextMenuFrame", dropDownBoxStyle);
+
+		/************************************************************************/
+		/* 								TOOLTIP                      			*/
+		/************************************************************************/
+
+		GUIElementStyle tooltipFrameStyle;
+		tooltipFrameStyle.normal.texture = getSkinTexture(DropDownBoxBgTex);
+		tooltipFrameStyle.hover.texture = tooltipFrameStyle.normal.texture;
+		tooltipFrameStyle.active.texture = tooltipFrameStyle.hover.texture;
+		tooltipFrameStyle.fixedHeight = false;
+		tooltipFrameStyle.fixedWidth = false;
+		tooltipFrameStyle.border.left = 2;
+		tooltipFrameStyle.border.right = 2;
+		tooltipFrameStyle.border.top = 2;
+		tooltipFrameStyle.border.bottom = 4;
+		tooltipFrameStyle.margins.left = 6;
+		tooltipFrameStyle.margins.right = 6;
+		tooltipFrameStyle.margins.top = 4;
+		tooltipFrameStyle.margins.bottom = 6;
+
+		skin->setStyle(GUITooltip::getFrameStyleName(), tooltipFrameStyle);
+
+		/************************************************************************/
+		/* 									OTHER                      			*/
+		/************************************************************************/
+
+		// Right-aligned label
+		GUIElementStyle rightAlignedLabelStyle;
+		rightAlignedLabelStyle.font = font;
+		rightAlignedLabelStyle.fontSize = DefaultFontSize;
+		rightAlignedLabelStyle.fixedWidth = false;
+		rightAlignedLabelStyle.fixedHeight = true;
+		rightAlignedLabelStyle.height = 11;
+		rightAlignedLabelStyle.minWidth = 10;
+		rightAlignedLabelStyle.textHorzAlign = THA_Right;
+		rightAlignedLabelStyle.normal.textColor = TextNormalColor;
+
+		skin->setStyle("RightAlignedLabel", rightAlignedLabelStyle);
+
+		return skin;
+	}
+
+	void BuiltinResources::generateTextures()
+	{
+		PixelDataPtr blackPixelData = PixelData::create(2, 2, 1, PF_R8G8B8A8);
+		blackPixelData->setColorAt(Color::Black, 0, 0);
+		blackPixelData->setColorAt(Color::Black, 0, 1);
+		blackPixelData->setColorAt(Color::Black, 1, 0);
+		blackPixelData->setColorAt(Color::Black, 1, 1);
+
+		TexturePtr blackTexture = Texture::_createPtr(blackPixelData);
+
+		PixelDataPtr whitePixelData = PixelData::create(2, 2, 1, PF_R8G8B8A8);
+		whitePixelData->setColorAt(Color::White, 0, 0);
+		whitePixelData->setColorAt(Color::White, 0, 1);
+		whitePixelData->setColorAt(Color::White, 1, 0);
+		whitePixelData->setColorAt(Color::White, 1, 1);
+
+		TexturePtr whiteTexture = Texture::_createPtr(whitePixelData);
+
+		PixelDataPtr normalPixelData = PixelData::create(2, 2, 1, PF_R8G8B8A8);
+
+		Color encodedNormal(0.5f, 0.5f, 1.0f);
+		normalPixelData->setColorAt(encodedNormal, 0, 0);
+		normalPixelData->setColorAt(encodedNormal, 0, 1);
+		normalPixelData->setColorAt(encodedNormal, 1, 0);
+		normalPixelData->setColorAt(encodedNormal, 1, 1);
+
+		TexturePtr normalTexture = Texture::_createPtr(normalPixelData);
+
+		// Save all textures
+		Path outputDir = FileSystem::getWorkingDirectoryPath() + mEngineTextureFolder;
+
+		auto saveTexture = [&](const Path& path, const SPtr<Texture>& texture)
+		{
+			HResource textureResource;
+			if (FileSystem::exists(path))
+				textureResource = gResources().load(path);
+
+			if (textureResource.isLoaded())
+				gResources().update(textureResource, texture);
+			else
+				textureResource = gResources()._createResourceHandle(texture);
+
+			gResources().save(textureResource, path, true);
+			mResourceManifest->registerResource(textureResource.getUUID(), path);
+		};
+
+		Path whitePath = outputDir + TextureWhiteFile;
+		saveTexture(whitePath, whiteTexture);
+
+		Path blackPath = outputDir + TextureBlackFile;
+		saveTexture(blackPath, blackTexture);
+
+		Path normalPath = outputDir + TextureNormalFile;
+		saveTexture(normalPath, normalTexture);
+	}
+
+	void BuiltinResources::generateMeshes()
+	{
+		VertexDataDescPtr vertexDesc = bs_shared_ptr_new<VertexDataDesc>();
+		vertexDesc->addVertElem(VET_FLOAT3, VES_POSITION);
+		vertexDesc->addVertElem(VET_FLOAT3, VES_NORMAL);
+		vertexDesc->addVertElem(VET_COLOR, VES_COLOR);
+
+		UINT32 boxNumVertices = 0;
+		UINT32 boxNumIndices = 0;
+		ShapeMeshes3D::getNumElementsAABox(boxNumVertices, boxNumIndices);
+		MeshDataPtr boxMeshData = bs_shared_ptr_new<MeshData>(boxNumVertices, boxNumIndices, vertexDesc);
+		AABox box(Vector3(-0.5f, -0.5f, -0.5f), Vector3(0.5f, 0.5f, 0.5f));
+
+		ShapeMeshes3D::solidAABox(box, boxMeshData, 0, 0);
+		MeshPtr boxMesh = Mesh::_createPtr(boxMeshData);
+
+		UINT32 sphereNumVertices = 0;
+		UINT32 sphereNumIndices = 0;
+		ShapeMeshes3D::getNumElementsSphere(3, sphereNumVertices, sphereNumIndices);
+		MeshDataPtr sphereMeshData = bs_shared_ptr_new<MeshData>(sphereNumVertices, sphereNumIndices, vertexDesc);
+
+		ShapeMeshes3D::solidSphere(Sphere(Vector3::ZERO, 1.0f), sphereMeshData, 0, 0, 3);
+		MeshPtr sphereMesh = Mesh::_createPtr(sphereMeshData);
+
+		UINT32 coneNumVertices = 0;
+		UINT32 coneNumIndices = 0;
+		ShapeMeshes3D::getNumElementsCone(10, coneNumVertices, coneNumIndices);
+		MeshDataPtr coneMeshData = bs_shared_ptr_new<MeshData>(coneNumVertices, coneNumIndices, vertexDesc);
+
+		ShapeMeshes3D::solidCone(Vector3::ZERO, Vector3::UNIT_Y, 1.0f, 1.0f, coneMeshData, 0, 0);
+		MeshPtr coneMesh = Mesh::_createPtr(coneMeshData);
+
+		UINT32 quadNumVertices = 8;
+		UINT32 quadNumIndices = 12;
+		ShapeMeshes3D::getNumElementsQuad(quadNumVertices, quadNumIndices);
+		MeshDataPtr quadMeshData = bs_shared_ptr_new<MeshData>(quadNumVertices, quadNumIndices, vertexDesc);
+
+		std::array<Vector3, 2> axes = { Vector3::UNIT_X, Vector3::UNIT_Y };
+		std::array<float, 2> sizes = { 1.0f, 1.0f };
+		Rect3 rect(Vector3::ZERO, axes, sizes);
+		ShapeMeshes3D::solidQuad(rect, quadMeshData, 0, 0);
+		MeshPtr quadMesh = Mesh::_createPtr(quadMeshData);
+
+		UINT32 discNumVertices = 0;
+		UINT32 discNumIndices = 0;
+		ShapeMeshes3D::getNumElementsDisc(10, discNumVertices, discNumIndices);
+		MeshDataPtr discMeshData = bs_shared_ptr_new<MeshData>(discNumVertices, discNumIndices, vertexDesc);
+
+		ShapeMeshes3D::solidDisc(Vector3::ZERO, 1.0f, Vector3::UNIT_Y, discMeshData, 0, 0);
+		MeshPtr discMesh = Mesh::_createPtr(discMeshData);
+
+		// Save all meshes
+		Path outputDir = FileSystem::getWorkingDirectoryPath() + mEngineMeshFolder;
+
+		auto saveMesh = [&](const Path& path, const MeshPtr& mesh)
+		{
+			HResource meshResource;
+			if (FileSystem::exists(path))
+				meshResource = gResources().load(path);
+			
+			if (meshResource.isLoaded())
+				gResources().update(meshResource, mesh);
+			else
+				meshResource = gResources()._createResourceHandle(mesh);
+
+			gResources().save(meshResource, path, true);
+			mResourceManifest->registerResource(meshResource.getUUID(), path);
+		};
+
+		Path boxPath = outputDir + MeshBoxFile;
+		saveMesh(boxPath, boxMesh);
+
+		Path spherePath = outputDir + MeshSphereFile;
+		saveMesh(spherePath, sphereMesh);
+
+		Path conePath = outputDir + MeshConeFile;
+		saveMesh(conePath, coneMesh);
+
+		Path quadPath = outputDir + MeshQuadFile;
+		saveMesh(quadPath, quadMesh);
+
+		Path discPath = outputDir + MeshDiscFile;
+		saveMesh(discPath, discMesh);
+	}
+
+	HSpriteTexture BuiltinResources::getSkinTexture(const WString& name)
+	{
+		Path texturePath = FileSystem::getWorkingDirectoryPath();
+		texturePath.append(mEngineSkinFolder);
+		texturePath.append(L"sprite_" + name + L".asset");
+
+		return gResources().load<SpriteTexture>(texturePath);
+	}
+
+	HShader BuiltinResources::getShader(const Path& path)
+	{
+		Path programPath = mEngineShaderFolder;
+		programPath.append(path);
+		programPath.setExtension(programPath.getExtension() + ".asset");
+
+		return gResources().load<Shader>(programPath);
+	}
+
+	HTexture BuiltinResources::getCursorTexture(const WString& name)
+	{
+		Path cursorPath = FileSystem::getWorkingDirectoryPath();
+		cursorPath.append(mEngineCursorFolder);
+		cursorPath.append(name + L".asset");
+
+		return gResources().load<Texture>(cursorPath);
+	}
+
+	const PixelData& BuiltinResources::getCursorArrow(Vector2I& hotSpot)
+	{
+		hotSpot = CursorArrowHotspot;
+		return *mCursorArrow.get();
+	}
+
+	const PixelData& BuiltinResources::getCursorArrowDrag(Vector2I& hotSpot)
+	{
+		hotSpot = CursorArrowDragHotspot;
+		return *mCursorArrowDrag.get();
+	}
+
+	const PixelData& BuiltinResources::getCursorWait(Vector2I& hotSpot)
+	{
+		hotSpot = CursorWaitHotspot;
+		return *mCursorWait.get();
+	}
+
+	const PixelData& BuiltinResources::getCursorIBeam(Vector2I& hotSpot)
+	{
+		hotSpot = CursorIBeamHotspot;
+		return *mCursorIBeam.get();
+	}
+
+	const PixelData& BuiltinResources::getCursorSizeNESW(Vector2I& hotSpot)
+	{
+		hotSpot = CursorSizeNESWHotspot;
+		return *mCursorSizeNESW.get();
+	}
+
+	const PixelData& BuiltinResources::getCursorSizeNS(Vector2I& hotSpot)
+	{
+		hotSpot = CursorSizeNSHotspot;
+		return *mCursorSizeNS.get();
+	}
+
+	const PixelData& BuiltinResources::getCursorSizeNWSE(Vector2I& hotSpot)
+	{
+		hotSpot = CursorSizeNWSEHotspot;
+		return *mCursorSizeNWSE.get();
+	}
+
+	const PixelData& BuiltinResources::getCursorSizeWE(Vector2I& hotSpot)
+	{
+		hotSpot = CursorSizeWEHotspot;
+		return *mCursorSizeWE.get();
+	}
+
+	const PixelData& BuiltinResources::getCursorDeny(Vector2I& hotSpot)
+	{
+		hotSpot = CursorDenyHotspot;
+		return *mCursorDeny.get();
+	}
+
+	const PixelData& BuiltinResources::getCursorMoveLeftRight(Vector2I& hotSpot)
+	{
+		hotSpot = CursorArrowLeftRightHotspot;
+		return *mCursorArrowLeftRight.get();
+	}
+
+	const PixelData& BuiltinResources::getBansheeIcon()
+	{
+		return *mBansheeIcon.get();
+	}
+
+	PixelDataPtr BuiltinResources::getSplashScreen()
+	{
+		Path splashScreenPath = Paths::getEngineDataPath() + (WString(SplashScreenName) + L".asset");
+		FileDecoder fd(splashScreenPath);
+
+		return std::static_pointer_cast<PixelData>(fd.decode());
+	}
+
+	Path BuiltinResources::getShaderIncludeFolder()
+	{
+		return Paths::getEngineDataPath() + ShaderIncludeFolder;
+	}
+
+	Path BuiltinResources::getIconFolder()
+	{
+		return Paths::getEngineDataPath() + IconFolder;
+	}
+
+	HMesh BuiltinResources::getMesh(BuiltinMesh mesh) const
+	{
+		Path meshPath = FileSystem::getWorkingDirectoryPath();
+		meshPath.append(mEngineMeshFolder);
+
+		switch (mesh)
+		{
+		case BuiltinMesh::Box:
+			meshPath.append(MeshBoxFile);
+			break;
+		case BuiltinMesh::Sphere:
+			meshPath.append(MeshSphereFile);
+			break;
+		case BuiltinMesh::Cone:
+			meshPath.append(MeshConeFile);
+			break;
+		case BuiltinMesh::Quad:
+			meshPath.append(MeshQuadFile);
+			break;
+		case BuiltinMesh::Disc:
+			meshPath.append(MeshDiscFile);
+			break;
+		}
+
+		return gResources().load<Mesh>(meshPath);
+	}
+
+	HTexture BuiltinResources::getTexture(BuiltinTexture type)
+	{
+		Path texturePath = FileSystem::getWorkingDirectoryPath();
+		texturePath.append(Paths::getEngineDataPath());
+		texturePath.append(TextureFolder);
+
+		switch (type)
+		{
+		case BuiltinTexture::Black:
+			texturePath.append(TextureBlackFile);
+			break;
+		case BuiltinTexture::White:
+			texturePath.append(TextureWhiteFile);
+			break;
+		case BuiltinTexture::Normal:
+			texturePath.append(TextureNormalFile);
+			break;
+		}
+
+		return gResources().load<Texture>(texturePath);
+	}
+
+	HMaterial BuiltinResources::createSpriteTextMaterial() const
+	{
+		return Material::create(mShaderSpriteText);
+	}
+
+	HMaterial BuiltinResources::createSpriteImageMaterial() const
+	{
+		return Material::create(mShaderSpriteImage);
+	}
+
+	HMaterial BuiltinResources::createSpriteNonAlphaImageMaterial() const
+	{
+		return Material::create(mShaderSpriteNonAlphaImage);
+	}
+
+	void BuiltinResourcesHelper::importAssets(const Path& inputFolder, const Path& outputFolder, const ResourceManifestPtr& manifest)
+	{
+		if (!FileSystem::exists(inputFolder))
+			return;
+
+		UnorderedSet<Path> outputAssets;
+		auto importResource = [&](const Path& filePath)
+		{
+			Vector<std::pair<Path, ImportOptionsPtr>> resourcesToSave;
+
+			{
+				Path relativePath = filePath.getRelative(inputFolder);
+				relativePath.setFilename(relativePath.getWFilename() + L".asset");
+
+				ImportOptionsPtr importOptions = gImporter().createImportOptions(filePath);
+				if (importOptions != nullptr)
+				{
+					if (rtti_is_of_type<TextureImportOptions>(importOptions))
+					{
+						SPtr<TextureImportOptions> texImportOptions = std::static_pointer_cast<TextureImportOptions>(importOptions);
+						texImportOptions->setGenerateMipmaps(false);
+
+						resourcesToSave.push_back(std::make_pair(relativePath, texImportOptions));
+					}
+					else if (rtti_is_of_type<ShaderImportOptions>(importOptions))
+					{
+						// Check if the shader is used for a renderer material, in which case generate different variations
+						// according to #defines (if any are specified).
+						Vector<ShaderDefines> variations = RendererMaterialManager::_getVariations(relativePath);
+
+						if(variations.size() == 0) // Not a renderer material or no variations, save normally
+						{
+							resourcesToSave.push_back(std::make_pair(relativePath, nullptr));
+						}
+						else // Renderer material, save a copy for each variation
+						{
+							// Note: Renderer materials are returned in an undefined order, meaning that renderer materials
+							// will not properly persist references. But this should be okay since they are used only in low
+							// level systems.
+
+							UINT32 variationIdx = 0;
+							for(auto& variation : variations)
+							{
+								SPtr<ShaderImportOptions> shaderImportOptions = 
+									std::static_pointer_cast<ShaderImportOptions>(gImporter().createImportOptions(filePath));
+
+								shaderImportOptions->getDefines() = variation.getAll();
+
+								Path uniquePath = relativePath;
+								uniquePath.setFilename(relativePath.getFilename() + "_" + toString(variationIdx));
+								resourcesToSave.push_back(std::make_pair(relativePath, shaderImportOptions));
+							}
+
+							variationIdx++;
+						}
+					}
+					else
+						resourcesToSave.push_back(std::make_pair(relativePath, nullptr));
+				}
+				else
+					resourcesToSave.push_back(std::make_pair(relativePath, nullptr));
+			}
+
+			for(auto& entry : resourcesToSave)
+			{
+				Path relativeOutputPath = outputFolder + entry.first;;
+				Path outputPath = FileSystem::getWorkingDirectoryPath() + relativeOutputPath;
+
+				HResource resource;
+				if (FileSystem::exists(outputPath))
+					resource = gResources().load(outputPath);
+
+				if (resource != nullptr)
+					gImporter().reimport(resource, filePath, entry.second);
+				else
+					resource = Importer::instance().import(filePath, entry.second);
+
+				if (resource != nullptr)
+				{
+					Resources::instance().save(resource, outputPath, true);
+					manifest->registerResource(resource.getUUID(), outputPath);
+
+					outputAssets.insert(relativeOutputPath);
+				}
+			}
+			
+			return true;
+		};
+
+		Vector<Path> obsoleteAssets;
+		auto gatherObsolete = [&](const Path& filePath)
+		{
+			auto iterFind = outputAssets.find(filePath);
+			if (iterFind == outputAssets.end())
+				obsoleteAssets.push_back(filePath);
+
+			return true;
+		};
+
+		FileSystem::iterate(inputFolder, importResource);
+		FileSystem::iterate(outputFolder, gatherObsolete);
+
+		for (auto& obsoleteAssetPath : obsoleteAssets)
+			FileSystem::remove(obsoleteAssetPath);
+	}
+
+	void BuiltinResourcesHelper::importFont(const Path& inputFile, const WString& outputName, const Path& outputFolder,
+		const Vector<UINT32>& fontSizes, bool antialiasing, const ResourceManifestPtr& manifest)
+	{
+		ImportOptionsPtr fontImportOptions = Importer::instance().createImportOptions(inputFile);
+		if (rtti_is_of_type<FontImportOptions>(fontImportOptions))
+		{
+			FontImportOptions* importOptions = static_cast<FontImportOptions*>(fontImportOptions.get());
+
+			importOptions->setFontSizes(fontSizes);
+			importOptions->setRenderMode(antialiasing ? FontRenderMode::HintedSmooth : FontRenderMode::HintedRaster);
+		}
+		else
+			return;
+
+		HFont font = Importer::instance().import<Font>(inputFile, fontImportOptions);
+
+		WString fontName = outputName;
+		Path outputPath = FileSystem::getWorkingDirectoryPath() + outputFolder + fontName;
+		outputPath.setFilename(outputPath.getWFilename() + L".asset");
+
+		Resources::instance().save(font, outputPath, true);
+		manifest->registerResource(font.getUUID(), outputPath);
+
+		// Save font texture pages as well. TODO - Later maybe figure out a more automatic way to do this
+		for (auto& size : fontSizes)
+		{
+			SPtr<const FontBitmap> fontData = font->getBitmap(size);
+
+			Path texPageOutputPath = FileSystem::getWorkingDirectoryPath() + outputFolder;
+
+			UINT32 pageIdx = 0;
+			for (auto tex : fontData->texturePages)
+			{
+				texPageOutputPath.setFilename(fontName + L"_" + toWString(size) + L"_texpage_" + 
+					toWString(pageIdx) + L".asset");
+
+				Resources::instance().save(tex, texPageOutputPath, true);
+				manifest->registerResource(tex.getUUID(), texPageOutputPath);
+			}
+		}
+	}
+
+	void BuiltinResourcesHelper::generateSpriteTextures(const Path& folder, const ResourceManifestPtr& manifest)
+	{
+		if (!FileSystem::exists(folder))
+			return;
+
+		Vector<Path> filesToProcess;
+		auto gather = [&](const Path& filePath)
+		{
+			filesToProcess.push_back(filePath);
+
+			return true;
+		};
+
+		FileSystem::iterate(folder, gather);
+
+		for (auto& filePath : filesToProcess)
+		{
+			Path outputPath = FileSystem::getWorkingDirectoryPath() + filePath;
+			outputPath.setFilename(L"sprite_" + outputPath.getWFilename());
+
+			HTexture source = gResources().load<Texture>(filePath);
+
+			if (source != nullptr)
+			{
+				HSpriteTexture spriteTex = SpriteTexture::create(source);
+				Resources::instance().save(spriteTex, outputPath, true);
+				manifest->registerResource(spriteTex.getUUID(), outputPath);
+			}
+		}
+	}
+
+	void BuiltinResourcesHelper::writeTimestamp(const Path& file)
+	{
+		DataStreamPtr fileStream = FileSystem::createAndOpenFile(file);
+
+		time_t currentTime = std::time(nullptr);
+		fileStream->write(&currentTime, sizeof(currentTime));
+		fileStream->close();
+	}
+
+	bool BuiltinResourcesHelper::checkForModifications(const Path& folder, const Path& timeStampFile)
+	{
+		if (!FileSystem::exists(timeStampFile))
+			return true;
+
+		DataStreamPtr fileStream = FileSystem::openFile(timeStampFile);
+		time_t lastUpdateTime = 0;
+		fileStream->read(&lastUpdateTime, sizeof(lastUpdateTime));
+		fileStream->close();
+
+		bool upToDate = true;
+		auto checkUpToDate = [&](const Path& filePath)
+		{
+			time_t fileLastModified = FileSystem::getLastModifiedTime(filePath);
+
+			if (fileLastModified > lastUpdateTime)
+			{
+				upToDate = false;
+				return false;
+			}
+
+			return true;
+		};
+
+		FileSystem::iterate(folder, checkUpToDate, checkUpToDate);
+
+		return !upToDate;
+	}
 }

+ 83 - 69
Source/BansheeEngine/Source/BsRendererMaterialManager.cpp

@@ -1,70 +1,84 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#include "BsRendererMaterialManager.h"
-#include "BsBuiltinResources.h"
-#include "BsCoreThread.h"
-#include "BsShader.h"
-
-namespace BansheeEngine
-{
-	RendererMaterialManager::RendererMaterialManager()
-	{
-		BuiltinResources& br = BuiltinResources::instance();
-
-		Vector<RendererMaterialData>& materials = getMaterials();
-		Vector<SPtr<ShaderCore>> shaders;
-		for (auto& material : materials)
-		{
-			HShader shader = br.getShader(material.shaderPath);
-			if (shader.isLoaded())
-				shaders.push_back(shader->getCore());
-			else
-				shaders.push_back(nullptr);
-		}
-
-		gCoreThread().queueCommand(std::bind(&RendererMaterialManager::initOnCore, shaders));
-	}
-
-	RendererMaterialManager::~RendererMaterialManager()
-	{
-		gCoreAccessor().queueCommand(std::bind(&RendererMaterialManager::destroyOnCore));
-	}
-
-	void RendererMaterialManager::_registerMaterial(RendererMaterialMetaData* metaData, const Path& shaderPath)
-	{
-		Lock<> lock(getMutex());
-
-		Vector<RendererMaterialData>& materials = getMaterials();
-		materials.push_back({metaData, shaderPath});
-	}
-
-	void RendererMaterialManager::initOnCore(const Vector<SPtr<ShaderCore>>& shaders)
-	{
-		Lock<> lock(getMutex());
-
-		Vector<RendererMaterialData>& materials = getMaterials();
-		for (UINT32 i = 0; i < materials.size(); i++)
-			materials[i].metaData->shader = shaders[i];
-	}
-
-	void RendererMaterialManager::destroyOnCore()
-	{
-		Lock<> lock(getMutex());
-
-		Vector<RendererMaterialData>& materials = getMaterials();
-		for (UINT32 i = 0; i < materials.size(); i++)
-			materials[i].metaData->shader = nullptr;
-	}
-
-	Vector<RendererMaterialManager::RendererMaterialData>& RendererMaterialManager::getMaterials()
-	{
-		static Vector<RendererMaterialData> materials;
-		return materials;
-	}
-
-	Mutex& RendererMaterialManager::getMutex()
-	{
-		static Mutex mutex;
-		return mutex;
-	}
+//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
+//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
+#include "BsRendererMaterialManager.h"
+#include "BsBuiltinResources.h"
+#include "BsCoreThread.h"
+#include "BsShader.h"
+
+namespace BansheeEngine
+{
+	RendererMaterialManager::RendererMaterialManager()
+	{
+		BuiltinResources& br = BuiltinResources::instance();
+
+		Vector<RendererMaterialData>& materials = getMaterials();
+		Vector<SPtr<ShaderCore>> shaders;
+		for (auto& material : materials)
+		{
+			HShader shader = br.getShader(material.shaderPath);
+			if (shader.isLoaded())
+				shaders.push_back(shader->getCore());
+			else
+				shaders.push_back(nullptr);
+		}
+
+		gCoreThread().queueCommand(std::bind(&RendererMaterialManager::initOnCore, shaders));
+	}
+
+	RendererMaterialManager::~RendererMaterialManager()
+	{
+		gCoreAccessor().queueCommand(std::bind(&RendererMaterialManager::destroyOnCore));
+	}
+
+	void RendererMaterialManager::_registerMaterial(RendererMaterialMetaData* metaData, const Path& shaderPath)
+	{
+		Lock<> lock(getMutex());
+
+		Vector<RendererMaterialData>& materials = getMaterials();
+		materials.push_back({metaData, shaderPath});
+	}
+
+	Vector<ShaderDefines> RendererMaterialManager::_getVariations(const Path& shaderPath)
+	{
+		Vector<ShaderDefines> output;
+
+		Vector<RendererMaterialData>& materials = getMaterials();
+		for (auto& entry : materials)
+		{
+			if (entry.shaderPath == shaderPath)
+				output.push_back(entry.metaData->defines);
+		}
+
+		return output;
+	}
+
+	void RendererMaterialManager::initOnCore(const Vector<SPtr<ShaderCore>>& shaders)
+	{
+		Lock<> lock(getMutex());
+
+		Vector<RendererMaterialData>& materials = getMaterials();
+		for (UINT32 i = 0; i < materials.size(); i++)
+			materials[i].metaData->shader = shaders[i];
+	}
+
+	void RendererMaterialManager::destroyOnCore()
+	{
+		Lock<> lock(getMutex());
+
+		Vector<RendererMaterialData>& materials = getMaterials();
+		for (UINT32 i = 0; i < materials.size(); i++)
+			materials[i].metaData->shader = nullptr;
+	}
+
+	Vector<RendererMaterialManager::RendererMaterialData>& RendererMaterialManager::getMaterials()
+	{
+		static Vector<RendererMaterialData> materials;
+		return materials;
+	}
+
+	Mutex& RendererMaterialManager::getMutex()
+	{
+		static Mutex mutex;
+		return mutex;
+	}
 }

+ 10 - 0
Source/BansheeEngine/Source/BsRendererUtility.cpp

@@ -398,6 +398,11 @@ namespace BansheeEngine
 		mSource = mMaterial->getParamTexture("gSource");
 	}
 
+	void BlitMat::_initDefines(ShaderDefines& defines)
+	{
+		// Do nothing
+	}
+
 	void BlitMat::setParameters(const SPtr<TextureCore>& source)
 	{
 		mSource.set(source);
@@ -409,6 +414,11 @@ namespace BansheeEngine
 		mMaterial->getParam("gNumSamples", mNumSamples);
 	}
 
+	void ResolveMat::_initDefines(ShaderDefines& defines)
+	{
+		// Do nothing
+	}
+
 	void ResolveMat::setParameters(const SPtr<TextureCore>& source)
 	{
 		mSource.set(source);

+ 37 - 34
Source/BansheeSL/Include/BsSLImporter.h

@@ -1,35 +1,38 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsSLPrerequisites.h"
-#include "BsSpecificImporter.h"
-
-namespace BansheeEngine
-{
-	/** @addtogroup BansheeSL
-	 *  @{
-	 */
-
-	/** 
-	 * Importer using for importing a shader written using the BSL syntax. Shader files are plain text files ending with
-	 * ".bsl" extension.
-	 */
-	class BS_SL_EXPORT SLImporter : public SpecificImporter
-	{
-	public:
-		SLImporter();
-		virtual ~SLImporter();
-
-		/** @copydoc SpecificImporter::isExtensionSupported */
-		virtual bool isExtensionSupported(const WString& ext) const override;
-
-		/** @copydoc SpecificImporter::isMagicNumberSupported */
-		virtual bool isMagicNumberSupported(const UINT8* magicNumPtr, UINT32 numBytes) const override;
-
-		/** @copydoc SpecificImporter::import */
-		virtual ResourcePtr import(const Path& filePath, ConstImportOptionsPtr importOptions) override;
-	};
-
-	/** @} */
+//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
+//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
+#pragma once
+
+#include "BsSLPrerequisites.h"
+#include "BsSpecificImporter.h"
+
+namespace BansheeEngine
+{
+	/** @addtogroup BansheeSL
+	 *  @{
+	 */
+
+	/** 
+	 * Importer using for importing a shader written using the BSL syntax. Shader files are plain text files ending with
+	 * ".bsl" extension.
+	 */
+	class BS_SL_EXPORT SLImporter : public SpecificImporter
+	{
+	public:
+		SLImporter();
+		virtual ~SLImporter();
+
+		/** @copydoc SpecificImporter::isExtensionSupported */
+		virtual bool isExtensionSupported(const WString& ext) const override;
+
+		/** @copydoc SpecificImporter::isMagicNumberSupported */
+		virtual bool isMagicNumberSupported(const UINT8* magicNumPtr, UINT32 numBytes) const override;
+
+		/** @copydoc SpecificImporter::import */
+		virtual ResourcePtr import(const Path& filePath, ConstImportOptionsPtr importOptions) override;
+
+		/** @copydoc SpecificImporter::createImportOptions */
+		virtual ImportOptionsPtr createImportOptions() const override;
+	};
+
+	/** @} */
 }

+ 62 - 56
Source/BansheeSL/Source/BsSLImporter.cpp

@@ -1,57 +1,63 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#include "BsSLImporter.h"
-#include "BsDataStream.h"
-#include "BsFileSystem.h"
-#include "BsSLFXCompiler.h"
-
-namespace BansheeEngine
-{
-	SLImporter::SLImporter()
-		:SpecificImporter()
-	{
-
-	}
-
-	SLImporter::~SLImporter()
-	{
-
-	}
-
-	bool SLImporter::isExtensionSupported(const WString& ext) const
-	{
-		WString lowerCaseExt = ext;
-		StringUtil::toLowerCase(lowerCaseExt);
-
-		return lowerCaseExt == L"bsl";
-	}
-
-	bool SLImporter::isMagicNumberSupported(const UINT8* magicNumPtr, UINT32 numBytes) const
-	{
-		return true; // Plain-text so I don't even check for magic number
-	}
-
-	ResourcePtr SLImporter::import(const Path& filePath, ConstImportOptionsPtr importOptions)
-	{
-		DataStreamPtr stream = FileSystem::openFile(filePath);
-		String source = stream->getAsString();
-
-		BSLFXCompileResult result = BSLFXCompiler::compile(source);
-
-		if (result.shader != nullptr)
-			result.shader->setName(filePath.getWFilename(false));
-		else
-		{
-			String file;
-			if (result.errorFile.empty())
-				file = filePath.toString();
-			else
-				file = result.errorFile;
-
-			LOGERR("Error while parsing shader FX code \"" + file + "\":\n" + result.errorMessage + ". Location: " +
-				toString(result.errorLine) + " (" + toString(result.errorColumn) + ")");
-		}
-
-		return result.shader;
-	}
+//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
+//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
+#include "BsSLImporter.h"
+#include "BsDataStream.h"
+#include "BsFileSystem.h"
+#include "BsSLFXCompiler.h"
+#include "BsShaderImportOptions.h"
+
+namespace BansheeEngine
+{
+	SLImporter::SLImporter()
+		:SpecificImporter()
+	{
+
+	}
+
+	SLImporter::~SLImporter()
+	{
+
+	}
+
+	bool SLImporter::isExtensionSupported(const WString& ext) const
+	{
+		WString lowerCaseExt = ext;
+		StringUtil::toLowerCase(lowerCaseExt);
+
+		return lowerCaseExt == L"bsl";
+	}
+
+	bool SLImporter::isMagicNumberSupported(const UINT8* magicNumPtr, UINT32 numBytes) const
+	{
+		return true; // Plain-text so I don't even check for magic number
+	}
+
+	ResourcePtr SLImporter::import(const Path& filePath, ConstImportOptionsPtr importOptions)
+	{
+		DataStreamPtr stream = FileSystem::openFile(filePath);
+		String source = stream->getAsString();
+
+		BSLFXCompileResult result = BSLFXCompiler::compile(source);
+
+		if (result.shader != nullptr)
+			result.shader->setName(filePath.getWFilename(false));
+		else
+		{
+			String file;
+			if (result.errorFile.empty())
+				file = filePath.toString();
+			else
+				file = result.errorFile;
+
+			LOGERR("Error while parsing shader FX code \"" + file + "\":\n" + result.errorMessage + ". Location: " +
+				toString(result.errorLine) + " (" + toString(result.errorColumn) + ")");
+		}
+
+		return result.shader;
+	}
+
+	ImportOptionsPtr SLImporter::createImportOptions() const
+	{
+		return bs_shared_ptr_new<ShaderImportOptions>();
+	}
 }

+ 178 - 163
Source/RenderBeast/Source/BsLightRendering.cpp

@@ -1,164 +1,179 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#include "BsLightRendering.h"
-#include "BsMaterial.h"
-#include "BsShader.h"
-#include "BsRenderBeast.h"
-#include "BsRenderTargets.h"
-#include "BsGpuParams.h"
-#include "BsLight.h"
-
-namespace BansheeEngine
-{
-	void PerLightParams::setParameters(const LightCore* light)
-	{
-		// Note: I could just copy the data directly to the parameter buffer if I ensured the parameter
-		// layout matches
-
-		Vector4 positionAndType = (Vector4)light->getPosition();
-
-		switch (light->getType())
-		{
-		case LightType::Directional:
-			positionAndType.w = 0;
-			break;
-		case LightType::Point:
-			positionAndType.w = 0.3f;
-			break;
-		case LightType::Spot:
-			positionAndType.w = 0.8f;
-			break;
-		}
-
-		mBuffer.gLightPositionAndType.set(positionAndType);
-			
-		Vector4 colorAndIntensity;
-		colorAndIntensity.x = light->getColor().r;
-		colorAndIntensity.y = light->getColor().g;
-		colorAndIntensity.z = light->getColor().b;
-		colorAndIntensity.w = light->getIntensity();
-
-		mBuffer.gLightColorAndIntensity.set(colorAndIntensity);
-
-		Radian spotAngle = Math::clamp(light->getSpotAngle() * 0.5f, Degree(1), Degree(90));
-		Radian spotFalloffAngle = Math::clamp(light->getSpotFalloffAngle() * 0.5f, Degree(1), (Degree)spotAngle);
-
-		Vector4 spotAnglesAndInvSqrdRadius;
-		spotAnglesAndInvSqrdRadius.x = spotAngle.valueRadians();
-		spotAnglesAndInvSqrdRadius.y = Math::cos(spotAnglesAndInvSqrdRadius.x);
-		spotAnglesAndInvSqrdRadius.z = 1.0f / (Math::cos(spotFalloffAngle) - spotAnglesAndInvSqrdRadius.y);
-		spotAnglesAndInvSqrdRadius.w = 1.0f / (light->getBounds().getRadius() * light->getBounds().getRadius());
-
-		mBuffer.gLightSpotAnglesAndSqrdInvRadius.set(spotAnglesAndInvSqrdRadius);
-
-		mBuffer.gLightDirection.set(-light->getRotation().zAxis());
-
-		Vector4 lightGeometry;
-		lightGeometry.x = light->getType() == LightType::Spot ? (float)LightCore::LIGHT_CONE_NUM_SIDES : 0;
-		lightGeometry.y = (float)LightCore::LIGHT_CONE_NUM_SLICES;
-		lightGeometry.z = light->getBounds().getRadius();
-
-		float coneRadius = Math::sin(spotAngle) * light->getRange();
-		lightGeometry.w = coneRadius;
-
-		mBuffer.gLightGeometry.set(lightGeometry);
-
-		Matrix4 transform = Matrix4::TRS(light->getPosition(), light->getRotation(), Vector3::ONE);
-		mBuffer.gMatConeTransform.set(transform);
-	}
-
-	const SPtr<GpuParamBlockBufferCore>& PerLightParams::getBuffer() const
-	{
-		return mBuffer.getBuffer();
-	}
-	
-	DirectionalLightMat::DirectionalLightMat()
-	{
-		mMaterial->setParamBlockBuffer("PerLight", mParams.getBuffer());
-
-		auto& texParams = mMaterial->getShader()->getTextureParams();
-		for (auto& entry : texParams)
-		{
-			if (entry.second.rendererSemantic == RPS_GBufferA)
-				mGBufferA = mMaterial->getParamTexture(entry.second.name);
-			else if (entry.second.rendererSemantic == RPS_GBufferB)
-				mGBufferB = mMaterial->getParamTexture(entry.second.name);
-			else if (entry.second.rendererSemantic == RPS_GBufferDepth)
-				mGBufferDepth = mMaterial->getParamTexture(entry.second.name);
-		}
-	}
-
-	void DirectionalLightMat::setStaticParameters(const SPtr<RenderTargets>& gbuffer, const SPtr<GpuParamBlockBufferCore>& perCamera)
-	{
-		mGBufferA.set(gbuffer->getTextureA());
-		mGBufferB.set(gbuffer->getTextureB());
-		mGBufferDepth.set(gbuffer->getTextureDepth());
-
-		mMaterial->setParamBlockBuffer("PerCamera", perCamera);
-	}
-
-	void DirectionalLightMat::setParameters(const LightCore* light)
-	{
-		mParams.setParameters(light);
-	}
-
-	PointLightInMat::PointLightInMat()
-	{
-		mMaterial->setParamBlockBuffer("PerLight", mParams.getBuffer());
-
-		auto& texParams = mMaterial->getShader()->getTextureParams();
-		for (auto& entry : texParams)
-		{
-			if (entry.second.rendererSemantic == RPS_GBufferA)
-				mGBufferA = mMaterial->getParamTexture(entry.second.name);
-			else if (entry.second.rendererSemantic == RPS_GBufferB)
-				mGBufferB = mMaterial->getParamTexture(entry.second.name);
-			else if (entry.second.rendererSemantic == RPS_GBufferDepth)
-				mGBufferDepth = mMaterial->getParamTexture(entry.second.name);
-		}
-	}
-
-	void PointLightInMat::setStaticParameters(const SPtr<RenderTargets>& gbuffer, const SPtr<GpuParamBlockBufferCore>& perCamera)
-	{
-		mGBufferA.set(gbuffer->getTextureA());
-		mGBufferB.set(gbuffer->getTextureB());
-		mGBufferDepth.set(gbuffer->getTextureDepth());
-
-		mMaterial->setParamBlockBuffer("PerCamera", perCamera);
-	}
-
-	void PointLightInMat::setParameters(const LightCore* light)
-	{
-		mParams.setParameters(light);
-	}
-
-	PointLightOutMat::PointLightOutMat()
-	{
-		mMaterial->setParamBlockBuffer("PerLight", mParams.getBuffer());
-
-		auto& texParams = mMaterial->getShader()->getTextureParams();
-		for (auto& entry : texParams)
-		{
-			if (entry.second.rendererSemantic == RPS_GBufferA)
-				mGBufferA = mMaterial->getParamTexture(entry.second.name);
-			else if (entry.second.rendererSemantic == RPS_GBufferB)
-				mGBufferB = mMaterial->getParamTexture(entry.second.name);
-			else if (entry.second.rendererSemantic == RPS_GBufferDepth)
-				mGBufferDepth = mMaterial->getParamTexture(entry.second.name);
-		}
-	}
-
-	void PointLightOutMat::setStaticParameters(const SPtr<RenderTargets>& gbuffer, const SPtr<GpuParamBlockBufferCore>& perCamera)
-	{
-		mGBufferA.set(gbuffer->getTextureA());
-		mGBufferB.set(gbuffer->getTextureB());
-		mGBufferDepth.set(gbuffer->getTextureDepth());
-
-		mMaterial->setParamBlockBuffer("PerCamera", perCamera);
-	}
-
-	void PointLightOutMat::setParameters(const LightCore* light)
-	{
-		mParams.setParameters(light);
-	}
+//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
+//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
+#include "BsLightRendering.h"
+#include "BsMaterial.h"
+#include "BsShader.h"
+#include "BsRenderBeast.h"
+#include "BsRenderTargets.h"
+#include "BsGpuParams.h"
+#include "BsLight.h"
+
+namespace BansheeEngine
+{
+	void PerLightParams::setParameters(const LightCore* light)
+	{
+		// Note: I could just copy the data directly to the parameter buffer if I ensured the parameter
+		// layout matches
+
+		Vector4 positionAndType = (Vector4)light->getPosition();
+
+		switch (light->getType())
+		{
+		case LightType::Directional:
+			positionAndType.w = 0;
+			break;
+		case LightType::Point:
+			positionAndType.w = 0.3f;
+			break;
+		case LightType::Spot:
+			positionAndType.w = 0.8f;
+			break;
+		}
+
+		mBuffer.gLightPositionAndType.set(positionAndType);
+			
+		Vector4 colorAndIntensity;
+		colorAndIntensity.x = light->getColor().r;
+		colorAndIntensity.y = light->getColor().g;
+		colorAndIntensity.z = light->getColor().b;
+		colorAndIntensity.w = light->getIntensity();
+
+		mBuffer.gLightColorAndIntensity.set(colorAndIntensity);
+
+		Radian spotAngle = Math::clamp(light->getSpotAngle() * 0.5f, Degree(1), Degree(90));
+		Radian spotFalloffAngle = Math::clamp(light->getSpotFalloffAngle() * 0.5f, Degree(1), (Degree)spotAngle);
+
+		Vector4 spotAnglesAndInvSqrdRadius;
+		spotAnglesAndInvSqrdRadius.x = spotAngle.valueRadians();
+		spotAnglesAndInvSqrdRadius.y = Math::cos(spotAnglesAndInvSqrdRadius.x);
+		spotAnglesAndInvSqrdRadius.z = 1.0f / (Math::cos(spotFalloffAngle) - spotAnglesAndInvSqrdRadius.y);
+		spotAnglesAndInvSqrdRadius.w = 1.0f / (light->getBounds().getRadius() * light->getBounds().getRadius());
+
+		mBuffer.gLightSpotAnglesAndSqrdInvRadius.set(spotAnglesAndInvSqrdRadius);
+
+		mBuffer.gLightDirection.set(-light->getRotation().zAxis());
+
+		Vector4 lightGeometry;
+		lightGeometry.x = light->getType() == LightType::Spot ? (float)LightCore::LIGHT_CONE_NUM_SIDES : 0;
+		lightGeometry.y = (float)LightCore::LIGHT_CONE_NUM_SLICES;
+		lightGeometry.z = light->getBounds().getRadius();
+
+		float coneRadius = Math::sin(spotAngle) * light->getRange();
+		lightGeometry.w = coneRadius;
+
+		mBuffer.gLightGeometry.set(lightGeometry);
+
+		Matrix4 transform = Matrix4::TRS(light->getPosition(), light->getRotation(), Vector3::ONE);
+		mBuffer.gMatConeTransform.set(transform);
+	}
+
+	const SPtr<GpuParamBlockBufferCore>& PerLightParams::getBuffer() const
+	{
+		return mBuffer.getBuffer();
+	}
+	
+	DirectionalLightMat::DirectionalLightMat()
+	{
+		mMaterial->setParamBlockBuffer("PerLight", mParams.getBuffer());
+
+		auto& texParams = mMaterial->getShader()->getTextureParams();
+		for (auto& entry : texParams)
+		{
+			if (entry.second.rendererSemantic == RPS_GBufferA)
+				mGBufferA = mMaterial->getParamTexture(entry.second.name);
+			else if (entry.second.rendererSemantic == RPS_GBufferB)
+				mGBufferB = mMaterial->getParamTexture(entry.second.name);
+			else if (entry.second.rendererSemantic == RPS_GBufferDepth)
+				mGBufferDepth = mMaterial->getParamTexture(entry.second.name);
+		}
+	}
+
+	void DirectionalLightMat::_initDefines(ShaderDefines& defines)
+	{
+		// Do nothing
+	}
+
+	void DirectionalLightMat::setStaticParameters(const SPtr<RenderTargets>& gbuffer, const SPtr<GpuParamBlockBufferCore>& perCamera)
+	{
+		mGBufferA.set(gbuffer->getTextureA());
+		mGBufferB.set(gbuffer->getTextureB());
+		mGBufferDepth.set(gbuffer->getTextureDepth());
+
+		mMaterial->setParamBlockBuffer("PerCamera", perCamera);
+	}
+
+	void DirectionalLightMat::setParameters(const LightCore* light)
+	{
+		mParams.setParameters(light);
+	}
+
+	PointLightInMat::PointLightInMat()
+	{
+		mMaterial->setParamBlockBuffer("PerLight", mParams.getBuffer());
+
+		auto& texParams = mMaterial->getShader()->getTextureParams();
+		for (auto& entry : texParams)
+		{
+			if (entry.second.rendererSemantic == RPS_GBufferA)
+				mGBufferA = mMaterial->getParamTexture(entry.second.name);
+			else if (entry.second.rendererSemantic == RPS_GBufferB)
+				mGBufferB = mMaterial->getParamTexture(entry.second.name);
+			else if (entry.second.rendererSemantic == RPS_GBufferDepth)
+				mGBufferDepth = mMaterial->getParamTexture(entry.second.name);
+		}
+	}
+
+	void PointLightInMat::_initDefines(ShaderDefines& defines)
+	{
+		// Do nothing
+	}
+
+	void PointLightInMat::setStaticParameters(const SPtr<RenderTargets>& gbuffer, const SPtr<GpuParamBlockBufferCore>& perCamera)
+	{
+		mGBufferA.set(gbuffer->getTextureA());
+		mGBufferB.set(gbuffer->getTextureB());
+		mGBufferDepth.set(gbuffer->getTextureDepth());
+
+		mMaterial->setParamBlockBuffer("PerCamera", perCamera);
+	}
+
+	void PointLightInMat::setParameters(const LightCore* light)
+	{
+		mParams.setParameters(light);
+	}
+
+	PointLightOutMat::PointLightOutMat()
+	{
+		mMaterial->setParamBlockBuffer("PerLight", mParams.getBuffer());
+
+		auto& texParams = mMaterial->getShader()->getTextureParams();
+		for (auto& entry : texParams)
+		{
+			if (entry.second.rendererSemantic == RPS_GBufferA)
+				mGBufferA = mMaterial->getParamTexture(entry.second.name);
+			else if (entry.second.rendererSemantic == RPS_GBufferB)
+				mGBufferB = mMaterial->getParamTexture(entry.second.name);
+			else if (entry.second.rendererSemantic == RPS_GBufferDepth)
+				mGBufferDepth = mMaterial->getParamTexture(entry.second.name);
+		}
+	}
+
+	void PointLightOutMat::_initDefines(ShaderDefines& defines)
+	{
+		// Do nothing
+	}
+
+	void PointLightOutMat::setStaticParameters(const SPtr<RenderTargets>& gbuffer, const SPtr<GpuParamBlockBufferCore>& perCamera)
+	{
+		mGBufferA.set(gbuffer->getTextureA());
+		mGBufferB.set(gbuffer->getTextureB());
+		mGBufferDepth.set(gbuffer->getTextureDepth());
+
+		mMaterial->setParamBlockBuffer("PerCamera", perCamera);
+	}
+
+	void PointLightOutMat::setParameters(const LightCore* light)
+	{
+		mParams.setParameters(light);
+	}
 }

+ 5 - 0
Source/RenderBeast/Source/BsRenderBeast.cpp

@@ -1062,4 +1062,9 @@ namespace BansheeEngine
 			rs.setConstantBuffers(stage.type, params);
 		}
 	}
+
+	void DefaultMaterial::_initDefines(ShaderDefines& defines)
+	{
+		// Do nothing
+	}
 }