Pārlūkot izejas kodu

Merge branch 'master' into preview

BearishSun 9 gadi atpakaļ
vecāks
revīzija
ad2b404ff3
100 mainītis faili ar 3 papildinājumiem un 17819 dzēšanām
  1. 3 1
      .gitignore
  2. 0 577
      BansheeCore/BansheeCore.vcxproj
  3. 0 917
      BansheeCore/BansheeCore.vcxproj.filters
  4. 0 71
      BansheeCore/Include/BsMeshImportOptionsRTTI.h
  5. 0 494
      BansheeCore/Include/BsRenderAPI.h
  6. 0 65
      BansheeCore/Include/BsSpecificImporter.h
  7. 0 111
      BansheeCore/Source/BsTextureManager.cpp
  8. 0 233
      BansheeD3D11RenderAPI/BansheeD3D11RenderAPI.vcxproj.filters
  9. 0 83
      BansheeD3D11RenderAPI/Include/BsD3D11Device.h
  10. 0 78
      BansheeD3D11RenderAPI/Include/BsD3D11Driver.h
  11. 0 60
      BansheeD3D11RenderAPI/Include/BsD3D11GpuBufferView.h
  12. 0 45
      BansheeD3D11RenderAPI/Include/BsD3D11HLSLParamParser.h
  13. 0 86
      BansheeD3D11RenderAPI/Include/BsD3D11HardwareBuffer.h
  14. 0 175
      BansheeD3D11RenderAPI/Include/BsD3D11Mappings.h
  15. 0 31
      BansheeD3D11RenderAPI/Include/BsD3D11QueryManager.h
  16. 0 279
      BansheeD3D11RenderAPI/Include/BsD3D11RenderAPI.h
  17. 0 123
      BansheeD3D11RenderAPI/Include/BsD3D11TextureView.h
  18. 0 33
      BansheeD3D11RenderAPI/Source/BsD3D11QueryManager.cpp
  19. 0 200
      BansheeD3D9RenderAPI/BansheeD3D9RenderAPI.vcxproj.filters
  20. 0 83
      BansheeD3D9RenderAPI/Include/BsD3D9DeviceManager.h
  21. 0 66
      BansheeD3D9RenderAPI/Include/BsD3D9EventQuery.h
  22. 0 68
      BansheeD3D9RenderAPI/Include/BsD3D9GpuBuffer.h
  23. 0 99
      BansheeD3D9RenderAPI/Include/BsD3D9IndexBuffer.h
  24. 0 148
      BansheeD3D9RenderAPI/Include/BsD3D9Mappings.h
  25. 0 85
      BansheeD3D9RenderAPI/Include/BsD3D9OcclusionQuery.h
  26. 0 145
      BansheeD3D9RenderAPI/Include/BsD3D9PixelBuffer.h
  27. 0 31
      BansheeD3D9RenderAPI/Include/BsD3D9QueryManager.h
  28. 0 601
      BansheeD3D9RenderAPI/Include/BsD3D9RenderAPI.h
  29. 0 54
      BansheeD3D9RenderAPI/Include/BsD3D9Resource.h
  30. 0 92
      BansheeD3D9RenderAPI/Include/BsD3D9TimerQuery.h
  31. 0 99
      BansheeD3D9RenderAPI/Include/BsD3D9VertexBuffer.h
  32. 0 33
      BansheeD3D9RenderAPI/Source/BsD3D9QueryManager.cpp
  33. 0 454
      BansheeEditor/BansheeEditor.vcxproj
  34. 0 578
      BansheeEditor/BansheeEditor.vcxproj.filters
  35. 0 47
      BansheeEditor/Include/BsCmdUtility.h
  36. 0 149
      BansheeEditor/Include/BsCodeEditor.h
  37. 0 351
      BansheeEditor/Include/BsDockManager.h
  38. 0 57
      BansheeEditor/Include/BsDropDownWindowManager.h
  39. 0 40
      BansheeEditor/Include/BsEditorUtility.h
  40. 0 265
      BansheeEditor/Include/BsEditorWidget.h
  41. 0 196
      BansheeEditor/Include/BsEditorWidgetContainer.h
  42. 0 111
      BansheeEditor/Include/BsEditorWidgetManager.h
  43. 0 78
      BansheeEditor/Include/BsEditorWindow.h
  44. 0 120
      BansheeEditor/Include/BsEditorWindowBase.h
  45. 0 65
      BansheeEditor/Include/BsEditorWindowManager.h
  46. 0 68
      BansheeEditor/Include/BsGUIDockSlider.h
  47. 0 70
      BansheeEditor/Include/BsGUIDropButton.h
  48. 0 246
      BansheeEditor/Include/BsGUIListBoxField.h
  49. 0 268
      BansheeEditor/Include/BsGUIMenuBar.h
  50. 0 277
      BansheeEditor/Include/BsGUIResourceTreeView.h
  51. 0 97
      BansheeEditor/Include/BsGUISliderField.h
  52. 0 128
      BansheeEditor/Include/BsGUIStatusBar.h
  53. 0 131
      BansheeEditor/Include/BsGUITabButton.h
  54. 0 239
      BansheeEditor/Include/BsGUITabbedTitleBar.h
  55. 0 237
      BansheeEditor/Include/BsGUITextField.h
  56. 0 50
      BansheeEditor/Include/BsGUIWindowFrame.h
  57. 0 585
      BansheeEditor/Include/BsGizmoManager.h
  58. 0 115
      BansheeEditor/Include/BsHandleSliderDisc.h
  59. 0 72
      BansheeEditor/Include/BsHandleSliderLine.h
  60. 0 82
      BansheeEditor/Include/BsHandleSliderPlane.h
  61. 0 80
      BansheeEditor/Include/BsMainEditorWindow.h
  62. 0 85
      BansheeEditor/Include/BsModalWindow.h
  63. 0 403
      BansheeEditor/Include/BsProjectLibrary.h
  64. 0 90
      BansheeEditor/Include/BsProjectResourceMeta.h
  65. 0 57
      BansheeEditor/Include/BsProjectResourceMetaRTTI.h
  66. 0 155
      BansheeEditor/Include/BsScenePicking.h
  67. 0 111
      BansheeEditor/Include/BsSelection.h
  68. 0 118
      BansheeEditor/Include/BsUndoRedo.h
  69. 0 45
      BansheeEditor/Source/BsProjectResourceMeta.cpp
  70. 0 460
      BansheeEngine/BansheeEngine.vcxproj
  71. 0 680
      BansheeEngine/BansheeEngine.vcxproj.filters
  72. 0 674
      BansheeEngine/Include/BsCamera.h
  73. 0 134
      BansheeEngine/Include/BsCursor.h
  74. 0 45
      BansheeEngine/Include/BsGUICommandEvent.h
  75. 0 46
      BansheeEngine/Include/BsGUIHelper.h
  76. 0 339
      BansheeEngine/Include/BsGUIInputBox.h
  77. 0 134
      BansheeEngine/Include/BsGUIInputCaret.h
  78. 0 119
      BansheeEngine/Include/BsGUIInputSelection.h
  79. 0 159
      BansheeEngine/Include/BsGUIInputTool.h
  80. 0 48
      BansheeEngine/Include/BsGUILayoutUtility.h
  81. 0 150
      BansheeEngine/Include/BsGUIListBox.h
  82. 0 523
      BansheeEngine/Include/BsGUIManager.h
  83. 0 208
      BansheeEngine/Include/BsGUIMenu.h
  84. 0 135
      BansheeEngine/Include/BsGUIPanel.h
  85. 0 95
      BansheeEngine/Include/BsGUIProgressBar.h
  86. 0 256
      BansheeEngine/Include/BsGUIScrollArea.h
  87. 0 150
      BansheeEngine/Include/BsGUIScrollBar.h
  88. 0 44
      BansheeEngine/Include/BsGUIScrollBarHorz.h
  89. 0 45
      BansheeEngine/Include/BsGUIScrollBarVert.h
  90. 0 177
      BansheeEngine/Include/BsGUISlider.h
  91. 0 178
      BansheeEngine/Include/BsGUISliderHandle.h
  92. 0 123
      BansheeEngine/Include/BsGUISpace.h
  93. 0 219
      BansheeEngine/Include/BsGUITexture.h
  94. 0 152
      BansheeEngine/Include/BsGUIToggle.h
  95. 0 107
      BansheeEngine/Include/BsGUIViewport.h
  96. 0 50
      BansheeEngine/Include/BsHEString.h
  97. 0 210
      BansheeEngine/Include/BsInputConfiguration.h
  98. 0 306
      BansheeEngine/Include/BsRenderable.h
  99. 0 71
      BansheeEngine/Include/BsRenderer.h
  100. 0 196
      BansheeEngine/Include/BsSceneManager.h

+ 3 - 1
.gitignore

@@ -1,6 +1,5 @@
 # Ignored files
 # Ignored files
 *.suo
 *.suo
-*.user
 *.sdf
 *.sdf
 *.opensdf
 *.opensdf
 bin
 bin
@@ -10,5 +9,8 @@ data
 Intermediate
 Intermediate
 Dependencies
 Dependencies
 Builds
 Builds
+Documentation/html
 *.aps
 *.aps
 *.opendb
 *.opendb
+/Build/VS2015/BansheeEngine.VC.db
+/Build/Generated

+ 0 - 577
BansheeCore/BansheeCore.vcxproj

@@ -1,577 +0,0 @@
-<?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)\</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)\</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)\</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)\</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)\</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)\</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>./Include;../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>./Include;../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>./Include;../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>./Include;../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>./Include;../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>./Include;../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="Include\BsCoreObjectCore.h" />
-    <ClInclude Include="Include\BsHString.h" />
-    <ClInclude Include="Include\BsIconUtility.h" />
-    <ClInclude Include="Include\BsMaterialParams.h" />
-    <ClInclude Include="Include\BsMaterialParamsRTTI.h" />
-    <ClInclude Include="Include\BsMeshImportOptions.h" />
-    <ClInclude Include="Include\BsMeshImportOptionsRTTI.h" />
-    <ClInclude Include="Include\BsMeshRTTI.h" />
-    <ClInclude Include="Include\BsMeshUtility.h" />
-    <ClInclude Include="Include\BsParamBlocks.h" />
-    <ClInclude Include="Include\BsPrefab.h" />
-    <ClInclude Include="Include\BsPrefabDiff.h" />
-    <ClInclude Include="Include\BsPrefabDiffRTTI.h" />
-    <ClInclude Include="Include\BsPrefabRTTI.h" />
-    <ClInclude Include="Include\BsPrefabUtility.h" />
-    <ClInclude Include="Include\BsRendererMeshData.h" />
-    <ClInclude Include="Include\BsShaderIncludeRTTI.h" />
-    <ClInclude Include="Include\BsIResourceListener.h" />
-    <ClInclude Include="Include\BsMaterialParam.h" />
-    <ClInclude Include="Include\BsRenderStats.h" />
-    <ClInclude Include="Include\BsCoreThread.h" />
-    <ClInclude Include="Include\BsProfilerCPU.h" />
-    <ClInclude Include="Include\BsDeferredCallManager.h" />
-    <ClInclude Include="Include\BsDrawOps.h" />
-    <ClInclude Include="Include\BsEventQuery.h" />
-    <ClInclude Include="Include\BsFolderMonitor.h" />
-    <ClInclude Include="Include\BsGameObjectHandle.h" />
-    <ClInclude Include="Include\BsGameObject.h" />
-    <ClInclude Include="Include\BsGameObjectHandleRTTI.h" />
-    <ClInclude Include="Include\BsGameObjectManager.h" />
-    <ClInclude Include="Include\BsGameObjectRTTI.h" />
-    <ClInclude Include="Include\BsProfilerGPU.h" />
-    <ClInclude Include="Include\BsGpuResourceData.h" />
-    <ClInclude Include="Include\BsGpuParamBlockBuffer.h" />
-    <ClInclude Include="Include\BsGpuResourceDataRTTI.h" />
-    <ClInclude Include="Include\BsGpuParam.h" />
-    <ClInclude Include="Include\BsInputFwd.h" />
-    <ClInclude Include="Include\BsMeshBase.h" />
-    <ClInclude Include="Include\BsMeshBaseRTTI.h" />
-    <ClInclude Include="Include\BsMeshHeap.h" />
-    <ClInclude Include="Include\BsOSInputHandler.h" />
-    <ClInclude Include="Include\BsPixelData.h" />
-    <ClInclude Include="Include\BsPixelDataRTTI.h" />
-    <ClInclude Include="Include\BsPixelUtil.h" />
-    <ClInclude Include="Include\BsPixelVolume.h" />
-    <ClInclude Include="Include\BsPlatform.h" />
-    <ClInclude Include="Include\BsProfilingManager.h" />
-    <ClInclude Include="Include\BsQueryManager.h" />
-    <ClInclude Include="Include\BsSavedResourceData.h" />
-    <ClInclude Include="Include\BsSavedResourceDataRTTI.h" />
-    <ClInclude Include="Include\BsResourceListenerManager.h" />
-    <ClInclude Include="Include\BsResourceManifest.h" />
-    <ClInclude Include="Include\BsResourceManifestRTTI.h" />
-    <ClInclude Include="Include\BsResourceMetaData.h" />
-    <ClInclude Include="Include\BsResourceMetaDataRTTI.h" />
-    <ClInclude Include="Include\BsSceneObjectRTTI.h" />
-    <ClInclude Include="Include\BsCoreApplication.h" />
-    <ClInclude Include="Include\BsBlendStateRTTI.h" />
-    <ClInclude Include="Include\BsCommandQueue.h" />
-    <ClInclude Include="Include\BsCommonTypes.h" />
-    <ClInclude Include="Include\BsComponentRTTI.h" />
-    <ClInclude Include="Include\BsCoreObject.h" />
-    <ClInclude Include="Include\BsCoreObjectManager.h" />
-    <ClInclude Include="Include\BsCoreThreadAccessor.h" />
-    <ClInclude Include="Include\BsDepthStencilStateRTTI.h" />
-    <ClInclude Include="Include\BsDepthStencilState.h" />
-    <ClInclude Include="Include\BsFont.h" />
-    <ClInclude Include="Include\BsFontDesc.h" />
-    <ClInclude Include="Include\BsFontImportOptions.h" />
-    <ClInclude Include="Include\BsFontImportOptionsRTTI.h" />
-    <ClInclude Include="Include\BsFontManager.h" />
-    <ClInclude Include="Include\BsFontRTTI.h" />
-    <ClInclude Include="Include\BsGpuBuffer.h" />
-    <ClInclude Include="Include\BsGpuBufferView.h" />
-    <ClInclude Include="Include\BsGpuParamDesc.h" />
-    <ClInclude Include="Include\BsGpuParams.h" />
-    <ClInclude Include="Include\BsShaderInclude.h" />
-    <ClInclude Include="Include\BsGpuProgram.h" />
-    <ClInclude Include="Include\BsGpuProgramRTTI.h" />
-    <ClInclude Include="Include\BsHardwareBuffer.h" />
-    <ClInclude Include="Include\BsHardwareBufferManager.h" />
-    <ClInclude Include="Include\BsImportOptions.h" />
-    <ClInclude Include="Include\BsImportOptionsRTTI.h" />
-    <ClInclude Include="Include\BsIndexBuffer.h" />
-    <ClInclude Include="Include\BsMaterialManager.h" />
-    <ClInclude Include="Include\BsMeshManager.h" />
-    <ClInclude Include="Include\BsOcclusionQuery.h" />
-    <ClInclude Include="Include\BsPixelBuffer.h" />
-    <ClInclude Include="Include\BsShaderIncludeImporter.h" />
-    <ClInclude Include="Include\BsShaderManager.h" />
-    <ClInclude Include="Include\BsStringTable.h" />
-    <ClInclude Include="Include\BsStringTableManager.h" />
-    <ClInclude Include="Include\BsStringTableRTTI.h" />
-    <ClInclude Include="Include\BsSubMesh.h" />
-    <ClInclude Include="Include\BsTextureImportOptions.h" />
-    <ClInclude Include="Include\BsTextureImportOptionsRTTI.h" />
-    <ClInclude Include="Include\BsTextureView.h" />
-    <ClInclude Include="Include\BsTextData.h" />
-    <ClInclude Include="Include\BsTimerQuery.h" />
-    <ClInclude Include="Include\BsTransientMesh.h" />
-    <ClInclude Include="Include\BsUtility.h" />
-    <ClInclude Include="Include\BsUUID.h" />
-    <ClInclude Include="Include\BsVertexBuffer.h" />
-    <ClInclude Include="Include\BsGpuProgramManager.h" />
-    <ClInclude Include="Include\BsImporter.h" />
-    <ClInclude Include="Include\BsInput.h" />
-    <ClInclude Include="Include\BsRawInputHandler.h" />
-    <ClInclude Include="Include\BsMaterial.h" />
-    <ClInclude Include="Include\BsMaterialRTTI.h" />
-    <ClInclude Include="Include\BsMesh.h" />
-    <ClInclude Include="Include\BsMeshData.h" />
-    <ClInclude Include="Include\BsMeshDataRTTI.h" />
-    <ClInclude Include="Include\BsMultiRenderTexture.h" />
-    <ClInclude Include="Include\BsPass.h" />
-    <ClInclude Include="Include\BsPassRTTI.h" />
-    <ClInclude Include="Include\BsCorePrerequisites.h" />
-    <ClInclude Include="Include\BsRasterizerState.h" />
-    <ClInclude Include="Include\BsRasterizerStateRTTI.h" />
-    <ClInclude Include="Include\BsCoreRenderer.h" />
-    <ClInclude Include="Include\BsRendererFactory.h" />
-    <ClInclude Include="Include\BsRendererManager.h" />
-    <ClInclude Include="Include\BsRenderStateManager.h" />
-    <ClInclude Include="Include\BsRenderAPI.h" />
-    <ClInclude Include="Include\BsRenderAPICapabilities.h" />
-    <ClInclude Include="Include\BsRenderAPIFactory.h" />
-    <ClInclude Include="Include\BsRenderAPIManager.h" />
-    <ClInclude Include="Include\BsRenderTarget.h" />
-    <ClInclude Include="Include\BsRenderTexture.h" />
-    <ClInclude Include="Include\BsRenderWindow.h" />
-    <ClInclude Include="Include\BsRenderWindowManager.h" />
-    <ClInclude Include="Include\BsResource.h" />
-    <ClInclude Include="Include\BsResourceHandle.h" />
-    <ClInclude Include="Include\BsResourceHandleRTTI.h" />
-    <ClInclude Include="Include\BsResources.h" />
-    <ClInclude Include="Include\BsSamplerStateRTTI.h" />
-    <ClInclude Include="Include\BsCoreSceneManager.h" />
-    <ClInclude Include="Include\BsShaderRTTI.h" />
-    <ClInclude Include="Include\BsSpecificImporter.h" />
-    <ClInclude Include="Include\BsTechniqueRTTI.h" />
-    <ClInclude Include="Include\BsTexture.h" />
-    <ClInclude Include="Include\BsTextureManager.h" />
-    <ClInclude Include="Include\BsTextureRTTI.h" />
-    <ClInclude Include="Include\BsSamplerState.h" />
-    <ClInclude Include="Include\BsVertexDataDesc.h" />
-    <ClInclude Include="Include\BsVertexDataDescRTTI.h" />
-    <ClInclude Include="Include\BsVertexDeclaration.h" />
-    <ClInclude Include="Include\BsVertexData.h" />
-    <ClInclude Include="Include\BsVideoModeInfo.h" />
-    <ClInclude Include="Include\BsViewport.h" />
-    <ClInclude Include="Include\BsResourceRTTI.h" />
-    <ClInclude Include="Include\BsSceneObject.h" />
-    <ClInclude Include="Include\BsComponent.h" />
-    <ClInclude Include="Include\BsShader.h" />
-    <ClInclude Include="Include\BsBlendState.h" />
-    <ClInclude Include="Include\BsVertexDeclarationRTTI.h" />
-    <ClInclude Include="Include\BsTechnique.h" />
-    <ClInclude Include="Include\BsViewportRTTI.h" />
-    <ClInclude Include="Include\Win32\BsWin32Defs.h" />
-    <ClInclude Include="Include\Win32\BsWin32Platform.h" />
-    <ClInclude Include="Include\Win32\BsWin32DropTarget.h" />
-    <ClInclude Include="Include\Win32\BsWin32FolderMonitor.h" />
-    <ClInclude Include="Include\Win32\BSWin32PlatformData.h" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="Source\BsCoreObjectCore.cpp" />
-    <ClCompile Include="Source\BsCoreThread.cpp" />
-    <ClCompile Include="Source\BsHString.cpp" />
-    <ClCompile Include="Source\BsIconUtility.cpp" />
-    <ClCompile Include="Source\BsIResourceListener.cpp" />
-    <ClCompile Include="Source\BsMaterialParam.cpp" />
-    <ClCompile Include="Source\BsMeshImportOptions.cpp" />
-    <ClCompile Include="Source\BsMeshUtility.cpp" />
-    <ClCompile Include="Source\BsPrefab.cpp" />
-    <ClCompile Include="Source\BsPrefabDiff.cpp" />
-    <ClCompile Include="Source\BsPrefabUtility.cpp" />
-    <ClCompile Include="Source\BsProfilerCPU.cpp" />
-    <ClCompile Include="Source\BsDeferredCallManager.cpp" />
-    <ClCompile Include="Source\BsDrawOps.cpp" />
-    <ClCompile Include="Source\BsEventQuery.cpp" />
-    <ClCompile Include="Source\BsGameObjectHandle.cpp" />
-    <ClCompile Include="Source\BsGameObject.cpp" />
-    <ClCompile Include="Source\BsCoreApplication.cpp" />
-    <ClCompile Include="Source\BsBlendState.cpp" />
-    <ClCompile Include="Source\BsCommandQueue.cpp" />
-    <ClCompile Include="Source\BsCoreObject.cpp" />
-    <ClCompile Include="Source\BsCoreObjectManager.cpp" />
-    <ClCompile Include="Source\BsCoreThreadAccessor.cpp" />
-    <ClCompile Include="Source\BsDepthStencilState.cpp" />
-    <ClCompile Include="Source\BsFont.cpp" />
-    <ClCompile Include="Source\BsFontImportOptions.cpp" />
-    <ClCompile Include="Source\BsFontManager.cpp" />
-    <ClCompile Include="Source\BsGameObjectManager.cpp" />
-    <ClCompile Include="Source\BsGpuBuffer.cpp" />
-    <ClCompile Include="Source\BsGpuBufferView.cpp" />
-    <ClCompile Include="Source\BsGpuParamBlockBuffer.cpp" />
-    <ClCompile Include="Source\BsGpuParams.cpp" />
-    <ClCompile Include="Source\BsProfilerGPU.cpp" />
-    <ClCompile Include="Source\BsRendererMeshData.cpp" />
-    <ClCompile Include="Source\BsShaderInclude.cpp" />
-    <ClCompile Include="Source\BsGpuProgram.cpp" />
-    <ClCompile Include="Source\BsGpuResourceData.cpp" />
-    <ClCompile Include="Source\BsHardwareBufferManager.cpp" />
-    <ClCompile Include="Source\BsGpuParam.cpp" />
-    <ClCompile Include="Source\BsImportOptions.cpp" />
-    <ClCompile Include="Source\BsIndexBuffer.cpp" />
-    <ClCompile Include="Source\BsMaterialManager.cpp" />
-    <ClCompile Include="Source\BsMeshBase.cpp" />
-    <ClCompile Include="Source\BsMeshHeap.cpp" />
-    <ClCompile Include="Source\BsMeshManager.cpp" />
-    <ClCompile Include="Source\BsOcclusionQuery.cpp" />
-    <ClCompile Include="Source\BsOSInputHandler.cpp" />
-    <ClCompile Include="Source\BsPixelBuffer.cpp" />
-    <ClCompile Include="Source\BsShaderIncludeImporter.cpp" />
-    <ClCompile Include="Source\BsPixelData.cpp" />
-    <ClCompile Include="Source\BsPixelUtil.cpp" />
-    <ClCompile Include="Source\BsPlatform.cpp" />
-    <ClCompile Include="Source\BsProfilingManager.cpp" />
-    <ClCompile Include="Source\BsQueryManager.cpp" />
-    <ClCompile Include="Source\BsCoreRenderer.cpp" />
-    <ClCompile Include="Source\BsSavedResourceData.cpp" />
-    <ClCompile Include="Source\BsResourceListenerManager.cpp" />
-    <ClCompile Include="Source\BsResourceManifest.cpp" />
-    <ClCompile Include="Source\BsResourceMetaData.cpp" />
-    <ClCompile Include="Source\BsShaderManager.cpp" />
-    <ClCompile Include="Source\BsStringTable.cpp" />
-    <ClCompile Include="Source\BsStringTableManager.cpp" />
-    <ClCompile Include="Source\BsTextureImportOptions.cpp" />
-    <ClCompile Include="Source\BsTextureView.cpp" />
-    <ClCompile Include="Source\BsTextData.cpp" />
-    <ClCompile Include="Source\BsTimerQuery.cpp" />
-    <ClCompile Include="Source\BsTransientMesh.cpp" />
-    <ClCompile Include="Source\BsUtility.cpp" />
-    <ClCompile Include="Source\BsUUID.cpp" />
-    <ClCompile Include="Source\BsVertexBuffer.cpp" />
-    <ClCompile Include="Source\BsGpuProgramManager.cpp" />
-    <ClCompile Include="Source\BsImporter.cpp" />
-    <ClCompile Include="Source\BsInput.cpp" />
-    <ClCompile Include="Source\BsMaterial.cpp" />
-    <ClCompile Include="Source\BsMaterialRTTI.cpp" />
-    <ClCompile Include="Source\BsMesh.cpp" />
-    <ClCompile Include="Source\BsMeshData.cpp" />
-    <ClCompile Include="Source\BsMultiRenderTexture.cpp" />
-    <ClCompile Include="Source\BsPass.cpp" />
-    <ClCompile Include="Source\BsRasterizerState.cpp" />
-    <ClCompile Include="Source\BsRendererManager.cpp" />
-    <ClCompile Include="Source\BsRenderAPI.cpp" />
-    <ClCompile Include="Source\BsRenderAPICapabilities.cpp" />
-    <ClCompile Include="Source\BsRenderAPIManager.cpp" />
-    <ClCompile Include="Source\BsRenderTarget.cpp" />
-    <ClCompile Include="Source\BsRenderTexture.cpp" />
-    <ClCompile Include="Source\BsRenderWindow.cpp" />
-    <ClCompile Include="Source\BsRenderWindowManager.cpp" />
-    <ClCompile Include="Source\BsResource.cpp" />
-    <ClCompile Include="Source\BsResourceHandle.cpp" />
-    <ClCompile Include="Source\BsResources.cpp" />
-    <ClCompile Include="Source\BsRenderStateManager.cpp" />
-    <ClCompile Include="Source\BsCoreSceneManager.cpp" />
-    <ClCompile Include="Source\BsShader.cpp" />
-    <ClCompile Include="Source\BsSpecificImporter.cpp" />
-    <ClCompile Include="Source\BsTechnique.cpp" />
-    <ClCompile Include="Source\BsTexture.cpp" />
-    <ClCompile Include="Source\BsTextureManager.cpp" />
-    <ClCompile Include="Source\BsSamplerState.cpp" />
-    <ClCompile Include="Source\BsVertexDataDesc.cpp" />
-    <ClCompile Include="Source\BsVertexDeclaration.cpp" />
-    <ClCompile Include="Source\BsVertexData.cpp" />
-    <ClCompile Include="Source\BsVideoModeInfo.cpp" />
-    <ClCompile Include="Source\BsViewport.cpp" />
-    <ClCompile Include="Source\BsSceneObject.cpp" />
-    <ClCompile Include="Source\BsComponent.cpp" />
-    <ClCompile Include="Source\BsMaterialParams.cpp" />
-    <ClCompile Include="Source\Win32\BsWin32BrowseDialogs.cpp" />
-    <ClCompile Include="Source\Win32\BsWin32Platform.cpp" />
-    <ClCompile Include="Source\Win32\BsWin32FolderMonitor.cpp" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-  </ImportGroup>
-</Project>

+ 0 - 917
BansheeCore/BansheeCore.vcxproj.filters

@@ -1,917 +0,0 @@
-<?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>
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="Include\BsCommonTypes.h">
-      <Filter>Header Files\Utility</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsCoreApplication.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsTextData.h">
-      <Filter>Header Files\Text</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsFontManager.h">
-      <Filter>Header Files\Text</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsFontImportOptions.h">
-      <Filter>Header Files\Text</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsFontDesc.h">
-      <Filter>Header Files\Text</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsFont.h">
-      <Filter>Header Files\Text</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsComponent.h">
-      <Filter>Header Files\Scene</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGameObject.h">
-      <Filter>Header Files\Scene</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGameObjectHandle.h">
-      <Filter>Header Files\Scene</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGameObjectManager.h">
-      <Filter>Header Files\Scene</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsSceneObject.h">
-      <Filter>Header Files\Scene</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsBlendStateRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsComponentRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsDepthStencilStateRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsFontImportOptionsRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsFontRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGameObjectHandleRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGameObjectRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGpuProgramRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGpuResourceDataRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsImportOptionsRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsMaterialRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsMeshBaseRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsMeshDataRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsPassRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsPixelDataRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsRasterizerStateRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsResourceHandleRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsResourceManifestRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsResourceRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsSamplerStateRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsSceneObjectRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsShaderRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsTechniqueRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsTextureRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsVertexDataDescRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsVertexDeclarationRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsVertexDataDesc.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsTransientMesh.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsTextureManager.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsTexture.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsResources.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsResourceManifest.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsResourceHandle.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsResource.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsPixelData.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsMeshHeap.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsMeshData.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsMeshBase.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsMesh.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGpuResourceData.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsVideoModeInfo.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsVertexDeclaration.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsVertexData.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsVertexBuffer.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsTimerQuery.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsTextureView.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsSubMesh.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsSamplerState.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsRenderWindowManager.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsRenderWindow.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsRenderTexture.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsRenderTarget.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsRenderStateManager.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsRasterizerState.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsQueryManager.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsPixelBuffer.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsOcclusionQuery.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsMultiRenderTexture.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsMeshManager.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsIndexBuffer.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsHardwareBufferManager.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsHardwareBuffer.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGpuProgramManager.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGpuProgram.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGpuParams.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGpuParamDesc.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGpuParamBlockBuffer.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGpuParam.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGpuBufferView.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGpuBuffer.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsEventQuery.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsDrawOps.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsDepthStencilState.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsBlendState.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsRendererManager.h">
-      <Filter>Header Files\Renderer</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsRendererFactory.h">
-      <Filter>Header Files\Renderer</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\Win32\BsWin32FolderMonitor.h">
-      <Filter>Header Files\Platform</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\Win32\BsWin32DropTarget.h">
-      <Filter>Header Files\Platform</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsPlatform.h">
-      <Filter>Header Files\Platform</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsFolderMonitor.h">
-      <Filter>Header Files\Platform</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsTechnique.h">
-      <Filter>Header Files\Material</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsShader.h">
-      <Filter>Header Files\Material</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsPass.h">
-      <Filter>Header Files\Material</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsMaterialManager.h">
-      <Filter>Header Files\Material</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsMaterial.h">
-      <Filter>Header Files\Material</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsRawInputHandler.h">
-      <Filter>Header Files\Input</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsOSInputHandler.h">
-      <Filter>Header Files\Input</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsInputFwd.h">
-      <Filter>Header Files\Input</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsInput.h">
-      <Filter>Header Files\Input</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsSpecificImporter.h">
-      <Filter>Header Files\Importer</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsImportOptions.h">
-      <Filter>Header Files\Importer</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsImporter.h">
-      <Filter>Header Files\Importer</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsCoreThreadAccessor.h">
-      <Filter>Header Files\CoreThread</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsCoreThread.h">
-      <Filter>Header Files\CoreThread</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsCoreObjectManager.h">
-      <Filter>Header Files\CoreThread</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsCoreObject.h">
-      <Filter>Header Files\CoreThread</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsCommandQueue.h">
-      <Filter>Header Files\CoreThread</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsCoreSceneManager.h">
-      <Filter>Header Files\Scene</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsCorePrerequisites.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsTextureImportOptions.h">
-      <Filter>Header Files\Importer</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsTextureImportOptionsRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsResourceMetaData.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsResourceMetaDataRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsViewportRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsMaterialParam.h">
-      <Filter>Header Files\Material</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsCoreObjectCore.h">
-      <Filter>Header Files\CoreThread</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsCoreRenderer.h">
-      <Filter>Header Files\Renderer</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsRenderAPI.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsRenderAPIManager.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsRenderAPIFactory.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsRenderAPICapabilities.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsUtility.h">
-      <Filter>Header Files\Utility</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsSavedResourceData.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsSavedResourceDataRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\Win32\BsWin32Defs.h">
-      <Filter>Header Files\Platform</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\Win32\BSWin32PlatformData.h">
-      <Filter>Header Files\Platform</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\Win32\BsWin32Platform.h">
-      <Filter>Header Files\Platform</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsShaderIncludeImporter.h">
-      <Filter>Header Files\Importer</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsShaderInclude.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsShaderIncludeRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsShaderManager.h">
-      <Filter>Header Files\Material</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsMeshImportOptions.h">
-      <Filter>Header Files\Importer</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsMeshImportOptionsRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsPrefab.h">
-      <Filter>Header Files\Scene</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsPrefabRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsPrefabDiff.h">
-      <Filter>Header Files\Scene</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsPrefabDiffRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsMeshUtility.h">
-      <Filter>Header Files\Utility</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsPrefabUtility.h">
-      <Filter>Header Files\Scene</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsRendererMeshData.h">
-      <Filter>Header Files\Renderer</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsHString.h">
-      <Filter>Header Files\Localization</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsStringTable.h">
-      <Filter>Header Files\Localization</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsStringTableManager.h">
-      <Filter>Header Files\Localization</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsStringTableRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsParamBlocks.h">
-      <Filter>Header Files\Renderer</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsProfilerCPU.h">
-      <Filter>Header Files\Profiling</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsProfilerGPU.h">
-      <Filter>Header Files\Profiling</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsProfilingManager.h">
-      <Filter>Header Files\Profiling</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsRenderStats.h">
-      <Filter>Header Files\Profiling</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsDeferredCallManager.h">
-      <Filter>Header Files\Utility</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsResourceListenerManager.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsIconUtility.h">
-      <Filter>Header Files\Utility</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsIResourceListener.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsUUID.h">
-      <Filter>Header Files\Utility</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsViewport.h">
-      <Filter>Header Files\RenderAPI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsPixelUtil.h">
-      <Filter>Header Files\Utility</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsPixelVolume.h">
-      <Filter>Header Files\Utility</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsMaterialParams.h">
-      <Filter>Header Files\Material</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsMaterialParamsRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsMeshRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="Source\BsCoreApplication.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsFont.cpp">
-      <Filter>Source Files\Text</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsFontImportOptions.cpp">
-      <Filter>Source Files\Text</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsFontManager.cpp">
-      <Filter>Source Files\Text</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsTextData.cpp">
-      <Filter>Source Files\Text</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsComponent.cpp">
-      <Filter>Source Files\Scene</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGameObject.cpp">
-      <Filter>Source Files\Scene</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGameObjectHandle.cpp">
-      <Filter>Source Files\Scene</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGameObjectManager.cpp">
-      <Filter>Source Files\Scene</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsSceneObject.cpp">
-      <Filter>Source Files\Scene</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsMaterialRTTI.cpp">
-      <Filter>Source Files\RTTI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGpuResourceData.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsMesh.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsMeshBase.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsMeshData.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsMeshHeap.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsPixelData.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsResource.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsResourceHandle.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsResourceManifest.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsResources.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsTexture.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsTextureManager.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsTransientMesh.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsVertexDataDesc.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsBlendState.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsDepthStencilState.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsEventQuery.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGpuBuffer.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGpuBufferView.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGpuParam.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGpuParamBlockBuffer.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGpuParams.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGpuProgram.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGpuProgramManager.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsHardwareBufferManager.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsIndexBuffer.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsMeshManager.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsMultiRenderTexture.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsOcclusionQuery.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsPixelBuffer.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsQueryManager.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsRasterizerState.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsRenderStateManager.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsRenderTarget.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsRenderTexture.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsRenderWindow.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsRenderWindowManager.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsSamplerState.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsTextureView.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsTimerQuery.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsVertexBuffer.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsVertexData.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsVertexDeclaration.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsVideoModeInfo.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsRendererManager.cpp">
-      <Filter>Source Files\Renderer</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\Win32\BsWin32FolderMonitor.cpp">
-      <Filter>Source Files\Platform</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsMaterial.cpp">
-      <Filter>Source Files\Material</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsMaterialManager.cpp">
-      <Filter>Source Files\Material</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsPass.cpp">
-      <Filter>Source Files\Material</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsShader.cpp">
-      <Filter>Source Files\Material</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsTechnique.cpp">
-      <Filter>Source Files\Material</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsInput.cpp">
-      <Filter>Source Files\Input</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsOSInputHandler.cpp">
-      <Filter>Source Files\Input</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsImporter.cpp">
-      <Filter>Source Files\Importer</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsImportOptions.cpp">
-      <Filter>Source Files\Importer</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsSpecificImporter.cpp">
-      <Filter>Source Files\Importer</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsCommandQueue.cpp">
-      <Filter>Source Files\CoreThread</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsCoreObject.cpp">
-      <Filter>Source Files\CoreThread</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsCoreObjectManager.cpp">
-      <Filter>Source Files\CoreThread</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsCoreThread.cpp">
-      <Filter>Source Files\CoreThread</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsCoreThreadAccessor.cpp">
-      <Filter>Source Files\CoreThread</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsCoreSceneManager.cpp">
-      <Filter>Source Files\Scene</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsTextureImportOptions.cpp">
-      <Filter>Source Files\Importer</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsResourceMetaData.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsMaterialParam.cpp">
-      <Filter>Source Files\Material</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsCoreObjectCore.cpp">
-      <Filter>Source Files\CoreThread</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsCoreRenderer.cpp">
-      <Filter>Source Files\Renderer</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsRenderAPI.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsRenderAPIManager.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsRenderAPICapabilities.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsUtility.cpp">
-      <Filter>Source Files\Utility</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsSavedResourceData.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsPlatform.cpp">
-      <Filter>Source Files\Platform</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\Win32\BsWin32Platform.cpp">
-      <Filter>Source Files\Platform</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsShaderIncludeImporter.cpp">
-      <Filter>Source Files\Importer</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsShaderInclude.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsShaderManager.cpp">
-      <Filter>Source Files\Material</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsMeshImportOptions.cpp">
-      <Filter>Source Files\Importer</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsPrefab.cpp">
-      <Filter>Source Files\Scene</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsPrefabDiff.cpp">
-      <Filter>Source Files\Scene</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsMeshUtility.cpp">
-      <Filter>Source Files\Utility</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsPrefabUtility.cpp">
-      <Filter>Source Files\Scene</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsRendererMeshData.cpp">
-      <Filter>Source Files\Renderer</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsHString.cpp">
-      <Filter>Source Files\Localization</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsStringTable.cpp">
-      <Filter>Source Files\Localization</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsStringTableManager.cpp">
-      <Filter>Source Files\Localization</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsProfilerCPU.cpp">
-      <Filter>Source Files\Profiling</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsProfilerGPU.cpp">
-      <Filter>Source Files\Profiling</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsProfilingManager.cpp">
-      <Filter>Source Files\Profiling</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsDeferredCallManager.cpp">
-      <Filter>Source Files\Utility</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsResourceListenerManager.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsDrawOps.cpp">
-      <Filter>Source Files\Utility</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsIconUtility.cpp">
-      <Filter>Source Files\Utility</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsUUID.cpp">
-      <Filter>Source Files\Utility</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsIResourceListener.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsViewport.cpp">
-      <Filter>Source Files\RenderAPI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsPixelUtil.cpp">
-      <Filter>Source Files\Utility</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsMaterialParams.cpp">
-      <Filter>Source Files\Material</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\Win32\BsWin32BrowseDialogs.cpp">
-      <Filter>Source Files\Platform</Filter>
-    </ClCompile>
-  </ItemGroup>
-</Project>

+ 0 - 71
BansheeCore/Include/BsMeshImportOptionsRTTI.h

@@ -1,71 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsCorePrerequisites.h"
-#include "BsRTTIType.h"
-#include "BsMeshImportOptions.h"
-
-namespace BansheeEngine
-{
-	/** @cond RTTI */
-	/** @addtogroup RTTI-Impl-Core
-	 *  @{
-	 */
-
-	class BS_CORE_EXPORT MeshImportOptionsRTTI : public RTTIType < MeshImportOptions, ImportOptions, MeshImportOptionsRTTI >
-	{
-	private:
-		bool& getCPUReadable(MeshImportOptions* obj) { return obj->mCPUReadable; }
-		void setCPUReadable(MeshImportOptions* obj, bool& value) { obj->mCPUReadable = value; }
-		
-		bool& getImportNormals(MeshImportOptions* obj) { return obj->mImportNormals; }
-		void setImportNormals(MeshImportOptions* obj, bool& value) { obj->mImportNormals = value; }
-		
-		bool& getImportTangents(MeshImportOptions* obj) { return obj->mImportTangents; }
-		void setImportTangents(MeshImportOptions* obj, bool& value) { obj->mImportTangents = value; }
-		
-		bool& getImportBlendShapes(MeshImportOptions* obj) { return obj->mImportBlendShapes; }
-		void setImportBlendShapes(MeshImportOptions* obj, bool& value) { obj->mImportBlendShapes = value; }
-		
-		bool& getImportSkin(MeshImportOptions* obj) { return obj->mImportSkin; }
-		void setImportSkin(MeshImportOptions* obj, bool& value) { obj->mImportSkin = value; }
-		
-		bool& getImportAnimation(MeshImportOptions* obj) { return obj->mImportAnimation; }
-		void setImportAnimation(MeshImportOptions* obj, bool& value) { obj->mImportAnimation = value; }
-
-		float& getImportScale(MeshImportOptions* obj) { return obj->mImportScale; }
-		void setImportScale(MeshImportOptions* obj, float& value) { obj->mImportScale = value; }
-
-	public:
-		MeshImportOptionsRTTI()
-		{
-			addPlainField("mCPUReadable", 0, &MeshImportOptionsRTTI::getCPUReadable, &MeshImportOptionsRTTI::setCPUReadable);
-			addPlainField("mImportNormals", 1, &MeshImportOptionsRTTI::getImportNormals, &MeshImportOptionsRTTI::setImportNormals);
-			addPlainField("mImportTangents", 2, &MeshImportOptionsRTTI::getImportTangents, &MeshImportOptionsRTTI::setImportTangents);
-			addPlainField("mImportBlendShapes", 3, &MeshImportOptionsRTTI::getImportBlendShapes, &MeshImportOptionsRTTI::setImportBlendShapes);
-			addPlainField("mImportSkin", 4, &MeshImportOptionsRTTI::getImportSkin, &MeshImportOptionsRTTI::setImportSkin);
-			addPlainField("mImportAnimation", 5, &MeshImportOptionsRTTI::getImportAnimation, &MeshImportOptionsRTTI::setImportAnimation);
-			addPlainField("mImportScale", 6, &MeshImportOptionsRTTI::getImportScale, &MeshImportOptionsRTTI::setImportScale);
-		}
-
-		const String& getRTTIName() override
-		{
-			static String name = "MeshImportOptions";
-			return name;
-		}
-
-		UINT32 getRTTIId() override
-		{
-			return TID_MeshImportOptions;
-		}
-
-		std::shared_ptr<IReflectable> newRTTIObject() override
-		{
-			return bs_shared_ptr_new<MeshImportOptions>();
-		}
-	};
-
-	/** @} */
-	/** @endcond */
-}

+ 0 - 494
BansheeCore/Include/BsRenderAPI.h

@@ -1,494 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-#include "BsCorePrerequisites.h"
-#include "BsSamplerState.h"
-#include "BsCommandQueue.h"
-#include "BsDrawOps.h"
-#include "BsRenderAPICapabilities.h"
-#include "BsRenderTarget.h"
-#include "BsRenderTexture.h"
-#include "BsRenderWindow.h"
-#include "BsGpuProgram.h"
-#include "BsVertexDeclaration.h"
-#include "BsPlane.h"
-#include "BsModule.h"
-#include "BsEvent.h"
-
-namespace BansheeEngine
-{
-	/** @addtogroup RenderAPI
-	 *  @{
-	 */
-
-	/**
-	 * Version of the render API interface usable from the sim thread. All the commands	get queued on the accessor provided
-	 * to each method and will be executed on the core thread later.
-	 *
-	 * @see		RenderAPICore
-	 *
-	 * @note	Sim thread only.
-	 */
-	class BS_CORE_EXPORT RenderAPI
-	{
-	public:
-		/** @copydoc RenderAPICore::disableTextureUnit() */
-		static void disableTextureUnit(CoreAccessor& accessor, GpuProgramType gptype, UINT16 texUnit);
-
-		/** @copydoc RenderAPICore::setTexture() */
-		static void setTexture(CoreAccessor& accessor, GpuProgramType gptype, UINT16 unit, bool enabled, const TexturePtr &texPtr);
-
-		/** @copydoc RenderAPICore::setLoadStoreTexture() */
-		static void setLoadStoreTexture(CoreAccessor& accessor, GpuProgramType gptype, UINT16 unit, bool enabled, const TexturePtr& texPtr,
-			const TextureSurface& surface);
-
-		/** @copydoc RenderAPICore::setSamplerState() */
-		static void setSamplerState(CoreAccessor& accessor, GpuProgramType gptype, UINT16 texUnit, const SamplerStatePtr& samplerState);
-
-		/** @copydoc RenderAPICore::setBlendState() */
-		static void setBlendState(CoreAccessor& accessor, const BlendStatePtr& blendState);
-
-		/** @copydoc RenderAPICore::setRasterizerState() */
-		static void setRasterizerState(CoreAccessor& accessor, const RasterizerStatePtr& rasterizerState);
-
-		/** @copydoc RenderAPICore::setRasterizerState() */
-		static void setDepthStencilState(CoreAccessor& accessor, const DepthStencilStatePtr& depthStencilState, UINT32 stencilRefValue);
-
-		/** @copydoc RenderAPICore::setVertexBuffers() */
-		static void setVertexBuffers(CoreAccessor& accessor, UINT32 index, const Vector<VertexBufferPtr>& buffers);
-
-		/** @copydoc RenderAPICore::setIndexBuffer() */
-		static void setIndexBuffer(CoreAccessor& accessor, const IndexBufferPtr& buffer);
-
-		/** @copydoc RenderAPICore::setVertexDeclaration() */
-		static void setVertexDeclaration(CoreAccessor& accessor, const VertexDeclarationPtr& vertexDeclaration);
-
-		/** @copydoc RenderAPICore::setViewport() */
-		static void setViewport(CoreAccessor& accessor, const Rect2& vp);
-
-		/** @copydoc RenderAPICore::setDrawOperation() */
-		static void setDrawOperation(CoreAccessor& accessor, DrawOperationType op);
-
-		/** @copydoc RenderAPICore::setClipPlanes() */
-		static void setClipPlanes(CoreAccessor& accessor, const PlaneList& clipPlanes);
-
-		/** @copydoc RenderAPICore::addClipPlane(const Plane&) */
-		static void addClipPlane(CoreAccessor& accessor, const Plane& p);
-
-		/** @copydoc RenderAPICore::resetClipPlanes() */
-		static void resetClipPlanes(CoreAccessor& accessor);
-
-		/** @copydoc RenderAPICore::setScissorTest() */
-		static void setScissorTest(CoreAccessor& accessor, UINT32 left = 0, UINT32 top = 0, UINT32 right = 800, UINT32 bottom = 600);
-
-		/** @copydoc RenderAPICore::setRenderTarget() */
-		static void setRenderTarget(CoreAccessor& accessor, const RenderTargetPtr& target, bool readOnlyDepthStencil = false);
-
-		/** @copydoc RenderAPICore::bindGpuProgram() */
-		static void bindGpuProgram(CoreAccessor& accessor, const GpuProgramPtr& prg);
-
-		/** @copydoc RenderAPICore::unbindGpuProgram() */
-		static void unbindGpuProgram(CoreAccessor& accessor, GpuProgramType gptype);
-
-		/** @copydoc RenderAPICore::setConstantBuffers() */
-		static void setConstantBuffers(CoreAccessor& accessor, GpuProgramType gptype, const GpuParamsPtr& params);
-
-		/** @copydoc RenderAPICore::setGpuParams() */
-		static void setGpuParams(CoreAccessor& accessor, GpuProgramType gptype, const GpuParamsPtr& params);
-
-		/** @copydoc RenderAPICore::beginFrame() */
-		static void beginRender(CoreAccessor& accessor);
-
-		/** @copydoc RenderAPICore::endFrame() */
-		static void endRender(CoreAccessor& accessor);
-
-		/** @copydoc RenderAPICore::clearRenderTarget() */
-		static void clearRenderTarget(CoreAccessor& accessor, UINT32 buffers, 
-			const Color& color = Color::Black, float depth = 1.0f, UINT16 stencil = 0, UINT8 targetMask = 0xFF);
-
-		/** @copydoc RenderAPICore::clearViewport() */
-		static void clearViewport(CoreAccessor& accessor, UINT32 buffers, const Color& color = Color::Black, 
-			float depth = 1.0f, UINT16 stencil = 0, UINT8 targetMask = 0xFF);
-
-		/** @copydoc RenderAPICore::swapBuffers() */
-		static void swapBuffers(CoreAccessor& accessor, const RenderTargetPtr& target);
-
-		/** @copydoc RenderAPICore::draw() */
-		static void draw(CoreAccessor& accessor, UINT32 vertexOffset, UINT32 vertexCount);
-
-		/** @copydoc RenderAPICore::drawIndexed() */
-		static void drawIndexed(CoreAccessor& accessor, UINT32 startIndex, UINT32 indexCount, UINT32 vertexOffset, UINT32 vertexCount);
-
-		/** @copydoc RenderAPICore::getVideoModeInfo */
-		static const VideoModeInfo& getVideoModeInfo();
-
-		/** @copydoc RenderAPICore::getColorVertexElementType */
-		static VertexElementType getColorVertexElementType();
-
-		/** @copydoc RenderAPICore::convertProjectionMatrix */
-		static void convertProjectionMatrix(const Matrix4& matrix, Matrix4& dest);
-
-		/** @copydoc RenderAPICore::getHorizontalTexelOffset */
-		static float getHorizontalTexelOffset();
-
-		/** @copydoc RenderAPICore::getVerticalTexelOffset */
-		static float getVerticalTexelOffset();
-
-		/** @copydoc RenderAPICore::getMinimumDepthInputValue */
-		static float getMinimumDepthInputValue();
-
-		/** @copydoc RenderAPICore::getMaximumDepthInputValue */
-		static float getMaximumDepthInputValue();
-
-		/** @copydoc RenderAPICore::getVertexColorFlipRequired */
-		static bool getVertexColorFlipRequired();
-	};
-
-	/** @cond INTERNAL */
-
-	/**
-	 * Render system provides base functionality for a rendering API like DirectX or OpenGL. Most of the class is abstract
-	 * and specific subclass for each rendering API needs to be implemented.
-	 *
-	 * @note	Core thread only unless specifically noted otherwise on per-method basis.
-	 */
-	class BS_CORE_EXPORT RenderAPICore : public Module<RenderAPICore>
-	{
-	public:
-		RenderAPICore();
-		virtual ~RenderAPICore();
-
-		/**
-		 * Returns the name of the rendering system. 
-		 *
-		 * @note	Thread safe.
-		 */
-		virtual const StringID& getName() const = 0;
-
-		/**
-		 * Gets the name of the primary shading language used by the rendering system.
-		 *
-		 * @note	Thread safe.
-		 */
-		virtual const String& getShadingLanguageName() const = 0;
-
-		/**
-		 * Sets a sampler state for the specified texture unit.
-		 *
-		 * @see		SamplerState
-		 */
-		virtual void setSamplerState(GpuProgramType gptype, UINT16 texUnit, const SPtr<SamplerStateCore>& samplerState) = 0;
-
-		/**
-		 * Sets a blend state used for all active render targets.
-		 *
-		 * @see		BlendState
-		 */
-		virtual void setBlendState(const SPtr<BlendStateCore>& blendState) = 0;
-
-		/**
-		 * Sets a state that controls various rasterizer options. 
-		 *
-		 * @see		RasterizerState
-		 */
-		virtual void setRasterizerState(const SPtr<RasterizerStateCore>& rasterizerState) = 0;
-
-		/**
-		 * Sets a state that controls depth & stencil buffer options.
-		 *
-		 * @see		DepthStencilState
-		 */
-		virtual void setDepthStencilState(const SPtr<DepthStencilStateCore>& depthStencilState, UINT32 stencilRefValue) = 0;
-
-		/**
-		 * Binds a texture to the pipeline for the specified GPU program type at the specified slot. If the slot matches 
-		 * the one configured in the GPU program the program will be able to access this texture on the GPU.
-		 */
-		virtual void setTexture(GpuProgramType gptype, UINT16 unit, bool enabled, const SPtr<TextureCore>& texPtr) = 0;
-
-		/**	Turns off a texture unit. */
-		virtual void disableTextureUnit(GpuProgramType gptype, UINT16 texUnit);
-
-		/**	Binds a texture that can be used for random load/store operations from a GPU program. */
-		virtual void setLoadStoreTexture(GpuProgramType gptype, UINT16 unit, bool enabled, 
-			const SPtr<TextureCore>& texPtr, const TextureSurface& surface) = 0;
-
-		/**
-		 * Signals that rendering for a specific viewport has started. Any draw calls need to be called between beginFrame()
-		 * and endFrame(). 
-		 */
-		virtual void beginFrame() = 0;
-		
-		/** Ends that rendering to a specific viewport has ended. */
-		virtual void endFrame() = 0;
-
-		/**
-		 * Sets the active viewport that will be used for all render operations.
-		 *
-		 * @param[in]	area	Area of the viewport, in normalized ([0,1] range) coordinates.
-		 */
-		virtual void setViewport(const Rect2& area) = 0;
-
-		/**
-		 * Sets the provided vertex buffers starting at the specified source index.	Set buffer to nullptr to clear the 
-		 * buffer at the specified index.
-		 */
-		virtual void setVertexBuffers(UINT32 index, SPtr<VertexBufferCore>* buffers, UINT32 numBuffers) = 0;
-
-		/**
-		 * Sets an index buffer to use when drawing. Indices in an index buffer reference vertices in the vertex buffer, 
-		 * which increases cache coherency and reduces the size of vertex buffers by eliminating duplicate data.
-		 */
-		virtual void setIndexBuffer(const SPtr<IndexBufferCore>& buffer) = 0;
-
-		/**
-		 * Sets the vertex declaration to use when drawing. Vertex declaration is used to decode contents of a single 
-		 * vertex in a vertex buffer.
-		 */
-		virtual void setVertexDeclaration(const SPtr<VertexDeclarationCore>& vertexDeclaration) = 0;
-
-		/** Sets the draw operation that determines how to interpret the elements of the index or vertex buffers. */
-		virtual void setDrawOperation(DrawOperationType op) = 0;
-
-		/**
-		 * Draw an object based on currently bound GPU programs, vertex declaration and vertex buffers. Draws directly from
-		 * the vertex buffer without using indices.
-		 */
-		virtual void draw(UINT32 vertexOffset, UINT32 vertexCount) = 0;
-
-		/** Draw an object based on currently bound GPU programs, vertex declaration, vertex and index buffers. */
-		virtual void drawIndexed(UINT32 startIndex, UINT32 indexCount, UINT32 vertexOffset, UINT32 vertexCount) = 0;
-
-		/** Swap the front and back buffer of the specified render target. */
-		virtual void swapBuffers(const SPtr<RenderTargetCore>& target);
-
-		/**
-		 * Gets the capabilities of the render system.
-		 *
-		 * @note	Thread safe.
-		 */
-		const RenderAPICapabilities* getCapabilities() const;
-
-		/** Returns information about the driver version. */
-		virtual const DriverVersion& getDriverVersion() const;
-
-		/**
-		 * Binds the provided GPU program to the pipeline. Any following draw operations will use this program. 
-		 *
-		 * @note	You need to bind at least a vertex and a fragment program in order to draw something.
-		 */
-		virtual void bindGpuProgram(const SPtr<GpuProgramCore>& prg);
-
-		/**
-		 * Binds constant(uniform) GPU program parameters. Caller must ensure these match the previously bound GPU program.
-		 */
-		virtual void setConstantBuffers(GpuProgramType gptype, const SPtr<GpuParamsCore>& params) = 0;
-
-		/** Binds all specified GPU program parameters. Caller must ensure these match the previously bound GPU program. */
-		virtual void setGpuParams(GpuProgramType gptype, const SPtr<GpuParamsCore>& params);
-
-		/**	Unbinds a program of a given type. */
-		virtual void unbindGpuProgram(GpuProgramType gptype);
-
-		/**	Query if a GPU program of a given type is currently bound. */
-		virtual bool isGpuProgramBound(GpuProgramType gptype);
-
-		/**	Sets up clip planes that will clip drawn geometry on the negative side of the planes. */
-		virtual void setClipPlanes(const PlaneList& clipPlanes);
-
-		/**	Adds a new clip plane. All drawn geometry will be clipped to this plane. */
-		virtual void addClipPlane(const Plane& p);
-
-		/**	Clears all clip planes. */
-		virtual void resetClipPlanes();
-
-		/**
-		 * Allows you to set up a region in which rendering can take place. Coordinates are in pixels. No rendering will be
-		 * done to render target pixels outside of the provided region.
-		 */
-		virtual void setScissorRect(UINT32 left, UINT32 top, UINT32 right, UINT32 bottom) = 0;
-
-		/**
-		 * Clears the currently active render target.
-		 *
-		 * @param[in]	buffers		Combination of one or more elements of FrameBufferType denoting which buffers are 
-		 *							to be cleared.
-		 * @param[in]	color		(optional) The color to clear the color buffer with, if enabled.
-		 * @param[in]	depth		(optional) The value to initialize the depth buffer with, if enabled.
-		 * @param[in]	stencil		(optional) The value to initialize the stencil buffer with, if enabled.
-		 * @param[in]	targetMask	(optional) In case multiple render targets are bound, this allows you to control
-		 *							which ones to clear (0x01 first, 0x02 second, 0x04 third, etc., and combinations).
-		 */
-		virtual void clearRenderTarget(UINT32 buffers, const Color& color = Color::Black, float depth = 1.0f, 
-			UINT16 stencil = 0, UINT8 targetMask = 0xFF) = 0;
-
-		/**
-		 * Clears the currently active viewport (i.e. it clears just a sub-area of a render-target that is covered by the 
-		 * viewport, as opposed to clearRenderTarget() which always clears the entire render target).
-		 *
-		 * @param[in]	buffers		Combination of one or more elements of FrameBufferType denoting which buffers are to be
-		 *							cleared.
-		 * @param[in]	color		(optional) The color to clear the color buffer with, if enabled.
-		 * @param[in]	depth		(optional) The value to initialize the depth buffer with, if enabled.
-		 * @param[in]	stencil		(optional) The value to initialize the stencil buffer with, if enabled.
-		 * @param[in]	targetMask	(optional) In case multiple render targets are bound, this allows you to control
-		 *							which ones to clear (0x01 first, 0x02 second, 0x04 third, etc., and combinations).
-		 */
-		virtual void clearViewport(UINT32 buffers, const Color& color = Color::Black, float depth = 1.0f, 
-			UINT16 stencil = 0, UINT8 targetMask = 0xFF) = 0;
-
-		/**
-		 * Change the render target into which we want to draw.
-		 *
-		 * @param[in]	target					Render target to draw to.
-		 * @param[in]	readOnlyDepthStencil	If true the caller guarantees he won't write to the depth/stencil buffer 
-		 *										(if any was provided). This allows the depth buffer to be bound for depth 
-		 *										testing, as well as reading in a shader, at the same time.
-		 */
-        virtual void setRenderTarget(const SPtr<RenderTargetCore>& target, bool readOnlyDepthStencil = false) = 0;
-
-		/**
-		 * Returns information about available output devices and their video modes.
-		 *
-		 * @note	Thread safe.
-		 */
-		const VideoModeInfo& getVideoModeInfo() const { return *mVideoModeInfo; }
-
-		/************************************************************************/
-		/* 								UTILITY METHODS                    		*/
-		/************************************************************************/
-
-		/**
-		 * Gets the native type used for vertex colors.
-		 *
-		 * @note	Thread safe.
-		 */
-		virtual VertexElementType getColorVertexElementType() const = 0;
-
-		/**
-		 * Contains a default matrix into a matrix suitable for use by this specific render system.
-		 *
-		 * @note	Thread safe.
-		 */
-		virtual void convertProjectionMatrix(const Matrix4& matrix, Matrix4& dest) = 0;
-
-		/**
-		 * Gets horizontal texel offset used for mapping texels to pixels in this render system.
-		 *
-		 * @note	Thread safe.
-		 */
-		virtual float getHorizontalTexelOffset() = 0;
-
-		/**
-		 * Gets vertical texel offset used for mapping texels to pixels in this render system.
-		 *
-		 * @note		Thread safe.
-		 */
-		virtual float getVerticalTexelOffset() = 0;
-
-		/**
-		 * Gets the minimum (closest) depth value used by this render system.
-		 *
-		 * @note	Thread safe.
-		 */
-		virtual float getMinimumDepthInputValue() = 0;
-
-		/**
-		 * Gets the maximum (farthest) depth value used by this render system.
-		 *
-		 * @note	Thread safe.
-		 */
-		virtual float getMaximumDepthInputValue() = 0;
-
-		/**
-		 * Checks if vertex color needs to be flipped before sent to the shader.
-		 *
-		 * @note	Thread safe.
-		 */
-		virtual bool getVertexColorFlipRequired() const { return false; }
-
-		/** Checks whether GPU programs expect matrices in column major format. */
-		virtual bool getGpuProgramHasColumnMajorMatrices() const { return false; }
-
-		/**
-		 * Generates a parameter block description and calculates per-parameter offsets for the provided gpu data 
-		 * parameters. The offsets are render API specific and correspond to std140 layout for OpenGL, and the default 
-		 * layout in DirectX.
-		 * 			
-		 * @param[in]	name	Name to assign the parameter block.
-		 * @param[in]	params	List of parameters in the parameter block. Only name, type and array size fields need to be
-		 * 						populated, the rest will be populated when the method returns.		
-		 * @return				Descriptor for the parameter block holding the provided parameters as laid out by the 
-		 *						default render API layout.
-		 */
-		virtual GpuParamBlockDesc generateParamBlockDesc(const String& name, Vector<GpuParamDataDesc>& params) = 0;
-
-		/************************************************************************/
-		/* 							INTERNAL METHODS				        	*/
-		/************************************************************************/
-	protected:
-		/**
-		 * Initializes the render API system and creates a primary render window.
-		 *
-		 * @note	
-		 * Although I'd like otherwise, due to the nature of some render API implementations, you cannot initialize the 
-		 * render system without a window.
-		 * @note
-		 * Sim thread.
-		 */
-		RenderWindowPtr initialize(const RENDER_WINDOW_DESC& primaryWindowDesc);
-
-		/**
-		 * Prepares the initialization of the render API system on the core thread. After the system is prepared a render 
-		 * window can be created and initialization finalized.
-		 */
-		virtual void initializePrepare();
-
-		/**
-		 * Finalizes the initialization of the render API system on the core thread. Should be called after the primary 
-		 * render window is created.
-		 */
-		virtual void initializeFinalize(const SPtr<RenderWindowCore>& primaryWindow);
-
-		/**
-		 * Shuts down the render API system and cleans up all resources.
-		 *
-		 * @note	Sim thread.
-		 */
-		void destroy();
-
-		/** Performs render API system shutdown on the core thread. */
-		virtual void destroyCore();
-
-		/** @copydoc setClipPlanes */
-		virtual void setClipPlanesImpl(const PlaneList& clipPlanes) = 0;
-
-		/************************************************************************/
-		/* 								INTERNAL DATA					       	*/
-		/************************************************************************/
-	protected:
-		friend class RenderAPIManager;
-
-		SPtr<RenderTargetCore> mActiveRenderTarget;
-
-		DriverVersion mDriverVersion;
-		CullingMode mCullingMode;
-		UINT16 mDisabledTexUnitsFrom;
-
-		bool mVertexProgramBound;
-		bool mGeometryProgramBound;
-		bool mFragmentProgramBound;
-		bool mDomainProgramBound;
-		bool mHullProgramBound;
-		bool mComputeProgramBound;
-
-		PlaneList mClipPlanes;
-		bool mClipPlanesDirty;
-
-		RenderAPICapabilities* mCurrentCapabilities;
-		VideoModeInfoPtr mVideoModeInfo;
-	};
-
-	/** @endcond */
-	/** @} */
-}

+ 0 - 65
BansheeCore/Include/BsSpecificImporter.h

@@ -1,65 +0,0 @@
-//********************************** 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 Importer
-	 *  @{
-	 */
-
-	/**
-	 * Abstract class that is to be specialized in convertinga certain asset type into an engine usable resource. 
-	 * (e.g. a .png file into an engine usable texture).
-	 * 			
-	 * On initialization this class must register itself with the Importer module, which delegates asset import calls to a 
-	 * specific importer.
-	 */
-	class BS_CORE_EXPORT SpecificImporter
-	{
-	public:
-		SpecificImporter() {}
-		virtual ~SpecificImporter() {}
-
-		/**
-		 * Check is the provided extension supported by this importer.
-		 *
-		 * @note	Provided extension should be without the leading dot.
-		 */
-		virtual bool isExtensionSupported(const WString& ext) const = 0;
-
-		/** Check if the provided magic number is supported by this importer. */
-		virtual bool isMagicNumberSupported(const UINT8* magicNumPtr, UINT32 numBytes) const = 0; 
-
-		/**
-		 * Imports the given file.
-		 *
-		 * @param[in]	filePath	Pathname of the file, with file extension.
-		 *
-		 * @return					null if it fails, otherwise the loaded object.
-		 */
-		virtual ResourcePtr import(const Path& filePath, ConstImportOptionsPtr importOptions) = 0;
-
-		/**
-		 * Creates import options specific for this importer. Import options are provided when calling import() in order 
-		 * to customize the import, and provide additional information.
-		 */
-		virtual ImportOptionsPtr createImportOptions() const;
-
-		/**
-		 * Gets the default import options.
-		 *
-		 * @return	The default import options.
-		 */
-		ConstImportOptionsPtr getDefaultImportOptions() const;
-
-	private:
-		mutable ConstImportOptionsPtr mDefaultImportOptions;
-	};
-
-	/** @} */
-	/** @endcond */
-}

+ 0 - 111
BansheeCore/Source/BsTextureManager.cpp

@@ -1,111 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#include "BsTextureManager.h"
-#include "BsException.h"
-#include "BsPixelUtil.h"
-#include "BsMultiRenderTexture.h"
-#include "BsRenderAPI.h"
-
-namespace BansheeEngine 
-{
-    TexturePtr TextureManager::createTexture(TextureType texType, UINT32 width, UINT32 height, UINT32 depth, int numMipmaps,
-        PixelFormat format, int usage, bool hwGamma, UINT32 multisampleCount)
-    {
-		Texture* tex = new (bs_alloc<Texture>()) Texture(texType, width, height, depth, numMipmaps, format, usage, hwGamma, multisampleCount);
-		TexturePtr ret = bs_core_ptr<Texture>(tex);
-
-		ret->_setThisPtr(ret);
-		ret->initialize();
-
-		return ret;
-    }
-
-	TexturePtr TextureManager::createTexture(const PixelDataPtr& pixelData, int usage , bool hwGammaCorrection)
-    {
-		Texture* tex = new (bs_alloc<Texture>()) Texture(pixelData, usage, hwGammaCorrection);
-		TexturePtr ret = bs_core_ptr<Texture>(tex);
-
-		ret->_setThisPtr(ret);
-		ret->initialize();
-
-		return ret;
-    }
-
-	TexturePtr TextureManager::_createEmpty()
-	{
-		Texture* tex = new (bs_alloc<Texture>()) Texture();
-		TexturePtr texture = bs_core_ptr<Texture>(tex);
-		texture->_setThisPtr(texture);
-
-		return texture;
-	}
-
-	RenderTexturePtr TextureManager::createRenderTexture(TextureType textureType, UINT32 width, UINT32 height, 
-			PixelFormat format, bool hwGamma, UINT32 multisampleCount, 
-			bool createDepth, PixelFormat depthStencilFormat)
-	{
-		HTexture texture = Texture::create(textureType, width, height, 0, format, TU_RENDERTARGET, hwGamma, multisampleCount);
-
-		HTexture depthStencil;
-		if(createDepth)
-		{
-			depthStencil = Texture::create(TEX_TYPE_2D, width, height, 0, depthStencilFormat, TU_DEPTHSTENCIL, false, multisampleCount);
-		}
-
-		RENDER_TEXTURE_DESC desc;
-		desc.colorSurface.texture = texture;
-		desc.colorSurface.face = 0;
-		desc.colorSurface.mipLevel = 0;
-
-		desc.depthStencilSurface.texture = depthStencil;
-		desc.depthStencilSurface.face = 0;
-		desc.depthStencilSurface.mipLevel = 0;
-
-		RenderTexturePtr newRT = createRenderTexture(desc);
-
-		return newRT;
-	}
-
-	RenderTexturePtr TextureManager::createRenderTexture(const RENDER_TEXTURE_DESC& desc)
-	{
-		RenderTexturePtr newRT = createRenderTextureImpl(desc);
-		newRT->_setThisPtr(newRT);
-		newRT->initialize();
-
-		return newRT;
-	}
-
-	MultiRenderTexturePtr TextureManager::createMultiRenderTexture(const MULTI_RENDER_TEXTURE_DESC& desc)
-	{
-		MultiRenderTexturePtr newRT = createMultiRenderTextureImpl(desc);
-		newRT->_setThisPtr(newRT);
-		newRT->initialize();
-
-		return newRT;
-	}
-
-	SPtr<TextureCore> TextureCoreManager::createTexture(TextureType texType, UINT32 width, UINT32 height, UINT32 depth,
-		int numMips, PixelFormat format, int usage, bool hwGammaCorrection, UINT32 multisampleCount)
-	{
-		SPtr<TextureCore> newRT = createTextureInternal(texType, width, height, depth, numMips, format, usage, hwGammaCorrection, multisampleCount);
-		newRT->initialize();
-
-		return newRT;
-	}
-
-	SPtr<RenderTextureCore> TextureCoreManager::createRenderTexture(const RENDER_TEXTURE_CORE_DESC& desc)
-	{
-		SPtr<RenderTextureCore> newRT = createRenderTextureInternal(desc);
-		newRT->initialize();
-
-		return newRT;
-	}
-
-	SPtr<MultiRenderTextureCore> TextureCoreManager::createMultiRenderTexture(const MULTI_RENDER_TEXTURE_CORE_DESC& desc)
-	{
-		SPtr<MultiRenderTextureCore> newRT = createMultiRenderTextureInternal(desc);
-		newRT->initialize();
-
-		return newRT;
-	}
-}

+ 0 - 233
BansheeD3D11RenderAPI/BansheeD3D11RenderAPI.vcxproj.filters

@@ -1,233 +0,0 @@
-<?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>
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="Include\BsD3D11VideoModeInfo.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D11VertexBuffer.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D11TimerQuery.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D11TextureView.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D11TextureManager.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D11Texture.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D11SamplerState.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D11RenderWindowManager.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D11RenderWindow.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D11RenderUtility.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D11RenderTexture.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D11RenderStateManager.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D11RasterizerState.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D11QueryManager.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D11Prerequisites.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D11OcclusionQuery.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D11MultiRenderTexture.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D11Mappings.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D11InputLayoutManager.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D11IndexBuffer.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D11HLSLProgramFactory.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D11HLSLParamParser.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D11HardwareBufferManager.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D11HardwareBuffer.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D11GpuProgram.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D11GpuParamBlockBuffer.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D11GpuBufferView.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D11GpuBuffer.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D11EventQuery.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D11DriverList.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D11Driver.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D11Device.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D11DepthStencilState.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D11BlendState.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D11RenderAPI.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D11RenderAPIFactory.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="Source\BsD3D11VideoModeInfo.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D11VertexBuffer.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D11TimerQuery.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D11TextureView.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D11TextureManager.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D11Texture.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D11SamplerState.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D11RenderWindowManager.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D11RenderWindow.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D11RenderUtility.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D11RenderTexture.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D11RenderStateManager.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D11RasterizerState.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D11QueryManager.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D11Plugin.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D11OcclusionQuery.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D11MultiRenderTexture.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D11Mappings.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D11InputLayoutManager.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D11IndexBuffer.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D11HLSLProgramFactory.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D11HLSLParamParser.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D11HardwareBufferManager.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D11HardwareBuffer.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D11GpuProgram.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D11GpuParamBlockBuffer.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D11GpuBufferView.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D11GpuBuffer.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D11EventQuery.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D11DriverList.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D11Driver.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D11Device.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D11DepthStencilState.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D11BlendState.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D11RenderAPI.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D11RenderAPIFactory.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-  </ItemGroup>
-</Project>

+ 0 - 83
BansheeD3D11RenderAPI/Include/BsD3D11Device.h

@@ -1,83 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsD3D11Prerequisites.h"
-
-namespace BansheeEngine
-{
-		/**
-		 * @brief	Available DX11 error levels.
-		 */
-		enum BS_D3D11_ERROR_LEVEL
-		{
-			D3D11ERR_NO_EXCEPTION,
-			D3D11ERR_CORRUPTION,
-			D3D11ERR_ERROR,
-			D3D11ERR_WARNING,
-			D3D11ERR_INFO
-		};
-
-	/**
-	 * @brief	Wrapper around DirectX 11 device object.
-	 */
-	class BS_D3D11_EXPORT D3D11Device
-	{
-	public:
-		/**
-		 * @brief	Constructs the object with a previously created DX11 device.
-		 */
-		D3D11Device(ID3D11Device* device);
-		~D3D11Device();
-
-		/**
-		 * @brief	Shuts down the device any releases any internal resources.
-		 */
-		void shutdown();
-
-		/**
-		 * @brief	Returns DX11 immediate context object.
-		 */
-		ID3D11DeviceContext* getImmediateContext() const { return mImmediateContext; }
-
-		/**
-		 * @brief	Returns DX11 class linkage object.
-		 */
-		ID3D11ClassLinkage* getClassLinkage() const { return mClassLinkage; }
-
-		/**
-		 * @brief	Returns internal DX11 device.
-		 */
-		ID3D11Device* getD3D11Device() const { return mD3D11Device; }		
-
-		/**
-		 * @brief	Resets error state & error messages.
-		 */
-		void clearErrors();
-
-		/**
-		 * @brief	Query if error occurred at any point since last "clearError" call.
-		 * 			Use getErrorDescription to get a string describing the error.
-		 */
-		bool hasError() const;
-
-		/**
-		 * @brief	Returns a string describing an error if one occurred.
-		 */
-		String getErrorDescription(bool clearErrors = true);
-		
-		/**
-		 * @brief	Sets the level for which we want to receive errors for. Errors will be reported
-		 *			for the provided level and any higher priority level.
-		 */
-		void setExceptionsErrorLevel(const BS_D3D11_ERROR_LEVEL exceptionsErrorLevel);
-
-	private:
-		D3D11Device();
-
-		ID3D11Device* mD3D11Device;
-		ID3D11DeviceContext* mImmediateContext;
-		ID3D11InfoQueue* mInfoQueue; 
-		ID3D11ClassLinkage* mClassLinkage;
-	};
-}

+ 0 - 78
BansheeD3D11RenderAPI/Include/BsD3D11Driver.h

@@ -1,78 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsD3D11Prerequisites.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	Provides information about a driver (e.g. hardware GPU driver or software emulated).
-	 */
-	class D3D11Driver
-	{
-	public:
-		/**
-		 * @brief	Constructs a new object from the adapter number provided by DX11 runtime, and
-		 *			DXGI adapter object.
-		 */
-		D3D11Driver(UINT32 adapterNumber, IDXGIAdapter* dxgiAdapter);
-		D3D11Driver(const D3D11Driver &ob);
-		~D3D11Driver();
-
-		D3D11Driver& operator=(const D3D11Driver& r);
-
-		/**
-		 * @brief	Returns the name of the driver.
-		 */
-		String getDriverName() const;
-
-		/**
-		 * @brief	Returns the description of the driver.
-		 */
-		String getDriverDescription() const;
-
-		/**
-		 * @brief	Returns adapter index of the adapter the driver is managing.
-		 */
-		UINT32 getAdapterNumber() const { return mAdapterNumber; }
-
-		/**
-		 * @brief	Returns number of outputs connected to the adapter the driver is managing.
-		 */
-		UINT32 getNumAdapterOutputs() const { return mNumOutputs; }
-
-		/**
-		 * @brief	Returns a description of the adapter the driver is managing.
-		 */
-		const DXGI_ADAPTER_DESC& getAdapterIdentifier() const { return mAdapterIdentifier; }
-
-		/**
-		 * @brief	Returns internal DXGI adapter object for the driver.
-		 */
-		IDXGIAdapter* getDeviceAdapter() { return mDXGIAdapter; }
-
-		/**
-		 * @brief	Returns description of an output device at the specified index.
-		 */
-		DXGI_OUTPUT_DESC getOutputDesc(UINT32 adapterOutputIdx) const;
-
-		/**
-		 * @brief	Returns a list of all available video modes for all output devices.
-		 */
-		VideoModeInfoPtr getVideoModeInfo() const { return mVideoModeInfo; }
-
-	private:
-		/**
-		 * @brief	Initializes the internal data.
-		 */
-		void construct();
-
-	private:
-		UINT32 mAdapterNumber;
-		UINT32 mNumOutputs;
-		DXGI_ADAPTER_DESC mAdapterIdentifier;
-		IDXGIAdapter* mDXGIAdapter;
-		VideoModeInfoPtr mVideoModeInfo;
-	};
-}

+ 0 - 60
BansheeD3D11RenderAPI/Include/BsD3D11GpuBufferView.h

@@ -1,60 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsD3D11Prerequisites.h"
-#include "BsGpuBufferView.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	Represents a specific view of a GpuBuffer. Different views all of the same buffer be used
-	 *			in different situations (e.g. for reading from a shader, or for a unordered read/write operation).
-	 */
-	class BS_D3D11_EXPORT D3D11GpuBufferView : public GpuBufferView
-	{
-	public:
-		D3D11GpuBufferView();
-		virtual ~D3D11GpuBufferView();
-
-		/**
-		 * @copydoc	GpuBufferView::initialize
-		 */
-		void initialize(const SPtr<GpuBufferCore>& buffer, GPU_BUFFER_DESC& desc);
-
-	private:
-		/**
-		 * @brief	Creates a DX11 shader resource view that allows a buffer to be bound to a shader for reading (the most
-		 *			common option). 
-		 *
-		 * @param	buffer			Buffer to create the view for.
-		 * @param	firstElement	Index of the first element the view manages. Interpretation of this value depends on
-		 *							exact buffer type. It may be byte offset for raw buffers, or number of elements for
-		 *							structured buffers.
-		 * @param	elementWidth	Width of a single element in the buffer. Size of the structure in structured buffers and
-		 *							ignored for raw buffers as they always operate on single byte basis.
-		 * @param	numElements		Number of elements the view manages, starting after the "firstElement". This means number of
-		 *							bytes for raw buffers or number of structures for structured buffers.
-		 *
-		 * @returns	Constructed DX11 shader resource view object.
-		 */
-		ID3D11ShaderResourceView* createSRV(D3D11GpuBufferCore* buffer, UINT32 firstElement, UINT32 elementWidth, UINT32 numElements);
-
-		/**
-		 * @brief	Creates a DX11 unordered access view that allows a buffer to be bound to a shader for random reading or writing.
-		 *
-		 * @param	buffer			Buffer to create the view for.
-		 * @param	firstElement	Index of the first element the view manages. Interpretation of this value depends on
-		 *							exact buffer type. It may be byte offset for raw buffers, or number of elements for
-		 *							structured buffers.
-		 * @param	numElements		Number of elements the view manages, starting after the "firstElement". This means number of
-		 *							bytes for raw buffers or number of structures for structured buffers.
-		 *
-		 * @returns	Constructed DX11 unordered access view object.
-		 */
-		ID3D11UnorderedAccessView* createUAV(D3D11GpuBufferCore* buffer, UINT32 firstElement, UINT32 numElements, bool useCounter);
-
-		ID3D11ShaderResourceView* mSRV;
-		ID3D11UnorderedAccessView* mUAV;
-	};
-}

+ 0 - 45
BansheeD3D11RenderAPI/Include/BsD3D11HLSLParamParser.h

@@ -1,45 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsD3D11Prerequisites.h"
-#include "BsVertexDeclaration.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	Handles parsing of GPU program microcode and extracting constant and input parameter data.
-	 */
-	class D3D11HLSLParamParser
-	{
-	public:
-		/**
-		 * @brief	Parses the provided microcode and outputs constant parameter descriptions, and optionally for
-		 *			vertex GPU programs a set of input parameters.
-		 *
-		 * @param	microcode	Compiled GPU program microcode to parse.
-		 * @param	desc		Output object that will contain parameter descriptions.
-		 * @param	inputParams	Output object that will contain a set of program input parameters. Can be null if not required.
-		 *						Only relevant for vertex programs.
-		 */
-		void parse(ID3DBlob* microcode, GpuParamDesc& desc, List<VertexElement>* inputParams);
-
-	private:
-		/**
-		 * @brief	Parses the provided constant buffer retrieving information about all of its members and storing
-		 *			them in the provided GPU params description object.
-		 */
-		void parseBuffer(ID3D11ShaderReflectionConstantBuffer* bufferReflection, GpuParamDesc& desc);
-
-		/**
-		 * @brief	Parses the resource description structure and stores it in the provided GPU params description object.
-		 */
-		void parseResource(D3D11_SHADER_INPUT_BIND_DESC& resourceDesc, GpuParamDesc& desc);
-
-		/**
-		 * @brief	Parses a variable with the specified type and variable description. Adds the variable in the provided
-		 *			GPU params description object and assigns it to the provided param block.
-		 */
-		void parseVariable(D3D11_SHADER_TYPE_DESC& varTypeDesc, D3D11_SHADER_VARIABLE_DESC& varDesc, GpuParamDesc& desc, GpuParamBlockDesc& paramBlock);
-	};
-}

+ 0 - 86
BansheeD3D11RenderAPI/Include/BsD3D11HardwareBuffer.h

@@ -1,86 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsD3D11Prerequisites.h"
-#include "BsHardwareBuffer.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	Class containing common functionality for all DirectX 11 hardware buffers.
-	 */
-	class BS_D3D11_EXPORT D3D11HardwareBuffer : public HardwareBuffer
-	{
-	public:
-		/**
-		 * @brief	Available types of DX11 buffers
-		 */
-		enum BufferType
-		{
-			BT_VERTEX = 0x1, /**< Contains geometry vertices and their properties. */
-			BT_INDEX = 0x2, /**< Contains triangle to vertex mapping. */
-			BT_CONSTANT = 0x4, /**< Contains GPU program parameters. */
-			BT_GROUP_GENERIC = 0x8, /**< Special value signifying a buffer is of generic type. Not an actual buffer. */
-			BT_STRUCTURED = BT_GROUP_GENERIC | 0x10, /**< Generic buffer that holds one or more user-defined structures laid out sequentially. */
-			BT_RAW = BT_GROUP_GENERIC | 0x20, /**< Generic buffer that holds raw block of bytes with no defined structure. */
-			BT_INDIRECTARGUMENT = BT_GROUP_GENERIC | 0x40, /**< Generic buffer that is used for holding parameters used for indirect rendering. */
-			BT_APPENDCONSUME = BT_GROUP_GENERIC | 0x80 /**< Generic buffer that allows the GPU program to use append/consume functionality. */
-		};
-
-		/**
-		 * @copydoc	HardwareBuffer::HardwareBuffer
-		 */
-		D3D11HardwareBuffer(BufferType btype, GpuBufferUsage usage, UINT32 elementCount, UINT32 elementSize, 
-			D3D11Device& device, bool useSystemMem = false, bool streamOut = false, bool randomGpuWrite = false, bool useCounter = false);
-		~D3D11HardwareBuffer();
-
-		/**
-		 * @copydoc	HardwareBuffer::readData
-		 */
-		void readData(UINT32 offset, UINT32 length, void* pDest) override;
-
-		/**
-		 * @copydoc	HardwareBuffer::writeData
-		 */
-		void writeData(UINT32 offset, UINT32 length, const void* pSource, 
-			BufferWriteType writeFlags = BufferWriteType::Normal) override;
-
-		/**
-		 * @copydoc	HardwareBuffer::copyData
-		 */
-		void copyData(HardwareBuffer& srcBuffer, UINT32 srcOffset, UINT32 dstOffset, 
-			UINT32 length, bool discardWholeBuffer = false) override;
-
-		/**
-		 * @brief	Returns the internal DX11 buffer object.
-		 */
-		ID3D11Buffer* getD3DBuffer() { return mD3DBuffer; }
-
-	protected:
-		/**
-		 * @copydoc	HardwareBuffer::lockImpl
-		 */
-		void* lockImpl(UINT32 offset, UINT32 length, GpuLockOptions options) override;
-
-		/**
-		 * @copydoc	HardwareBuffer::unlockImpl
-		 */
-		void unlockImpl() override;
-
-		BufferType mBufferType;
-		bool mRandomGpuWrite;
-		bool mUseCounter;
-		UINT32 mElementCount;
-		UINT32 mElementSize;
-
-		ID3D11Buffer* mD3DBuffer;
-
-		bool mUseTempStagingBuffer;
-		D3D11HardwareBuffer* mpTempStagingBuffer;
-		bool mStagingUploadNeeded;
-		
-		D3D11Device& mDevice;
-		D3D11_BUFFER_DESC mDesc;
-	};
-}

+ 0 - 175
BansheeD3D11RenderAPI/Include/BsD3D11Mappings.h

@@ -1,175 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsD3D11Prerequisites.h"
-#include "BsTexture.h"
-#include "BsPixelData.h"
-#include "BsIndexBuffer.h"
-#include "BsVertexData.h"
-#include "BsSamplerState.h"
-#include "BsDrawOps.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	Helper class that maps engine types to DirectX 1 types
-	 */
-	class BS_D3D11_EXPORT D3D11Mappings
-	{
-	public:
-		/**
-		 * @brief	Converts engine to DX11 specific texture addressing mode.
-		 */
-		static D3D11_TEXTURE_ADDRESS_MODE get(TextureAddressingMode tam);
-
-		/**
-		 * @brief	Converts engine to DX11 specific blend factor.
-		 */
-		static D3D11_BLEND get(BlendFactor bf);
-
-		/**
-		 * @brief	Converts engine to DX11 specific blend operation.
-		 */
-		static D3D11_BLEND_OP get(BlendOperation bo);
-
-		/**
-		 * @brief	Converts engine to DX11 specific comparison function.
-		 */
-		static D3D11_COMPARISON_FUNC get(CompareFunction cf);
-
-		/**
-		 * @brief	Converts engine to DX11 specific culling mode.
-		 */
-		static D3D11_CULL_MODE get(CullingMode cm);
-
-		/**
-		 * @brief	Converts engine to DX11 specific polygon fill mode.
-		 */
-		static D3D11_FILL_MODE get(PolygonMode mode);
-
-		/**
-		 * @brief	Return DirectX 11 stencil operation and optionally 
-		 *			invert it (greater than becomes less than, etc.)
-		 */
-		static D3D11_STENCIL_OP get(StencilOperation op, bool invert = false);
-
-		/**
-		 * @brief	Converts engine texture filter type to DirectX 11 filter
-		 *			shift (used for combining to get actual min/mag/mip filter
-		 *			bit location).
-		 */
-		static DWORD get(FilterType ft);
-
-		/**
-		 * @brief	Returns DirectX 11 texture filter from the provided min, mag
-		 *			and mip filter options, and optionally a filter with comparison support.
-		 */
-		static D3D11_FILTER get(const FilterOptions min, const FilterOptions mag, 
-			const FilterOptions mip, const bool comparison = false);
-
-		/**
-		 * @brief	Converts engine to DX11 buffer usage.
-		 */
-		static DWORD get(GpuBufferUsage usage);
-
-		/**
-		 * @brief	Converts engine to DX11 lock options, while also constraining
-		 *			the options depending on provided usage type.
-		 */
-		static D3D11_MAP get(GpuLockOptions options, GpuBufferUsage usage);
-
-		/**
-		 * @brief	Converts engine to DX11 vertex element type.
-		 */
-		static DXGI_FORMAT get(VertexElementType type);
-
-		/**
-		 * @brief	Returns a string describing the provided vertex element semantic.
-		 */
-		static LPCSTR get(VertexElementSemantic sem);
-
-		/**
-		 * @brief	Returns engine semantic from the provided semantic string. Throws an exception
-		 *			for semantics that do not exist.
-		 */
-		static VertexElementSemantic get(LPCSTR sem);
-
-		/**
-		 * @brief	Converts DirectX 11 GPU parameter component type to engine vertex element type.
-		 */
-		static VertexElementType getInputType(D3D_REGISTER_COMPONENT_TYPE type);
-
-		/**
-		 * @brief	Returns DX11 primitive topology based on the provided draw operation type.
-		 */
-		static D3D11_PRIMITIVE_TOPOLOGY getPrimitiveType(DrawOperationType type);
-
-		/**
-		 * @brief	Converts engine color to DX11 color.
-		 */
-		static void get(const Color& inColor, float* outColor);
-
-		/**
-		 * @brief	Checks does the provided map value include writing.
-		 */
-		static bool isMappingWrite(D3D11_MAP map);
-
-		/**
-		 * @brief	Checks does the provided map value include reading.
-		 */
-		static bool isMappingRead(D3D11_MAP map);
-
-		/**
-		 * @brief	Converts DX11 pixel format to engine pixel format.
-		 */
-		static PixelFormat getPF(DXGI_FORMAT d3dPF);
-
-		/**
-		 * @brief	Converts engine pixel format to DX11 pixel format. Some formats
-		 *			depend on whether hardware gamma is used or not, in which case
-		 *			set the "hwGamma" parameter as needed.
-		 */
-		static DXGI_FORMAT getPF(PixelFormat format, bool hwGamma);
-		
-		/** 
-		 * Returns a typeless version of a depth stencil format. Required for creating a depth stencil texture it can be
-		 * bound both for shader reading and depth/stencil writing.
-		 */
-		static DXGI_FORMAT getTypelessDepthStencilPF(PixelFormat format);
-
-		/** Returns a format of a depth stencil texture that can be used for reading the texture in the shader. */
-		static DXGI_FORMAT getShaderResourceDepthStencilPF(PixelFormat format);
-
-		/**
-		 * @brief	Converts engine to DX11 buffer usage.
-		 */
-		static D3D11_USAGE getUsage(GpuBufferUsage mUsage);
-
-		/**
-		 * @brief	Converts engine to DX11 buffer access flags.
-		 */
-		static UINT getAccessFlags(GpuBufferUsage mUsage);
-
-		/**
-		 * @brief	Converts engine to DX11 lock options.
-		 */
-		static D3D11_MAP getLockOptions(GpuLockOptions lockOptions);
-
-		/**
-		 * @brief	Checks is the provided buffer usage dynamic.
-		 */
-		static bool isDynamic(GpuBufferUsage mUsage);
-
-		/**
-		 * @brief	Finds the closest pixel format that DX11 supports.
-		 */
-		static PixelFormat getClosestSupportedPF(PixelFormat format, bool hwGamma);
-
-		/**
-		 * @brief	Returns size in bytes of a pixel surface of the specified size and format, while
-		 *			using DX11 allocation rules for padding.
-		 */
-		static UINT32 getSizeInBytes(PixelFormat pf, UINT32 width = 1, UINT32 height = 1);
-	};
-}

+ 0 - 31
BansheeD3D11RenderAPI/Include/BsD3D11QueryManager.h

@@ -1,31 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsD3D11Prerequisites.h"
-#include "BsQueryManager.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	Handles creation of DirectX 11 queries.
-	 */
-	class BS_D3D11_EXPORT D3D11QueryManager : public QueryManager
-	{
-	public:
-		/**
-		 * @copydoc		QueryManager::createEventQuery
-		 */
-		EventQueryPtr createEventQuery() const;
-
-		/**
-		 * @copydoc		QueryManager::createTimerQuery
-		 */
-		TimerQueryPtr createTimerQuery() const;
-
-		/**
-		 * @copydoc		QueryManager::createOcclusionQuery
-		 */
-		OcclusionQueryPtr createOcclusionQuery(bool binary) const;
-	};
-}

+ 0 - 279
BansheeD3D11RenderAPI/Include/BsD3D11RenderAPI.h

@@ -1,279 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsD3D11Prerequisites.h"
-#include "BsRenderAPI.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	Implementation of a render system using DirectX 11. Provides abstracted
-	 *			access to various low level DX11 methods.
-	 */
-	class BS_D3D11_EXPORT D3D11RenderAPI : public RenderAPICore
-	{
-	public:
-		D3D11RenderAPI();
-		~D3D11RenderAPI();
-
-		/**
-		 * @copydoc RenderAPICore::getName
-		 */
-		const StringID& getName() const override;
-		
-		/**
-		 * @copydoc RenderAPICore::getShadingLanguageName
-		 */
-		const String& getShadingLanguageName() const override;
-
-		/**
-		 * @copydoc	RenderAPICore::setBlendState
-		 */
-		void setBlendState(const SPtr<BlendStateCore>& blendState) override;
-
-		/**
-		 * @copydoc	RenderAPICore::setRasterizerState
-		 */
-		void setRasterizerState(const SPtr<RasterizerStateCore>& rasterizerState) override;
-
-		/**
-		 * @copydoc	RenderAPICore::setDepthStencilState
-		 */
-		void setDepthStencilState(const SPtr<DepthStencilStateCore>& depthStencilState, UINT32 stencilRefValue) override;
-
-		/**
-		 * @copydoc	RenderAPICore::setSamplerState
-		 */
-		void setSamplerState(GpuProgramType gptype, UINT16 texUnit, const SPtr<SamplerStateCore>& samplerState) override;
-
-		/**
-		 * @copydoc	RenderAPICore::setTexture
-		 */
-		void setTexture(GpuProgramType gptype, UINT16 unit, bool enabled, const SPtr<TextureCore>& texPtr) override;
-
-		/**
-		 * @copydoc	RenderAPICore::setLoadStoreTexture
-		 */
-		void setLoadStoreTexture(GpuProgramType gptype, UINT16 unit, bool enabled, const SPtr<TextureCore>& texPtr,
-			const TextureSurface& surface) override;
-
-		/**
-		 * @copydoc	RenderAPICore::disableTextureUnit
-		 */
-		void disableTextureUnit(GpuProgramType gptype, UINT16 texUnit) override;
-
-		/**
-		 * @copydoc	RenderAPICore::beginFrame
-		 */
-		void beginFrame() override;
-
-		/**
-		 * @copydoc	RenderAPICore::endFrame
-		 */
-		void endFrame() override;
-
-		/**
-		 * @copydoc RenderAPICore::clearRenderTarget
-		 */
-		void clearRenderTarget(UINT32 buffers, const Color& color = Color::Black, float depth = 1.0f, UINT16 stencil = 0, 
-			UINT8 targetMask = 0xFF) override;
-
-		/**
-		 * @copydoc RenderAPICore::clearViewport
-		 */
-		void clearViewport(UINT32 buffers, const Color& color = Color::Black, float depth = 1.0f, UINT16 stencil = 0,
-			UINT8 targetMask = 0xFF) override;
-
-		/**
-		 * @copydoc	RenderAPICore::setRenderTarget
-		 */
-		void setRenderTarget(const SPtr<RenderTargetCore>& target, bool readOnlyDepthStencil = false) override;
-
-		/**
-		 * @copydoc	RenderAPICore::setViewport
-		 */
-		void setViewport(const Rect2& vp) override;
-
-		/**
-		 * @copydoc	RenderAPICore::setScissorRect
-		 */
-		void setScissorRect(UINT32 left, UINT32 top, UINT32 right, UINT32 bottom) override;
-
-		/**
-		 * @copydoc	RenderAPICore::setVertexBuffers
-		 */
-		void setVertexBuffers(UINT32 index, SPtr<VertexBufferCore>* buffers, UINT32 numBuffers) override;
-
-		/**
-		 * @copydoc	RenderAPICore::setIndexBuffer
-		 */
-		void setIndexBuffer(const SPtr<IndexBufferCore>& buffer) override;
-
-		/**
-		 * @copydoc	RenderAPICore::setVertexDeclaration
-		 */
-		void setVertexDeclaration(const SPtr<VertexDeclarationCore>& vertexDeclaration) override;
-
-		/**
-		 * @copydoc	RenderAPICore::setDrawOperation
-		 */
-		void setDrawOperation(DrawOperationType op) override;
-
-		/**
-		 * @copydoc	RenderAPICore::draw
-		 */
-		void draw(UINT32 vertexOffset, UINT32 vertexCount) override;
-
-		/**
-		 * @copydoc	RenderAPICore::drawIndexed
-		 */
-		void drawIndexed(UINT32 startIndex, UINT32 indexCount, UINT32 vertexOffset, UINT32 vertexCount) override;
-
-		/** 
-		 * @copydoc RenderAPICore::bindGpuProgram
-		 */
-		void bindGpuProgram(const SPtr<GpuProgramCore>& prg) override;
-
-		/** 
-		 * @copydoc RenderAPICore::unbindGpuProgram
-		 */
-		void unbindGpuProgram(GpuProgramType gptype) override;
-
-		/** 
-		 * @copydoc RenderAPICore::setConstantBuffers
-		 */
-		void setConstantBuffers(GpuProgramType gptype, const SPtr<GpuParamsCore>& params) override;
-		
-		/**
-		 * @copydoc	RenderAPICore::setClipPlanesImpl
-		 */
-		void setClipPlanesImpl(const PlaneList& clipPlanes) override;
-
-		/**
-		 * @copydoc	RenderAPICore::convertProjectionMatrix
-		 */
-		void convertProjectionMatrix(const Matrix4& matrix, Matrix4& dest) override;
-
-		/**
-		 * @copydoc	RenderAPICore::getColorVertexElementType
-		 */
-		VertexElementType getColorVertexElementType() const override;
-
-		/**
-		 * @copydoc	RenderAPICore::getHorizontalTexelOffset
-		 */
-		float getHorizontalTexelOffset() override;
-
-		/**
-		 * @copydoc	RenderAPICore::getVerticalTexelOffset
-		 */
-		float getVerticalTexelOffset() override;
-
-		/**
-		 * @copydoc	RenderAPICore::getMinimumDepthInputValue
-		 */
-		float getMinimumDepthInputValue() override;
-
-		/**
-		 * @copydoc	RenderAPICore::getMaximumDepthInputValue
-		 */
-		float getMaximumDepthInputValue() override;
-
-		/**
-		 * @copydoc RenderAPICore::generateParamBlockDesc()
-		 */
-		GpuParamBlockDesc generateParamBlockDesc(const String& name, Vector<GpuParamDataDesc>& params) override;
-
-		/************************************************************************/
-		/* 				Internal use by DX11 RenderSystem only                  */
-		/************************************************************************/
-
-		/**
-		 * @brief	Determines DXGI multisample settings from the provided parameters.
-		 *
-		 * @param	multisampleCount	Number of requested samples.
-		 * @param	format				Pixel format used by the render target.
-		 * @param	outputSampleDesc	Output structure that will contain the requested multisample settings.
-		 */
-		void determineMultisampleSettings(UINT32 multisampleCount, DXGI_FORMAT format, DXGI_SAMPLE_DESC* outputSampleDesc);
-
-		/**
-		 * @brief	Returns the main DXGI factory object.
-		 */
-		IDXGIFactory* getDXGIFactory() const { return mDXGIFactory; }
-
-		/**
-		 * @brief	Returns the primary DX11 device object.
-		 */
-		D3D11Device& getPrimaryDevice() const { return *mDevice; }
-		
-		/**
-		 * @brief	Returns information describing all available drivers.
-		 */
-		D3D11DriverList* getDriverList() const { return mDriverList; }
-
-	protected:
-		friend class D3D11RenderAPIFactory;
-
-		/**
-		 * @copydoc	RenderAPICore::initializePrepare
-		 */
-		void initializePrepare() override;
-
-		/**
-		 * @copydoc	RenderAPICore::initializeFinalize
-		 */
-		void initializeFinalize(const SPtr<RenderWindowCore>& primaryWindow) override;
-
-		/**
-		 * @copydoc	RenderAPICore::destroy_internal
-		 */
-		void destroyCore() override;
-
-		/**
-		 * @brief	Creates or retrieves a proper input layout depending on the currently set vertex shader
-		 * 			and vertex buffer.
-		 *
-		 *			Applies the input layout to the pipeline.
-		 */
-		void applyInputLayout();
-
-		/**
-		 * @brief	Recalculates actual viewport dimensions based on currently 
-		 *			set viewport normalized dimensions and render target and applies
-		 *			them for further rendering.
-		 */
-		void applyViewport();
-
-		/**
-		 * @brief	Creates and populates a set of render system capabilities describing which functionality
-		 *			is available.
-		 */
-		RenderAPICapabilities* createRenderSystemCapabilities() const;
-
-	private:
-		IDXGIFactory* mDXGIFactory;
-		D3D11Device* mDevice;
-
-		D3D11DriverList* mDriverList;
-		D3D11Driver* mActiveD3DDriver;
-
-		D3D_FEATURE_LEVEL mFeatureLevel;
-
-		D3D11HLSLProgramFactory* mHLSLFactory;
-		D3D11InputLayoutManager* mIAManager;
-
-		std::pair<SPtr<TextureCore>, TextureViewPtr> mBoundUAVs[D3D11_PS_CS_UAV_REGISTER_COUNT];
-
-		UINT32 mStencilRef;
-		Rect2 mViewportNorm;
-		D3D11_VIEWPORT mViewport;
-		D3D11_RECT mScissorRect;
-
-		SPtr<VertexDeclarationCore> mActiveVertexDeclaration;
-		SPtr<D3D11GpuProgramCore> mActiveVertexShader;
-
-		DrawOperationType mActiveDrawOp;
-	};
-}

+ 0 - 123
BansheeD3D11RenderAPI/Include/BsD3D11TextureView.h

@@ -1,123 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsD3D11Prerequisites.h"
-#include "BsTextureView.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	DirectX implementation of a texture resource view.
-	 */
-	class BS_D3D11_EXPORT D3D11TextureView : public TextureView
-	{
-	public:
-		~D3D11TextureView();
-
-		/**
-		 * @brief	Returns a shader resource view. Caller must take care this texture view
-		 *			actually contains a shader resource view, otherwise it returns null.
-		 */
-		ID3D11ShaderResourceView* getSRV() const { return mSRV; }
-
-		/**
-		 * @brief	Returns a render target view. Caller must take care this texture view
-		 *			actually contains a render target view, otherwise it returns null.
-		 */
-		ID3D11RenderTargetView*	getRTV() const { return mRTV; }
-
-		/**
-		 * @brief	Returns a unordered access view. Caller must take care this texture view
-		 *			actually contains a unordered access view, otherwise it returns null.
-		 */
-		ID3D11UnorderedAccessView* getUAV() const { return mUAV; }
-
-		/**
-		 * @brief	Returns a depth stencil view. Caller must take care this texture view
-		 *			actually contains a depth stencil view, otherwise it returns null.
-		 *
-		 * @param[in]	readOnly	Should the depth stencil view only support read operations (allows the bound texture to
-		 *							be also used as a shader resource view while bound as a depth stencil target).
-		 */
-		ID3D11DepthStencilView*	getDSV(bool readOnly) const { return readOnly ? mRODSV : mDSV; }
-
-	protected:
-		friend class D3D11TextureCore;
-
-		D3D11TextureView(const SPtr<TextureCore>& texture, const TEXTURE_VIEW_DESC& desc);
-	private:
-		/**
-		 * @brief	Creates a shader resource view that allows the provided surfaces 
-		 *			to be bound as normal shader resources.
-		 *
-		 * @param	texture			Texture to create the resource view for.
-		 * @param	mostDetailMip	First mip level to create the resource view for (0 - base level). 
-		 * @param	numMips			Number of mip levels to create the view for.
-		 * @param	firstArraySlice	First array slice to create the view for. This will be array index 
-		 *							for 1D and 2D array textures, texture slice index for 3D textures, and face
-		 *							index for cube textures (cube index * 6).
-		 * @param	numArraySlices	Number of array slices to create the view for. This will be number of
-		 *							array elements for 1D and 2D array textures, number of slices for 3D textures,
-		 *							and number of cubes for cube textures.
-		 */
-		ID3D11ShaderResourceView* createSRV(D3D11TextureCore* texture, 
-			UINT32 mostDetailMip, UINT32 numMips, UINT32 firstArraySlice, UINT32 numArraySlices);
-
-		/**
-		 * @brief	Creates a shader resource view that allows the provided surfaces 
-		 *			to be bound as render targets.
-		 *
-		 * @param	texture			Texture to create the resource view for.
-		 * @param	mipSlice		Mip level to create the resource view for (0 - base level).
-		 * @param	firstArraySlice	First array slice to create the view for. This will be array index 
-		 *							for 1D and 2D array textures, texture slice index for 3D textures, and face
-		 *							index for cube textures (cube index * 6).
-		 * @param	numArraySlices	Number of array slices to create the view for. This will be number of
-		 *							array elements for 1D and 2D array textures, number of slices for 3D textures,
-		 *							and number of cubes for cube textures.
-		 */
-		ID3D11RenderTargetView* createRTV(D3D11TextureCore* texture, 
-			UINT32 mipSlice, UINT32 firstArraySlice, UINT32 numArraySlices);
-
-		/**
-		 * @brief	Creates a shader resource view that allows the provided surfaces 
-		 *			to be bound as unordered access buffers.
-		 *
-		 * @param	texture			Texture to create the resource view for.
-		 * @param	mipSlice		Mip level to create the resource view for (0 - base level).
-		 * @param	firstArraySlice	First array slice to create the view for. This will be array index
-		 *							for 1D and 2D array textures, texture slice index for 3D textures, and face
-		 *							index for cube textures (cube index * 6).
-		 * @param	numArraySlices	Number of array slices to create the view for. This will be number of
-		 *							array elements for 1D and 2D array textures, number of slices for 3D textures,
-		 *							and number of cubes for cube textures.
-		 */
-		ID3D11UnorderedAccessView* createUAV(D3D11TextureCore* texture, 
-			UINT32 mipSlice, UINT32 firstArraySlice, UINT32 numArraySlices);
-
-		/**
-		 * @brief	Creates a shader resource view that allows the provided surfaces 
-		 *			to be bound as depth stencil buffers.
-		 *
-		 * @param	texture			Texture to create the resource view for.
-		 * @param	mipSlice		Mip level to create the resource view for (0 - base level).
-		 * @param	firstArraySlice	First array slice to create the view for. This will be array index
-		 *							for 1D and 2D array textures, texture slice index for 3D textures, and face
-		 *							index for cube textures (cube index * 6).
-		 * @param	numArraySlices	Number of array slices to create the view for. This will be number of
-		 *							array elements for 1D and 2D array textures, number of slices for 3D textures,
-		 *							and number of cubes for cube textures.
-		 * @param	readOnly		Should the depth stencil view only support read operations (allows the bound texture to
-		 *							be also used as a shader resource view while bound as a depth stencil target).
-		 */
-		ID3D11DepthStencilView* createDSV(D3D11TextureCore* texture, 
-			UINT32 mipSlice, UINT32 firstArraySlice, UINT32 numArraySlices, bool readOnly);
-
-		ID3D11ShaderResourceView* mSRV;
-		ID3D11RenderTargetView* mRTV;
-		ID3D11UnorderedAccessView* mUAV;
-		ID3D11DepthStencilView*	mDSV;
-		ID3D11DepthStencilView*	mRODSV;
-	};
-}

+ 0 - 33
BansheeD3D11RenderAPI/Source/BsD3D11QueryManager.cpp

@@ -1,33 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#include "BsD3D11QueryManager.h"
-#include "BsD3D11EventQuery.h"
-#include "BsD3D11TimerQuery.h"
-#include "BsD3D11OcclusionQuery.h"
-
-namespace BansheeEngine
-{
-	EventQueryPtr D3D11QueryManager::createEventQuery() const
-	{
-		EventQueryPtr query = std::shared_ptr<D3D11EventQuery>(bs_new<D3D11EventQuery>(), &QueryManager::deleteEventQuery, StdAlloc<D3D11EventQuery>());
-		mEventQueries.push_back(query.get());
-
-		return query;
-	}
-
-	TimerQueryPtr D3D11QueryManager::createTimerQuery() const
-	{
-		TimerQueryPtr query = std::shared_ptr<D3D11TimerQuery>(bs_new<D3D11TimerQuery>(), &QueryManager::deleteTimerQuery, StdAlloc<D3D11TimerQuery>());
-		mTimerQueries.push_back(query.get());
-
-		return query;
-	}
-
-	OcclusionQueryPtr D3D11QueryManager::createOcclusionQuery(bool binary) const
-	{
-		OcclusionQueryPtr query = std::shared_ptr<D3D11OcclusionQuery>(bs_new<D3D11OcclusionQuery>(binary), &QueryManager::deleteOcclusionQuery, StdAlloc<D3D11OcclusionQuery>());
-		mOcclusionQueries.push_back(query.get());
-
-		return query;
-	}
-}

+ 0 - 200
BansheeD3D9RenderAPI/BansheeD3D9RenderAPI.vcxproj.filters

@@ -1,200 +0,0 @@
-<?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>
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="Include\BsD3D9VideoModeInfo.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D9VertexDeclaration.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D9VertexBuffer.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D9TimerQuery.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D9TextureManager.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D9Texture.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D9ResourceManager.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D9Resource.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D9RenderWindowManager.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D9RenderWindow.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D9RenderTexture.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D9QueryManager.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D9Prerequisites.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D9PixelBuffer.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D9OcclusionQuery.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D9MultiRenderTexture.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D9Mappings.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D9IndexBuffer.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D9HLSLProgramFactory.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D9HLSLParamParser.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D9HardwareBufferManager.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D9GpuProgram.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D9GpuBuffer.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D9EventQuery.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D9DriverList.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D9Driver.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D9DeviceManager.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D9Device.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D9EmulatedParamBlocks.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D9RenderAPI.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsD3D9RenderAPIFactory.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="Source\BsD3D9VideoModeInfo.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D9VertexDeclaration.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D9VertexBuffer.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D9TimerQuery.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D9TextureManager.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D9Texture.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D9ResourceManager.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D9Resource.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D9RenderWindowManager.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D9RenderWindow.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D9RenderTexture.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D9QueryManager.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D9PixelBuffer.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D9OcclusionQuery.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D9MultiRenderTexture.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D9Mappings.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D9IndexBuffer.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D9HLSLProgramFactory.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D9HardwareBufferManager.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D9GpuProgram.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D9GpuBuffer.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D9EventQuery.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D9DriverList.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D9Driver.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D9DeviceManager.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D9Device.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D9EmulatedParamBlocks.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D9RenderAPI.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D9RenderAPIFactory.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsD3D9Plugin.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-  </ItemGroup>
-</Project>

+ 0 - 83
BansheeD3D9RenderAPI/Include/BsD3D9DeviceManager.h

@@ -1,83 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsD3D9Prerequisites.h"
-
-namespace BansheeEngine 
-{
-	/**
-	 * @brief	Handles creation of DirectX 9 devices. Also links the devices
-	 *			with created render targets.
-	 */
-	class BS_D3D9_EXPORT D3D9DeviceManager
-	{	
-	public:
-		D3D9DeviceManager();
-		~D3D9DeviceManager();
-
-		/**
-		 * @brief	Changes the active device to the provided device. Must be not null.
-		 */
-		void setActiveDevice(D3D9Device* device);
-
-		/**
-		 * @brief	Retrieves the currently active device.
-		 */
-		D3D9Device*	getActiveDevice();
-
-		/**
-		 * @brief	Sets the device used by the currently active render target.
-		 */
-		void setActiveRenderTargetDevice(D3D9Device* device);
-
-		/**
-		 * @brief	Retrieves the device used by the currently active render target.
-		 */
-		D3D9Device*	getActiveRenderTargetDevice();		
-
-		/**
-		 * @brief	Returns the total number of devices available.
-		 */
-		UINT getDeviceCount();
-
-		/**
-		 * @brief	Returns the device under the specified index.
-		 */
-		D3D9Device*	getDevice(UINT index);
-
-		/**
-		 * @brief	Links the provided render window with a device. The window will be 
-		 *			assigned an existing device if a match one can be found, otherwise
-		 *			a new device will be created.
-		 */
-		void linkRenderWindow(D3D9RenderWindowCore* renderWindow);
-
-		/**
-		 * @brief	Called by the devices when they're are being destroyed.
-		 */
-		void notifyOnDeviceDestroy(D3D9Device* device);
-
-		/**
-		 * @brief	Retrieves engine device from DX9 device.
-		 */
-		D3D9Device*	getDeviceFromD3D9Device(IDirect3DDevice9* d3d9Device);
-
-	protected:
-		/**
-		 * @brief	Attempts to find a matching device for the provided render window. If one cannot be found a
-		 *			new device is created. Found/created device is returned, as well as a list of all render windows
-		 *			using that device.
-		 */
-		D3D9Device*	selectDevice(D3D9RenderWindowCore* renderWindow, Vector<D3D9RenderWindowCore*>& renderWindowsGroup);
-
-		/**
-		 * @brief	Finds the driver the render window belongs to.
-		 */
-		D3D9Driver*	findDriver(D3D9RenderWindowCore* renderWindow);
-
-		Vector<D3D9Device*> mRenderDevices;
-		D3D9Device*	mActiveDevice;
-		D3D9Device*	mActiveRenderWindowDevice;		
-	};
-}

+ 0 - 66
BansheeD3D9RenderAPI/Include/BsD3D9EventQuery.h

@@ -1,66 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsD3D9Prerequisites.h"
-#include "BsD3D9Resource.h"
-#include "BsEventQuery.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @copydoc EventQuery
-	 */
-	class BS_D3D9_EXPORT D3D9EventQuery : public EventQuery, public D3D9Resource
-	{
-	public:
-		D3D9EventQuery();
-		~D3D9EventQuery();
-
-		/**
-		 * @copydoc EventQuery::begin
-		 */
-		virtual void begin();
-
-		/**
-		 * @copydoc EventQuery::isReady
-		 */
-		virtual bool isReady() const;
-
-		/**
-		 * @copydoc	D3D9Resource::notifyOnDeviceCreate
-		 */
-		virtual void notifyOnDeviceCreate(IDirect3DDevice9* d3d9Device);
-
-		/**
-		 * @copydoc	D3D9Resource::notifyOnDeviceDestroy
-		 */
-		virtual void notifyOnDeviceDestroy(IDirect3DDevice9* d3d9Device);
-
-		/**
-		 * @copydoc	D3D9Resource::notifyOnDeviceLost
-		 */
-		virtual void notifyOnDeviceLost(IDirect3DDevice9* d3d9Device);
-
-		/**
-		 * @copydoc	D3D9Resource::notifyOnDeviceReset
-		 */
-		virtual void notifyOnDeviceReset(IDirect3DDevice9* d3d9Device);
-
-	private:
-		/**
-		 * @brief	Creates the internal DX9 query.
-		 */
-		void createQuery();
-
-		/**
-		 * @brief	Releases the internal DX9 query.
-		 */
-		void releaseQuery();
-
-	private:
-		bool mQueryIssued;
-		IDirect3DQuery9* mQuery;
-		IDirect3DDevice9* mDevice;
-	};
-}

+ 0 - 68
BansheeD3D9RenderAPI/Include/BsD3D9GpuBuffer.h

@@ -1,68 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsD3D9Prerequisites.h"
-#include "BsGpuBuffer.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	Represents a generic GPU buffer in DX9. This class
-	 *			is just a dummy in order to conform to the interface
-	 *			as DX9 supports no such buffers.
-	 */
-	class BS_D3D9_EXPORT D3D9GpuBufferCore : public GpuBufferCore
-	{
-	public:
-		~D3D9GpuBufferCore();
-
-		/**
-		 * @copydoc GpuBufferCore::lock
-		 */
-		virtual void* lock(UINT32 offset, UINT32 length, GpuLockOptions options);
-
-		/**
-		 * @copydoc GpuBufferCore::unlock
-		 */
-		virtual void unlock();
-
-		/**
-		 * @copydoc GpuBufferCore::readData
-		 */
-        virtual void readData(UINT32 offset, UINT32 length, void* pDest);
-
-		/**
-		 * @copydoc GpuBufferCore::writeData
-		 */
-        virtual void writeData(UINT32 offset, UINT32 length, const void* pSource,
-				BufferWriteType writeFlags = BufferWriteType::Normal);
-
-		/**
-		 * @copydoc GpuBufferCore::copyData
-		 */
-		void copyData(GpuBufferCore& srcBuffer, UINT32 srcOffset,
-			UINT32 dstOffset, UINT32 length, bool discardWholeBuffer = false);
-
-	protected:
-		friend class D3D9HardwareBufferCoreManager;
-
-		D3D9GpuBufferCore(UINT32 elementCount, UINT32 elementSize, GpuBufferType type, GpuBufferUsage usage,
-			bool randomGpuWrite = false, bool useCounter = false);
-
-		/**
-		 * @copydoc	GpuBufferCore::createView
-		 */
-		virtual GpuBufferView* createView();
-
-		/**
-		 * @copydoc	GpuBufferCore::destroyView
-		 */
-		virtual void destroyView(GpuBufferView* view);
-
-		/**
-		 * @copydoc GpuBufferCore::initialize
-		 */
-		void initialize();	
-	};
-}

+ 0 - 99
BansheeD3D9RenderAPI/Include/BsD3D9IndexBuffer.h

@@ -1,99 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsD3D9Prerequisites.h"
-#include "BsIndexBuffer.h"
-#include "BsD3D9Resource.h"
-
-namespace BansheeEngine 
-{ 
-	/**
-	 * @brief	DirectX 9 implementation of an index buffer.
-	 */
-    class BS_D3D9_EXPORT D3D9IndexBufferCore : public IndexBufferCore, public D3D9Resource
-    {
-	protected:
-		/**
-		 * @brief	Container for internal buffer resources.
-		 */
-		struct BufferResources
-		{
-			IDirect3DIndexBuffer9* mBuffer;
-			bool mOutOfDate;
-			UINT32 mLockOffset;
-			UINT32 mLockLength;
-			GpuLockOptions mLockOptions;
-		};
-
-    public:
-		D3D9IndexBufferCore(IndexType idxType, UINT32 numIndexes, GpuBufferUsage usage);
-		~D3D9IndexBufferCore();
-
-		/**
-		 * @copydoc	IndexBufferCore::readData
-		 */
-        void readData(UINT32 offset, UINT32 length, void* dest);
-
-		/**
-		 * @copydoc	IndexBufferCore::writeData
-		 */
-		void writeData(UINT32 offset, UINT32 length, const void* source, BufferWriteType writeFlags = BufferWriteType::Normal);
-
-		/**
-		 * @copydoc	D3D9Resource::notifyOnDeviceCreate
-		 */
-		virtual void notifyOnDeviceCreate(IDirect3DDevice9* d3d9Device);
-
-		/**
-		 * @copydoc	D3D9Resource::notifyOnDeviceDestroy
-		 */
-		virtual void notifyOnDeviceDestroy(IDirect3DDevice9* d3d9Device);
-
-		/**
-		 * @copydoc	D3D9Resource::notifyOnDeviceLost
-		 */
-		virtual void notifyOnDeviceLost(IDirect3DDevice9* d3d9Device);
-
-		/**
-		 * @copydoc	D3D9Resource::notifyOnDeviceReset
-		 */
-		virtual void notifyOnDeviceReset(IDirect3DDevice9* d3d9Device);
-
-		/**
-		 * @brief	Creates a DX9 index buffer object in the provided memory pool.
-		 */
-		void createBuffer(IDirect3DDevice9* d3d9Device, D3DPOOL ePool);
-	
-		/**
-		 * @brief	Returns the DX9 index buffer object.
-		 */
-        IDirect3DIndexBuffer9* getD3DIndexBuffer();		
-
-	protected:
-		/**
-		 * @copydoc	IndexBufferCore::lockImpl
-		 */
-		void* lockImpl(UINT32 offset, UINT32 length, GpuLockOptions options);
-
-		/**
-		 * @copydoc	IndexBufferCore::unlockImpl
-		 */
-		void unlockImpl();
-
-		/**
-		 * @brief	Updates buffer resources from cached system memory buffer.
-		 */
-		bool updateBufferResources(const UINT8* systemMemoryBuffer, BufferResources* bufferResources);
-
-		/**
-		 * @copydoc IndexBufferCore::initialize
-		 */
-		void initialize();	
-		
-	protected:		
-		Map<IDirect3DDevice9*, BufferResources*> mMapDeviceToBufferResources;
-		D3DINDEXBUFFER_DESC	mBufferDesc;	
-		UINT8* mSystemMemoryBuffer;
-    };
-}

+ 0 - 148
BansheeD3D9RenderAPI/Include/BsD3D9Mappings.h

@@ -1,148 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsD3D9Prerequisites.h"
-#include "BsRenderAPI.h"
-#include "BsHardwareBuffer.h"
-#include "BsIndexBuffer.h"
-
-namespace BansheeEngine 
-{
-	/**
-	 * @brief	Provides helper methods for mapping between engine and DirectX 9 types.
-	 */
-	class BS_D3D9_EXPORT D3D9Mappings
-	{
-	public:
-		/**
-		 * @brief	DirectX 9 texture types.
-		 */
-		enum D3DTexType
-		{
-			D3D_TEX_TYPE_NORMAL,
-			D3D_TEX_TYPE_CUBE,
-			D3D_TEX_TYPE_VOLUME,
-			D3D_TEX_TYPE_NONE
-		};
-
-		/**
-		 * @brief	Returns DirectX 9 texture addressing mode. Returns exact mode if supported, or
-		 *			nearest available if not.
-		 */
-		static D3DTEXTUREADDRESS get(TextureAddressingMode tam, const D3DCAPS9& devCaps);
-
-		/**
-		 * @brief	Returns DirectX 9 blend factor.
-		 */
-		static D3DBLEND get(BlendFactor sbf);
-
-		/**
-		 * @brief	Returns DirectX 9 blend operation
-		 */
-		static D3DBLENDOP get(BlendOperation sbo);
-
-		/**
-		 * @brief	Return DirectX 9 compare function.
-		 */
-		static DWORD get(CompareFunction cf);
-
-		/**
-		 * @brief	Returns DirectX 9 culling mode. Optionally flip the mode so that
-		 *			engine CCW is DX9 CW and reverse.
-		 */
-		static DWORD get(CullingMode cm, bool flip);
-
-		/**
-		 * @brief	Return DirectX 9 fill mode depending on provided polygon mode.
-		 */
-		static D3DFILLMODE get(PolygonMode level);
-
-		/**
-		 * @brief	Return DirectX 9 stencil operation and optionally 
-		 *			invert it (greater than becomes less than, etc.)
-		 */
-		static DWORD get(StencilOperation op, bool invert = false);
-
-		/**
-		 * @brief	Returns DirectX 9 sampler state based on provided filter type.
-		 */
-		static D3DSAMPLERSTATETYPE get(FilterType ft);
-
-		/**
-		 * @brief	Returns a DirectX 9 texture filter type based on provided filter type, options and texture type.
-		 *			If wanted filter type is not available closest type will be returned.
-		 */
-		static DWORD get(FilterType ft, FilterOptions fo, const D3DCAPS9& devCaps, D3DTexType texType);
-		
-		/**
-		 * @brief	Returns DirectX 9 texture type.
-		 */
-		static D3DTexType get(TextureType textype);
-        
-		/**
-		 * @brief	Return DirectX 9 buffer usage.
-		 */
-        static DWORD get(GpuBufferUsage usage);
-        
-		/**
-		 * @brief	Returns DirectX 9 lock options, constrained by the provided usage.
-		 */
-        static DWORD get(GpuLockOptions options, GpuBufferUsage usage);
-        
-		/**
-		 * @brief	Returns DirectX 9 index buffer type.
-		 */
-        static D3DFORMAT get(IndexType itype);
-		
-		/**
-		 * @brief	Returns DirectX 9 vertex element type.
-		 */
-		static D3DDECLTYPE get(VertexElementType vType);
-
-		/**
-		 * @brief	Returns DirectX9 vertex element semantic.
-		 */
-		static D3DDECLUSAGE get(VertexElementSemantic sem);
-        
-		/**
-		 * @brief	Converts DirectX9 vertex element semantic to engine vertex element semantic.
-		 */
-		static VertexElementSemantic get(D3DDECLUSAGE sem);
-
-		/**
-		 * @brief	Converts a matrix to one usable by DirectX 9 API.
-		 */
-        static 	D3DXMATRIX makeD3DXMatrix(const Matrix4& mat);
-        
-		/**
-		 * @brief	Converts matrix returned by DirectX 9 API to engine matrix.
-		 */
-        static Matrix4 convertD3DXMatrix(const D3DXMATRIX& mat);
-
-		/**
-		 * @brief	Converts DirectX 9 pixel format to engine pixel format.
-		 */
-		static PixelFormat _getPF(D3DFORMAT d3dPF);
-		
-		/**
-		 * @brief	Converts engine pixel format to DirectX 9 pixel format.
-		 */
-		static D3DFORMAT _getPF(PixelFormat pf);
-
-		/**
-		 * @brief	Returns closest pixel format supported by DirectX 9.
-		 */
-		static PixelFormat _getClosestSupportedPF(PixelFormat pf);
-
-		/**
-		 * @brief	Returns closest color render target pixel format supported by DirectX 9.
-		 */
-		static PixelFormat _getClosestSupportedRenderTargetPF(PixelFormat pf);
-
-		/**
-		 * @brief	Returns closest depth/stencil format supported by DirectX 9.
-		 */
-		static PixelFormat _getClosestSupportedDepthStencilPF(PixelFormat pf);
-	};
-}

+ 0 - 85
BansheeD3D9RenderAPI/Include/BsD3D9OcclusionQuery.h

@@ -1,85 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsD3D9Prerequisites.h"
-#include "BsD3D9Resource.h"
-#include "BsOcclusionQuery.h"
-
-namespace BansheeEngine
-{
-	/**
-	* @copydoc OcclusionQuery
-	*/
-	class BS_D3D9_EXPORT D3D9OcclusionQuery : public OcclusionQuery, public D3D9Resource
-	{
-	public:
-		D3D9OcclusionQuery(bool binary);
-		~D3D9OcclusionQuery();
-
-		/**
-		* @copydoc OcclusionQuery::begin
-		*/
-		virtual void begin();
-
-		/**
-		* @copydoc OcclusionQuery::end
-		*/
-		virtual void end();
-
-		/**
-		* @copydoc OcclusionQuery::isReady
-		*/
-		virtual bool isReady() const;
-
-		/**
-		* @copydoc OcclusionQuery::getNumFragments
-		*/
-		virtual UINT32 getNumSamples();
-
-		/**
-		* @copydoc	D3D9Resource::notifyOnDeviceCreate
-		*/
-		virtual void notifyOnDeviceCreate(IDirect3DDevice9* d3d9Device);
-
-		/**
-		 * @copydoc	D3D9Resource::notifyOnDeviceDestroy
-		 */
-		virtual void notifyOnDeviceDestroy(IDirect3DDevice9* d3d9Device);
-
-		/**
-		 * @copydoc	D3D9Resource::notifyOnDeviceLost
-		 */
-		virtual void notifyOnDeviceLost(IDirect3DDevice9* d3d9Device);
-
-		/**
-		 * @copydoc	D3D9Resource::notifyOnDeviceReset
-		 */
-		virtual void notifyOnDeviceReset(IDirect3DDevice9* d3d9Device);
-
-	private:
-		friend class QueryManager;
-
-		/**
-		 * @brief	Creates the internal DX9 query.
-		 */
-		void createQuery();
-
-		/**
-		 * @brief	Releases the internal DX9 query.
-		 */
-		void releaseQuery();
-
-		/**
-		 * @brief	Resolves query results after it is ready.
-		 */
-		void finalize();
-	private:
-		IDirect3DDevice9* mDevice;
-		IDirect3DQuery9* mQuery;
-		bool mQueryIssued;
-		bool mFinalized;
-
-		UINT32 mNumSamples;
-	};
-}

+ 0 - 145
BansheeD3D9RenderAPI/Include/BsD3D9PixelBuffer.h

@@ -1,145 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsD3D9Prerequisites.h"
-#include "BsPixelBuffer.h"
-
-namespace BansheeEngine 
-{
-	/**
-	 * @brief	DirectX9 implementation of a pixel buffer. Represents a hardware buffer
-	 *			containing a surface of pixels.
-	 */
-	class BS_D3D9_EXPORT D3D9PixelBuffer : public PixelBuffer
-	{
-	protected:
-		/**
-		 * @brief	Internal DX9 buffer resources container.
-		 */
-		struct BufferResources
-		{
-			IDirect3DSurface9* surface;
-			IDirect3DVolume9* volume;
-			IDirect3DSurface9* tempSurface;
-			IDirect3DVolume9* tempVolume;
-			IDirect3DBaseTexture9* mipTex;
-		};
-
-	public:
-		D3D9PixelBuffer(GpuBufferUsage usage, D3D9TextureCore* ownerTexture);
-		~D3D9PixelBuffer();
-
-		/**
-		 * @brief	Binds the specified surface object to this buffer. This needs to be called in order
-		 *			to initialize the pixel buffer.
-		 *
-		 * @param	dev			Device the surface was created on.
-		 * @param	surface		DirectX 9 object representing the surface.
-		 * @param	mipTex		Base texture that will be used for generating mipmaps. Usually
-		 *						the parent texture of the surface.
-		 */
-		void bind(IDirect3DDevice9* dev, IDirect3DSurface9* surface, IDirect3DBaseTexture9* mipTex);
-
-		/**
-		 * @brief	Binds the specified volume object to this buffer. This needs to be called in order
-		 *			to initialize the pixel buffer.
-		 *
-		 * @param	dev			Device the volume was created on.
-		 * @param	surface		DirectX 9 object representing the volume.
-		 * @param	mipTex		Base texture that will be used for generating mipmaps. Usually
-		 *						the parent texture of the volume.
-		 */
-		void bind(IDirect3DDevice9* dev, IDirect3DVolume9* volume, IDirect3DBaseTexture9* mipTex);
-
-		/**
-		 * @brief	Enables/disabled automatic mipmap generation on updates.
-		 *
-		 * @param	doMipmapGen	If true, mipmaps will be regenerated whenever data is written to the buffer.
-		 * @param	HWMipmaps	If true the mipmaps will be generated by the hardware, otherwise software (slower).
-		 */
-		void setMipmapping(bool doMipmapGen, bool HWMipmaps);
-
-		/**
-		 * @brief	Returns internal DirectX 9 surface object for this buffer.
-		 */
-		IDirect3DSurface9* getSurface(IDirect3DDevice9* d3d9Device);
-
-		/**
-		 * @brief	Release all surface objects held by this buffer for the specified device.
-		 */
-		void releaseSurfaces(IDirect3DDevice9* d3d9Device);
-
-		/**
-		 * @brief	Destroy all resources associated with the specified device.
-		 */
-		void destroyBufferResources(IDirect3DDevice9* d3d9Device);
-
-		/**
-		 * @brief	Called when device state is changing. Access to any device should be locked.
-		 */
-		static void lockDeviceAccess();
-
-		/**
-		 * @brief	Called when device state change completed. Access to any device is allowed.
-		 */
-		static void unlockDeviceAccess();
-
-		/**
-		 * @brief	Initializes the provided pixel data buffer with information provided in the D3D9 locked rectangle.
-		 */
-		static void initPixelDataFromD3DLock(PixelData& pixelData, const D3DLOCKED_RECT& lrect);
-
-		/**
-		 * @brief	Initializes the provided pixel data buffer with information provided in the D3D9 locked box.
-		 */
-		static void initPixelDataFromD3DLock(PixelData& pixelData, const D3DLOCKED_BOX& lrect);
-
-	protected:
-		/**
-		 * @copydoc	PixelBuffer::lockImpl
-		 */
-		PixelData lockImpl(PixelVolume lockBox, GpuLockOptions options);
-
-		/**
-		 * @copydoc	PixelBuffer::unlockImpl
-		 */
-		void unlockImpl();
-
-		/**
-		 * @brief	Locks the specified volume of the provided buffer objects and 
-		 *			returns a data buffer that you may use to access it.
-		 */
-		PixelData lockBuffer(BufferResources* bufferResources, const PixelVolume& lockBox, DWORD flags);
-
-		/**
-		 * @brief	Unlocks the specified buffer objects.
-		 */
-		void unlockBuffer(BufferResources* bufferResources);
-
-		/**
-		 * @brief	Generates mip-map chain for the specified texture.
-		 */
-		void genMipmaps(IDirect3DBaseTexture9* mipTex);
-
-		/**
-		 * @brief	Retrieves buffer resources for the specified device, or null if they
-		 *			do not exist.
-		 */
-		BufferResources* getBufferResources(IDirect3DDevice9* d3d9Device);
-
-		/**
-		 * @brief	Creates a new empty set of buffer resources.
-		 */
-		BufferResources* createBufferResources();
-
-	protected:
-		Map<IDirect3DDevice9*, BufferResources*> mMapDeviceToBufferResources;
-
-		bool mDoMipmapGen;
-		bool mHWMipmaps;
-
-		D3D9TextureCore* mOwnerTexture;
-		DWORD mLockFlags;
-	};
-};

+ 0 - 31
BansheeD3D9RenderAPI/Include/BsD3D9QueryManager.h

@@ -1,31 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsD3D9Prerequisites.h"
-#include "BsQueryManager.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	Handles creation of DirectX 9 queries.
-	 */
-	class BS_D3D9_EXPORT D3D9QueryManager : public QueryManager
-	{
-	public:
-		/**
-		 * @copydoc		QueryManager::createEventQuery
-		 */
-		EventQueryPtr createEventQuery() const;
-
-		/**
-		 * @copydoc		QueryManager::createTimerQuery
-		 */
-		TimerQueryPtr createTimerQuery() const;
-
-		/**
-		 * @copydoc		QueryManager::createOcclusionQuery
-		 */
-		OcclusionQueryPtr createOcclusionQuery(bool binary) const;
-	};
-}

+ 0 - 601
BansheeD3D9RenderAPI/Include/BsD3D9RenderAPI.h

@@ -1,601 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsD3D9Prerequisites.h"
-#include "BsRenderAPI.h"
-#include "BsRenderAPICapabilities.h"
-#include "BsD3D9Mappings.h"
-
-namespace BansheeEngine 
-{
-	/**
-	 * @brief	Implementation of a render system using DirectX 9. Provides abstracted
-	 *			access to various low level DX9 methods.
-	 */
-	class BS_D3D9_EXPORT D3D9RenderAPI : public RenderAPICore
-	{
-	public:
-		/**
-		 * @brief	Constructs a new instance of the render system using the provided module instance.
-		 */
-		D3D9RenderAPI(HINSTANCE hInstance);
-		~D3D9RenderAPI();
-
-		/**
-		 * @copydoc RenderAPICore::getName()
-		 */
-		const StringID& getName() const override;
-
-		/**
-		 * @copydoc RenderAPICore::getShadingLanguageName()
-		 */
-		const String& getShadingLanguageName() const override;
-
-		/**
-		 * @copydoc RenderAPICore::setRenderTarget()
-		 */
-		void setRenderTarget(const SPtr<RenderTargetCore>& target, bool readOnlyDepthStencil = false) override;
-
-		/**
-		 * @copydoc RenderAPICore::bindGpuProgram()
-		 */
-		void bindGpuProgram(const SPtr<GpuProgramCore>& prg) override;
-
-		/**
-		 * @copydoc RenderAPICore::unbindGpuProgram()
-		 */
-		void unbindGpuProgram(GpuProgramType gptype) override;
-
-		/**
-		 * @copydoc RenderAPICore::setConstantBuffers()
-		 */
-		void setConstantBuffers(GpuProgramType gptype, const SPtr<GpuParamsCore>& params) override;
-
-		/**
-		 * @copydoc RenderAPICore::setVertexBuffers()
-		 */
-		void setVertexBuffers(UINT32 index, SPtr<VertexBufferCore>* buffers, UINT32 numBuffers) override;
-
-		/**
-		 * @copydoc RenderAPICore::setIndexBuffer()
-		 */
-		void setIndexBuffer(const SPtr<IndexBufferCore>& buffer) override;
-
-		/**
-		 * @copydoc RenderAPICore::setVertexDeclaration()
-		 */
-		void setVertexDeclaration(const SPtr<VertexDeclarationCore>& vertexDeclaration) override;
-
-		/**
-		 * @copydoc RenderAPICore::setDrawOperation()
-		 */
-		void setDrawOperation(DrawOperationType op) override;
-
-		/**
-		 * @copydoc RenderAPICore::setTexture()
-		 */
-		void setTexture(GpuProgramType gptype, UINT16 unit, bool enabled, const SPtr<TextureCore>& texPtr) override;
-
-		/**
-		 * @copydoc RenderAPICore::setLoadStoreTexture()
-		 */
-		void setLoadStoreTexture(GpuProgramType gptype, UINT16 unit, bool enabled, const SPtr<TextureCore>& texPtr,
-			const TextureSurface& surface) override;
-
-		/**
-		 * @copydoc RenderAPICore::setSamplerState()
-		 */
-		void setSamplerState(GpuProgramType gptype, UINT16 unit, const SPtr<SamplerStateCore>& state) override;
-
-		/**
-		 * @copydoc RenderAPICore::setBlendState()
-		 */
-		void setBlendState(const SPtr<BlendStateCore>& blendState) override;
-
-		/**
-		 * @copydoc RenderAPICore::setRasterizerState()
-		 */
-		void setRasterizerState(const SPtr<RasterizerStateCore>& rasterizerState) override;
-
-		/**
-		 * @copydoc RenderAPICore::setDepthStencilState()
-		 */
-		void setDepthStencilState(const SPtr<DepthStencilStateCore>& depthStencilState, UINT32 stencilRefValue) override;
-
-		/**
-		 * @copydoc RenderAPICore::setViewport()
-		 */
-		void setViewport(const Rect2& vp) override;
-
-		/**
-		 * @copydoc RenderAPICore::beginFrame()
-		 */
-		void beginFrame() override;
-
-		/**
-		 * @copydoc RenderAPICore::endFrame()
-		 */
-		void endFrame() override;
-
-		/**
-		 * @copydoc RenderAPICore::draw()
-		 */
-		void draw(UINT32 vertexOffset, UINT32 vertexCount) override;
-
-		/**
-		 * @copydoc RenderAPICore::drawIndexed()
-		 */
-		void drawIndexed(UINT32 startIndex, UINT32 indexCount, UINT32 vertexOffset, UINT32 vertexCount) override;
-
-		/**
-		 * @copydoc RenderAPICore::setScissorRect()
-		 */
-		void setScissorRect(UINT32 left, UINT32 top, UINT32 right, UINT32 bottom) override;
-
-		/**
-		 * @copydoc RenderAPICore::clearRenderTarget()
-		 */
-		void clearRenderTarget(UINT32 buffers, const Color& color = Color::Black, float depth = 1.0f, UINT16 stencil = 0, 
-			UINT8 targetMask = 0xFF) override;
-
-		/**
-		 * @copydoc RenderAPICore::clearViewport()
-		 */
-		void clearViewport(UINT32 buffers, const Color& color = Color::Black, float depth = 1.0f, UINT16 stencil = 0, 
-			UINT8 targetMask = 0xFF) override;
-
-		/**
-		 * @copydoc RenderAPICore::convertProjectionMatrix()
-		 */
-		void convertProjectionMatrix(const Matrix4& matrix, Matrix4& dest) override;
-
-		/**
-		 * @copydoc	RenderAPICore::getHorizontalTexelOffset
-		 */
-		float getHorizontalTexelOffset() override;
-
-		/**
-		 * @copydoc	RenderAPICore::getVerticalTexelOffset
-		 */
-		float getVerticalTexelOffset() override;
-
-		/**
-		 * @copydoc	RenderAPICore::getMinimumDepthInputValue
-		 */
-		float getMinimumDepthInputValue() override;
-
-		/**
-		 * @copydoc	RenderAPICore::getMaximumDepthInputValue
-		 */
-		float getMaximumDepthInputValue() override;
-
-		/**
-		 * @copydoc	RenderAPICore::getColorVertexElementType
-		 */
-		VertexElementType getColorVertexElementType() const override;
-
-		/**
-		 * @copydoc	RenderAPICore::getColorVertexElementType
-		 */
-		bool getVertexColorFlipRequired() const override { return true; }
-
-		/**
-		 * @copydoc RenderAPICore::generateParamBlockDesc()
-		 */
-		GpuParamBlockDesc generateParamBlockDesc(const String& name, Vector<GpuParamDataDesc>& params) override;
-
-		/************************************************************************/
-		/* 				Internal use by DX9 RenderAPI only                   */
-		/************************************************************************/
-
-		/**
-		 * @brief	Returns the resource manager instance.
-		 */
-		static D3D9ResourceManager* getResourceManager();
-
-		/**
-		 * @brief	Returns the device manager instance.
-		 */
-		static D3D9DeviceManager* getDeviceManager();
-
-		/**
-		 * @brief	Returns the internal DirectX 9 device object.
-		 */
-		static IDirect3D9* getDirect3D9();
-
-		/**
-		 * @brief	Returns the number of devices that resources should be created on.
-		 */
-		static UINT	getResourceCreationDeviceCount();
-
-		/**
-		 * @brief	Returns DirectX 9 device used for resource creation at the specified index.
-		 */
-		static IDirect3DDevice9* getResourceCreationDevice(UINT index);
-
-		/**
-		 * @brief	Returns the currently active DirectX 9 device.
-		 */
-		static IDirect3DDevice9* getActiveD3D9Device();
-
-		/**
-		 * @brief	Converts engine multisample options into DirectX 9 specific ones.
-		 *			Also test for multi-sample support on the device and returns nearest
-		 *			supported type if requested type is not available.
-		 *
-		 * @param	d3d9Device				Device to check for multisampling.
-		 * @param	multisampleCount		Number of requested samples.
-		 * @param	d3dPixelFormat			Pixel format used by the render target.
-		 * @param	fullscreen				Are we testing multisampling for a full-screen render target.
-		 * @param	outMultisampleType		Output parameter containing DirectX type representing valid multisample type.
-		 * @param	outMultisampleQuality	Output parameter containing multisample quality.
-		 */
-		void determineMultisampleSettings(IDirect3DDevice9* d3d9Device, UINT32 multisampleCount, D3DFORMAT d3dPixelFormat,
-			bool fullScreen, D3DMULTISAMPLE_TYPE* outMultisampleType, DWORD* outMultisampleQuality) const;
-
-		/**
-		 * @brief	Register a newly open window with the render system.
-		 */
-		void registerWindow(RenderWindowCore& renderWindow);
-
-	private:
-		friend class D3D9Texture;
-		friend class D3D9RenderWindow;
-		friend class D3D9Device;
-		friend class D3D9TextureManager;
-		friend class D3D9TextureCoreManager;
-		friend class D3D9DeviceManager;
-		friend class D3D9RenderWindowManager;
-		friend class D3D9RenderWindowCoreManager;
-
-		/**
-		 * @copydoc	RenderAPICore::initializePrepare
-		 */
-		void initializePrepare() override;
-
-		/**
-		 * @copydoc	RenderAPICore::initializeFinalize
-		 */
-		void initializeFinalize(const SPtr<RenderWindowCore>& primaryWindow) override;
-
-		/**
-		 * @copydoc	RenderAPICore::destroy_internal
-		 */
-		void destroyCore() override;
-
-		/**
-		 * @brief	Returns a list of available drivers and their properties.
-		 */
-		D3D9DriverList* getDirect3DDrivers() const;
-				
-		/**
-		 * @brief	Sets DirectX 9 render state option.
-		 */
-		HRESULT setRenderState(D3DRENDERSTATETYPE state, DWORD value);
-
-		/**
-		 * @brief	Sets DirectX 9 sampler state option for a sampler at the specified index.
-		 */
-		HRESULT setSamplerState(DWORD sampler, D3DSAMPLERSTATETYPE type, DWORD value);
-
-		/**
-		 * @brief	Sets DirectX 9 texture state option for a texture unit at the specified index.
-		 */
-		HRESULT setTextureStageState(DWORD stage, D3DTEXTURESTAGESTATETYPE type, DWORD value);
-
-		/**
-		 * @brief	Set a floating point render state option.
-		 */
-		HRESULT setFloatRenderState(D3DRENDERSTATETYPE state, float value)
-		{
-			return setRenderState(state, *((LPDWORD)(&value)));
-		}
-
-		/**
-		 * @brief	Returns currently active anisotropy level for the provided texture unit.
-		 */
-		DWORD getCurrentAnisotropy(UINT32 unit);
-
-		/**
-		 * @brief	Updates active render system capabilities. Requires active render window to check
-		 *			certain capabilities.
-		 *
-		 * @note	Also performs an initialization step when called the first time.
-		 */
-		RenderAPICapabilities* updateRenderSystemCapabilities(D3D9RenderWindowCore* renderWindow);
-
-		/**
-		 * @brief	Updates render system capabilities with vertex shader related data.
-		 */
-        void updateVertexShaderCaps(RenderAPICapabilities* rsc) const;
-
-		/**
-		 * @brief	Updates render system capabilities with pixel shader related data.
-		 */
-        void updatePixelShaderCaps(RenderAPICapabilities* rsc) const;
-
-		/**
-		 * @copydoc	RenderAPICore::setClipPlanesImpl
-		 */
-		void setClipPlanesImpl(const PlaneList& clipPlanes) override;
-
-		/**
-		 * @brief	Converts a HRESULT error number into an error description.
-		 */
-		String getErrorDescription(long errorNumber) const;
-
-		/**
-		 * @brief	Sets a clip plane with the specified index.
-		 */
-		void setClipPlane(UINT16 index, float A, float B, float C, float D);
-
-		/**
-		 * @brief	Enables or disables a clip plane at the specified index.
-		 */
-		void enableClipPlane(UINT16 index, bool enable);
-
-		/**
-		 * @brief	Returns current module instance.
-		 */
-		HINSTANCE getInstanceHandle() const { return mhInstance; }
-
-		/**
-		 * @brief	Returns the D3D9 specific mode used for drawing, depending on the
-		 * 			currently set draw operation.
-		 */
-		D3DPRIMITIVETYPE getD3D9PrimitiveType() const;
-
-		/************************************************************************/
-		/* 							Sampler states                     			*/
-		/************************************************************************/
-
-		/**
-		 * @brief	Sets the texture addressing mode for a texture unit. This determines
-		 *			how are UV address values outside of [0, 1] range handled when sampling
-		 *			from texture.
-		 */
-		void setTextureAddressingMode(UINT16 stage, const UVWAddressingMode& uvw);
-
-		/**
-		 * @brief	Allows you to specify how is the texture bound to the specified texture unit filtered.
-		 *			Different filter types are used for different situations like magnifying or minifying a texture.
-		 */
-		void setTextureFiltering(UINT16 unit, FilterType ftype, FilterOptions filter);
-
-		/**
-		 * @brief	Sets anisotropy value for the specified texture unit.
-		 */
-		void setTextureAnisotropy(UINT16 unit, unsigned int maxAnisotropy);
-
-		/**
-		 * @brief	Sets the texture border color for a texture unit. Border color
-		 *			determines color returned by the texture sampler when border addressing mode
-		 *			is used and texture address is outside of [0, 1] range.
-		 */
-		void setTextureBorderColor(UINT16 stage, const Color& color);
-
-		/**
-		 * @brief	Sets the mipmap bias value for a given texture unit. Bias allows
-		 *			you to adjust the mipmap selection calculation. Negative values force a
-		 *			larger mipmap to be used, and positive values smaller. Units are in values
-		 *			of mip levels, so -1 means use a mipmap one level higher than default.
-		 */
-		void setTextureMipmapBias(UINT16 unit, float bias);
-
-		/************************************************************************/
-		/* 								Blend states                      		*/
-		/************************************************************************/
-
-		/**
-		 * @brief	Sets up blending mode that allows you to combine new pixels with pixels already in the render target.
-		 *			Final pixel value = (renderTargetPixel * sourceFactor) op (pixel * destFactor).
-		 */
-		void setSceneBlending(BlendFactor sourceFactor, BlendFactor destFactor, BlendOperation op);
-
-		/**
-		* @brief	Sets up blending mode that allows you to combine new pixels with pixels already in the render target.
-		*			Allows you to set up separate blend operations for alpha values.
-		*	
-		*			Final pixel value = (renderTargetPixel * sourceFactor) op (pixel * destFactor). (And the same for alpha)
-		*/
-		void setSceneBlending(BlendFactor sourceFactor, BlendFactor destFactor, BlendFactor sourceFactorAlpha, 
-			BlendFactor destFactorAlpha, BlendOperation op, BlendOperation alphaOp);
-
-		/**
-		 * @brief	Sets alpha test that allows you to reject pixels that fail the comparison function
-		 *			versus the provided reference value.
-		 */
-		void setAlphaTest(CompareFunction func, unsigned char value);
-
-		/**
-		 * @brief	Enable alpha to coverage. Alpha to coverage allows you to perform blending without needing 
-		 *			to worry about order of rendering like regular blending does. It requires multi-sampling to 
-		 *			be active in order to work, and you need to supply an alpha texture that determines object transparency.
-		 */
-		void setAlphaToCoverage(bool enabled);
-
-		/**
-		 * @brief	Enables or disables writing to certain color channels of the render target.
-		 */
-		void setColorBufferWriteEnabled(bool red, bool green, bool blue, bool alpha);
-
-		/************************************************************************/
-		/* 								Rasterizer states                  		*/
-		/************************************************************************/
-
-		/**
-		 * @brief	Sets vertex winding order. Normally you would use this to cull back facing
-		 *			polygons.
-		 */
-		void setCullingMode(CullingMode mode);
-
-		/**
-		 * @brief	Sets the polygon rasterization mode. Determines how are polygons interpreted.
-		 */
-		void setPolygonMode(PolygonMode level);
-
-		/**
-		 * @brief	Sets a depth bias that will offset the depth values of new pixels by the specified amount.
-		 *			Final depth bias value is a combination of the constant depth bias and slope depth bias.
-		 *			Slope depth bias has more effect the higher the slope of the rendered polygon.
-		 *
-		 * @note	This is useful if you want to avoid z fighting for objects at the same or similar depth.
-		 */
-		void setDepthBias(float constantBias, float slopeScaleBias);
-
-		/**
-		 * @brief	Scissor test allows you to mask off rendering in all but a given rectangular area
-		 * 			identified by the rectangle set by setScissorRect().
-		 */
-		void setScissorTestEnable(bool enable);
-
-		/**
-		 * @brief	Only applies when rendering to a multisample render target.
-		 * 			If disabled all of the samples will be taken from the center of the pixel,
-		 * 			effectively making the image aliased. Default value is true where samples are
-		 * 			picked randomly within the pixel.
-		 */
-		void setMultisampleAntialiasEnable(bool enable);
-
-		/**
-		 * @brief	Only applies when rendering to a non-multisample render target.
-		 * 			If enabled, lines will be antialiased. Default state is disabled.
-		 */
-		void setAntialiasedLineEnable(bool enable);
-
-		/************************************************************************/
-		/* 						Depth stencil state                      		*/
-		/************************************************************************/
-		
-		/**
-		 * @brief	Should new pixels perform depth testing using the set depth comparison function before
-		 *			being written.
-		 */
-		void setDepthBufferCheckEnabled(bool enabled = true);
-
-		/**
-		 * @brief	Should new pixels write to the depth buffer.
-		 */
-		void setDepthBufferWriteEnabled(bool enabled = true);
-
-		/**
-		 * @brief	Sets comparison function used for depth testing. Determines how are new and existing
-		 *			pixel values compared - if comparison function returns true the new pixel is written.
-		 */
-		void setDepthBufferFunction(CompareFunction func = CMPF_LESS_EQUAL);
-
-		/**
-		 * @brief	Turns stencil tests on or off. By default this is disabled.
-		 *			Stencil testing allow you to mask out a part of the rendered image by using
-		 *			various stencil operations provided.
-		 */
-		void setStencilCheckEnabled(bool enabled);
-
-		/**
-		 * @brief	Allows you to set stencil operations that are performed when stencil test passes or fails.
-		 *
-		 * @param	stencilFailOp	Operation executed when stencil test fails.
-		 * @param	depthFailOp		Operation executed when stencil test succeeds but depth test fails.
-		 * @param	passOp			Operation executed when stencil test succeeds and depth test succeeds.
-		 * @param	front			Should the stencil operations be applied to front or back facing polygons.
-		 */
-		void setStencilBufferOperations(StencilOperation stencilFailOp = SOP_KEEP,
-			StencilOperation depthFailOp = SOP_KEEP, StencilOperation passOp = SOP_KEEP,
-			bool ccw = true);
-
-		/**
-		 * @brief	Sets a stencil buffer comparison function. The result of this will cause one of 3 actions 
-		 *			depending on whether the test fails, succeeds but with the depth buffer check still failing, 
-		 *			or succeeds with the depth buffer check passing too.
-		 *
-		 * @param func	Comparison function that determines whether a stencil test fails or passes. Reference value
-		 *				gets compared to the value already in the buffer using this function.
-		 * @param ccw	If set to true, the stencil operations will be applied to counterclockwise
-		 *				faces. Otherwise they will be applied to clockwise faces.
-		 */
-		void setStencilBufferFunc(CompareFunction func = CMPF_ALWAYS_PASS, bool ccw = true);
-
-		/**
-		 * @brief	The bitmask applied to both the stencil value and the reference value
-		 *			before comparison.
-		 */
-		void setStencilBufferReadMask(UINT32 mask = 0xFFFFFFFF);
-
-		/**
-		 * @brief	The bitmask applied to the stencil value before writing it to the stencil buffer.
-		 */
-		void setStencilBufferWriteMask(UINT32 mask = 0xFFFFFFFF);
-
-		/**
-		 * @brief	Sets a reference values used for stencil buffer comparisons. 
-		 * 			Actual comparison function and stencil operations are set by setting the DepthStencilState.
-		 */
-		void setStencilRefValue(UINT32 refValue);
-
-		/**
-		 * @brief	Clears an area of the currently active render target.
-		 *
-		 * @param	buffers			Combination of one or more elements of FrameBufferType
-		 *							denoting which buffers are to be cleared.
-		 * @param	color			(optional) The color to clear the color buffer with, if enabled.
-		 * @param	depth			(optional) The value to initialize the depth buffer with, if enabled.
-		 * @param	stencil			(optional) The value to initialize the stencil buffer with, if enabled.
-		 * @param	clearArea		(optional) Area in pixels to clear.
-		 */
-		void clearArea(UINT32 buffers, const Color& color = Color::Black, float depth = 1.0f, UINT16 stencil = 0, const Rect2I& clearArea = Rect2I::EMPTY);
-
-		/**
-		 * @brief	Recalculates actual viewport dimensions based on currently 
-		 *			set viewport normalized dimensions and render target and applies
-		 *			them for further rendering.
-		 */
-		void applyViewport();
-
-		/**
-		 * @brief	Triggered when device has been lost.
-		 */
-		void notifyOnDeviceLost(D3D9Device* device);
-
-		/**
-		 * @brief	Triggered when device is being reset.
-		 */
-		void notifyOnDeviceReset(D3D9Device* device);
-
-	private:
-		/**
-		 * @brief	Holds texture unit settings.
-		 */
-		struct sD3DTextureStageDesc
-		{
-			D3D9Mappings::D3DTexType texType;
-			size_t coordIndex;
-			IDirect3DBaseTexture9 *pTex;
-			IDirect3DBaseTexture9 *pVertexTex;
-		};
-
-		static D3D9RenderAPI* msD3D9RenderSystem;
-
-		IDirect3D9*	mpD3D;
-		D3D9HLSLProgramFactory* mHLSLProgramFactory;
-		D3D9ResourceManager* mResourceManager;
-		D3D9DeviceManager* mDeviceManager;
-
-		mutable D3D9DriverList* mDriverList;
-		D3D9Driver* mActiveD3DDriver;
-
-		UINT32 mNumTexStages;
-		sD3DTextureStageDesc* mTexStageDesc;
-
-		bool mIsFrameInProgress;
-		bool mRestoreFrameOnReset;
-
-		HINSTANCE mhInstance;
-
-		Rect2 mViewportNorm;
-		UINT32 mViewportLeft, mViewportTop, mViewportWidth, mViewportHeight;
-		RECT mScissorRect;
-
-		DrawOperationType mCurrentDrawOperation;
-	};
-}

+ 0 - 54
BansheeD3D9RenderAPI/Include/BsD3D9Resource.h

@@ -1,54 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsD3D9Prerequisites.h"
-
-namespace BansheeEngine 
-{
-	/**
-	 * @brief	Provides an interface for dealing with DX9 resources. Primarily
-	 *			notifying the resources of any changed states.
-	 */
-	class BS_D3D9_EXPORT D3D9Resource
-	{
-	public:
-		D3D9Resource();
-		virtual ~D3D9Resource();
-
-		/**
-		 * @brief	Called immediately after the Direct3D device has been created.
-		 */
-		virtual void notifyOnDeviceCreate(IDirect3DDevice9* d3d9Device) {}
-
-		/**
-		 * @brief	Called before the Direct3D device is going to be destroyed.
-		 */
-		virtual void notifyOnDeviceDestroy(IDirect3DDevice9* d3d9Device) {}
-
-		/**
-		 * @brief	Called immediately after the Direct3D device has entered a lost state.
-		 */
-		virtual void notifyOnDeviceLost(IDirect3DDevice9* d3d9Device) {}
-
-		/**
-		 * @brief	Called immediately after the Direct3D device has been reset.
-		 */
-		virtual void notifyOnDeviceReset(IDirect3DDevice9* d3d9Device) {}
-
-		/**
-		 * @brief	Called when device state is changing. Access to any device should be locked.
-		 *			Relevant for multi thread application.
-		 */
-		static void lockDeviceAccess();
-
-		/**
-		 * @brief	Called when device state change completed. Access to any device is allowed.
-		 *			Relevant for multi thread application.
-		 */
-		static void unlockDeviceAccess();
-
-	protected:
-		BS_STATIC_MUTEX(msDeviceAccessMutex)		
-	};
-}

+ 0 - 92
BansheeD3D9RenderAPI/Include/BsD3D9TimerQuery.h

@@ -1,92 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsD3D9Prerequisites.h"
-#include "BsD3D9Resource.h"
-#include "BsTimerQuery.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @copydoc TimerQuery
-	 */
-	class BS_D3D9_EXPORT D3D9TimerQuery : public TimerQuery, public D3D9Resource
-	{
-	public:
-		D3D9TimerQuery();
-		~D3D9TimerQuery();
-
-		/**
-		 * @copydoc TimerQuery::begin
-		 */
-		virtual void begin();
-
-		/**
-		 * @copydoc TimerQuery::end
-		 */
-		virtual void end();
-
-		/**
-		 * @copydoc TimerQuery::isReady
-		 */
-		virtual bool isReady() const;
-
-		/**
-		 * @copydoc TimerQuery::getTimeMs
-		 */
-		virtual float getTimeMs();
-
-		/**
-		 * @copydoc	D3D9Resource::notifyOnDeviceCreate
-		 */
-		virtual void notifyOnDeviceCreate(IDirect3DDevice9* d3d9Device);
-
-		/**
-		 * @copydoc	D3D9Resource::notifyOnDeviceDestroy
-		 */
-		virtual void notifyOnDeviceDestroy(IDirect3DDevice9* d3d9Device);
-
-		/**
-		 * @copydoc	D3D9Resource::notifyOnDeviceLost
-		 */
-		virtual void notifyOnDeviceLost(IDirect3DDevice9* d3d9Device);
-
-		/**
-		 * @copydoc	D3D9Resource::notifyOnDeviceReset
-		 */
-		virtual void notifyOnDeviceReset(IDirect3DDevice9* d3d9Device);
-
-	private:
-		/**
-		 * @brief	Resolve timing information after the query has finished.
-		 */
-		void finalize();
-
-		/**
-		 * @brief	Creates the internal DX9 query.
-		 */
-		void createQuery();
-
-		/**
-		 * @brief	Releases the internal DX9 query.
-		 */
-		void releaseQuery();
-
-		/**
-		 * @brief	Checks if the internal query object is valid.
-		 */
-		bool isQueryValid() const;
-
-	private:
-		bool mFinalized;
-		bool mQueryIssued;
-		float mTimeDelta;
-
-		IDirect3DDevice9* mDevice;
-		IDirect3DQuery9* mBeginQuery;
-		IDirect3DQuery9* mEndQuery;
-		IDirect3DQuery9* mDisjointQuery;
-		IDirect3DQuery9* mFreqQuery;
-	};
-}

+ 0 - 99
BansheeD3D9RenderAPI/Include/BsD3D9VertexBuffer.h

@@ -1,99 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsD3D9Prerequisites.h"
-#include "BsVertexBuffer.h"
-#include "BsD3D9Resource.h"
-
-namespace BansheeEngine 
-{
-	/**
-	 * @brief	DirectX 9 implementation of a vertex buffer.
-	 */
-    class BS_D3D9_EXPORT D3D9VertexBufferCore : public VertexBufferCore, public D3D9Resource
-    {   
-	protected:
-		/**
-		 * @brief	Container for internal buffer resources.
-		 */
-		struct BufferResources
-		{
-			IDirect3DVertexBuffer9*	mBuffer;
-			bool mOutOfDate;
-			UINT32 mLockOffset;
-			UINT32 mLockLength;
-			GpuLockOptions mLockOptions;
-		};
-
-    public:
-		D3D9VertexBufferCore(UINT32 vertexSize, UINT32 numVertices, GpuBufferUsage usage, bool streamOut);
-		~D3D9VertexBufferCore();
-
-		/**
-		 * @copydoc	VertexBufferCore::readData
-		 */
-        void readData(UINT32 offset, UINT32 length, void* dest);
-
-		/**
-		 * @copydoc	VertexBufferCore::writeData
-		 */
-        void writeData(UINT32 offset, UINT32 length, const void* source, BufferWriteType writeFlags = BufferWriteType::Normal);
-	
-		/**
-		 * @copydoc	D3D9Resource::notifyOnDeviceCreate
-		 */
-		virtual void notifyOnDeviceCreate(IDirect3DDevice9* d3d9Device);
-
-		/**
-		 * @copydoc	D3D9Resource::notifyOnDeviceDestroy
-		 */
-		virtual void notifyOnDeviceDestroy(IDirect3DDevice9* d3d9Device);
-
-		/**
-		 * @copydoc	D3D9Resource::notifyOnDeviceLost
-		 */
-		virtual void notifyOnDeviceLost(IDirect3DDevice9* d3d9Device);
-
-		/**
-		 * @copydoc	D3D9Resource::notifyOnDeviceReset
-		 */
-		virtual void notifyOnDeviceReset(IDirect3DDevice9* d3d9Device);
-
-		/**
-		 * @brief	Creates a DX9 vertex buffer object in the provided memory pool.
-		 */
-		void createBuffer(IDirect3DDevice9* d3d9Device, D3DPOOL pool);
-		
-		/**
-		 * @brief	Returns the DX9 vertex buffer object.
-		 */
-        IDirect3DVertexBuffer9* getD3D9VertexBuffer();
-
-	protected:	
-		/**
-		 * @copydoc VertexBufferCore::initialize
-		 */
-		void initialize();	
-		
-		/**
-		 * @copydoc	VertexBufferCore::lockImpl
-		 */
-		void* lockImpl(UINT32 offset, UINT32 length, GpuLockOptions options);
-
-		/**
-		 * @copydoc	VertexBufferCore::unlockImpl
-		 */
-		void unlockImpl();
-
-		/**
-		 * @brief	Updates buffer resources from cached system memory buffer.
-		 */
-		bool updateBufferResources(const UINT8* systemMemoryBuffer, BufferResources* bufferResources);		
-
-	protected:
-		Map<IDirect3DDevice9*, BufferResources*> mMapDeviceToBufferResources;
-		D3DVERTEXBUFFER_DESC mBufferDesc;	
-		UINT8* mSystemMemoryBuffer;
-    };
-}

+ 0 - 33
BansheeD3D9RenderAPI/Source/BsD3D9QueryManager.cpp

@@ -1,33 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#include "BsD3D9QueryManager.h"
-#include "BsD3D9EventQuery.h"
-#include "BsD3D9TimerQuery.h"
-#include "BsD3D9OcclusionQuery.h"
-
-namespace BansheeEngine
-{
-	EventQueryPtr D3D9QueryManager::createEventQuery() const
-	{
-		EventQueryPtr query = std::shared_ptr<D3D9EventQuery>(bs_new<D3D9EventQuery>(), &QueryManager::deleteEventQuery, StdAlloc<D3D9EventQuery>());
-		mEventQueries.push_back(query.get());
-
-		return query;
-	}
-
-	TimerQueryPtr D3D9QueryManager::createTimerQuery() const
-	{
-		TimerQueryPtr query = std::shared_ptr<D3D9TimerQuery>(bs_new<D3D9TimerQuery>(), &QueryManager::deleteTimerQuery, StdAlloc<D3D9TimerQuery>());
-		mTimerQueries.push_back(query.get());
-
-		return query;
-	}
-
-	OcclusionQueryPtr D3D9QueryManager::createOcclusionQuery(bool binary) const
-	{
-		OcclusionQueryPtr query = std::shared_ptr<D3D9OcclusionQuery>(bs_new<D3D9OcclusionQuery>(binary), &QueryManager::deleteOcclusionQuery, StdAlloc<D3D9OcclusionQuery>());
-		mOcclusionQueries.push_back(query.get());
-
-		return query;
-	}
-}

+ 0 - 454
BansheeEditor/BansheeEditor.vcxproj

@@ -1,454 +0,0 @@
-<?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>{67137A0D-7A67-4D0C-9FBF-AF904FABEF05}</ProjectGuid>
-    <Keyword>Win32Proj</Keyword>
-    <RootNamespace>CamelotClient</RootNamespace>
-    <ProjectName>BansheeEditor</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>
-    <OutDir>..\bin\x86\$(Configuration)\</OutDir>
-    <IntDir>.\Intermediate\$(Platform)\$(Configuration)\</IntDir>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <LinkIncremental>true</LinkIncremental>
-    <OutDir>..\bin\$(Platform)\$(Configuration)\</OutDir>
-    <IntDir>.\Intermediate\$(Platform)\$(Configuration)\</IntDir>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <LinkIncremental>false</LinkIncremental>
-    <OutDir>..\bin\x86\$(Configuration)\</OutDir>
-    <IntDir>.\Intermediate\$(Platform)\$(Configuration)\</IntDir>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugRelease|Win32'">
-    <LinkIncremental>false</LinkIncremental>
-    <OutDir>..\bin\x86\$(Configuration)\</OutDir>
-    <IntDir>.\Intermediate\$(Platform)\$(Configuration)\</IntDir>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <LinkIncremental>false</LinkIncremental>
-    <OutDir>..\bin\$(Platform)\$(Configuration)\</OutDir>
-    <IntDir>.\Intermediate\$(Platform)\$(Configuration)\</IntDir>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugRelease|x64'">
-    <LinkIncremental>false</LinkIncremental>
-    <OutDir>..\bin\$(Platform)\$(Configuration)\</OutDir>
-    <IntDir>.\Intermediate\$(Platform)\$(Configuration)\</IntDir>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <ClCompile>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <Optimization>Disabled</Optimization>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;BS_ED_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>.\Include;..\BansheeCore\Include;..\BansheeUtility\Include;..\Dependencies\Include;..\BansheeEngine\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>BansheeCore.lib;BansheeUtility.lib;BansheeEngine.lib;Advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <AdditionalLibraryDirectories>..\lib\x86\$(Configuration);..\Dependencies\lib\x86\Debug;%(AdditionalLibraryDirectories)</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_ED_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>.\Include;..\BansheeCore\Include;..\BansheeUtility\Include;..\Dependencies\Include;..\BansheeEngine\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
-      <InlineFunctionExpansion>Default</InlineFunctionExpansion>
-      <RuntimeTypeInfo>false</RuntimeTypeInfo>
-      <ExceptionHandling>false</ExceptionHandling>
-      <DisableSpecificWarnings>4530;4577</DisableSpecificWarnings>
-    </ClCompile>
-    <Link>
-      <SubSystem>Windows</SubSystem>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <AdditionalDependencies>BansheeCore.lib;BansheeUtility.lib;BansheeEngine.lib;Advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <AdditionalLibraryDirectories>..\lib\$(Platform)\$(Configuration);..\Dependencies\lib\x64\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <ShowProgress>NotSet</ShowProgress>
-      <ImportLibrary>..\lib\x64\$(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_ED_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>.\Include;..\BansheeCore\Include;..\BansheeUtility\Include;..\Dependencies\Include;..\BansheeEngine\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
-      <BufferSecurityCheck>false</BufferSecurityCheck>
-      <DebugInformationFormat>None</DebugInformationFormat>
-      <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>
-      <AdditionalLibraryDirectories>..\lib\x86\$(Configuration);..\Dependencies\lib\x86\Release</AdditionalLibraryDirectories>
-      <AdditionalDependencies>BansheeCore.lib;BansheeUtility.lib;BansheeEngine.lib;Advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <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_ED_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>.\Include;..\BansheeCore\Include;..\BansheeUtility\Include;..\Dependencies\Include;..\BansheeEngine\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
-      <BufferSecurityCheck>false</BufferSecurityCheck>
-      <MinimalRebuild>true</MinimalRebuild>
-      <InlineFunctionExpansion>Default</InlineFunctionExpansion>
-      <RuntimeTypeInfo>false</RuntimeTypeInfo>
-      <ExceptionHandling>false</ExceptionHandling>
-      <DisableSpecificWarnings>4530;4577</DisableSpecificWarnings>
-    </ClCompile>
-    <Link>
-      <SubSystem>Windows</SubSystem>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-      <OptimizeReferences>true</OptimizeReferences>
-      <AdditionalLibraryDirectories>..\lib\x86\$(Configuration);..\Dependencies\lib\x86\DebugRelease</AdditionalLibraryDirectories>
-      <AdditionalDependencies>BansheeCore.lib;BansheeUtility.lib;BansheeEngine.lib;Advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <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_ED_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>.\Include;..\BansheeCore\Include;..\BansheeUtility\Include;..\Dependencies\Include;..\BansheeEngine\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
-      <BufferSecurityCheck>false</BufferSecurityCheck>
-      <DebugInformationFormat>None</DebugInformationFormat>
-      <InlineFunctionExpansion>Default</InlineFunctionExpansion>
-      <RuntimeTypeInfo>false</RuntimeTypeInfo>
-      <ExceptionHandling>false</ExceptionHandling>
-      <DisableSpecificWarnings>4530;4577</DisableSpecificWarnings>
-    </ClCompile>
-    <Link>
-      <SubSystem>Windows</SubSystem>
-      <GenerateDebugInformation>false</GenerateDebugInformation>
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-      <OptimizeReferences>true</OptimizeReferences>
-      <AdditionalLibraryDirectories>..\lib\$(Platform)\$(Configuration);..\Dependencies\lib\x64\Release</AdditionalLibraryDirectories>
-      <AdditionalDependencies>BansheeCore.lib;BansheeUtility.lib;BansheeEngine.lib;Advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <ImportLibrary>..\lib\x64\$(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_ED_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>.\Include;..\BansheeCore\Include;..\BansheeUtility\Include;..\Dependencies\Include;..\BansheeEngine\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
-      <BufferSecurityCheck>false</BufferSecurityCheck>
-      <MinimalRebuild>true</MinimalRebuild>
-      <InlineFunctionExpansion>Default</InlineFunctionExpansion>
-      <RuntimeTypeInfo>false</RuntimeTypeInfo>
-      <ExceptionHandling>false</ExceptionHandling>
-      <DisableSpecificWarnings>4530;4577</DisableSpecificWarnings>
-    </ClCompile>
-    <Link>
-      <SubSystem>Windows</SubSystem>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-      <OptimizeReferences>true</OptimizeReferences>
-      <AdditionalLibraryDirectories>..\lib\$(Platform)\$(Configuration);..\Dependencies\lib\x64\DebugRelease</AdditionalLibraryDirectories>
-      <AdditionalDependencies>BansheeCore.lib;BansheeUtility.lib;BansheeEngine.lib;Advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <ImportLibrary>..\lib\x64\$(Configuration)\$(TargetName).lib</ImportLibrary>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <ClInclude Include="Include\BsBuildDataRTTI.h" />
-    <ClInclude Include="Include\BsBuildManager.h" />
-    <ClInclude Include="Include\BsCmdBreakPrefab.h" />
-    <ClInclude Include="Include\BsCmdCloneSO.h" />
-    <ClInclude Include="Include\BsCmdCreateSO.h" />
-    <ClInclude Include="Include\BsCmdDeleteSO.h" />
-    <ClInclude Include="Include\BsCmdInputFieldValueChange.h" />
-    <ClInclude Include="Include\BsCmdInstantiateSO.h" />
-    <ClInclude Include="Include\BsCmdRecordSO.h" />
-    <ClInclude Include="Include\BsCmdReparentSO.h" />
-    <ClInclude Include="Include\BsCmdUtility.h" />
-    <ClInclude Include="Include\BsDockManager.h" />
-    <ClInclude Include="Include\BsDockManagerLayout.h" />
-    <ClInclude Include="Include\BsDockManagerLayoutRTTI.h" />
-    <ClInclude Include="Include\BsDropDownWindowManager.h" />
-    <ClInclude Include="Include\BsEditorApplication.h" />
-    <ClInclude Include="Include\BsEditorCommand.h" />
-    <ClInclude Include="Include\BsBuiltinEditorResources.h" />
-    <ClInclude Include="Include\BsEditorSettingsRTTI.h" />
-    <ClInclude Include="Include\BsEditorTestSuite.h" />
-    <ClInclude Include="Include\BsEditorUtility.h" />
-    <ClInclude Include="Include\BsEditorWidgetLayout.h" />
-    <ClInclude Include="Include\BsEditorWidgetLayoutRTTI.h" />
-    <ClInclude Include="Include\BsEditorWidgetManager.h" />
-    <ClInclude Include="Include\BsCodeEditor.h" />
-    <ClInclude Include="Include\BsGizmoManager.h" />
-    <ClInclude Include="Include\BsGUIColor.h" />
-    <ClInclude Include="Include\BsGUIColorField.h" />
-    <ClInclude Include="Include\BsDropDownWindow.h" />
-    <ClInclude Include="Include\BsGUIFieldBase.h" />
-    <ClInclude Include="Include\BsGUIFloatField.h" />
-    <ClInclude Include="Include\BsGUIHoverHitBox.h" />
-    <ClInclude Include="Include\BsGUIIntField.h" />
-    <ClInclude Include="Include\BsGUIDropButton.h" />
-    <ClInclude Include="Include\BsGUIListBoxField.h" />
-    <ClInclude Include="Include\BsGUISliderField.h" />
-    <ClInclude Include="Include\BsGUIStatusBar.h" />
-    <ClInclude Include="Include\BsGUITextField.h" />
-    <ClInclude Include="Include\BsGUIToggleField.h" />
-    <ClInclude Include="Include\BsGUIVector3Field.h" />
-    <ClInclude Include="Include\BsGUIVector4Field.h" />
-    <ClInclude Include="Include\BsGUIWindowFrameWidgetRTTI.h" />
-    <ClInclude Include="Include\BsHandleDrawManager.h" />
-    <ClInclude Include="Include\BsHandleManager.h" />
-    <ClInclude Include="Include\BsHandleSliderManager.h" />
-    <ClInclude Include="Include\BsHandleSlider.h" />
-    <ClInclude Include="Include\BsHandleSliderDisc.h" />
-    <ClInclude Include="Include\BsHandleSliderLine.h" />
-    <ClInclude Include="Include\BsHandleSliderPlane.h" />
-    <ClInclude Include="Include\BsEditorSettings.h" />
-    <ClInclude Include="Include\BsModalWindow.h" />
-    <ClInclude Include="Include\BsPlatformInfo.h" />
-    <ClInclude Include="Include\BsPlatformInfoRTTI.h" />
-    <ClInclude Include="Include\BsProjectSettings.h" />
-    <ClInclude Include="Include\BsProjectSettingsRTTI.h" />
-    <ClInclude Include="Include\BsScenePicking.h" />
-    <ClInclude Include="Include\BsProjectLibraryEntriesRTTI.h" />
-    <ClInclude Include="Include\BsEditorPrerequisites.h" />
-    <ClInclude Include="Include\BsEditorWidget.h" />
-    <ClInclude Include="Include\BsEditorWidgetContainer.h" />
-    <ClInclude Include="Include\BsEditorWindow.h" />
-    <ClInclude Include="Include\BsEditorWindowBase.h" />
-    <ClInclude Include="Include\BsEditorWindowManager.h" />
-    <ClInclude Include="Include\BsGUIDockSlider.h" />
-    <ClInclude Include="Include\BsGUIMenuBar.h" />
-    <ClInclude Include="Include\BsGUIResourceTreeView.h" />
-    <ClInclude Include="Include\BsGUISceneTreeView.h" />
-    <ClInclude Include="Include\BsGUITabbedTitleBar.h" />
-    <ClInclude Include="Include\BsGUITabButton.h" />
-    <ClInclude Include="Include\BsGUITreeView.h" />
-    <ClInclude Include="Include\BsGUITreeViewEditBox.h" />
-    <ClInclude Include="Include\BsGUIWindowFrame.h" />
-    <ClInclude Include="Include\BsGUIWindowFrameWidget.h" />
-    <ClInclude Include="Include\BsMainEditorWindow.h" />
-    <ClInclude Include="Include\BsProjectLibrary.h" />
-    <ClInclude Include="Include\BsProjectLibraryEntries.h" />
-    <ClInclude Include="Include\BsProjectResourceMeta.h" />
-    <ClInclude Include="Include\BsProjectResourceMetaRTTI.h" />
-    <ClInclude Include="Include\BsGUIVector2Field.h" />
-    <ClInclude Include="Include\BsSceneGrid.h" />
-    <ClInclude Include="Include\BsSelection.h" />
-    <ClInclude Include="Include\BsSelectionRenderer.h" />
-    <ClInclude Include="Include\BsSettings.h" />
-    <ClInclude Include="Include\BsSettingsRTTI.h" />
-    <ClInclude Include="Include\BsEditorShaderIncludeHandler.h" />
-    <ClInclude Include="Include\BsUndoRedo.h" />
-    <ClInclude Include="Include\Win32\BsVSCodeEditor.h" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="Source\BsBuildManager.cpp" />
-    <ClCompile Include="Source\BsCmdBreakPrefab.cpp" />
-    <ClCompile Include="Source\BsCmdCloneSO.cpp" />
-    <ClCompile Include="Source\BsCmdCreateSO.cpp" />
-    <ClCompile Include="Source\BsCmdInstantiateSO.cpp" />
-    <ClCompile Include="Source\BsCmdRecordSO.cpp" />
-    <ClCompile Include="Source\BsCmdReparentSO.cpp" />
-    <ClCompile Include="Source\BsCmdUtility.cpp" />
-    <ClCompile Include="Source\BsCmdDeleteSO.cpp" />
-    <ClCompile Include="Source\BsDockManager.cpp" />
-    <ClCompile Include="Source\BsDockManagerLayout.cpp" />
-    <ClCompile Include="Source\BsDropDownWindow.cpp" />
-    <ClCompile Include="Source\BsDropDownWindowManager.cpp" />
-    <ClCompile Include="Source\BsEditorCommand.cpp" />
-    <ClCompile Include="Source\BsBuiltinEditorResources.cpp" />
-    <ClCompile Include="Source\BsEditorTestSuite.cpp" />
-    <ClCompile Include="Source\BsEditorUtility.cpp" />
-    <ClCompile Include="Source\BsEditorWidget.cpp" />
-    <ClCompile Include="Source\BsEditorWidgetContainer.cpp" />
-    <ClCompile Include="Source\BsEditorWidgetLayout.cpp" />
-    <ClCompile Include="Source\BsEditorWidgetManager.cpp" />
-    <ClCompile Include="Source\BsEditorWindow.cpp" />
-    <ClCompile Include="Source\BsEditorWindowBase.cpp" />
-    <ClCompile Include="Source\BsEditorWindowManager.cpp" />
-    <ClCompile Include="Source\BsCodeEditor.cpp" />
-    <ClCompile Include="Source\BsGizmoManager.cpp" />
-    <ClCompile Include="Source\BsGUIColor.cpp" />
-    <ClCompile Include="Source\BsGUIColorField.cpp" />
-    <ClCompile Include="Source\BsGUIDockSlider.cpp" />
-    <ClCompile Include="Source\BsGUIFieldBase.cpp" />
-    <ClCompile Include="Source\BsGUIFloatField.cpp" />
-    <ClCompile Include="Source\BsGUIHoverHitBox.cpp" />
-    <ClCompile Include="Source\BsGUIIntField.cpp" />
-    <ClCompile Include="Source\BsGUIListBoxField.cpp" />
-    <ClCompile Include="Source\BsGUIMenuBar.cpp" />
-    <ClCompile Include="Source\BsGUIDropButton.cpp" />
-    <ClCompile Include="Source\BsGUIResourceTreeView.cpp" />
-    <ClCompile Include="Source\BsGUISceneTreeView.cpp" />
-    <ClCompile Include="Source\BsGUISliderField.cpp" />
-    <ClCompile Include="Source\BsGUIStatusBar.cpp" />
-    <ClCompile Include="Source\BsGUITabbedTitleBar.cpp" />
-    <ClCompile Include="Source\BsGUITabButton.cpp" />
-    <ClCompile Include="Source\BsGUITextField.cpp" />
-    <ClCompile Include="Source\BsGUIToggleField.cpp" />
-    <ClCompile Include="Source\BsGUITreeView.cpp" />
-    <ClCompile Include="Source\BsGUITreeViewEditBox.cpp" />
-    <ClCompile Include="Source\BsGUIVector2Field.cpp" />
-    <ClCompile Include="Source\BsGUIVector3Field.cpp" />
-    <ClCompile Include="Source\BsGUIVector4Field.cpp" />
-    <ClCompile Include="Source\BsGUIWindowFrame.cpp" />
-    <ClCompile Include="Source\BsGUIWindowFrameWidget.cpp" />
-    <ClCompile Include="Source\BsHandleDrawManager.cpp" />
-    <ClCompile Include="Source\BsHandleManager.cpp" />
-    <ClCompile Include="Source\BsHandleSliderManager.cpp" />
-    <ClCompile Include="Source\BsHandleSlider.cpp" />
-    <ClCompile Include="Source\BsHandleSliderDisc.cpp" />
-    <ClCompile Include="Source\BsHandleSliderLine.cpp" />
-    <ClCompile Include="Source\BsHandleSliderPlane.cpp" />
-    <ClCompile Include="Source\BsMainEditorWindow.cpp" />
-    <ClCompile Include="Source\BsEditorSettings.cpp" />
-    <ClCompile Include="Source\BsModalWindow.cpp" />
-    <ClCompile Include="Source\BsPlatformInfo.cpp" />
-    <ClCompile Include="Source\BsProjectSettings.cpp" />
-    <ClCompile Include="Source\BsScenePicking.cpp" />
-    <ClCompile Include="Source\BsProjectLibrary.cpp" />
-    <ClCompile Include="Source\BsProjectLibraryEntries.cpp" />
-    <ClCompile Include="Source\BsProjectResourceMeta.cpp" />
-    <ClCompile Include="Source\BsSceneGrid.cpp" />
-    <ClCompile Include="Source\BsSelection.cpp" />
-    <ClCompile Include="Source\BsSelectionRenderer.cpp" />
-    <ClCompile Include="Source\BsSettings.cpp" />
-    <ClCompile Include="Source\BsEditorShaderIncludeHandler.cpp" />
-    <ClCompile Include="Source\BsUndoRedo.cpp" />
-    <ClCompile Include="Source\BsEditorApplication.cpp" />
-    <ClCompile Include="Source\Win32\BsVSCodeEditor.cpp" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-  </ImportGroup>
-</Project>

+ 0 - 578
BansheeEditor/BansheeEditor.vcxproj.filters

@@ -1,578 +0,0 @@
-<?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\RTTI">
-      <UniqueIdentifier>{24ec8e18-6fa3-44c2-a6a5-04d811e55169}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\Win32">
-      <UniqueIdentifier>{ee1257c5-4335-401a-938c-adc62b074503}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\Win32">
-      <UniqueIdentifier>{482fa361-f45b-45d4-9d09-05ffb91c39b8}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\GUI">
-      <UniqueIdentifier>{e13d72e6-db5c-4582-8014-ac7bd030b210}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\GUI">
-      <UniqueIdentifier>{8cc80fd6-ed17-4638-b9a7-80cd1106cd60}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\Build">
-      <UniqueIdentifier>{d1d7f13f-6df8-45b9-98ce-71d086ca11e1}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\Build">
-      <UniqueIdentifier>{097f7557-d5fb-45e4-a88b-a59bcdaa8e62}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\Handles">
-      <UniqueIdentifier>{f0543a22-85b3-4db1-9842-eb6bdea3a9e1}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\Handles">
-      <UniqueIdentifier>{caba917b-fd60-48c9-9656-9764e17763cf}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\EditorWindow">
-      <UniqueIdentifier>{c305cee9-91cb-40b4-8c1b-da3a7d9d4dbb}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\EditorWindow">
-      <UniqueIdentifier>{b0aeac01-8fa0-4274-96af-89881eb97412}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\SceneView">
-      <UniqueIdentifier>{c05637ba-7fb5-4f5f-a84b-4eb95f54111a}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\SceneView">
-      <UniqueIdentifier>{75e6779c-51e7-47f4-8156-8a17ce92b0be}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\Library">
-      <UniqueIdentifier>{8fc76a14-3aac-4bef-ae61-abc7b54df3ca}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\Library">
-      <UniqueIdentifier>{d8e8adc3-f488-435a-8851-725fd87e2e55}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\Settings">
-      <UniqueIdentifier>{20f2ccde-81f8-4b94-8edc-4cf6f030cd2a}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\Settings">
-      <UniqueIdentifier>{fc90a84e-d7c5-4fa6-b476-b16d096d7452}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\UndoRedo">
-      <UniqueIdentifier>{c23d8d16-3a53-4e53-9e87-a15e33d5758c}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\UndoRedo">
-      <UniqueIdentifier>{fc5eed3b-3a94-4c0b-b462-636e84615f94}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\Testing">
-      <UniqueIdentifier>{e34e68f9-d9a6-45c7-9bbb-22d5fbd81b0f}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\Testing">
-      <UniqueIdentifier>{4c19963d-84dc-4536-a5ad-a7f2e11ee40e}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\CodeEditor">
-      <UniqueIdentifier>{d952f819-4603-4dbe-a764-c972bc7c98a7}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\CodeEditor">
-      <UniqueIdentifier>{c3407516-6f1a-4711-ac52-5fd00713215c}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Header Files\Utility">
-      <UniqueIdentifier>{7caa1dbe-dcab-40fb-ad3d-7f82f9629457}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files\Utility">
-      <UniqueIdentifier>{7bd61ca8-543d-4029-a0ed-1751d97477a3}</UniqueIdentifier>
-    </Filter>
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="Include\BsEditorCommand.h">
-      <Filter>Header Files\UndoRedo</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsCmdReparentSO.h">
-      <Filter>Header Files\UndoRedo</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsCmdInputFieldValueChange.h">
-      <Filter>Header Files\UndoRedo</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsCmdRecordSO.h">
-      <Filter>Header Files\UndoRedo</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\Win32\BsVSCodeEditor.h">
-      <Filter>Header Files\Win32</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsPlatformInfoRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsBuildDataRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsDockManagerLayoutRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsEditorWidgetLayoutRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsEditorApplication.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsEditorPrerequisites.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsProjectLibraryEntriesRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsProjectResourceMetaRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsCmdUtility.h">
-      <Filter>Header Files\UndoRedo</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsCmdDeleteSO.h">
-      <Filter>Header Files\UndoRedo</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsCmdCreateSO.h">
-      <Filter>Header Files\UndoRedo</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsCmdCloneSO.h">
-      <Filter>Header Files\UndoRedo</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsCmdInstantiateSO.h">
-      <Filter>Header Files\UndoRedo</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsEditorSettingsRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsSettingsRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsProjectSettingsRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIWindowFrameWidgetRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsCmdBreakPrefab.h">
-      <Filter>Header Files\UndoRedo</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIColor.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIColorField.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIDockSlider.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIDropButton.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIFieldBase.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIFloatField.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIHoverHitBox.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIIntField.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIListBoxField.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIMenuBar.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIResourceTreeView.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUISceneTreeView.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUISliderField.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIStatusBar.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUITabbedTitleBar.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUITabButton.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUITextField.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIToggleField.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUITreeView.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUITreeViewEditBox.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIVector2Field.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIVector3Field.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIVector4Field.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIWindowFrame.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIWindowFrameWidget.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsBuildManager.h">
-      <Filter>Header Files\Build</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsBuiltinEditorResources.h">
-      <Filter>Header Files\Build</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsPlatformInfo.h">
-      <Filter>Header Files\Build</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsHandleDrawManager.h">
-      <Filter>Header Files\Handles</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsHandleManager.h">
-      <Filter>Header Files\Handles</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsHandleSlider.h">
-      <Filter>Header Files\Handles</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsHandleSliderDisc.h">
-      <Filter>Header Files\Handles</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsHandleSliderLine.h">
-      <Filter>Header Files\Handles</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsHandleSliderManager.h">
-      <Filter>Header Files\Handles</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsHandleSliderPlane.h">
-      <Filter>Header Files\Handles</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsDockManager.h">
-      <Filter>Header Files\EditorWindow</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsDockManagerLayout.h">
-      <Filter>Header Files\EditorWindow</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsDropDownWindow.h">
-      <Filter>Header Files\EditorWindow</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsDropDownWindowManager.h">
-      <Filter>Header Files\EditorWindow</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsEditorWidget.h">
-      <Filter>Header Files\EditorWindow</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsEditorWidgetContainer.h">
-      <Filter>Header Files\EditorWindow</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsEditorWidgetLayout.h">
-      <Filter>Header Files\EditorWindow</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsEditorWidgetManager.h">
-      <Filter>Header Files\EditorWindow</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsEditorWindow.h">
-      <Filter>Header Files\EditorWindow</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsEditorWindowBase.h">
-      <Filter>Header Files\EditorWindow</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsEditorWindowManager.h">
-      <Filter>Header Files\EditorWindow</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsMainEditorWindow.h">
-      <Filter>Header Files\EditorWindow</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsModalWindow.h">
-      <Filter>Header Files\EditorWindow</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGizmoManager.h">
-      <Filter>Header Files\SceneView</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsSceneGrid.h">
-      <Filter>Header Files\SceneView</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsScenePicking.h">
-      <Filter>Header Files\SceneView</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsSelection.h">
-      <Filter>Header Files\SceneView</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsSelectionRenderer.h">
-      <Filter>Header Files\SceneView</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsProjectLibrary.h">
-      <Filter>Header Files\Library</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsProjectLibraryEntries.h">
-      <Filter>Header Files\Library</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsProjectResourceMeta.h">
-      <Filter>Header Files\Library</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsEditorSettings.h">
-      <Filter>Header Files\Settings</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsSettings.h">
-      <Filter>Header Files\Settings</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsProjectSettings.h">
-      <Filter>Header Files\Settings</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsUndoRedo.h">
-      <Filter>Header Files\UndoRedo</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsEditorTestSuite.h">
-      <Filter>Header Files\Testing</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsCodeEditor.h">
-      <Filter>Header Files\CodeEditor</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsEditorUtility.h">
-      <Filter>Header Files\Utility</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsEditorShaderIncludeHandler.h">
-      <Filter>Header Files\Library</Filter>
-    </ClInclude>
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="Source\BsEditorCommand.cpp">
-      <Filter>Source Files\UndoRedo</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsCmdReparentSO.cpp">
-      <Filter>Source Files\UndoRedo</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsCmdRecordSO.cpp">
-      <Filter>Source Files\UndoRedo</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\Win32\BsVSCodeEditor.cpp">
-      <Filter>Source Files\Win32</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsEditorApplication.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsCmdUtility.cpp">
-      <Filter>Source Files\UndoRedo</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsCmdDeleteSO.cpp">
-      <Filter>Source Files\UndoRedo</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsCmdCreateSO.cpp">
-      <Filter>Source Files\UndoRedo</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsCmdCloneSO.cpp">
-      <Filter>Source Files\UndoRedo</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsCmdInstantiateSO.cpp">
-      <Filter>Source Files\UndoRedo</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsCmdBreakPrefab.cpp">
-      <Filter>Source Files\UndoRedo</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIColor.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIColorField.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIDockSlider.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIDropButton.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIFieldBase.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIFloatField.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIHoverHitBox.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIIntField.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIListBoxField.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIMenuBar.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIResourceTreeView.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUISceneTreeView.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUISliderField.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIStatusBar.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUITabbedTitleBar.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUITabButton.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUITextField.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIToggleField.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUITreeView.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUITreeViewEditBox.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIVector2Field.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIVector3Field.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIVector4Field.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIWindowFrame.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIWindowFrameWidget.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsBuildManager.cpp">
-      <Filter>Source Files\Build</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsBuiltinEditorResources.cpp">
-      <Filter>Source Files\Build</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsPlatformInfo.cpp">
-      <Filter>Source Files\Build</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsHandleDrawManager.cpp">
-      <Filter>Source Files\Handles</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsHandleManager.cpp">
-      <Filter>Source Files\Handles</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsHandleSlider.cpp">
-      <Filter>Source Files\Handles</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsHandleSliderDisc.cpp">
-      <Filter>Source Files\Handles</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsHandleSliderLine.cpp">
-      <Filter>Source Files\Handles</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsHandleSliderManager.cpp">
-      <Filter>Source Files\Handles</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsHandleSliderPlane.cpp">
-      <Filter>Source Files\Handles</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsDockManager.cpp">
-      <Filter>Source Files\EditorWindow</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsDockManagerLayout.cpp">
-      <Filter>Source Files\EditorWindow</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsDropDownWindow.cpp">
-      <Filter>Source Files\EditorWindow</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsDropDownWindowManager.cpp">
-      <Filter>Source Files\EditorWindow</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsModalWindow.cpp">
-      <Filter>Source Files\EditorWindow</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsMainEditorWindow.cpp">
-      <Filter>Source Files\EditorWindow</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsEditorWindowManager.cpp">
-      <Filter>Source Files\EditorWindow</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsEditorWindowBase.cpp">
-      <Filter>Source Files\EditorWindow</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsEditorWindow.cpp">
-      <Filter>Source Files\EditorWindow</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsEditorWidgetManager.cpp">
-      <Filter>Source Files\EditorWindow</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsEditorWidgetLayout.cpp">
-      <Filter>Source Files\EditorWindow</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsEditorWidgetContainer.cpp">
-      <Filter>Source Files\EditorWindow</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsEditorWidget.cpp">
-      <Filter>Source Files\EditorWindow</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGizmoManager.cpp">
-      <Filter>Source Files\SceneView</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsSelectionRenderer.cpp">
-      <Filter>Source Files\SceneView</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsSelection.cpp">
-      <Filter>Source Files\SceneView</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsScenePicking.cpp">
-      <Filter>Source Files\SceneView</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsSceneGrid.cpp">
-      <Filter>Source Files\SceneView</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsProjectLibrary.cpp">
-      <Filter>Source Files\Library</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsProjectLibraryEntries.cpp">
-      <Filter>Source Files\Library</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsProjectResourceMeta.cpp">
-      <Filter>Source Files\Library</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsEditorSettings.cpp">
-      <Filter>Source Files\Settings</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsProjectSettings.cpp">
-      <Filter>Source Files\Settings</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsSettings.cpp">
-      <Filter>Source Files\Settings</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsUndoRedo.cpp">
-      <Filter>Source Files\UndoRedo</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsEditorTestSuite.cpp">
-      <Filter>Source Files\Testing</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsCodeEditor.cpp">
-      <Filter>Source Files\CodeEditor</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsEditorUtility.cpp">
-      <Filter>Source Files\Utility</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsEditorShaderIncludeHandler.cpp">
-      <Filter>Source Files\Library</Filter>
-    </ClCompile>
-  </ItemGroup>
-</Project>

+ 0 - 47
BansheeEditor/Include/BsCmdUtility.h

@@ -1,47 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsEditorPrerequisites.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	Contains various utility methods and structures used by EditorCommand%s.
-	 */
-	class CmdUtility
-	{
-	public:
-		/**
-		 * @brief	Contains stored information about stored scene object instance data,
-		 *			including all of its children and components.
-		 *
-		 * @note	When object is serialized it will receive new instance data (as if it was a new
-		 *			object). But we want to restore the original object completely (including any references
-		 *			other objects might have to it) so we need store the instance data.
-		 */
-		struct SceneObjProxy
-		{
-			GameObjectInstanceDataPtr instanceData;
-
-			Vector<GameObjectInstanceDataPtr> componentInstanceData;
-			Vector<SceneObjProxy> children;
-		};
-
-		/**
-		 * @brief	Parses the scene object hierarchy and components and generates a
-		 *			hierarchy of instance data required to restore the object identities.
-		 */
-		static SceneObjProxy createProxy(const HSceneObject& sceneObject);
-
-		/**
-		 * @brief	Restores original object instance data from the provided scene object proxy
-		 *			that was previously generated using ::createProxy.
-		 *
-		 * @param	restored	New instance of the object.
-		 * @param	proxy		Proxy data containing the original object instance data
-		 *						we want to restore.
-		 */
-		static void restoreIds(const HSceneObject& restored, SceneObjProxy& proxy);
-	};
-}

+ 0 - 149
BansheeEditor/Include/BsCodeEditor.h

@@ -1,149 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsEditorPrerequisites.h"
-#include "BsModule.h"
-
-namespace BansheeEngine
-{
-	class CodeEditor;
-	class CodeEditorFactory;
-
-	/**
-	 * @brief	Contains data about a reference to a 
-	 *			project in an external editor solution.
-	 */
-	struct BS_ED_EXPORT CodeProjectReference
-	{
-		WString name;
-		Path path;
-	};
-
-	/**
-	 * @brief	Contains data about a single project
-	 *			in an external editor solution.
-	 */
-	struct BS_ED_EXPORT CodeProjectData
-	{
-		WString name;
-		Vector<Path> codeFiles;
-		Vector<Path> nonCodeFiles;
-		WString defines;
-		Vector<CodeProjectReference> assemblyReferences;
-		Vector<CodeProjectReference> projectReferences;
-	};
-
-	/**
-	 * @brief	Contains data about an external editor solution,
-	 *			including all projects contained.
-	 */
-	struct BS_ED_EXPORT CodeSolutionData
-	{
-		WString name;
-		Vector<CodeProjectData> projects;
-	};
-
-	/**
-	 * @brief	Handles connectivity of the editor with external code editing tools.
-	 *			The system provides methods for interacting with external tools but
-	 *			the exact tool used depends on the currently active setting.
-	 */
-	class BS_ED_EXPORT CodeEditorManager : public Module<CodeEditorManager>
-	{
-	public:
-		CodeEditorManager();
-		~CodeEditorManager();
-
-		/**
-		 * @brief	Returns a list of all available code editors for this platform.
-		 */
-		const Vector<CodeEditorType>& getAvailableEditors() const { return mEditors; }
-
-		/**
-		 * @brief	Changes the active code editor. All further operations on this object will
-		 *			be executed using this editor. If the specified editor is not valid for this
-		 *			platform, no change will be made.
-		 */
-		void setActive(CodeEditorType editor);
-
-		/**
-		 * @brief	Returns the currently active code editor.
-		 */
-		CodeEditorType getActive() const { return mActiveEditorType; }
-
-		/**
-		 * @brief	Opens a code file in the active external editor. 
-		 *
-		 * @param	path		Path to the code file to open, can be absolute or relative to project resources folder.
-		 *						The file should be part of a solution in the active editor.
-		 * @param	lineNumber	Line number to focus on once the file is opened. Might not be supported by all
-		 *						editors.
-		 */
-		void openFile(const Path& path, UINT32 lineNumber) const;
-
-		/**
-		 * @brief	Synchronizes all code files and assemblies in the active project and updates 
-		 *			the project solution for the active editor. Each project can only have one solution
-		 *			per editor.
-		 */
-		void syncSolution() const;
-
-	private:
-		/**
-		 * @brief	Returns the absolute path at which the external editor solution file should be stored.
-		 */
-		Path getSolutionPath() const;
-
-		CodeEditor* mActiveEditor;
-		CodeEditorType mActiveEditorType;
-		Map<CodeEditorType, CodeEditorFactory*> mFactoryPerEditor;
-		Vector<CodeEditorType> mEditors;
-		Vector<CodeEditorFactory*> mFactories;
-	};
-
-	/**
-	 * @brief	Interface that classes interacting with external code editors needs to implement.
-	 *
-	 * @see		CodeEditorManager
-	 */
-	class BS_ED_EXPORT CodeEditor
-	{
-	public:
-		virtual ~CodeEditor() { }
-
-		/**
-		 * @copydoc	CodeEditorManager::openFile
-		 */
-		virtual void openFile(const Path& solutionPath, const Path& path, UINT32 lineNumber) const = 0;
-
-		/**
-		 * @copydoc	CodeEditorManager::syncSolution
-		 */
-		virtual void syncSolution(const CodeSolutionData& data, const Path& outputPath) const = 0;
-	};
-
-	/**
-	 * @brief	Interface for factory that creates a specific implementation(s) of a code editor.
-	 *
-	 * @see		CodeEditor
-	 */
-	class BS_ED_EXPORT CodeEditorFactory
-	{
-	public:
-		virtual ~CodeEditorFactory() { }
-
-		/**
-		 * @brief	Returns a list of code editors supported by this factory.
-		 */
-		virtual const Vector<CodeEditorType>& getAvailableEditors() const = 0;
-
-		/**
-		 * @brief	Creates a specific implementation of a code editor.
-		 *
-		 * @param	editor	Type of editor to create. Make sure to provide a valid value
-		 *					returned by "getAvailableEditors".
-		 */
-		virtual CodeEditor* create(CodeEditorType editor) const = 0;
-	};
-}

+ 0 - 351
BansheeEditor/Include/BsDockManager.h

@@ -1,351 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsEditorPrerequisites.h"
-#include "BsGUIElementContainer.h"
-#include "BsRect2I.h"
-
-namespace BansheeEngine
-{
-	class DockOverlayRenderer;
-
-	/**
-	 * @brief	GUI element that allows editor widgets to be docked in it using arbitrary
-	 *			layouts. Docked widgets can be resized, undocked, maximizes or closed as needed.
-	 */
-	class DockManager : public GUIElementContainer
-	{
-	public:
-		/**
-		 * @brief	Contains information about a single dock area. Each container can be a parent to
-		 *			two other containers or may contain a widget, which results in a container hierarchy. 
-		 *			Two children can be split vertically or horizontally at an user-defined point.
-		 */
-		class DockContainer
-		{
-		public:
-			DockContainer(DockManager* manager);
-			DockContainer(DockManager* manager, DockContainer* parent);
-			~DockContainer();
-
-			/**
-			 * @brief	Determines the position and size of the container, relative to the parent dock manager.
-			 */
-			void setArea(INT32 x, INT32 y, UINT32 width, UINT32 height);
-
-			/**
-			 * @brief	Transforms the container from non-leaf (parent to other containers)
-			 *			to leaf (parent to widgets). This involves creating a widget container to
-			 *			which you can dock widgets to.
-			 *
-			 * @param	parentWindow	Editor window of the parent dock manager.
-			 */
-			void makeLeaf(EditorWindowBase* parentWindow);
-
-			/**
-			 * @brief	Transforms the container from non-leaf (parent to other containers)
-			 *			to leaf (parent to widgets). Unlike the other overload this one accepts
-			 *			a previously created widget container.
-			 *
-			 * @param	guiWidgetSO			Parent SceneObject of the GUIWidget used by the provided widget container.
-			 * @param	existingContainer	An existing widget container that may be used for docking widgets.
-			 */
-			void makeLeaf(const HSceneObject& guiWidgetSO, EditorWidgetContainer* existingContainer);
-
-			/**
-			 * @brief	Splits a leaf container containing a widget container (or may be empty in the case of root with no elements) 
-			 *			into a container parent to two other containers.
-			 *
-			 * @param	horizontal			Whether the split is horizontal (true) or vertical (false.
-			 * @param	newChildIsFirst		Determines to which child should the widget container from this object be moved to.
-			 *								If the new child is first, then bottom or right (for horizontal and vertical respectively)
-			 *								will receive the current widget container, and opposite if it's not first.
-			 * @param	splitPosition		Determines at what position(in percent) should this container be split. User can modify this later
-			 *								via a dock slider.
-			 */
-			void splitContainer(bool horizontal, bool newChildIsFirst, float splitPosition = 0.5f);
-
-			/**
-			 * @brief	Splits a leaf container containing a widget container (or may be empty in the case of root with no elements)
-			 *			into a container parent to two other containers. Unlike "splitContainer" new containers aren't created automatically
-			 *			but you must provide existing ones. If this container is non-leaf its widget container will be destroyed.
-			 *
-			 * @param	first			Container to insert into the first child slot (left if vertical split, top if horizontal split).
-			 * @param	second			Container to insert into the second child slot (right if vertical split, bottom if horizontal split).
-			 * @param	horizontal		Whether the split is horizontal (true) or vertical (false.
-			 * @param	splitPosition	Determines at what position(in percent) should this container be split. User can modify this later
-			 *							via a dock slider.
-			 */
-			void makeSplit(DockContainer* first, DockContainer* second, bool horizontal, float splitPosition);
-
-			/**
-			 * @brief	Adds a new widget to the left side of the container. If the container is leaf it will
-			 *			be split into two containers vertically.
-			 */
-			void addLeft(EditorWidgetBase* widget);
-
-			/**
-			 * @brief	Adds a new widget to the right side of the container. If the container is leaf it will
-			 *			be split into two containers vertically.
-			 */
-			void addRight(EditorWidgetBase* widget);
-
-			/**
-			 * @brief	Adds a new widget to the top side of the container. If the container is leaf it will
-			 *			be split into two containers horizontally.
-			 */
-			void addTop(EditorWidgetBase* widget);
-
-			/**
-			 * @brief	Adds a new widget to the bottom side of the container. If the container is leaf it will
-			 *			be split into two containers horizontally.
-			 */
-			void addBottom(EditorWidgetBase* widget);
-
-			/**
-			 * @brief	Adds an existing widget to this leaf container.
-			 */
-			void addWidget(EditorWidgetBase* widget);
-
-			/**
-			 * @brief	Attempts to find a widget with the specified name, opens it
-			 *			and adds it to this leaf container.
-			 */
-			void addWidget(const String& name);
-
-			/**
-			 * @brief	Update to be called once per frame. Calls updates on all child widgets.
-			 */
-			void update();
-
-			/**
-			 * @brief	Attempts to find an existing leaf dock container with the specified
-			 *			widget container. Returns null if one cannot be found.
-			 */
-			DockContainer* find(EditorWidgetContainer* widgetContainer);
-
-			/**
-			 * @brief	Searches for a container at the specified position. Call this at this top-most
-			 *			container in order to search them all.
-			 *
-			 * @param	pos	Position is relative to the container area. 
-			 *
-			 * @return	null if it fails, else the found DockContainer at position.
-			 */
-			DockContainer* findAtPos(const Vector2I& pos);
-
-			/**
-			 * @brief	Returns the bounds of the container that are to be considered
-			 *			dockable and interactable.
-			 */
-			Rect2I getContentBounds() const;
-
-			bool mIsLeaf;
-			DockContainer* mChildren[2];
-			DockContainer* mParent;
-			DockManager* mManager;
-			EditorWidgetContainer* mWidgets;
-			HSceneObject mGUIWidgetSO;
-			GUIDockSlider* mSlider;
-			Rect2I mArea;
-			float mSplitPosition;
-			bool mIsHorizontal;
-
-			static const UINT32 SLIDER_SIZE;
-			static const UINT32 MIN_CHILD_SIZE;
-
-		private:
-			/**
-			 * @brief	Updates sizes and positions of all child containers. 
-			 *			Normally called when parent area changes.
-			 */
-			void updateChildAreas();
-
-			/**
-			 * @brief	Triggered whenever the user drags the GUI slider belonging to this container.
-			 */
-			void sliderDragged(const Vector2I& delta);
-
-			/**
-			 * @brief	Triggered whenever the user closes or undocks a widget belonging to this container.
-			 */
-			void widgetRemoved();
-
-			/**
-			 * @brief	Triggered when the maximize button in the container's title bar is clicked.
-			 */
-			void maximizeClicked();
-		};
-
-		/**
-		 * @brief	Available dock locations for the dock manager.
-		 */
-		enum class DockLocation
-		{
-			Top,
-			Bottom,
-			Left,
-			Right,
-			None
-		};
-	public:
-		/**
-		 * @brief	Creates a new dock manager for the specified window.
-		 */
-		static DockManager* create(EditorWindowBase* parentWindow);
-
-		/**
-		 * @brief	Internal method. Called once every frame.
-		 */
-		void update();
-
-		/**
-		 * @brief	Inserts a new widget at the specified location.
-		 *
-		 * @param	relativeTo		Container relative to which to insert the widget. Can be null in which case
-		 *							the widget is inserted at the root.
-		 * @param	widgetToInsert	Widget we want to insert into the dock layout.
-		 * @param	location		Location to insert the widget at, relative to "relativeTo" container. 
-		 *							If "relativeTo" is null this is ignored.
-		 */
-		void insert(EditorWidgetContainer* relativeTo, EditorWidgetBase* widgetToInsert, DockLocation location);
-
-		/**
-		 * @brief	Returns a saved layout of all the currently docked widgets and their positions
-		 *			and areas.
-		 */
-		DockManagerLayoutPtr getLayout() const;
-
-		/**
-		 * @brief	Sets a previously saved layout of docked widgets. This will close all currently active
-		 *			widgets and open and position new ones according to the layout.
-		 */
-		void setLayout(const DockManagerLayoutPtr& layout);
-
-		/**
-		 * @brief	Changes the position and size of the dock manager.
-		 */
-		void setArea(INT32 x, INT32 y, UINT32 width, UINT32 height);
-
-		/**
-		 * @brief	Closes all docked widgets.
-		 */
-		void closeAll();
-
-	private:
-		DockManager(EditorWindowBase* parentWindow, const GUIDimensions& dimensions);
-		~DockManager();
-
-		/**
-		 * @brief	Updates the dock overlay mesh that is displayed when user is dragging a widget
-		 *			over a certain area.
-		 */
-		void updateDropOverlay(INT32 x, INT32 y, UINT32 width, UINT32 height);
-
-		/**
-		 * @brief	Checks is the provided point inside the provided polygon.
-		 *
-		 * @param	polyPoints	Points of the polygon to test against.
-		 * @param	numPoints	Number of points in "polyPoints".
-		 * @param	point		Point to check if it's in the polygon.
-		 *
-		 * @returns	True if the point is in the polygon.
-		 */
-		bool insidePolygon(Vector2* polyPoints, UINT32 numPoints, Vector2 point) const;
-
-		/**
-		 * @brief	Initializes the renderer used for displaying the dock overlay.
-		 */
-		void initializeOverlayRenderer(const SPtr<MaterialCore>& initData);
-
-		/**
-		 * @brief	Destroys the dock overlay renderer.
-		 */
-		void destroyOverlayRenderer(DockOverlayRenderer* core);
-
-		/**
-		 * @copydoc GUIElementBase::updateClippedBounds
-		 */
-		void updateClippedBounds() override;
-
-		/**
-		 * @brief	Maximizes or restored the specified container. If any container is previously
-		 * 			maximized it needs to be toggled back to restored state before maximizing another.
-		 */
-		void toggleMaximize(DockContainer* container);
-
-		/**
-		 * @copydoc GUIElementBase::_mouseEvent
-		 */
-		bool _mouseEvent(const GUIMouseEvent& event) override;
-
-		std::atomic<DockOverlayRenderer*> mCore;
-
-		EditorWindowBase* mParentWindow;
-		DockContainer mRootContainer;
-		Rect2I mArea;
-
-		HMesh mDropOverlayMesh;
-		Rect2I mLastOverlayBounds;
-
-		bool mIsMaximized;
-		DockContainer* mMaximizedContainer;
-		DockManagerLayoutPtr mRestoredLayout;
-
-		DockContainer* mMouseOverContainer;
-		DockLocation mHighlightedDropLoc;
-		bool mShowOverlay;
-		Vector2* mTopDropPolygon;
-		Vector2* mBotDropPolygon;
-		Vector2* mLeftDropPolygon;
-		Vector2* mRightDropPolygon;
-	};
-
-	/**
-	 * @brief	Handles rendering of the dock overlay, on the core thread.
-	 * 			
-	 * @note	Core thread only.
-	 */
-	class DockOverlayRenderer
-	{
-	public:
-		DockOverlayRenderer();
-		~DockOverlayRenderer();
-
-	private:
-		friend class DockManager;
-
-		/**
-		 * @brief	Initializes the object. Must be called right after construction and before any use.
-		 *
-		 * @param	material	Material used for drawing the dock overlay.
-		 */
-		void initialize(const SPtr<MaterialCore>& material);
-
-		/**
-		 * @brief	Updates the grid mesh to render.
-		 * 			
-		 * @param	camera		Camera to render the dock overlay to.
-		 * @param	mesh		Overlay mesh to render.
-		 * @param	active		Should the overlay be shown or not.
-		 * @param	location	Highlighted location of the overlay.
-		 */
-		void updateData(const SPtr<CameraCore>& camera, const SPtr<MeshCore>& mesh, bool active,
-			DockManager::DockLocation location);
-
-		/**
-		 * @brief	Callback triggered by the renderer, actually draws the dock overlay.
-		 */
-		void render();
-		
-		SPtr<CameraCore> mCamera;
-		SPtr<MaterialCore> mMaterial;
-		SPtr<MeshCore> mMesh;
-		DockManager::DockLocation mHighlightedDropLoc;
-		bool mShowOverlay;
-
-		static const Color TINT_COLOR;
-		static const Color HIGHLIGHT_COLOR;
-	};
-}

+ 0 - 57
BansheeEditor/Include/BsDropDownWindowManager.h

@@ -1,57 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsEditorPrerequisites.h"
-#include "BsModule.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	Handles opening and closing of a drop down window. Only a single drop down window
-	 *			can be open at a time.
-	 */
-	class BS_ED_EXPORT DropDownWindowManager : public Module <DropDownWindowManager>
-	{
-	public:
-		DropDownWindowManager();
-		~DropDownWindowManager();
-
-		/**
-		 * @brief	Opens a new drop down window with the specified type and arguments.
-		 *
-		 * @param	parent		Render window parent in which to open the drop down window.
-		 * @param	camera		Camera in which to open the drop down window.
-		 * @param	position	Position relative to the viewport at which to open the drop down window.
-		 * @param	...args		A set of arguments to be passed along to the drop down window constructor.
-		 *
-		 * @returns	An instance of the newly created drop down window.
-		 *
-		 * @note	This method will automatically close any existing drop down windows before opening
-		 *			a new one.
-		 */
-		template<class T, class... Args>
-		T* open(const RenderWindowPtr& parent, const CameraPtr& camera,
-			const Vector2I& position, Args &&...args)
-		{
-			close();
-
-			mOpenWindow = bs_new<T>(parent, camera, position, std::forward<Args>(args)...);
-			return static_cast<T*>(mOpenWindow);
-		}
-
-		/**
-		 * @brief	Closes a drop down window if one is open.
-		 */
-		void close();
-
-		/**
-		 * @brief	To be called once per frame.
-		 *
-		 * @note	Internal method.
-		 */
-		void update();
-	protected:
-		DropDownWindow* mOpenWindow;
-	};
-}

+ 0 - 40
BansheeEditor/Include/BsEditorUtility.h

@@ -1,40 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsEditorPrerequisites.h"
-#include "BsAABox.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	Contains miscelanous helper methods.
-	 */
-	class BS_ED_EXPORT EditorUtility
-	{
-	public:
-		/**
-		 * @brief	Calculates world space bounds of the specified scene object. This will
-		 *			consider components with bounds like Renderable.
-		 */
-		static AABox calculateBounds(const HSceneObject& object);
-
-		/**
-		 * @brief	Calculates world space bounds of the specified scene objects. This will
-		 *			consider components with bounds like Renderable.
-		 */
-		static AABox calculateBounds(const Vector<HSceneObject>& objects);
-
-	private:
-		/**
-		 * @brief	Retrieves all components containing meshes on the specified object and outputs
-		 *			their bounds.
-		 *
-		 * @param	object	Object to calculate bounds for.
-		 * @param	bounds	Output bounds, if successful.
-		 *
-		 * @returns true if a mesh component was found, otherwise false (bounds will not be updated).
-		 */
-		static bool calculateMeshBounds(const HSceneObject& object, AABox& bounds);
-	};
-}

+ 0 - 265
BansheeEditor/Include/BsEditorWidget.h

@@ -1,265 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsEditorPrerequisites.h"
-#include "BsEditorWidgetManager.h"
-#include "BsEvent.h"
-#include "BsRect2I.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	Editor widget represents a single "window" in the editor. It may be dragged,
-	 *			docked and can share space with multiple other widgets by using tabs.
-	 *
-	 * Each widget has its own position, size, GUI and update method.
-	 * Widget is always docked inside an EditorWidgetContainer unless it's being dragged
-	 * and is not visible.
-	 */
-	class BS_ED_EXPORT EditorWidgetBase
-	{
-	public:
-		/**
-		 * @brief	Gets a unique name for this widget. This name will be used for referencing
-		 *			the widget by other systems.
-		 */
-		const String& getName() const { return mName; }
-
-		/**
-		 * @brief	Gets the display name for the widget. This is what editor users will see
-		 *			in the widget title bar.
-		 */
-		const HString& getDisplayName() const { return mDisplayName; }
-
-		/**
-		 * @brief	Returns the X position of the widget inside of its container.
-		 */
-		INT32 getX() const { return mX; }
-
-		/**
-		 * @brief	Returns the Y position of the widget inside of its container.
-		 */
-		INT32 getY() const { return mY; }
-
-		/**
-		 * @brief	Returns the width of the widget in pixels.
-		 */
-		UINT32 getWidth() const { return mWidth; }
-
-		/**
-		 * @brief	Returns the height of the widget in pixels.
-		 */
-		UINT32 getHeight() const { return mHeight; }
-
-		/**
-		 * @brief	Returns the width of the widget when initially created, in pixels.
-		 */
-		UINT32 getDefaultWidth() const { return mDefaultWidth; }
-
-		/**
-		 * @brief	Returns the height of the widget when initially created, in pixels.
-		 */
-		UINT32 getDefaultHeight() const { return mDefaultHeight; }
-
-		/**
-		 * @brief	Returns the bounds of the widget in pixels, relative
-		 *			to its parent container.
-		 */
-		Rect2I getBounds() const { return Rect2I(mX, mY, mWidth, mHeight); }
-
-		/**
-		 * @brief	Checks if the widget has focus (usually means user clicked on it last).
-		 */
-		bool hasFocus() const { return mHasFocus; }
-
-		/** 
-		 * Checks is the widget the currently active widget in its container. This means the widget's tab is active or
-		 * the widget is the only one in its container. 
-		 */
-		bool isActive() const { return mIsActive; }
-
-		/**
-		 * @brief	Gets the parent editor window this widget is docked in. Can be null (e.g. when widget is in the
-		 *			process of dragging and not visible).
-		 */
-		EditorWindowBase* getParentWindow() const;
-
-		/**
-		 * @brief	Changes the size of the widget (and its internal GUI panel).
-		 * 
-		 * @note	Internal method.
-		 */
-		void _setSize(UINT32 width, UINT32 height);
-
-		/**
-		 * @brief	Changes the position of the widget (and its internal GUI panel), 
-		 *			relative to its parent container.
-		 * 
-		 * @note	Internal method.
-		 */
-		void _setPosition(INT32 x, INT32 y);
-
-		/**
-		 * @brief	Changes the parent container of the widget (e.g. when re-docking or moving
-		 *			a widget to another window). Parent can be null (e.g. when widget is in the
-		 *			process of dragging and not visible).
-		 *
-		 * @note	Internal method.
-		 */
-		void _changeParent(EditorWidgetContainer* parent);
-
-		/**
-		 * @brief	Sets or removes focus for this widget.
-		 *
-		 * @note	Internal method.
-		 */
-		void _setHasFocus(bool focus);
-
-		/**
-		 * @brief	Returns the parent widget container. Can be null (e.g. when widget is in the
-		 *			process of dragging and not visible).
-		 *
-		 * @note	Internal method.
-		 */
-		EditorWidgetContainer* _getParent() const { return mParent; }
-
-		/**
-		 * @brief	Converts screen coordinates to coordinates relative to the
-		 *			widget.
-		 */
-		Vector2I screenToWidgetPos(const Vector2I& screenPos) const;
-
-		/**
-		 * @brief	Converts widget relative coordinates to screen coordiantes.
-		 */
-		Vector2I widgetToScreenPos(const Vector2I& widgetPos) const;
-
-		/**
-		 * @brief	Disables the widget making its GUI contents not visible. The widget
-		 *			remains docked in its container.
-		 *
-		 * @note	Internal method.
-		 */
-		void _disable();
-
-		/**
-		 * @brief	Enables the widget making its previously hidden GUI contents visible.
-		 *
-		 * @note	Internal method.
-		 */
-		void _enable();
-
-		/**
-		 * @brief	Closes the widget, undocking it from its container and freeing any resources
-		 *			related to it.
-		 */
-		void close();
-
-		/**
-		 * @brief	Called once per frame.
-		 *
-		 * @note	Internal method.
-		 */
-		virtual void update() { }
-
-		Event<void(UINT32, UINT32)> onResized; /**< Triggered whenever widget size changes. */
-		Event<void(INT32, INT32)> onMoved; /**< Triggered whenever widget position changes. */
-		Event<void(EditorWidgetContainer*)> onParentChanged; /**< Triggered whenever widget parent container changes. */
-		Event<void(bool)> onFocusChanged; /**< Triggered whenever widget receives or loses focus. */
-	protected:
-		friend class EditorWidgetManager;
-
-		EditorWidgetBase(const HString& displayName, const String& name, UINT32 defaultWidth,
-			UINT32 defaultHeight, EditorWidgetContainer& parentContainer);
-		virtual ~EditorWidgetBase();
-
-		/**
-		 * @brief	Triggered whenever widget position changes.
-		 */
-		virtual void doOnMoved(INT32 x, INT32 y);
-
-		/**
-		 * @brief	Triggered whenever widget size changes.
-		 */
-		virtual void doOnResized(UINT32 width, UINT32 height);
-
-		/**
-		 * @brief	Triggered whenever widget parent container changes.
-		 */
-		virtual void doOnParentChanged();
-
-		/**
-		 * @brief	Returns the parent GUI widget. Before calling this you must ensure
-		 *			the widget has a container parent otherwise this method will fail.
-		 */
-		GUIWidget& getParentWidget() const;
-
-		/**
-		 * @brief	Frees widget resources and deletes the instance.
-		 */
-		static void destroy(EditorWidgetBase* widget);
-
-		String mName;
-		HString mDisplayName;
-		EditorWidgetContainer* mParent;
-		INT32 mX, mY;
-		UINT32 mWidth, mHeight;
-		UINT32 mDefaultWidth, mDefaultHeight;
-		GUIPanel* mContent;
-		bool mHasFocus;
-		bool mIsActive;
-	};
-
-	/**
-	 * @brief	Helper class that registers a widget creation callback with the widget manager.
-	 *			The creation callback allows the runtime to open widgets just by their name
-	 *			without knowing the actual type.
-	 */
-	template<typename Type>
-	struct RegisterWidgetOnStart
-	{
-	public:
-		RegisterWidgetOnStart()
-		{
-			EditorWidgetManager::preRegisterWidget(Type::getTypeName(), &create);
-		}
-
-		/**
-		 * @brief	Creates a new widget of a specific type and adds it to the provided container.
-		 */
-		static EditorWidgetBase* create(EditorWidgetContainer& parentContainer)
-		{
-			return bs_new<Type>(EditorWidget<Type>::ConstructPrivately(), parentContainer);
-		}
-	};
-
-	/**
-	 * @brief	Editor widget template class that widgets can inherit from. Ensures that
-	 *			all widget implementations are automatically registered with the widget manager.
-	 *
-	 * @see		EditorWidgetBase
-	 */
-	template <class Type>
-	class EditorWidget : public EditorWidgetBase
-	{
-		static volatile RegisterWidgetOnStart<Type> RegisterOnStart;
-
-	protected:
-		friend struct RegisterWidgetOnStart<Type>;
-
-		struct ConstructPrivately {};
-
-		EditorWidget(const HString& displayName, UINT32 defaultWidth, UINT32 defaultHeight, 
-			EditorWidgetContainer& parentContainer)
-			:EditorWidgetBase(displayName, Type::getTypeName(), defaultWidth, defaultHeight, parentContainer)
-		{ }
-
-	public:
-
-		virtual ~EditorWidget() { }
-	};
-
-	template <typename Type>
-	volatile RegisterWidgetOnStart<Type> EditorWidget<Type>::RegisterOnStart;
-}

+ 0 - 196
BansheeEditor/Include/BsEditorWidgetContainer.h

@@ -1,196 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsEditorPrerequisites.h"
-#include "BsEvent.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	A GUI object that contains one or multiple editor widgets.
-	 *			Each widget is represented by a single tab and can be activated,
-	 *			deactivated, moved or dragged off.
-	 *
-	 * @note	Internal class.
-	 */
-	class BS_ED_EXPORT EditorWidgetContainer
-	{
-	public:
-		EditorWidgetContainer(GUIWidget* parent, EditorWindowBase* parentEditorWindow);
-		virtual ~EditorWidgetContainer();
-
-		/**
-		 * @brief	Adds a new widget to the container, adding a new tab to
-		 *			the end of the tab bar.
-		 */
-		void add(EditorWidgetBase& widget);
-
-		/**
-		 * @brief	Removes a widget from the container.
-		 */
-		void remove(EditorWidgetBase& widget);
-
-		/**
-		 * @brief	Inserts a widget at the specified index, adding a new
-		 *			tab at that position.
-		 *
-		 * @param	idx		Sequential index where to insert the widget.
-		 * @param	widget	Widget to insert.
-		 */
-		void insert(UINT32 idx, EditorWidgetBase& widget);
-
-		/**
-		 * @brief	Checks if the container already contains the provided widget.
-		 */
-		bool contains(EditorWidgetBase& widget);
-
-		/**
-		 * @brief	Sets the size of the container in pixels. This also modifies
-		 *			the size of all child widgets.
-		 */
-		void setSize(UINT32 width, UINT32 height);
-
-		/**
-		 * @brief	Sets the position of the container, relative to the parent
-		 *			GUI widget. This also modifies the position of all child widgets.
-		 */
-		void setPosition(INT32 x, INT32 y);
-
-		/**
-		 * @brief	Returns the number of widgets currently docked in this container.
-		 */
-		UINT32 getNumWidgets() const { return (UINT32)mWidgets.size(); }
-
-		/**
-		 * @brief	Returns a widget at the specified index.
-		 *
-		 * @param	idx		Sequential index of the widget to retrieve.
-		 */
-		EditorWidgetBase* getWidget(UINT32 idx) const;
-
-		/**
-		 * @brief	Returns a widget that is currently visible (its tab is active).
-		 */
-		EditorWidgetBase* getActiveWidget() const;
-
-		/**
-		 * @brief	Returns the parent GUI widget the container is using to render the GUI on.
-		 */
-		GUIWidget& getParentWidget() const { return *mParent; }
-
-		/**
-		 * @brief	Returns the parent editor window the container is docked in.
-		 */
-		EditorWindowBase* getParentWindow() const { return mParentWindow; }
-
-		/**
-		 * @brief	Returns bounds not including the tabbed title bar. These are the bounds
-		 *			available to child widget GUI.
-		 */
-		Rect2I getContentBounds() const;
-
-		/**
-		 * @brief	Returns a list of areas that can be dragged off. These are normally areas
-		 *			represented by tab buttons.
-		 */
-		Vector<Rect2I> getDraggableAreas() const;
-
-		/**
-		 * @brief	Called once per frame. Calls update on all docked widgets.
-		 */
-		void update();
-
-		/**
-		 * @brief	Updates the tabbed title bar by refreshing the names of all docked widgets.
-		 */
-		void refreshWidgetNames();
-
-		/**
-		 * @brief	Triggers when a widget is about to be destroyed.
-		 */
-		void _notifyWidgetDestroyed(EditorWidgetBase* widget);
-
-		/**
-		 * @brief	Returns the size of a widget docked in a window of the specified size. Window and widget sizes are
-		 * 			different due to the title bar and potentially other window-specific GUI elements.
-		 */
-		static Vector2I windowToWidgetSize(const Vector2I& windowSize);
-
-		/**
-		 * @brief	Returns the size of a window required for displaying a widget of the specified size. Window and widget 
-		 * 			sizes are different due to the title bar and potentially other window-specific GUI elements.
-		 */
-		static Vector2I widgetToWindowSize(const Vector2I& widgetSize);
-
-		Event<void()> onWidgetAdded; /**< Triggered whenever a new widget is added to this container. */
-		Event<void()> onWidgetClosed; /**< Triggered whenever a widget docked in this container is closed. */
-		Event<void()> onMaximized; /**< Triggered when the maximize button is clicked. */
-
-		static const UINT32 TitleBarHeight;
-	private:
-		EditorWindowBase* mParentWindow;
-		GUITabbedTitleBar* mTitleBar;
-		GUIPanel* mTitleBarPanel;
-		GUIWidget* mParent;
-		INT32 mX, mY;
-		UINT32 mWidth, mHeight;
-		UnorderedMap<UINT32, EditorWidgetBase*> mWidgets;
-		INT32 mActiveWidget;
-
-		/**
-		 * @brief	Removes a widget without triggering a widget closed event.
-		 */
-		void removeInternal(EditorWidgetBase& widget);
-
-		/**
-		 * @brief	Changes the currently active widget to the one at the specified index. Making
-		 *			the widget active means it will be visible in the container.
-		 *
-		 * @param	idx		Unique widget index (not sequential).
-		 */
-		void setActiveWidget(UINT32 idx);
-
-		/**
-		 * @brief	Triggered when a user clicks on a tab in the tabbed title bar.
-		 *
-		 * @param	idx		Unique widget index (not sequential) of the tab that was activated.
-		 */
-		void tabActivated(UINT32 idx);
-
-		/**
-		 * @brief	Triggered when a user closes a tab in the tabbed title bar.
-		 *
-		 * @param	idx		Unique widget index (not sequential) of the tab that was closed.
-		 */
-		void tabClosed(UINT32 idx);
-
-		/**
-		 * @brief	Triggered when a user clicks the maximize button on the title bar.
-		 *
-		 * @param	idx		Unique widget index (not sequential) of the tab that was closed.
-		 */
-		void tabMaximized(UINT32 idx);
-
-		/**
-		 * @brief	Triggered when a user drags a tab off the tabbed title bar.
-		 *
-		 * @param	idx		Unique widget index (not sequential) of the tab that was dragged off.
-		 */
-		void tabDraggedOff(UINT32 idx);
-
-		/**
-		 * @brief	Triggered when a user drags a tab on the tabbed title bar.
-		 *
-		 * @param	idx		Sequential index at the position on which the tab has been dragged on.
-		 */
-		void tabDraggedOn(UINT32 idx);
-
-		/**
-		 * @brief	Triggered when the widget drag and drop operation finishes.
-		 *
-		 * @param	wasDragProcessed	Signals whether any object handled the drop.
-		 */
-		static void tabDroppedCallback(bool wasDragProcessed);
-	};
-}

+ 0 - 111
BansheeEditor/Include/BsEditorWidgetManager.h

@@ -1,111 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsEditorPrerequisites.h"
-#include "BsModule.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	Handles opening and closing of EditorWidgets. Its primary purpose
-	 * 			is to keep track of all types of widgets so they can be saved and restored
-	 * 			upon program shutdown/startup, as well as being able to change widget layout on
-	 * 			the fly.
-	 */
-	class BS_ED_EXPORT EditorWidgetManager : public Module<EditorWidgetManager>
-	{
-	public:
-		EditorWidgetManager();
-		~EditorWidgetManager();
-
-		/**
-		 * @brief	Called every frame.
-		 */
-		void update();
-
-		/**
-		 * @brief	Registers a widget that can then be opened by calling "open". When loading
-		 * 			a widget layout this name and callback will be used to attempt creating the widget.
-		 *
-		 * @param	name				  	Unique name for the widget.
-		 * @param 	createCallback			Callback that returns a new instance of the widget.
-		 */
-		void registerWidget(const String& name, std::function<EditorWidgetBase*(EditorWidgetContainer&)> createCallback);
-
-		/**
-		 * @brief	Unregisters a widget so it may no longer be opened using this manager.
-		 */
-		void unregisterWidget(const String& name);
-
-		/**
-		 * @brief	Creates a widget with the given name. If widget is already created it returns the existing instance.
-		 * 			Widget is opened in a new window.
-		 *
-		 * @param	name	The name of the widget.
-		 *
-		 * @return	Always returns the created widget, and throws an exception if it fails.
-		 */
-		EditorWidgetBase* open(const String& name);
-
-		/**
-		 * @brief	Creates a new widget an inserts it into the specified container.
-		 */
-		EditorWidgetBase* create(const String& name, EditorWidgetContainer& parentContainer);
-
-		/**
-		 * @brief	Checks if the provided name represents a widget that can be created.
-		 */
-		bool isValidWidget(const String& name) const;
-
-		/**
-		 * @brief	Closes the given widget.
-		 */
-		void close(EditorWidgetBase* widget);
-
-		/**
-		 * @brief	Closes all open editor widgets.
-		 */
-		void closeAll();
-
-		/**
-		 * @brief	Retrieves the layout of all currently active widgets. You may later
-		 * 			use this layout to restore exact position of the widgets.
-		 */
-		EditorWidgetLayoutPtr getLayout() const;
-
-		/**
-		 * @brief	Positions all widgets according to the provided layout. It will open
-		 * 			new widgets or close current ones if needed.
-		 */
-		void setLayout(const EditorWidgetLayoutPtr& layout);
-
-		/**
-		 * @brief	Allows you to queue up widgets that will be registered as soon as an instance of EditorWidgetManager is
-		 * 			created.
-		 *
-		 * @note	Useful primarily when widgets are being registered from static methods, because then there is no
-		 * 			EditorWidgetManager instance yet.
-		 */
-		static void preRegisterWidget(const String& name, std::function<EditorWidgetBase*(EditorWidgetContainer&)> createCallback);
-
-	private:
-		/**
-		 * @brief	Triggered whenever a window gains focus.
-		 */
-		void onFocusGained(const RenderWindow& window);
-
-		/**
-		 * @brief	Triggered whenever a window loses focus.
-		 */
-		void onFocusLost(const RenderWindow& window);
-
-		Map<String, EditorWidgetBase*> mActiveWidgets;
-		Map<String, std::function<EditorWidgetBase*(EditorWidgetContainer&)>> mCreateCallbacks;
-
-		HEvent mOnFocusLostConn;
-		HEvent mOnFocusGainedConn;
-
-		static Stack<std::pair<String, std::function<EditorWidgetBase*(EditorWidgetContainer&)>>> QueuedCreateCallbacks;
-	};
-}

+ 0 - 78
BansheeEditor/Include/BsEditorWindow.h

@@ -1,78 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsEditorPrerequisites.h"
-#include "BsEditorWindowBase.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	A draggable and resizeable window that has a single widget container
-	 *			you may use for docking editor widgets in.
-	 */
-	class BS_ED_EXPORT EditorWindow : public EditorWindowBase
-	{
-	public:
-		virtual ~EditorWindow();
-
-		/**
-		 * @brief	Returns the widget container for this window.
-		 */
-		EditorWidgetContainer& widgets() const { return *mWidgets; }
-
-		/**
-		 * @copydoc	EditorWindowBase::update 
-		 */
-		virtual void update() override;
-
-		/**
-		 * @brief	Creates a new empty editor window.
-		 */
-		static EditorWindow* create();
-
-	protected:
-		friend class EditorWindowManager;
-		EditorWindow();
-
-		/**
-		 * @copydoc	EditorWindowBase::resized 
-		 */
-		virtual void resized() override;
-	private:
-		EditorWidgetContainer* mWidgets;
-
-		/**
-		 * @brief	Updates the sizes of the child widget container and
-		 *			OS non-client areas (like drag and resize). Call when window
-		 *			size changes.
-		 */
-		void updateSize();
-
-		/**
-		 * @brief	Called when a widget is added to the widget container.
-		 */
-		void widgetAdded();
-
-		/**
-		 * @brief	Called when a widget is removed from the widget container.
-		 */
-		void widgetRemoved();
-
-		/**
-		 * @brief	Triggered when the maximize button on the title bar is clicked.
-		 */
-		void maximizeClicked();
-
-		/**
-		 * @brief	A callback that triggers when a drag and drop operation originated from
-		 *			this window ends. 
-		 *
-		 * @note	This is a workaround to get around the problem that closing the window
-		 *			when the drag operation starts (e.g. if the last widget is dragged from the window)
-		 *			will cause the application to lose mouse capture and will not receive mouse events.
-		 *			Therefore we delay the window closing until the drag ends.
-		 */
-		void closeWindowDelayed();
-	};
-}

+ 0 - 120
BansheeEditor/Include/BsEditorWindowBase.h

@@ -1,120 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsEditorPrerequisites.h"
-#include "BsEvent.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	A base class for all editor window. Each editor window is backed by a render window
-	 *			(e.g. the OS "window"), and also provides a GUI widget for child elements to use.
-	 *			On top of that it also provides basic GUI like window background and frame, as well
-	 *			as setting up the OS-specific areas for resize/move operations.
-	 */
-	class BS_ED_EXPORT EditorWindowBase
-	{
-	public:
-		virtual ~EditorWindowBase();
-
-		/**
-		 * @brief	Moves the window on the desktop. Coordinates are in screen space.
-		 */
-		virtual void setPosition(INT32 x, INT32 y);
-
-		/**
-		 * @brief	Resizes the window.
-		 */
-		virtual void setSize(UINT32 width, UINT32 height);
-
-		/**
-	     * @brief	Returns the X position of the window in screen coordinates.
-		 */
-		INT32 getLeft() const;
-
-		/**
-	     * @brief	Returns the X position of the window in screen coordinates.
-		 */
-		INT32 getTop() const;
-
-		/**
-	     * @brief	Returns the width of the window in pixels.
-		 */
-		UINT32 getWidth() const;
-
-		/**
-	     * @brief	Returns the height of the window in pixels.
-		 */
-		UINT32 getHeight() const;
-
-		/**
-	     * @brief	Closes and destroys the window.
-		 */
-		virtual void close();
-
-		/**
-	     * @brief	Hides the window without closing it.
-		 */
-		void hide();
-
-		/**
-		 * @brief	Return true if this is the main editor window.
-		 */
-		virtual bool isMain() const { return false; }
-
-		/**
-		 * @brief	Called once every frame. Internal method.
-		 */
-		virtual void update() { }
-
-		/**
-		 * @brief	Returns the render window that this editor window is being rendered to.
-		 */
-		RenderWindowPtr getRenderWindow() const { return mRenderWindow; }
-
-		/**
-		 * @brief	Returns the GUI widget used for displaying all GUI contents in the window.
-		 */
-		HGUIWidget getGUIWidget() const { return mGUI; }
-
-		/**
-		 * @brief	Returns the camera used for rendering the window GUI contents.
-		 */	
-		HCamera getGUICamera() const { return mCamera; }
-
-		/**
-		 * @brief	Checks whether the window currently has keyboard focus.
-		 */	
-		bool hasFocus() const;
-
-	protected:
-		EditorWindowBase(bool isModal = false);
-		EditorWindowBase(const RenderWindowPtr& renderWindow);
-
-		RenderWindowPtr mRenderWindow;
-		HSceneObject mSceneObject;
-		HGUIWidget mGUI;
-		HCamera mCamera;
-		GameObjectHandle<WindowFrameWidget> mWindowFrame;
-		bool mOwnsRenderWindow;
-		bool mIsModal;
-
-		/**
-		 * @brief	Common code for constructing the object to be called from all constructors.
-		 */
-		void construct(const RenderWindowPtr& renderWindow);
-
-		/**
-		 * @brief	Initializes elements that cannot be initialized in the constructor. Must be called right after construction.
-		 */
-		virtual void initialize();
-
-		/**
-		 * @brief	Callback that triggers whenever the underlying render window changes size.
-		 */
-		virtual void resized() { }
-	private:
-		HEvent mResizedConn;
-	};
-}

+ 0 - 65
BansheeEditor/Include/BsEditorWindowManager.h

@@ -1,65 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsEditorPrerequisites.h"
-#include "BsModule.h"
-#include "BsEvent.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	Manages that handles creation, destruction and updates of editor windows.
-	 *
-	 * @note	Internal class.
-	 */
-	class BS_ED_EXPORT EditorWindowManager : public Module<EditorWindowManager>
-	{
-	public:
-		EditorWindowManager();
-		~EditorWindowManager();
-
-		/**
-		 * @brief	Creates the main editor window using a previously created render window.
-		 *			If a main window already exists, this will return the existing instance.
-		 */
-		MainEditorWindow* createMain(const RenderWindowPtr& parentRenderWindow);
-
-		/**
-		 * @brief	Creates a new editor window. There is no limit on the number of editor windows.
-		 */
-		EditorWindow* create();
-
-		/**
-		 * @brief	Notifies the manager that a new editor window was created.
-		 */
-		void registerWindow(EditorWindowBase* window);
-
-		/**
-		 * @brief	Schedules the window for destruction. Actual destruction will happen on next update.
-		 */
-		void destroy(EditorWindowBase* window);
-
-		/**
-		 * @brief	Returns the main editor window, or null if one doesn't exist.
-		 */
-		MainEditorWindow* getMainWindow() const { return mMainWindow; }
-
-		/**
-		 * @brief	Update to be called once per frame. Calls update on all active editor windows.
-		 */
-		void update();
-
-		/**
-		 * @brief	Checks if any editor window has keyboard focus.
-		 */
-		bool hasFocus() const;
-	protected:
-		MainEditorWindow* mMainWindow;
-
-		Vector<EditorWindowBase*> mEditorWindows;
-		Vector<EditorWindowBase*> mScheduledForDestruction;
-
-		Vector<EditorWindowBase*> mEditorWindowsSnapshot;
-	};
-}

+ 0 - 68
BansheeEditor/Include/BsGUIDockSlider.h

@@ -1,68 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsEditorPrerequisites.h"
-#include "BsGUIButtonBase.h"
-#include "BsDockManager.h"
-#include "BsEvent.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	GUI element used by the dock manager to display a slider between
-	 *			two different dock containers. The slider can be vertical or horizontal
-	 *			and will process and report mouse drag events.
-	 *
-	 * @note	It's up to the caller to actually handle the drag events.
-	 */
-	class GUIDockSlider : public GUIButtonBase
-	{
-	public:
-		/**
-		 * Returns type name of the GUI element used for finding GUI element styles. 
-		 */
-		static const String& getGUITypeName();
-
-		/**
-		 * @brief	Creates a new GUI dock slider element.
-		 *
-		 * @param	horizontal		Should the slider be rendered horizontal or vertical.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUIDockSlider* create(bool horizontal, const String& styleName = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new GUI dock slider element.
-		 *
-		 * @param	horizontal		Should the slider be rendered horizontal or vertical.
-		 * @param	options			Options that allow you to control how is the element positioned and sized.
-		 *							This will override any similar options set by style.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUIDockSlider* create(bool horizontal, const GUIOptions& options, const String& styleName = StringUtil::BLANK);
-
-		Event<void(const Vector2I&)> onDragged; /**< Triggered while the user is dragging the slider (pointer down and being moved) */
-	protected:
-		/**
-		 * @copydoc	GUIButtonBase::_mouseEvent
-		 */
-		virtual bool _mouseEvent(const GUIMouseEvent& ev) override;
-
-		/**
-		 * @copydoc	GUIButtonBase::_hasCustomCursor
-		 */
-		bool _hasCustomCursor(const Vector2I position, CursorType& type) const override;
-	private:
-		Vector2I mLastDragPosition;
-		bool mHorizontal;
-		bool mIsCursorSet;
-		bool mDragInProgress;
-
-		GUIDockSlider(bool horizontal, const String& styleName, const GUIDimensions& dimensions);
-	};
-}

+ 0 - 70
BansheeEditor/Include/BsGUIDropButton.h

@@ -1,70 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsEditorPrerequisites.h"
-#include "BsGUIButtonBase.h"
-#include "BsGUIToggleGroup.h"
-#include "BsImageSprite.h"
-#include "BsTextSprite.h"
-#include "BsGUIContent.h"
-#include "BsEvent.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	GUI element that accepts a drag and drop operation of a specified type.
-	 *
-	 * @see		DragAndDropManager
-	 */
-	class BS_ED_EXPORT GUIDropButton : public GUIButtonBase
-	{
-	public:
-		/**
-		 * Returns type name of the GUI element used for finding GUI element styles. 
-		 */
-		static const String& getGUITypeName();
-
-		/**
-		 * @brief	Creates a new GUI drop button element.
-		 *
-		 * @param	dragType		Identifier of the drag operation to accept.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUIDropButton* create(UINT32 dragType, const String& styleName = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new GUI drop button element.
-		 *
-		 * @param	dragType		Identifier of the drag operation to accept.
-		 * @param	options			Options that allow you to control how is the element positioned and sized.
-		 *							This will override any similar options set by style.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUIDropButton* create(UINT32 dragType, const GUIOptions& options, 
-			const String& styleName = StringUtil::BLANK);
-
-		Event<void(void*)> onDataDropped; /**< Triggered when drag and drop operation finishes while over the button and is of the correct type. */
-	protected:
-		virtual ~GUIDropButton();
-
-	protected:
-		GUIDropButton(UINT32 dragType, const String& styleName, const GUIDimensions& dimensions);
-
-		/**
-		 * @copydoc	GUIButtonBase::_mouseEvent
-		 */
-		virtual bool _mouseEvent(const GUIMouseEvent& ev) override;
-
-		/**
-		 * @copydoc	GUIButtonBase::_acceptDragAndDrop
-		 */
-		virtual bool _acceptDragAndDrop(const Vector2I position, UINT32 typeId) const override;
-
-		UINT32 mDragType;
-	};
-}

+ 0 - 246
BansheeEditor/Include/BsGUIListBoxField.h

@@ -1,246 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsEditorPrerequisites.h"
-#include "BsGUIElementContainer.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	A composite GUI object representing an editor field. Editor fields are a combination
-	 *			of a label and an input field. Label is optional. This specific implementation
-	 *			displays a list box field.
-	 */
-	class BS_ED_EXPORT GUIListBoxField : public GUIElementContainer
-	{
-		struct PrivatelyConstruct {};
-
-	public:
-		/**
-		 * Returns type name of the GUI element used for finding GUI element styles. 
-		 */
-		static const String& getGUITypeName();
-
-		/**
-		 * Returns style type name of the internal GUILabel element.
-		 */
-		static const String& getLabelStyleType();
-
-		/**
-		 * Style type name for the internal list box.
-		 */
-		static const String& getListBoxStyleType();
-
-		/**
-		 * @brief	Creates a new GUI list box field with a label.
-		 *
-		 * @param	elements		Elements to display in the list box.
-		 * @param	multiselect		Determines should the listbox allow multiple elements to be selected or just one.
-		 * @param	labelContent	Content to display in the editor field label.
-		 * @param	labelWidth		Width of the label in pixels.
-		 * @param	options			Options that allow you to control how is the element positioned and sized.
-		 *							This will override any similar options set by style.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUIListBoxField* create(const Vector<HString>& elements, bool multiselect, const GUIContent& labelContent, 
-			UINT32 labelWidth, const GUIOptions& options, const String& style = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new GUI list box field with a label.
-		 *
-		 * @param	elements		Elements to display in the list box.
-		 * @param	multiselect		Determines should the listbox allow multiple elements to be selected or just one.
-		 * @param	labelContent	Content to display in the editor field label.
-		 * @param	options			Options that allow you to control how is the element positioned and sized.
-		 *							This will override any similar options set by style.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUIListBoxField* create(const Vector<HString>& elements, bool multiselect, const GUIContent& labelContent,
-			const GUIOptions& options, const String& style = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new GUI list box field with a label.
-		 *
-		 * @param	elements		Elements to display in the list box.
-		 * @param	multiselect		Determines should the listbox allow multiple elements to be selected or just one.
-		 * @param	labelText		String to display in the editor field label.
-		 * @param	labelWidth		Width of the label in pixels.
-		 * @param	options			Options that allow you to control how is the element positioned and sized.
-		 *							This will override any similar options set by style.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUIListBoxField* create(const Vector<HString>& elements, bool multiselect, const HString& labelText, 
-			UINT32 labelWidth, const GUIOptions& options, const String& style = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new GUI list box field with a label.
-		 *
-		 * @param	elements		Elements to display in the list box.
-		 * @param	multiselect		Determines should the listbox allow multiple elements to be selected or just one.
-		 * @param	labelText		String to display in the editor field label.
-		 * @param	options			Options that allow you to control how is the element positioned and sized.
-		 *							This will override any similar options set by style.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUIListBoxField* create(const Vector<HString>& elements, bool multiselect, const HString& labelText, 
-			const GUIOptions& options, const String& style = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new GUI list box field without a label.
-		 *
-		 * @param	elements		Elements to display in the list box.
-		 * @param	multiselect		Determines should the listbox allow multiple elements to be selected or just one.
-		 * @param	options			Options that allow you to control how is the element positioned and sized.
-		 *							This will override any similar options set by style.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUIListBoxField* create(const Vector<HString>& elements, bool multiselect, const GUIOptions& options,
-			const String& style = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new GUI list box field with a label.
-		 *
-		 * @param	elements		Elements to display in the list box.
-		 * @param	multiselect		Determines should the listbox allow multiple elements to be selected or just one.
-		 * @param	labelContent	Content to display in the editor field label.
-		 * @param	labelWidth		Width of the label in pixels.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUIListBoxField* create(const Vector<HString>& elements, bool multiselect, const GUIContent& labelContent,
-			UINT32 labelWidth, const String& style = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new GUI list box field with a label.
-		 *
-		 * @param	elements		Elements to display in the list box.
-		 * @param	multiselect		Determines should the listbox allow multiple elements to be selected or just one.
-		 * @param	labelContent	Content to display in the editor field label.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUIListBoxField* create(const Vector<HString>& elements, bool multiselect, const GUIContent& labelContent,
-			const String& style = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new GUI list box field with a label.
-		 *
-		 * @param	elements		Elements to display in the list box.
-		 * @param	multiselect		Determines should the listbox allow multiple elements to be selected or just one.
-		 * @param	labelText		String to display in the editor field label.
-		 * @param	labelWidth		Width of the label in pixels.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUIListBoxField* create(const Vector<HString>& elements, bool multiselect, const HString& labelText, 
-			UINT32 labelWidth, const String& style = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new GUI list box field with a label.
-		 *
-		 * @param	elements		Elements to display in the list box.
-		 * @param	multiselect		Determines should the listbox allow multiple elements to be selected or just one.
-		 * @param	labelText		String to display in the editor field label.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUIListBoxField* create(const Vector<HString>& elements, bool multiselect, const HString& labelText,
-			const String& style = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new GUI list box field without a label.
-		 *
-		 * @param	elements		Elements to display in the list box.
-		 * @param	multiselect		Determines should the listbox allow multiple elements to be selected or just one.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUIListBoxField* create(const Vector<HString>& elements, bool multiselect, 
-			const String& style = StringUtil::BLANK);
-
-		GUIListBoxField(const PrivatelyConstruct& dummy, const Vector<HString>& elements, bool multiselect, 
-			const GUIContent& labelContent, UINT32 labelWidth, const String& style, const GUIDimensions& dimensions, bool withLabel);
-
-		/**
-		 * @brief	Checks whether the listbox supports multiple selected elements at once.
-		 */
-		bool isMultiselect() const;
-
-		/**
-		 * @brief	Changes the list box elements.
-		 */
-		void setElements(const Vector<HString>& elements);
-
-		/**
-		 * @brief	Selects an element with the specified index.
-		 */
-		void selectElement(UINT32 value);
-
-		/**
-		 * @brief	Deselect element the element with the specified index. Only relevant for multi-select list boxes.
-		 */
-		void deselectElement(UINT32 idx);
-
-		/**
-		 * @brief	Returns states of all element in the list box (enabled or disabled).
-		 */
-		const Vector<bool>& getElementStates() const;
-
-		/**
-		 * @brief	Sets states for all list box elements. Only valid for multi-select list boxes. Number of states
-		 * 			must match number of list box elements.
-		 */
-		void setElementStates(const Vector<bool>& states);
-
-		/**
-		 * @copydoc	GUIElement::setTint
-		 */
-		virtual void setTint(const Color& color) override;
-
-		Event<void(UINT32, bool)> onSelectionChanged; /**< Triggers when a new element is selected. Provides index to the element. */
-	protected:
-		static const UINT32 DEFAULT_LABEL_WIDTH;
-
-		virtual ~GUIListBoxField();
-
-		/**
-		 * @copydoc	GUIElement::_updateLayoutInternal
-		 */
-		void _updateLayoutInternal(const GUILayoutData& data) override;
-
-		/**
-		 * @copydoc	GUIElement::_getOptimalSize
-		 */
-		Vector2I _getOptimalSize() const override;
-
-		/**
-		 * @copydoc	GUIElement::styleUpdated
-		 */
-		void styleUpdated() override;
-
-		/**
-		 * @brief	Triggered when the selected list box element changes.
-		 */
-		void selectionChanged(UINT32 newIndex, bool enabled);
-
-		GUIListBox* mListBox;
-		GUILayout* mLayout;
-		GUILabel* mLabel;
-	};
-}

+ 0 - 268
BansheeEditor/Include/BsGUIMenuBar.h

@@ -1,268 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsEditorPrerequisites.h"
-#include "BsShortcutKey.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	A menu bar GUI element that contains a horizontal list of elements that can each be expanded into a 
-	 * 			hierarchical sub-menus, as well as a list of tool bar buttons.
-	 * 			
-	 *			Contents of the menu and tool bar are customizable.
-	 *
-	 *			The menu bar also displays the minimize, maximize and close buttons for the window.
-	 */
-	class BS_ED_EXPORT GUIMenuBar
-	{
-		/**
-		 * @brief	Contains data about the top level menu elements.
-		 */
-		struct GUIMenuBarData
-		{
-			WString name;
-			GUIMenu* menu;
-			GUIButton* button;
-			GUIFixedSpace* space;
-			INT32 priority;
-		};
-
-		/**
-		 * @brief	Contains data about a single tool bar element.
-		 */
-		struct GUIToolBarData
-		{
-			String name;
-			INT32 priority;
-			GUIButton* button;
-			GUITexture* separator;
-			GUIFixedSpace* space;
-		};
-
-	public:
-		/**
-		 * @brief	Returns the style type for the menu bar background.
-		 */
-		static const String& getBackgroundStyleType();
-
-		/**
-		 * @brief	Returns the style type for the menu bar line draw under the menu items.
-		 */
-		static const String& getLineStyleType();
-
-		/**
-		 * @brief	Returns the style type for the menu bar logo.
-		 */
-		static const String& getLogoStyleType();
-
-		/**
-		 * @brief	Returns the style type for the menu bar menu item buttons.
-		 */
-		static const String& getMenuItemButtonStyleType();
-
-		/**
-		 * @brief	Returns the style type for tool bar buttons.
-		 */
-		static const String& getToolBarButtonStyleType();
-
-		/**
-		 * @brief	Returns the style type for the tool bar button separator.
-		 */
-		static const String& getToolBarSeparatorStyleType();
-
-		/**
-		 * @brief	Constructs a new menu bar.
-		 *
-		 * @param	parent			Parent GUI widget the menu bar will be docked in.
-		 * @param	parentWindow	Window to trigger the min/max/close events on.
-		 */
-		GUIMenuBar(GUIWidget* parent, RenderWindow* parentWindow);
-		virtual ~GUIMenuBar();
-
-		/**
-		 * @brief	Sets the area of the menu bar, in pixels relative
-		 *			to the parent GUI widget.
-		 */
-		void setArea(INT32 x, INT32 y, UINT32 width, UINT32 height);
-
-		/**
-		 * @brief	Adds a new menu item to the menu bar. 
-		 *
-		 * @param	path		Path to the menu item. Each element of the path must be separated using "/". 
-		 *						First element of the path will create the top level menu, and any further element
-		 *						will create a new sub-menu. Last element will be the interactable element.
-		 * @param	callback	Callback to trigger when user click on the interactable element (last element in the provided path).
-		 *						Can be null.
-		 * @param	priority	Determines where is the element positioned compared to other elements in the same sub-menu.
-		 *						Higher priority elements get placed higher up in the sub-menu. This only applies to the last
-		 *						element. If you need to customize its parent element priority call this method with
-		 *						with their specific paths.
-		 * @param	shortcut	Keyboard shortcut key to display next to the interactable element, and register with the
-		 *						global shortcut manager.
-		 */
-		GUIMenuItem* addMenuItem(const WString& path, std::function<void()> callback, INT32 priority = 0, const ShortcutKey& shortcut = ShortcutKey::NONE);
-
-		/**
-		 * @brief	Adds a menu item separator element at the specified path. The separator is added as a child of the path.
-		 *
-		 * @param	path		Parent path of the sub-menu to add the separator.
-		 * @param	priority	Determines where is the separator positioned compared to other elements in the same sub-menu.
-		 *						Higher priority elements get placed higher up in the sub-menu.
-		 */
-		GUIMenuItem* addMenuItemSeparator(const WString& path, INT32 priority = 0);
-
-		/**
-		 * @brief	Returns an existing menu item at the specified path, or null if one cannot be found.
-		 */
-		GUIMenuItem* getMenuItem(const WString& path);
-
-		/**
-		 * @brief	Removes a menu item from the specified path. If this path points to a sub-menu entire sub-menu will be removed.
-		 */
-		void removeMenuItem(const WString& path);
-
-		/**
-		 * @brief	Removes the specified menu item.
-		 */
-		void removeMenuItem(GUIMenuItem* item);
-
-		/**
-		 * @brief	Adds a new button to the tool bar.
-		 *
-		 * @param	name		Unique name of the button that can be used for identifiying it.
-		 * @param	content 	Content to display on the button.
-		 * @param	callback	Callback to trigger when the button is pressed.
-		 * @param	priority	Determines where is the button positioned compared to other elements on the tool bar.
-		 * 						Higher priority elements get placed before lower priority ones.
-		 */
-		void addToolBarButton(const String& name, const GUIContent& content, std::function<void()> callback, INT32 priority = 0);
-
-		/**
-		 * @brief	Toggles an existing toolbar button into an on or off state which changes the visuals of the button.
-		 *
-		 * @param	name	Name of the existing button to toggle.
-		 * @param	on		True to toggle on, false to toggle off (default).
-		 */
-		void toggleToolbarButton(const String& name, bool on);
-
-		/**
-		 * @brief	Adds a new separator element to the tool bar.
-		 *
-		 * @param	name		Unique name of the separator that can be used for identifiying it.
-		 * @param	priority	Determines where is the separator positioned compared to other elements on the tool bar.
-		 * 						Higher priority elements get placed before lower priority ones.
-		 */
-		void addToolBarSeparator(const String& name, INT32 priority = 0);
-
-		/**
-		 * @brief	Removes an element from the tool bar.
-		 *
-		 * @param	name	Unique name of the element to remove.
-		 */
-		void removeToolBarButton(const String& name);
-	private:
-		/**
-		 * @brief	Finds a top level sub-menu with the specified name.
-		 */
-		const GUIMenuBarData* getSubMenu(const WString& name) const;
-
-		/**
-		 * @brief	Adds a new top level sub-menu button.
-		 */
-		GUIMenuBarData* addNewButton(const WString& name, INT32 priority);
-
-		/**
-		 * @brief	Attempts to remove the first element from the specified path. First element
-		 * 			returned in specified in "pathRoot", and original "path" parameter is modified so
-		 * 			it no longer includes the first element.
-		 *
-		 * @return	False if first element doesn't exist, true otherwise.
-		 */
-		bool stripPath(WString& path, WString& pathRoot) const;
-
-		/**
-		 * @brief	Registers a shortcut with the global shortcut manager. Pressing the shortcut will trigger
-		 *			the provided callback.
-		 */
-		void registerShortcut(const WString& path, const ShortcutKey& shortcut, std::function<void()> callback);
-
-		/**
-		 * @brief	Unregisters a shortcut assigned to the provided path from the global shortcut manager.
-		 */
-		void unregisterShortcut(const WString& path);
-
-		/**
-		 * @brief	Opens a top level sub-menu with the provided name.
-		 */
-		void openSubMenu(const WString& name);
-
-		/**
-		 * @brief	Closes any currently active sub-menu.
-		 */
-		void closeSubMenu();
-
-		/**
-		 * @brief	Triggered when a sub-menu is open and a user hovers over another
-		 *			top level sub-menu button
-		 *
-		 * @param	name	Name of the sub-menu the user is hovering over.
-		 */
-		void onSubMenuHover(const WString& name);
-
-		/**
-		 * @brief	Triggered when a sub-menu is closed.
-		 */
-		void onSubMenuClosed();
-
-		/**
-		 * @brief	Triggered when the minimize button is clicked.
-		 *			Minimizes the attached window.
-		 */
-		void onMinimizeClicked();
-
-		/**
-		 * @brief	Triggered when the maximize button is clicked.
-		 *			Maximizes the attached window.
-		 */
-		void onMaximizeClicked();
-
-		/**
-		 * @brief	Triggered when the close button is clicked.
-		 *			Closes the attached window.
-		 */
-		void onCloseClicked();
-
-		/**
-		 * @brief	Refreshes the OS client area that allow the window to be dragged
-		 *			by dragging the empty areas on the menu bar. Should be called when top
-		 *			level button configuration changes or menu bar area changes.
-		 */
-		void refreshNonClientAreas();
-
-		static const UINT32 NUM_ELEMENTS_AFTER_CONTENT;
-		static const UINT32 ELEMENT_SPACING;
-
-		RenderWindow* mParentWindow;
-		GUIWidget* mParentWidget;
-		GUIPanel* mMainPanel;
-		GUIPanel* mBgPanel;
-		GUILayout* mMenuItemLayout;
-		GUILayout* mToolBarLayout;
-		GUITexture* mBgTexture;
-		GUITexture* mLogoTexture;
-		GUITexture* mSplitterLine;
-
-		GUIButton* mMinBtn;
-		GUIButton* mMaxBtn;
-		GUIButton* mCloseBtn;
-
-		Vector<GUIMenuBarData> mChildMenus;
-		UnorderedMap<WString, ShortcutKey> mEntryShortcuts;
-		Vector<GUIToolBarData> mToolbarElements;
-
-		GUIButton* mSubMenuButton;
-		bool mSubMenuOpen;
-	};
-}

+ 0 - 277
BansheeEditor/Include/BsGUIResourceTreeView.h

@@ -1,277 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsEditorPrerequisites.h"
-#include "BsServiceLocator.h"
-#include "BsGUITreeView.h"
-#include "BsProjectLibrary.h"
-#include "BsEvent.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	Contains paths to resources currently involved
-	 *			in a drag and drop operation.
-	 */
-	struct DraggedResources
-	{
-		Vector<Path> resourcePaths;
-	};
-
-	/**
-	 * @brief	GUI element that displays all resources in the active project in a tree view.
-	 */
-	class GUIResourceTreeView : public GUITreeView
-	{
-		/**
-		 * @brief	Tree element with resource-specific data.
-		 */
-		struct ResourceTreeElement : public GUITreeView::TreeElement
-		{
-			Path mFullPath;
-			WString mElementName;
-		};
-
-		/**
-		 * @brief	Contains paths to resources currently involved
-		 *			in a drag and drop operation initiated by this tree view.
-		 */
-		struct InternalDraggedResources
-		{
-			InternalDraggedResources(UINT32 numObjects);
-			~InternalDraggedResources();
-
-			UINT32 numObjects;
-			Path* resourcePaths;
-		};
-
-	public:
-		/**
-		 * Returns type name of the GUI element used for finding GUI element styles. 
-		 */
-		static const String& getGUITypeName();
-
-		/**
-		 * @brief	Creates a new resource tree view element.
-		 *
-		 * @param	backgroundStyle				Name of the style for the tree view background.
-		 * @param	elementBtnStyle				Name of the style for a normal tree view element.
-		 * @param	foldoutBtnStyle				Name of the style for a foldout element (e.g. for a folder).
-		 * @param	highlightBackgroundStyle	Name of the style for the background of highlighted elements.
-		 * @param	selectionBackgroundStyle	Name of the style for the background of selected elements.
-		 * @param	editBoxStyle				Name of the style for element that is being renamed.
-		 * @param	dragHighlightStyle			Name of the style for the element being dragged over.
-		 * @param	dragSepHighlightStyle		Name of the style for the separator displayed while dragging
-		 *										an element between two other elements.
-		 */	
-		static GUIResourceTreeView* create(
-			const String& backgroundStyle = StringUtil::BLANK, const String& elementBtnStyle = StringUtil::BLANK, 
-			const String& foldoutBtnStyle = StringUtil::BLANK, const String& highlightBackgroundStyle = StringUtil::BLANK,
-			const String& selectionBackgroundStyle = StringUtil::BLANK, const String& editBoxStyle = StringUtil::BLANK, 
-			const String& dragHighlightStyle = StringUtil::BLANK, const String& dragSepHighlightStyle = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new resource tree view element.
-		 *
-		 * @param	options						Options that allow you to control how is the element positioned and sized.
-		 *										This will override any similar options set by style.
-		 * @param	backgroundStyle				Name of the style for the tree view background.
-		 * @param	elementBtnStyle				Name of the style for a normal tree view element.
-		 * @param	foldoutBtnStyle				Name of the style for a foldout element (e.g. for a folder).
-		 * @param	highlightBackgroundStyle	Name of the style for the background of highlighted elements.
-		 * @param	selectionBackgroundStyle	Name of the style for the background of selected elements.
-		 * @param	editBoxStyle				Name of the style for element that is being renamed.
-		 * @param	dragHighlightStyle			Name of the style for the element being dragged over.
-		 * @param	dragSepHighlightStyle		Name of the style for the separator displayed while dragging
-		 *										an element between two other elements.
-		 */	
-		static GUIResourceTreeView* create(const GUIOptions& options, 
-			const String& backgroundStyle = StringUtil::BLANK, const String& elementBtnStyle = StringUtil::BLANK, 
-			const String& foldoutBtnStyle = StringUtil::BLANK, const String& highlightBackgroundStyle = StringUtil::BLANK, 
-			const String& selectionBackgroundStyle = StringUtil::BLANK, const String& editBoxStyle = StringUtil::BLANK, 
-			const String& dragHighlightStyle = StringUtil::BLANK, const String& dragSepHighlightStyle = StringUtil::BLANK);
-
-		/**
-		 * @brief	Returns a list of paths of currently selected resources (if any).
-		 *			Returned paths are relative to the project folder.
-		 */	
-		Vector<Path> getSelection() const;
-
-		/**
-		 * @brief	Changes the active selection to the provided resources.
-		 *			Paths can be absolute or relative.
-		 */	
-		void setSelection(const Vector<Path>& paths);
-
-		Event<void()> onSelectionChanged; /**< Triggered whenever the selection changes. Call ::getSelection() to retrieve new selection: */
-		static const MessageId SELECTION_CHANGED_MSG;
-
-	protected:
-		virtual ~GUIResourceTreeView();
-
-	protected:
-		InternalDraggedResources* mDraggedResources;
-		ResourceTreeElement mRootElement;
-		RenderWindow* mCurrentWindow;
-		OSDropTarget* mDropTarget;
-		bool mDropTargetDragActive;
-
-		HEvent mDropTargetEnterConn;
-		HEvent mDropTargetMoveConn;
-		HEvent mDropTargetLeaveConn;
-		HEvent mDropTargetDroppedConn;
-
-		GUIResourceTreeView(const String& backgroundStyle, const String& elementBtnStyle, const String& foldoutBtnStyle, 
-			const String& highlightBackgroundStyle, const String& selectionBackgroundStyle, const String& editBoxStyle,
-			const String& dragHighlightStyle, const String& dragSepHighlightStyle, const GUIDimensions& dimensions);
-
-		/**
-		 * @copydoc	GUITreeView::_updateLayoutInternal
-		 */	
-		virtual void _updateLayoutInternal(const GUILayoutData& data) override;
-
-		/**
-		 * @copydoc	GUITreeView::getRootElement
-		 */	
-		virtual TreeElement& getRootElement() override { return mRootElement; }
-
-		/**
-		 * @copydoc	GUITreeView::getRootElementConst
-		 */	
-		virtual const TreeElement& getRootElementConst() const override { return mRootElement; }
-
-		/**
-		 * @copydoc	GUITreeView::updateTreeElementHierarchy
-		 */	
-		virtual void updateTreeElementHierarchy() override;
-
-		/**
-		 * @copydoc	GUITreeView::renameTreeElement
-		 */	
-		virtual void renameTreeElement(TreeElement* element, const WString& name) override;
-
-		/**
-		 * @copydoc	GUITreeView::deleteTreeElement
-		 */	
-		virtual void deleteTreeElement(TreeElement* element) override;
-
-		/**
-		 * @copydoc	GUITreeView::acceptDragAndDrop
-		 */	
-		virtual bool acceptDragAndDrop() const override;
-
-		/**
-		 * @copydoc	GUITreeView::dragAndDropStart
-		 */	
-		virtual void dragAndDropStart() override;
-
-		/**
-		 * @copydoc	GUITreeView::dragAndDropEnded
-		 */	
-		virtual void dragAndDropEnded(TreeElement* overTreeElement) override;
-
-		/**
-		 * @copydoc	GUITreeView::_acceptDragAndDrop
-		 */	
-		virtual bool _acceptDragAndDrop(const Vector2I position, UINT32 typeId) const override;
-
-		/**
-		 * @copydoc	GUITreeView::selectionChanged
-		 */	
-		virtual void selectionChanged() override;
-
-		/**
-		 * @copydoc	GUITreeView::_changeParentWidget
-		 */	
-		void _changeParentWidget(GUIWidget* widget) override;
-
-		/**
-		 * @brief	Triggered when a drag and drop operation that was started by the tree view
-		 *			ends, regardless if it was processed or not.
-		 */
-		void dragAndDropFinalize();
-
-		/**
-		 * @brief	Updates the contents of the provided tree entry with a project library entry.
-		 */
-		void updateFromProjectLibraryEntry(ResourceTreeElement* treeElement, const ProjectLibrary::LibraryEntry* libraryEntry);
-
-		/**
-		 * @brief	Creates a new tree view entry.
-		 *
-		 * @param	parent		Parent tree view entry to create the new one for.
-		 * @param	fullPath	Absolute path to the new tree entry.
-		 */
-		ResourceTreeElement* addTreeElement(ResourceTreeElement* parent, const Path& fullPath);
-
-		/**
-		 * @brief	Deletes the provided tree element.
-		 */
-		void deleteTreeElement(ResourceTreeElement* element);
-
-		/**
-		 * @brief	Sorts the children of the provided tree element by name.
-		 */
-		void sortTreeElement(ResourceTreeElement* element);
-
-		/**
-		 * @brief	Attempts to find a tree element with the specified path.
-		 *			Returns null if one cannot be found.
-		 */
-		ResourceTreeElement* findTreeElement(const Path& fullPath);
-
-		/**
-		 * @brief	Called whenever a new entry is added to the project library.
-		 */
-		void entryAdded(const Path& path); 
-
-		/**
-		 * @brief	Called whenever an entry is removed from the project library.
-		 */
-		void entryRemoved(const Path& path);
-
-		/**
-		 * @brief	Sets an OS drag and drop target that allows this element to receive OS-specific
-		 *			drag and drop events originating from other processes.
-		 */
-		void setDropTarget(RenderWindow* parentWindow, INT32 x, INT32 y, UINT32 width, UINT32 height);
-
-		/**
-		 * @brief	Removes the currently set OS drop target.
-		 */
-		void clearDropTarget();
-
-		/**
-		 * @brief	Triggered whenever the user drags the pointer over the set drop target,
-		 *			while OS drag and drop operation is active.
-		 *
-		 * @param	x	X coordinate of the pointer, relative to drop area.
-		 * @param	y	Y coordinate of the pointer, relative to drop area.
-		 */
-		void dropTargetDragMove(INT32 x, INT32 y);
-
-		/**
-		 * @brief	Triggered whenever pointer leaves the drop target,
-		 *			while OS drag and drop operation is active.
-		 */
-		void dropTargetDragLeave();
-
-		/**
-		 * @brief	Triggered whenever the user releases the pointer over the set drop target,
-		 *			while OS drag and drop operation is active.
-		 *
-		 * @param	x	X coordinate of the pointer, relative to drop area.
-		 * @param	y	Y coordinate of the pointer, relative to drop area.
-		 */
-		void dropTargetDragDropped(INT32 x, INT32 y);
-
-		/**
-		 * @brief	Generates a unique path in the case that something already
-		 *			exists on the provided one.
-		 */
-		Path findUniquePath(const Path& path);
-	};
-
-	typedef ServiceLocator<GUIResourceTreeView> ResourceTreeViewLocator;
-}

+ 0 - 97
BansheeEditor/Include/BsGUISliderField.h

@@ -1,97 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsEditorPrerequisites.h"
-#include "BsGUIFieldBase.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	A composite GUI object representing an editor field. Editor fields are a combination
-	 *			of a label and an input field. Label is optional. This specific implementation
-	 *			displays a horizontal slider and a floating point input box.
-	 */
-	class BS_ED_EXPORT GUISliderField : public TGUIField<GUISliderField>
-	{
-	public:
-		/**
-		 * Returns type name of the GUI element used for finding GUI element styles. 
-		 */
-		static const String& getGUITypeName();
-
-		/**
-		 * Style type name for the internal input box.
-		 */
-		static const String& getInputStyleType();
-
-		/**
-		 * Style type name for the internal slider.
-		 */
-		static const String& getSliderStyleType();
-
-		GUISliderField(const PrivatelyConstruct& dummy, const GUIContent& labelContent, UINT32 labelWidth,
-			const String& style, const GUIDimensions& dimensions, bool withLabel);
-
-		/**
-		 * @brief	Returns the value of the input field/slider.
-		 */
-		float getValue() const;
-
-		/**
-		 * @brief	Sets a new value in the input field/slider.
-		 */
-		void setValue(float value);
-
-		/**
-		 * @brief	Sets a minimum and maximum allow values in the input field.
-		 *			Set to large negative/positive values if you don't require clamping.
-		 */
-		void setRange(float min, float max);
-
-		/**
-		 * @brief	Sets a step that defines the minimal increment the value can be increased/decreased by. Set to zero
-		 * 			to have no step.
-		 */
-		void setStep(float step);
-
-		/**
-		 * @copydoc	GUIElement::setTint
-		 */
-		void setTint(const Color& color) override;
-
-		/**
-		 * @brief	Sets a new value in the input field, and also allows you to choose should the field trigger an
-		 *			onValueChanged event.
-		 */
-		void _setValue(float value, bool triggerEvent);
-
-		Event<void(float)> onValueChanged; /**< Triggers when the field value changes. */
-	protected:
-		virtual ~GUISliderField();
-
-		/**
-		 * @copydoc	GUIElementContainer::styleUpdated
-		 */
-		void styleUpdated() override;
-
-		/**
-		 * @brief	Triggered when the input box value changes.
-		 */
-		void valueChanged(const WString& newValue);
-
-		/**
-		 * @brief	Triggered when the slider is moved.
-		 */
-		void sliderChanged(float newValue);
-
-		/**
-		 * @brief	Callback that checks can the provided string be
-		 *			converted to a floating point value.
-		 */
-		static bool floatFilter(const WString& str);
-
-		GUIInputBox* mInputBox;
-		GUISliderHorz* mSlider;
-	};
-}

+ 0 - 128
BansheeEditor/Include/BsGUIStatusBar.h

@@ -1,128 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsEditorPrerequisites.h"
-#include "BsGUIElementContainer.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief  Editor window status bar that displays log messages and various other information.
-	 */
-	class BS_ED_EXPORT GUIStatusBar : public GUIElementContainer
-	{
-		struct PrivatelyConstruct {};
-
-	public:
-		/**
-		 * Returns type name of the GUI element used for finding GUI element styles. 
-		 */
-		static const String& getGUITypeName();
-
-		/**
-		 * Returns type name of the internal background GUI element. 
-		 */
-		static const String& getGUIBackgroundTypeName();
-
-		/**
-		 * Returns type name of the internal message button GUI element. 
-		 */
-		static const String& getGUIMessageTypeName();
-
-		/**
-		 * @brief	Creates a new GUI status bar.
-		 *
-		 * @param	options			Options that allow you to control how is the element positioned and sized.
-		 *							This will override any similar options set by style.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUIStatusBar* create(const GUIOptions& options, const String& style = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new GUI status bar.
-		 *
-		 * @param	options			Options that allow you to control how is the element positioned and sized.
-		 *							This will override any similar options set by style.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUIStatusBar* create(const String& style = StringUtil::BLANK);
-
-		GUIStatusBar(const PrivatelyConstruct& dummy, const String& style, const GUIDimensions& dimensions);
-
-		/**
-		 * @brief	Updates the active project displayed on the status bar.
-		 * 	
-		 * @param	name		Name of the project.
-		 * @param	modified	Should the project be displayed as modified (i.e. needs saving).
-		 */
-		void setProject(const WString& name, bool modified);
-
-		/**
-		 * @brief	Updates the active scene displayed on the status bar.
-		 * 	
-		 * @param	name		Name of the scene.
-		 * @param	modified	Should the scene be displayed as modified (i.e. needs saving).
-		 */
-		void setScene(const WString& name, bool modified);
-
-		/**
-		 * @brief	Activates or deactivates the "compilation in progress" visuals on the status bar.
-		 */
-		void setIsCompiling(bool compiling);
-
-		/**
-		 * @copydoc	GUIElement::setTint
-		 */
-		virtual void setTint(const Color& color) override;
-
-		/**
-		 * @copydoc	GUIElement::_updateLayoutInternal
-		 */
-		void _updateLayoutInternal(const GUILayoutData& data) override;
-
-		/**
-		 * @copydoc	GUIElement::_getOptimalSize
-		 */
-		Vector2I _getOptimalSize() const override;
-
-		Event<void()> onMessageClicked; /**< Triggered when the user clicks on the console message. */
-	private:
-		virtual ~GUIStatusBar();
-
-		/**
-		 * @copydoc	GUIElement::styleUpdated
-		 */
-		void styleUpdated() override;
-
-		/**
-		 * @brief	Triggered when the debug Log was modified.
-		 */
-		void logModified();
-
-		/**
-		 * @brief	Triggered when the user clicks on the message display.
-		 */
-		void messageBtnClicked();
-
-	private:
-		static const Color COLOR_INFO;
-		static const Color COLOR_WARNING;
-		static const Color COLOR_ERROR;
-
-		GUIPanel* mPanel;
-		GUIPanel* mBgPanel;
-		GUIButton* mMessage;
-		GUILabel* mScene;
-		GUILabel* mProject;
-		GUILabel* mCompiling;
-		GUITexture* mBackground;
-
-		HEvent mLogEntryAddedConn;
-		HEvent mMessageBtnPressedConn;
-	};
-}

+ 0 - 131
BansheeEditor/Include/BsGUITabButton.h

@@ -1,131 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsEditorPrerequisites.h"
-#include "BsGUIToggle.h"
-#include "BsGUIToggleGroup.h"
-#include "BsImageSprite.h"
-#include "BsEvent.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	Specialization of a GUIToggle element used for displaying
-	 *			tabs in a GUITabbedTitleBar. Aside from being toggleable these
-	 *			buttons also track drag and drop operations.
-	 */
-	class GUITabButton : public GUIToggle
-	{
-	public:
-		/**
-		 * Returns type name of the GUI element used for finding GUI element styles. 
-		 */
-		static const String& getGUITypeName();
-
-		/**
-		 * @brief	Creates a new GUI tab button element.
-		 *
-		 * @param	toggleGroup		A toggle group that forms a link between related tab buttons.
-		 * @param	index			Unique index that can be used for identifying a tab.
-		 * @param	text			Label to display in the button.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUITabButton* create(const GUIToggleGroupPtr& toggleGroup, UINT32 index, const HString& text, 
-			const String& styleName = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new GUI tab button element.
-		 *
-		 * @param	toggleGroup		A toggle group that forms a link between related tab buttons.
-		 * @param	index			Unique index that can be used for identifying a tab.
-		 * @param	text			Label to display in the button.
-		 * @param	options			Options that allow you to control how is the element positioned and sized.
-		 *							This will override any similar options set by style.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUITabButton* create(const GUIToggleGroupPtr& toggleGroup, UINT32 index, const HString& text, 
-			const GUIOptions& options, const String& styleName = StringUtil::BLANK);
-	
-		/**
-		 * @brief	Creates a new GUI tab button element.
-		 *
-		 * @param	toggleGroup		A toggle group that forms a link between related tab buttons.
-		 * @param	index			Unique index that can be used for identifying a tab.
-		 * @param	content			Content to display in the button.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUITabButton* create(const GUIToggleGroupPtr& toggleGroup, UINT32 index, const GUIContent& content, 
-			const String& styleName = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new GUI tab button element.
-		 *
-		 * @param	toggleGroup		A toggle group that forms a link between related tab buttons.
-		 * @param	index			Unique index that can be used for identifying a tab.
-		 * @param	content			Content to display in the button.
-		 * @param	options			Options that allow you to control how is the element positioned and sized.
-		 *							This will override any similar options set by style.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUITabButton* create(const GUIToggleGroupPtr& toggleGroup, UINT32 index, const GUIContent& content, 
-			const GUIOptions& options, const String& styleName = StringUtil::BLANK);
-
-		/**
-		 * @brief	Returns the unique index for this tab button.
-		 */
-		UINT32 getIndex() const { return mIndex; }
-
-		/**
-		 * @copydoc GUIToggle::toggleOn
-		 */
-		void toggleOn() override;
-
-		/**
-		 * @copydoc GUIToggle::toggleOff
-		 */
-		void toggleOff() override;
-
-		/**
-		 * @brief	Changes the button state to dragged or not dragged, resulting primarily
-		 *			in a visual change.
-		 *
-		 * @note	Internal method.
-		 */
-		void _setDraggedState(bool active);
-
-		/**
-		 * @brief	Triggered when the user starts dragging the tab button. Reported parameters
-		 *			are the unique index of the tab and pointer position relative to parent GUIWidget.
-		 */
-		Event<void(UINT32, const Vector2I&)> onDragged; 
-
-		/**
-		 * @brief	Triggered when the user ends dragging the tab button. Reported parameters
-		 *			are the unique index of the tab and pointer position relative to parent GUIWidget.
-		 */
-		Event<void(UINT32, const Vector2I&)> onDragEnd;
-	protected:
-		GUITabButton(const String& styleName, const GUIToggleGroupPtr& toggleGroup, UINT32 index, const GUIContent& content, const GUIDimensions& dimensions);
-
-		/**
-		 * @copydoc GUIElement::_mouseEvent
-		 */
-		virtual bool _mouseEvent(const GUIMouseEvent& ev) override;
-
-		UINT32 mIndex;
-		Vector2I mDragStartPosition;
-		bool mDraggedState;
-		GUIElementState mInactiveState;
-
-		static const UINT32 DRAG_MIN_DISTANCE;
-	};
-}

+ 0 - 239
BansheeEditor/Include/BsGUITabbedTitleBar.h

@@ -1,239 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsEditorPrerequisites.h"
-#include "BsGUIElementContainer.h"
-#include "BsRect2I.h"
-#include "BsEvent.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	Tabbed title bar to be used in editor windows. Displays tabs that can
-	 *			be activated, reordered by dragging, or dragged off and on to/on other title bars.
-	 */
-	class GUITabbedTitleBar : public GUIElementContainer
-	{
-	public:
-		/**
-		 * Returns type name of the GUI element used for finding GUI element styles. 
-		 */
-		static const String& getGUITypeName();
-
-		/**
-		 * @brief	Creates a new GUI foldout element.
-		 *
-		 * @param	backgroundStyle		GUI style to display the background in. Keep as blank for default.
-		 * @param	backgroundStyle		GUI style to display the tab buttons in. Keep as blank for default.
-		 * @param	maxBtnStyle			GUI style to display the maximize button in. Keep as blank for default.
-		 * @param	closeBtnStyle		GUI style to display the close button in. Keep as blank for default.
-		 */
-		static GUITabbedTitleBar* create(const String& backgroundStyle = StringUtil::BLANK, const String& tabBtnStyle = StringUtil::BLANK, 
-			const String& maxBtnStyle = StringUtil::BLANK, const String& closeBtnStyle = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new GUI foldout element.
-		 *
-		 *
-		 * @param	options				Options that allow you to control how is the element positioned and sized.
-		 *								This will override any similar options set by style.
-		 * @param	backgroundStyle		GUI style to display the background in. Keep as blank for default.
-		 * @param	backgroundStyle		GUI style to display the tab buttons in. Keep as blank for default.
-		 * @param	maxBtnStyle			GUI style to display the maximize button in. Keep as blank for default.
-		 * @param	closeBtnStyle		GUI style to display the close button in. Keep as blank for default.
-		 */
-		static GUITabbedTitleBar* create(const GUIOptions& options,
-			const String& backgroundStyle = StringUtil::BLANK, const String& tabBtnStyle = StringUtil::BLANK, 
-			const String& maxBtnStyle = StringUtil::BLANK, const String& closeBtnStyle = StringUtil::BLANK);
-
-		/**
-		 * @brief	Adds a new tab to the end of the tab list.
-		 *
-		 * @param	name	Title to display on the tab button.
-		 *
-		 * @returns	A unique index (not sequential) that you may use for later identifying the tab.
-		 */
-		UINT32 addTab(const HString& name);
-
-		/**
-		 * @brief	Inserts a new tab button at the specified position.
-		 *
-		 * @param	position	Sequential index to insert the tab button in. This will be clamped
-		 *						to a valid range.
-		 * @param	name		Title to display on the tab button.
-		 *
-		 * @returns	A unique index (not sequential) that you may use for later identifying the tab.
-		 */
-		UINT32 insertTab(UINT32 position, const HString& name);
-
-		/**
-		 * @brief	Removes the tab button with the specified unique index.
-		 */
-		void removeTab(UINT32 uniqueIdx);
-
-		/**
-		 * @brief	Activates the tab button with the specified unique index.
-		 */
-		void setActive(UINT32 uniqueIdx);
-
-		/**
-		 * @brief	Finds the unique tab index from the provided sequential tab position.
-		 */
-		UINT32 getTabIdx(UINT32 position) const;
-
-		/**
-		 * @brief	Returns the total number of display tab buttons.
-		 */
-		UINT32 getNumTabs() const { return (UINT32)mTabButtons.size(); }
-
-		/**
-		 * @brief	Changes the displayed title for a tab with the specified index.
-		 */
-		void updateTabName(UINT32 uniqueIdx, const HString& name);
-
-		/**
-		 * @brief	Calculates areas between the tab buttons and other GUI elements on the title bar.
-		 *			These areas are normally used for setting up valid areas the user can click on and drag
-		 *			the window the title bar belongs to.
-		 */
-		Vector<Rect2I> calcDraggableAreas(INT32 x, INT32 y, UINT32 width, UINT32 height) const;
-
-		/**
-		 * @brief	Triggered when the active tab changes. Provided parameter is the
-		 *			unique index of the activated tab.
-		 */
-		Event<void(UINT32)> onTabActivated; 
-
-		/**
-		 * @brief	Triggered when a tab is closed. Provided parameter is the
-		 *			unique index of the closed tab.
-		 */
-		Event<void(UINT32)> onTabClosed;
-
-		/**
-		 * @brief	Triggered when a tab maximize button is clicked. Provided parameter is the
-		 *			unique index of the maximized/restored tab.
-		 */
-		Event<void(UINT32)> onTabMaximized;
-
-		/**
-		 * @brief	Triggered when a tab gets dragged off the title bar. Provided 
-		 *			parameter is the unique index of the activated tab.
-		 */
-		Event<void(UINT32)> onTabDraggedOff;
-
-		/**
-		 * @brief	Triggered when a new tab gets dragged on the title bar. Provided 
-		 *			parameter is the sequential index of the activated tab.
-		 */
-		Event<void(UINT32)> onTabDraggedOn;
-
-	protected:
-		GUITabbedTitleBar(const String& backgroundStyle, const String& tabBtnStyle, 
-			const String& minBtnStyle, const String& closeBtnStyle, const GUIDimensions& dimensions);
-
-		virtual ~GUITabbedTitleBar();
-
-		/**
-		 * @copydoc GUIElementContainer::updateClippedBounds
-		 */
-		void updateClippedBounds() override;
-
-		/**
-		 * @copydoc GUIElementContainer::_getOptimalSize
-		 */
-		Vector2I _getOptimalSize() const override;
-
-		/**
-		 * @copydoc GUIElementContainer::_updateLayoutInternal
-		 */
-		void _updateLayoutInternal(const GUILayoutData& data) override;
-
-		/**
-		 * @copydoc GUIElementContainer::_mouseEvent
-		 */
-		virtual bool _mouseEvent(const GUIMouseEvent& ev) override;
-
-		/**
-		 * @brief	Starts the internal drag and drop operation.
-		 *
-		 * @param	seqIdx			Sequential index of the dragged tab.
-		 * @param	startDragPos	Pointer position of where the drag originated, relative
-		 *							to parent widget.
-		 */
-		void startDrag(UINT32 seqIdx, const Vector2I& startDragPos);
-
-		/**
-		 * @brief	Ends the internal drag and drop operation started with ::startDrag.
-		 */
-		void endDrag();
-
-		/**
-		 * @brief	Triggered when a tab button is toggled on or off.
-		 *
-		 * @param	tabIdx		Unique index of the tab.
-		 * @param	toggledOn	Whether the tab was activated or deactivated.
-		 */
-		void tabToggled(UINT32 tabIdx, bool toggledOn);
-
-		/**
-		 * @brief	Triggered when the close button is pressed.
-		 */
-		void tabClosed();
-
-		/**
-		 * @brief	Triggered when the maximize button is pressed.
-		 */
-		void tabMaximize();
-
-		/**
-		 * @brief	Triggered every frame while a tab button is being dragged.
-		 *
-		 * @param	tabIdx	Unique index of the dragged tab.
-		 * @param	dragPos	Position of the pointer, relative to parent widget.
-		 */
-		void tabDragged(UINT32 tabIdx, const Vector2I& dragPos);
-
-		/**
-		 * @brief	Triggered when a drag operation on a tab button ends.
-		 *
-		 * @param	tabIdx	Unique index of the dragged tab.
-		 * @param	dragPos	Position of the pointer, relative to parent widget.
-		 */
-		void tabDragEnd(UINT32 tabIdx, const Vector2I& dragPos);
-
-		/**
-		 * @brief	Converts unique tab index to a sequential index corresponding to the
-		 *			tab's position in the title bar.
-		 */
-		INT32 uniqueIdxToSeqIdx(UINT32 uniqueIdx) const;
-
-		static const INT32 TAB_SPACING;
-		static const INT32 FIRST_TAB_OFFSET;
-		static const INT32 OPTION_BTN_SPACING;
-		static const INT32 OPTION_BTN_RIGHT_OFFSET;
-
-		Vector<GUITabButton*> mTabButtons;
-
-		UINT32 mUniqueTabIdx;
-		UINT32 mActiveTabIdx;
-		GUITexture* mBackgroundImage;
-		GUIButton* mMaxBtn;
-		GUIButton* mCloseBtn;
-		GUIToggleGroupPtr mTabToggleGroup;
-
-		EditorWidgetBase* mTempDraggedWidget;
-		UINT32 mTempDraggedTabIdx;
-
-		bool mDragInProgress;
-		GUITabButton* mDraggedBtn;
-		INT32 mDragBtnOffset;
-		INT32 mInitialDragOffset;
-
-		String mBackgroundStyle;
-		String mCloseBtnStyle;
-		String mMaximizeBtnStyle;
-		String mTabBtnStyle;
-	};
-}

+ 0 - 237
BansheeEditor/Include/BsGUITextField.h

@@ -1,237 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsEditorPrerequisites.h"
-#include "BsGUIElementContainer.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	A composite GUI object representing an editor field. Editor fields are a combination
-	 *			of a label and an input field. Label is optional. This specific implementation
-	 *			displays a text input field.
-	 */
-	class BS_ED_EXPORT GUITextField : public GUIElementContainer
-	{
-		struct PrivatelyConstruct {};
-
-	public:
-		/**
-		 * Returns type name of the GUI element used for finding GUI element styles. 
-		 */
-		static const String& getGUITypeName();
-
-		/**
-		 * Returns style type name of the internal GUILabel element.
-		 */
-		static const String& getLabelStyleType();
-
-		/**
-		 * Returns style type name of the internal GUIInputBox element.
-		 */
-		static const String& getInputStyleType();
-
-		/**
-		 * @brief	Creates a new GUI text editor field with a label.
-		 *
-		 * @param	multiline		Should the input box accept multiple lines of input.
-		 * @param	labelContent	Content to display in the editor field label.
-		 * @param	labelWidth		Width of the label in pixels.
-		 * @param	options			Options that allow you to control how is the element positioned and sized.
-		 *							This will override any similar options set by style.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUITextField* create(bool multiline, const GUIContent& labelContent, UINT32 labelWidth, const GUIOptions& options,
-			const String& style = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new GUI text editor field with a label.
-		 *
-		 * @param	multiline		Should the input box accept multiple lines of input.
-		 * @param	labelContent	Content to display in the editor field label.
-		 * @param	options			Options that allow you to control how is the element positioned and sized.
-		 *							This will override any similar options set by style.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUITextField* create(bool multiline, const GUIContent& labelContent, const GUIOptions& options,
-			const String& style = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new GUI text editor field with a label.
-		 *
-		 * @param	multiline		Should the input box accept multiple lines of input.
-		 * @param	labelText		String to display in the editor field label.
-		 * @param	labelWidth		Width of the label in pixels.
-		 * @param	options			Options that allow you to control how is the element positioned and sized.
-		 *							This will override any similar options set by style.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUITextField* create(bool multiline, const HString& labelText, UINT32 labelWidth, const GUIOptions& options,
-			const String& style = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new GUI text editor field with a label.
-		 *
-		 * @param	multiline		Should the input box accept multiple lines of input.
-		 * @param	labelText		String to display in the editor field label.
-		 * @param	options			Options that allow you to control how is the element positioned and sized.
-		 *							This will override any similar options set by style.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUITextField* create(bool multiline, const HString& labelText, const GUIOptions& options,
-			const String& style = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new GUI text editor field without a label.
-		 *
-		 * @param	multiline		Should the input box accept multiple lines of input.
-		 * @param	options			Options that allow you to control how is the element positioned and sized.
-		 *							This will override any similar options set by style.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUITextField* create(bool multiline, const GUIOptions& options, const String& style = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new GUI text editor field with a label.
-		 *
-		 * @param	multiline		Should the input box accept multiple lines of input.
-		 * @param	labelContent	Content to display in the editor field label.
-		 * @param	labelWidth		Width of the label in pixels.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUITextField* create(bool multiline, const GUIContent& labelContent, UINT32 labelWidth,
-			const String& style = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new GUI text editor field with a label.
-		 *
-		 * @param	multiline		Should the input box accept multiple lines of input.
-		 * @param	labelContent	Content to display in the editor field label.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUITextField* create(bool multiline, const GUIContent& labelContent,
-			const String& style = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new GUI text editor field with a label.
-		 *
-		 * @param	multiline		Should the input box accept multiple lines of input.
-		 * @param	labelText		String to display in the editor field label.
-		 * @param	labelWidth		Width of the label in pixels.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUITextField* create(bool multiline, const HString& labelText, UINT32 labelWidth,
-			const String& style = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new GUI text editor field with a label.
-		 *
-		 * @param	multiline		Should the input box accept multiple lines of input.
-		 * @param	labelText		String to display in the editor field label.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUITextField* create(bool multiline, const HString& labelText,
-			const String& style = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new GUI text editor field without a label.
-		 *
-		 * @param	multiline		Should the input box accept multiple lines of input.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUITextField* create(bool multiline, const String& style = StringUtil::BLANK);
-
-		GUITextField(const PrivatelyConstruct& dummy, bool multiline, const GUIContent& labelContent, UINT32 labelWidth,
-			const String& style, const GUIDimensions& dimensions, bool withLabel);
-
-		/**
-		 * @brief	Returns the value currently input in the text field.
-		 */
-		WString getValue() const { return mValue; }
-
-		/**
-		 * @brief	Sets a new value in the text field.
-		 */
-		void setValue(const WString& value);
-
-		/**
-		 * @brief	Checks whether the element currently has keyboard focus.
-		 */
-		bool hasInputFocus() const { return mHasInputFocus; }
-
-		/**
-		 * @copydoc	GUIElement::setTint
-		 */
-		void setTint(const Color& color) override;
-		
-		/**
-		 * @brief	Sets a new value in the input field, and also allows you to choose should the field trigger an
-		 *			onValueChanged event.
-		 */
-		void _setValue(const WString& value, bool triggerEvent);
-
-		Event<void(const WString&)> onValueChanged; /** Triggered when the value in the field changes. */
-		Event<void()> onConfirm; /**< Triggered when the user hits the Enter key with the input box in focus. */
-	protected:
-		static const UINT32 DEFAULT_LABEL_WIDTH;
-
-		virtual ~GUITextField();
-
-		/**
-		 * @copydoc	GUIElement::styleUpdated
-		 */
-		void styleUpdated() override;
-
-		/**
-		 * @copydoc	GUIElement::_updateLayoutInternal
-		 */
-		void _updateLayoutInternal(const GUILayoutData& data) override;
-
-		/**
-		 * @copydoc	GUIElement::_getOptimalSize
-		 */
-		Vector2I _getOptimalSize() const override;
-
-		/**
-		 * @brief	Triggered when the value in the internal input box changes.
-		 */
-		void valueChanged(const WString& newValue);
-
-		/**
-		 * @brief	Triggers when the input box receives or loses keyboard focus.
-		 */
-		void focusChanged(bool focus);
-
-		/**
-		 * @brief	Triggered when the users confirms input in the input box.
-		 */
-		void inputConfirmed();
-
-		GUIInputBox* mInputBox;
-		GUILayout* mLayout;
-		GUILabel* mLabel;
-		bool mHasInputFocus;
-		WString mValue;
-	};
-}

+ 0 - 50
BansheeEditor/Include/BsGUIWindowFrame.h

@@ -1,50 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsEditorPrerequisites.h"
-#include "BsGUITexture.h"
-#include "BsImageSprite.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	GUI element used for displaying a border on an editor window edge.
-	 */
-	class GUIWindowFrame : public GUITexture
-	{
-	public:
-		/**
-		 * Returns type name of the GUI element used for finding GUI element styles. 
-		 */
-		static const String& getGUITypeName();
-
-		/**
-		 * @brief	Creates a new GUI window frame element.
-		 *
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUIWindowFrame* create(const String& styleName = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new GUI window frame element.
-		 *
-		 * @param	options			Options that allow you to control how is the element positioned and sized.
-		 *							This will override any similar options set by style.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUIWindowFrame* create(const GUIOptions& options, const String& styleName = StringUtil::BLANK);
-
-		/**
-		 * @brief	Sets whether the frame should be displayed in focus or unfocused state.
-		 */
-		void setFocused(bool focused);
-	protected:
-		~GUIWindowFrame();
-		GUIWindowFrame(const String& styleName, const GUIDimensions& dimensions);
-	};
-}

+ 0 - 585
BansheeEditor/Include/BsGizmoManager.h

@@ -1,585 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsEditorPrerequisites.h"
-#include "BsModule.h"
-#include "BsColor.h"
-#include "BsVector2I.h"
-#include "BsMatrix4.h"
-#include "BsGpuParam.h"
-#include "BsDrawHelper.h"
-
-namespace BansheeEngine
-{
-	class GizmoManagerCore;
-
-	/**
-	 * @brief	Handles the rendering and picking of gizmo elements. Gizmos are icons and 3D objects
-	 *			usually rendered in scene view for various visualization purposes (e.g. a Camera component
-	 *			will have a gizmo that draws a Camera icon since otherwise it has no visual representation).
-	 *			Aside from being rendered, gizmos can also be selected by the user as if they were normal
-	 *			scene elements.
-	 */
-	class BS_ED_EXPORT GizmoManager : public Module<GizmoManager>
-	{
-	public:
-		GizmoManager();
-		~GizmoManager();
-
-		/**
-		 * @brief	Starts gizmo creation. All further call will be referencing this gizmo. 
-		 *			Must be followed by a matching "endGizmo".
-		 *
-		 * @note	gizmoParent	Scene object this gizmo is attached to. Selecting the gizmo will
-		 *			select this scene object.
-		 */
-		void startGizmo(const HSceneObject& gizmoParent);
-
-		/**
-		 * @brief	Ends gizmo creation. Must be called after a matching "startGizmo".
-		 */
-		void endGizmo();
-
-		/**
-		 * @brief	Changes the color of any further gizmo draw calls. 
-		 */
-		void setColor(const Color& color);
-
-		/**
-		 * @brief	Changes the transform that will be applied to meshes of any further gizmo draw calls. 
-		 */
-		void setTransform(const Matrix4& transform);
-
-		/**
-		 * @brief	If pickable is set to true, gizmo can be selected by the user, otherwise it will be
-		 *			drawn but cannot be interacted with.
-		 *
-		 * @note	Must be called between startGizmo/endGizmo calls.
-		 */
-		void setPickable(bool pickable) { mPickable = pickable; }
-
-		/**
-		 * @brief	Returns the currently set gizmo color.
-		 */
-		Color getColor() const { return mColor; }
-
-		/**
-		 * @brief	Returns the currently set gizmo transform.
-		 */
-		Matrix4 getTransform() const { return mTransform; }
-
-		/**
-		 * @brief	Draws an axis aligned cuboid.
-		 *
-		 * @param	position	Center of the cuboid.
-		 * @param	extents		Radius of the cuboid in each axis.
-		 *
-		 * @note	Must be called between startGizmo/endGizmo calls.
-		 */
-		void drawCube(const Vector3& position, const Vector3& extents);
-
-		/**
-		 * @brief	Draws a sphere.
-		 *
-		 * @note	Must be called between startGizmo/endGizmo calls.
-		 */
-		void drawSphere(const Vector3& position, float radius);
-
-		/**
-		 * @brief	Draws a wireframe axis aligned cuboid.
-		 *
-		 * @param	position	Center of the cuboid.
-		 * @param	extents		Radius of the cuboid in each axis.
-		 *
-		 * @note	Must be called between startGizmo/endGizmo calls.
-		 */
-		void drawWireCube(const Vector3& position, const Vector3& extents);
-
-		/**
-		 * @brief	Draws a wireframe sphere represented by three discs.
-		 *
-		 * @note	Must be called between startGizmo/endGizmo calls.
-		 */
-		void drawWireSphere(const Vector3& position, float radius);
-
-		/**
-		 * @brief	Draws a line between two points.
-		 *
-		 * @note	Must be called between startGizmo/endGizmo calls.
-		 */
-		void drawLine(const Vector3& start, const Vector3& end);
-
-		/**
-		 * @brief	Draws a wireframe disc.
-		 *
-		 * @param	position	Center of the disc.
-		 * @param	normal		Orientation of the disc, pointing in the direction the disc is visible in.
-		 * @param	radius		Radius of the disc.
-		 */
-		void drawWireDisc(const Vector3& position, const Vector3& normal, float radius);
-
-		/**
-		 * @brief	Draws a wireframe arc.
-		 *
-		 * @param	position	Center of the arc.
-		 * @param	normal		Orientation of the arc, pointing in the direction the arc is visible in.
-		 * @param	radius		Radius of the arc.
-		 * @param	startAngle	Angle at which to start the arc.
-		 * @param	amountAngle	Length of the arc.
-		 */
-		void drawWireArc(const Vector3& position, const Vector3& normal, float radius, Degree startAngle, Degree amountAngle);
-
-		/**
-		 * @brief	Draws a wireframe frustum.
-		 *
-		 * @param	position	Origin of the frustum, or the eye point.
-		 * @param	aspect		Ratio of frustum width over frustum height.
-		 * @param	FOV			Horizontal field of view in degrees.
-		 * @param	near		Distance to the near frustum plane.
-		 * @param	far			Distance to the far frustum plane.
-		 *
-		 * @note	Must be called between startGizmo/endGizmo calls.
-		 */
-		void drawFrustum(const Vector3& position, float aspect, Degree FOV, float near, float far);
-
-		/**
-		 * @brief	Draws an icon that always faces the camera.
-		 *
-		 * @param	position	Position of the center of the icon.
-		 * @param	image		Sprite image for the icon to draw.
-		 * @param	fixedScale	If true then the icon will remain the same size
-		 *						regardless of the distance from camera.
-		 *
-		 * @note	Must be called between startGizmo/endGizmo calls.
-		 */
-		void drawIcon(Vector3 position, HSpriteTexture image, bool fixedScale);
-
-		/**
-		 * Draws a mesh representing 2D text with the specified properties. 
-		 *
-		 * @param[in]	position	Position to render the text at. Text will be centered around this point.
-		 * @param[in]	text		Text to draw.
-		 * @param[in]	font		Font to use for rendering the text's characters.
-		 * @param[in]	fontSize	Size of the characters, in points.
-		 */
-		void drawText(const Vector3& position, const WString& text, const HFont& font, UINT32 fontSize = 16);
-
-		/**
-		 * @brief	Updates all the gizmo meshes to reflect all draw calls submitted since "clearGizmos".
-		 *
-		 * @note	Internal method.
-		 */
-		void update(const CameraPtr& camera);
-
-		/**
-		 * @brief	Queues all gizmos to be rendered for picking. Each gizmo is draw with a separate
-		 *			color so we can identify them later.
-		 *
-		 * @param	camera				Camera to draw the gizmos on.
-		 * @param	idxToColorCallback	Callback that assigns a unique color to each gizmo index.
-		 *
-		 * @note	Internal method.
-		 */
-		void renderForPicking(const CameraPtr& camera, std::function<Color(UINT32)> idxToColorCallback);
-
-		/**
-		 * @brief	Clears all gizmo data, but doesn't update the meshes
-		 *			or the render data. (Calling update would create empty
-		 *			meshes, but before calling update gizmos will still be drawn).
-		 */
-		void clearGizmos();
-
-		/**
-		 * @brief	Clears gizmo render data like meshes, but doesn't clear the original gizmo data.
-		 *			(Calling update would just recreate the render data).
-		 */
-		void clearRenderData();
-
-		/**
-		 * @brief	Returns a scene object that was attached to a specific gizmo.
-		 *
-		 * @param	gizmoIdx	Index of the gizmo to look for.
-		 */
-		HSceneObject getSceneObject(UINT32 gizmoIdx);
-
-	private:
-		friend class GizmoManagerCore;
-
-		/**
-		 * @brief	Supported types of gizmo materials (i.e. shaders)
-		 */
-		enum class GizmoMaterial
-		{
-			Solid, Wire, Picking, PickingAlpha, Text
-		};
-
-		/**
-		 * @brief	Common data shared by all gizmo types.
-		 */
-		struct CommonData
-		{
-			UINT32 idx;
-			Color color;
-			Matrix4 transform;
-			HSceneObject sceneObject;
-			bool pickable;
-		};
-
-		/**
-		 * @brief	Data required for rendering a cuboid gizmo.
-		 */
-		struct CubeData : public CommonData
-		{
-			Vector3 position;
-			Vector3 extents;
-		};
-
-		/**
-		 * @brief	Data required for rendering a sphere gizmo.
-		 */
-		struct SphereData : public CommonData
-		{
-			Vector3 position;
-			float radius;
-		};
-
-		/**
-		 * @brief	Data required for rendering a line gizmo.
-		 */
-		struct LineData : public CommonData
-		{
-			Vector3 start;
-			Vector3 end;
-		};
-
-		/**
-		 * @brief	Data required for rendering a wireframe disc gizmo.
-		 */
-		struct WireDiscData : public CommonData
-		{
-			Vector3 position;
-			Vector3 normal;
-			float radius;
-		};
-
-		/**
-		 * @brief	Data required for rendering a wireframe arc gizmo.
-		 */
-		struct WireArcData : public CommonData
-		{
-			Vector3 position;
-			Vector3 normal;
-			float radius;
-			Degree startAngle;
-			Degree amountAngle;
-		};
-
-		/**
-		 * @brief	Data required for rendering a frustum gizmo.
-		 */
-		struct FrustumData : public CommonData
-		{
-			Vector3 position;
-			float aspect;
-			Degree FOV;
-			float near;
-			float far;
-		};
-
-		/**
-		 * @brief	Data required for rendering an icon gizmo.
-		 */
-		struct IconData : public CommonData
-		{
-			Vector3 position;
-			bool fixedScale;
-			HSpriteTexture texture;
-		};
-
-		/**
-		 * @brief	Data required for rendering text.
-		 */
-		struct TextData : public CommonData
-		{
-			Vector3 position;
-			WString text;
-			HFont font;
-			UINT32 fontSize;
-		};
-
-		/**
-		 * @brief	Stores how many icons use a specific texture.
-		 */
-		struct IconRenderData
-		{
-			UINT32 count;
-			SPtr<TextureCore> texture;
-		};
-
-		/**
-		 * @brief	Data used for initializing the core thread equivalent of the gizmo manager.
-		 */
-		struct CoreInitData
-		{
-			SPtr<MaterialCore> solidMat;
-			SPtr<MaterialCore> wireMat;
-			SPtr<MaterialCore> iconMat;
-			SPtr<MaterialCore> textMat;
-			SPtr<MaterialCore> pickingMat;
-			SPtr<MaterialCore> alphaPickingMat;
-		};
-
-		typedef Vector<IconRenderData> IconRenderDataVec;
-		typedef std::shared_ptr<IconRenderDataVec> IconRenderDataVecPtr;
-
-		/**
-		 * @brief	Builds a brand new mesh that can be used for rendering all icon gizmos.
-		 *
-		 * @param	camera		Camera the mesh will be rendered to.
-		 * @param	iconData	A list of all icons and their properties.
-		 * @param	forPicking	Whether the icons will be rendered normally, or with a special material for picking.
-		 * @param	renderData	Output data that outlines the structure of the returned mesh. It tells us which portions of the
-		 *						mesh use which icon texture.
-		 *
-		 * @returns	A mesh containing all of the visible icons. Mesh is allocated using the icon mesh heap and should be deallocated manually.
-		 */
-		TransientMeshPtr buildIconMesh(const CameraPtr& camera, const Vector<IconData>& iconData, bool forPicking, IconRenderDataVecPtr& renderData);
-
-		/**
-		 * @brief	Resizes the icon width/height so it is always scaled to optimal size (with preserved aspect).
-		 */
-		void limitIconSize(UINT32& width, UINT32& height);
-
-		/**
-		 * @brief	Calculates colors for an icon based on its position in the camera. e.g. icons too close to too far might be faded.
-		 *
-		 * @param	tint		Primary tint for the icon.
-		 * @param	camera		Camera in which the icon will be rendered in.
-		 * @param	iconHeight	Height of the icon in pixels.
-		 * @param	fixedScale	Whether the icon size changes depending on distance from the camera.
-		 * @param	normalColor	Normal color of the icon.
-		 * @param	fadedColor	Faded color to be used when icon is occluded by geometry.
-		 */
-		void calculateIconColors(const Color& tint, const CameraPtr& camera, UINT32 iconHeight, bool fixedScale,
-			Color& normalColor, Color& fadedColor);
-
-		/**
-		 * @brief	Initializes the core thread version of the gizmo manager.
-		 */
-		void initializeCore(const CoreInitData& initData);
-
-		/**
-		 * @brief	Destroys the core thread version of the gizmo manager.
-		 */
-		void destroyCore(GizmoManagerCore* core);
-
-		static const UINT32 VERTEX_BUFFER_GROWTH;
-		static const UINT32 INDEX_BUFFER_GROWTH;
-		static const UINT32 SPHERE_QUALITY;
-		static const UINT32 WIRE_SPHERE_QUALITY;
-		static const float MAX_ICON_RANGE;
-		static const UINT32 OPTIMAL_ICON_SIZE;
-		static const float ICON_TEXEL_WORLD_SIZE;
-
-		typedef Set<IconData, std::function<bool(const IconData&, const IconData&)>> IconSet;
-
-		Color mColor;
-		Matrix4 mTransform;
-		HSceneObject mActiveSO;
-		bool mPickable;
-		UINT32 mCurrentIdx;
-
-		DrawHelper* mDrawHelper;
-		DrawHelper* mPickingDrawHelper;
-
-		Vector<CubeData> mSolidCubeData;
-		Vector<CubeData> mWireCubeData;
-		Vector<SphereData> mSolidSphereData;
-		Vector<SphereData> mWireSphereData;
-		Vector<LineData> mLineData;
-		Vector<WireDiscData> mWireDiscData;
-		Vector<WireArcData> mWireArcData;
-		Vector<FrustumData> mFrustumData;
-		Vector<IconData> mIconData;
-		Vector<TextData> mTextData;
-		Map<UINT32, HSceneObject> mIdxToSceneObjectMap;
-
-		Vector<DrawHelper::ShapeMeshData> mActiveMeshes;
-
-		MeshHeapPtr mIconMeshHeap;
-		TransientMeshPtr mIconMesh;
-
-		std::atomic<GizmoManagerCore*> mCore;
-
-		// Immutable
-		VertexDataDescPtr mIconVertexDesc;
-
-		// Transient
-		struct SortedIconData
-		{
-			float distance;
-			Vector2I screenPosition;
-			UINT32 iconIdx;
-		};
-
-		Vector<SortedIconData> mSortedIconData;
-	};
-
-	/**
-	 * @brief	Core thread version of the gizmo manager that handles most of the rendering
-	 *			of meshes provided by the gizmo manager.
-	 */
-	class GizmoManagerCore
-	{
-		friend class GizmoManager;
-
-		/**
-		 * @brief	Solid gizmo material and parameter handles.
-		 */
-		struct SolidMaterialData
-		{
-			SPtr<MaterialCore> mat;
-			GpuParamMat4Core mViewProj;
-			GpuParamVec4Core mViewDir;
-		};
-
-		/**
-		 * @brief	Wire gizmo material and parameter handles.
-		 */
-		struct WireMaterialData
-		{
-			SPtr<MaterialCore> mat;
-			GpuParamMat4Core mViewProj;
-		};
-
-		/**
-		 * @brief	Icon gizmo material and parameter handles.
-		 */
-		struct IconMaterialData
-		{
-			SPtr<MaterialCore> mat;
-			SPtr<GpuParamsCore> mFragParams[2];
-			GpuParamMat4Core mViewProj[2];
-			GpuParamTextureCore mTexture[2];
-		};
-
-		/**
-		 * @brief	Text gizmo material and parameter handles.
-		 */
-		struct TextMaterialData
-		{
-			SPtr<MaterialCore> mat;
-			GpuParamMat4Core mViewProj;
-			GpuParamTextureCore mTexture;
-		};
-
-		/**
-		 * @brief	Gizmo material and parameter handles used for picking.
-		 */
-		struct PickingMaterialData
-		{
-			SPtr<MaterialCore> mat;
-			GpuParamMat4Core mViewProj;
-		};
-
-		/**
-		 * @brief	Gizmo material and parameter handles used for picking, with
-		 *			blending support (generally used for icon picking).
-		 */
-		struct AlphaPickingMaterialData
-		{
-			SPtr<MaterialCore> mat;
-			SPtr<GpuParamsCore> mFragParams;
-			GpuParamMat4Core mViewProj;
-			GpuParamTextureCore mTexture;
-		};
-
-		/** Type of mesh that can be drawn. */
-		enum class MeshType
-		{
-			Solid, Wire, Text
-		};
-
-		/** Data about a mesh rendered by the draw manager. */
-		struct MeshData
-		{
-			MeshData(const SPtr<MeshCoreBase>& mesh, SPtr<TextureCore> texture, MeshType type)
-				:mesh(mesh), texture(texture), type(type)
-			{ }
-
-			SPtr<MeshCoreBase> mesh;
-			SPtr<TextureCore> texture;
-			MeshType type;
-		};
-
-		struct PrivatelyConstuct { };
-
-	public:
-		GizmoManagerCore(const PrivatelyConstuct& dummy);
-		~GizmoManagerCore();
-
-	private:
-		/**
-		 * @brief	Initializes the core gizmo manager. Must be called right after creation.
-		 */
-		void initialize(const GizmoManager::CoreInitData& initData);
-
-		/**
-		 * @brief	Renders all gizmos in the parent camera.
-		 */
-		void render();
-
-		/**
-		 * @brief	Renders a non-icon gizmo mesh using the provided parameters.
-		 *
-		 * @param	viewMatrix	View matrix of the camera we are rendering with.
-		 * @param	projMatrix	Projection matrix of the camera we are rendering with.
-		 * @param	viewDir		View direction of the camera we are rendering with.
-		 * @param	mesh		Mesh to render. This is normally the solid or wireframe gizmo mesh.
-		 * @param	texture		Texture to apply to the material, if the material supports a texture.
-		 * @param	material	Material to use for rendering. This is normally the solid, wireframe or picking material.
-		 */
-		void renderGizmos(const Matrix4& viewMatrix, const Matrix4& projMatrix, const Vector3& viewDir, 
-			const SPtr<MeshCoreBase>& mesh, const SPtr<TextureCore>& texture, GizmoManager::GizmoMaterial material);
-
-		/**
-		 * @brief	Renders the icon gizmo mesh using the provided parameters.
-		 *
-		 * @param	screenArea			Area of the viewport to render the gizmos in, in pixels.
-		 * @param	mesh				Mesh containing the icons.
-		 * @param	renderData			Icon render data outlining which parts of the icon mesh use which textures.
-		 * @param	usePickingMaterial	Should the icons be rendered normally or for picking.
-		 */
-		void renderIconGizmos(Rect2I screenArea, SPtr<MeshCoreBase> mesh, GizmoManager::IconRenderDataVecPtr renderData, bool usePickingMaterial);
-
-		/**
-		 * @brief	Updates the internal data that is used for rendering. Normally you would call this after 
-		 *			updating the camera or meshes on the sim thread.
-		 *
-		 * @param	camera			Sets the camera all rendering will be performed to.
-		 * @param	meshes			Meshes to render.
-		 * @param	iconMesh		Mesh containing icon meshes.
-		 * @param	iconRenderData	Icon render data outlining which parts of the icon mesh use which textures.
-		 */
-		void updateData(const SPtr<CameraCore>& camera, const Vector<MeshData>& meshes, const SPtr<MeshCoreBase>& iconMesh, 
-			const GizmoManager::IconRenderDataVecPtr& iconRenderData);
-
-		static const float PICKING_ALPHA_CUTOFF;
-
-		SPtr<CameraCore> mCamera;
-
-		Vector<MeshData> mMeshes;
-		SPtr<MeshCoreBase> mIconMesh;
-		GizmoManager::IconRenderDataVecPtr mIconRenderData;
-
-		// Immutable
-		SolidMaterialData mSolidMaterial;
-		WireMaterialData mWireMaterial;
-		IconMaterialData mIconMaterial;
-		TextMaterialData mTextMaterial;
-
-		PickingMaterialData mPickingMaterial;
-		AlphaPickingMaterialData mAlphaPickingMaterial;
-	};
-}

+ 0 - 115
BansheeEditor/Include/BsHandleSliderDisc.h

@@ -1,115 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsEditorPrerequisites.h"
-#include "BsHandleSlider.h"
-#include "BsTorus.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	Handle slider that returns a delta value as you drag the pointer
-	 *			along a disc. For intersection purposes the disc is internally 
-	 *			represented by a torus.
-	 */
-	class BS_ED_EXPORT HandleSliderDisc : public HandleSlider
-	{
-	public:
-		/**
-		 * @brief	Constructs a new disc slider.
-		 *
-		 * @param	normal		Normal that determines the orientation of the disc.
-		 * @param	radius		Radius of the disc.
-		 * @param	fixedScale	If true the handle slider will always try to maintain the same visible
-		 *						area in the viewport regardless of distance from camera.
-		 * @param	layer		Layer that allows filtering of which sliders are interacted with from a specific camera.
-		 */
-		HandleSliderDisc(const Vector3& normal, float radius, bool fixedScale, UINT64 layer);
-		~HandleSliderDisc();
-
-		/**
-		 * @copydoc	HandleSlider::intersects
-		 */
-		bool intersects(const Ray& ray, float& t) const override;
-
-		/**
-		 * @copydoc	HandleSlider::handleInput
-		 */
-		void handleInput(const CameraPtr& camera, const Vector2I& inputDelta) override;
-
-		/**
-		 * @brief	Enables or disables a cut-off plane that can allow the disc to be intersected
-		 *			with only in an 180 degree arc.
-		 *
-		 * @param	angle	Angle at which to start the cut-off. Points on the dist at the specified angle and the next
-		 *					180 degrees won't be interactable.	
-		 */
-		void setCutoffPlane(Degree angle, bool enabled);
-
-		/**
-		 * @brief	Returns a delta value that is the result of dragging/sliding the pointer 
-		 *			along the disc. This changes every frame and will be zero unless the slider is active.
-		 */
-		Radian getDelta() const { return mDelta; }
-
-		/**
-		 * @brief	Gets the initial angle at which the drag/slide operation started. This is only
-		 *			valid when the slider is active.
-		 */
-		Radian getStartAngle() const { return mStartAngle; }
-
-	protected:
-
-		/**
-		 * @copydoc	HandleSlider::activate
-		 */
-		void activate(const CameraPtr& camera, const Vector2I& pointerPos) override;
-
-		/**
-		 * @copydoc	HandleSlider::reset
-		 */
-		void reset() override { mDelta = 0.0f; }
-
-		/**
-		 * @brief	Calculates the closest point on an arc from a ray.
-		 *
-		 * @param	inputRay	Ray to use for determining the point.
-		 * @param	center		Center of the arc.
-		 * @param	up			Normal vector of the arc. Must be normalized.
-		 * @param	radius		Radius of the arc.
-		 * @param	startAngle	Starting angle of the arc.
-		 * @param	angleAmount	Length of the arc.
-		 *
-		 * @return	A point on the arc closest to the provided ray.
-		 */
-		Vector3 calculateClosestPointOnArc(const Ray& inputRay, const Vector3& center, const Vector3& up,
-			float radius, Degree startAngle, Degree angleAmount);
-
-		/**
-		 * @brief	Determines an angle of a point on a circle.
-		 *
-		 * @param	up		Normal vector of the circle. Must be normalized.
-		 * @param	point	Point to try to find the angle for. Caller must ensure the
-		 *					point is actually somewhere on the circle otherwise the result
-		 *					is undefined.
-		 *
-		 * @return	Angle at which the provided point lies on the circle.
-		 */
-		Degree pointOnCircleToAngle(Vector3 up, Vector3 point);
-
-		static const float TORUS_RADIUS;
-
-		Vector3 mNormal;
-		float mRadius;
-		bool mHasCutoffPlane;
-		Plane mCutoffPlane;
-
-		Vector3 mDirection;
-		Vector3 mStartPosition;
-		Degree mStartAngle;
-		Degree mDelta;
-
-		Torus mCollider;
-	};
-}

+ 0 - 72
BansheeEditor/Include/BsHandleSliderLine.h

@@ -1,72 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsEditorPrerequisites.h"
-#include "BsHandleSlider.h"
-#include "BsCapsule.h"
-#include "BsSphere.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	Handle slider that returns a delta value as you drag the pointer
-	 *			along a line. For intersection purposes the line is internally 
-	 *			by a capsule and a sphere at its cap (assuming this will be used 
-	 *			for arrow-like handles).
-	 */
-	class BS_ED_EXPORT HandleSliderLine : public HandleSlider
-	{
-	public:
-		/**
-		 * @brief	Constructs a new line slider.
-		 *
-		 * @param	direction	Direction of the line.
-		 * @param	length		Length of the slider (i.e. the line).
-		 * @param	fixedScale	If true the handle slider will always try to maintain the same visible
-		 *						area in the viewport regardless of distance from camera.
-		 * @param	layer		Layer that allows filtering of which sliders are interacted with from a specific camera.
-		 */
-		HandleSliderLine(const Vector3& direction, float length, bool fixedScale, UINT64 layer);
-		~HandleSliderLine();
-
-		/**
-		 * @copydoc	HandleSlider::intersects
-		 */
-		bool intersects(const Ray& ray, float& t) const override;
-
-		/**
-		 * @copydoc	HandleSlider::handleInput
-		 */
-		void handleInput(const CameraPtr& camera, const Vector2I& inputDelta) override;
-
-		/**
-		 * @brief	Returns a delta value that is the result of dragging/sliding the pointer 
-		 *			along the line. This changes every frame and will be zero unless the slider is active.
-		 */
-		float getDelta() const { return mDelta; }
-
-	protected:
-		/**
-		 * @copydoc	HandleSlider::activate
-		 */
-		void activate(const CameraPtr& camera, const Vector2I& pointerPos) override { mStartPosition = getPosition(); }
-
-		/**
-		 * @copydoc	HandleSlider::reset
-		 */
-		void reset() override { mDelta = 0.0f; }
-
-		static const float CAPSULE_RADIUS;
-		static const float SPHERE_RADIUS;
-
-		Vector3 mDirection;
-		float mLength;
-
-		float mDelta;
-		Vector3 mStartPosition;
-
-		Capsule mCapsuleCollider;
-		Sphere mSphereCollider;
-	};
-}

+ 0 - 82
BansheeEditor/Include/BsHandleSliderPlane.h

@@ -1,82 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsEditorPrerequisites.h"
-#include "BsHandleSlider.h"
-#include "BsRect3.h"
-#include "BsVector2.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	Handle slider that returns a delta value as you drag the pointer
-	 *			along a plane. For intersection purposes the line is internally
-	 *			by a quadrilateral (a bounded plane).
-	 */
-	class BS_ED_EXPORT HandleSliderPlane : public HandleSlider
-	{
-	public:
-		/**
-		 * @brief	Constructs a new plane slider. The plane is constructed from two
-		 *			direction vectors.
-		 *
-		 * @param	dir1		First direction of the plane. The x component of returned delta value will be in 
-		 *						this direction. Should be perpendicular to \p dir2.
-		 * @param	dir2		Second direction of the plane. The y component of returned delta value will be in 
-		 *						this direction. Should be perpendicular to \p dir1.
-		 * @param	length		Determines size of the plane. 
-		 * @param	fixedScale	If true the handle slider will always try to maintain the same visible
-		 *						area in the viewport regardless of distance from camera.
-		 * @param	layer		Layer that allows filtering of which sliders are interacted with from a specific camera.
-		 */
-		HandleSliderPlane(const Vector3& dir1, const Vector3& dir2, float length, bool fixedScale, UINT64 layer);
-		~HandleSliderPlane();
-
-		/**
-		 * @copydoc	HandleSlider::intersects
-		 */
-		bool intersects(const Ray& ray, float& t) const override;
-
-		/**
-		 * @copydoc	HandleSlider::handleInput
-		 */
-		void handleInput(const CameraPtr& camera, const Vector2I& inputDelta) override;
-
-		/**
-		 * @brief	Returns a delta value that is the result of dragging/sliding the pointer 
-		 *			along the plane. Returned movement is in terms of the two directions originally provided
-		 *			when constructing the slider. This changes every frame and will be zero unless the slider 
-		 *			is active.
-		 */
-		Vector2 getDelta() const { return mDelta; }
-	protected:
-		/**
-		 * @copydoc	HandleSlider::activate
-		 */
-		void activate(const CameraPtr& camera, const Vector2I& pointerPos) override;
-
-		/**
-		 * @copydoc	HandleSlider::reset
-		 */
-		void reset() override { mDelta = Vector2::ZERO; }
-
-		/**
-		 * @brief	Returns the position on plane based on pointer position.
-		 *
-		 * @param	camera		Camera we're interacting through.
-		 * @param	pointerPos	Position of the pointer in pixels relative to the provided camera's viewport.
-		 */
-		Vector3 getPositionOnPlane(const CameraPtr& camera, const Vector2I& pointerPos) const;
-
-		Vector3 mDirection1;
-		Vector3 mDirection2;
-		float mLength;
-
-		Rect3 mCollider;
-
-		Vector2 mDelta;
-		Vector3 mStartPlanePosition;
-		Vector3 mStartClickPosition;
-	};
-}

+ 0 - 80
BansheeEditor/Include/BsMainEditorWindow.h

@@ -1,80 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsEditorPrerequisites.h"
-#include "BsEditorWindowBase.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	Primary editor window, containing the menu bar, status bar
-	 *			and the dock area.
-	 */
-	class BS_ED_EXPORT MainEditorWindow : public EditorWindowBase
-	{
-	public:
-		~MainEditorWindow();
-
-		/**
-		 * @copydoc	EditorWindowBase::update
-		 */
-		void update() override;
-
-		/**
-		 * @copydoc	EditorWindowBase::isMain
-		 */
-		virtual bool isMain() const override { return true; }
-
-		/**
-		 * @brief	Gets the DockManager that is responsible for docking and placement
-		 *			of EditorWidget%s on the main window.
-		 */
-		DockManager& getDockManager() const { return *mDockManager; }
-
-		/**
-		 * @brief	Gets the primary menu bar element.
-		 */
-		GUIMenuBar& getMenuBar() const { return *mMenuBar; }
-
-		/**
-		 * @brief	Gets status bar GUI element.
-		 */
-		GUIStatusBar& getStatusBar() const { return *mStatusBar; }
-
-		/**
-		 * @brief	Creates a new main editor window. If one is already open this method
-		 *			will return the existing one.
-		 *
-		 * @param	renderWindow	Previously created render window to initialize the main
-		 *							editor window in.
-		 *
-		 * @return	Instance of the main editor window.
-		 */
-		static MainEditorWindow* create(const RenderWindowPtr& renderWindow);
-	protected:
-		friend class EditorWindowManager;
-		MainEditorWindow(const RenderWindowPtr& renderWindow);
-
-	protected:
-		static const UINT32 MENU_BAR_HEIGHT;
-		static const UINT32 STATUS_BAR_HEIGHT;
-
-		GUIMenuBar* mMenuBar;
-		DockManager* mDockManager;
-		GUIStatusBar* mStatusBar;
-		HProfilerOverlay mProfilerOverlay;
-
-		/**
-		 * @copydoc	EditorWindowBase::resized
-		 */
-		virtual void resized() override;
-
-		/**
-		 * @brief	Updates the placement of child GUI elements and their non-client
-		 *			areas (used for OS move/resize operations). Should be called after
-		 *			window size changes.
-		 */
-		void updateAreas();
-	};
-}

+ 0 - 85
BansheeEditor/Include/BsModalWindow.h

@@ -1,85 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsEditorPrerequisites.h"
-#include "BsEditorWindowBase.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	Base implementation of a window that when open doesn't allow you
-	 *			to interact with other windows. Modal windows are similar to editor
-	 *			windows but cannot be docked, and are meant to be used for temporary
-	 *			operations like dialog boxes and progress bars.
-	 */
-	class BS_ED_EXPORT ModalWindow : public EditorWindowBase
-	{
-	public:
-		virtual ~ModalWindow();
-
-		/**
-		 * @copydoc	EditorWindowBase::update
-		 */
-		virtual void update() override;
-
-		/**
-		 * @copydoc	EditorWindowBase::close
-		 */
-		virtual void close() override;
-
-		/**
-		 * @brief	Changes the text in the modal window title bar.
-		 */
-		void setTitle(const HString& title);
-
-		/**
-		 * Converts screen pointer coordinates into coordinates relative to the window content's GUI panel.
-		 */
-		Vector2I screenToWindowPos(const Vector2I& screenPos) const;
-
-		/**
-		 * Converts pointer coordinates relative to the window content's GUI panel into screen coordinates.
-		 */
-		Vector2I windowToScreenPos(const Vector2I& windowPos) const;
-
-	protected:
-		friend class EditorWindowManager;
-
-		ModalWindow(const HString& title, bool hasCloseButton = false);
-
-		/**
-		 * @brief	Returns the area in which the GUI contents are displayed (i.e. not including
-		 *			title bar and other default elements). Area is relative to window.
-		 */
-		Rect2I getContentArea() const;
-
-		/**
-		 * @copydoc	EditorWindowBase::resized
-		 */
-		virtual void resized() override;
-
-	private:
-		/**
-		 * @brief	Updates the placement of child GUI elements and their non-client
-		 *			areas (used for OS move/resize operations). Should be called after
-		 *			window size changes.
-		 */
-		void updateSize();
-
-		/**
-		 * @brief	Returns the height in pixels taken up by the title bar.
-		 */
-		UINT32 getTitleBarHeight() const;
-
-		GUIPanel* mTitleBarPanel;
-		GUIPanel* mTitleBarBgPanel;
-
-		GUILabel* mTitle;
-		GUIButton* mCloseButton;
-		GUITexture* mTitleBarBg;
-
-	protected:
-		GUIPanel* mContents;
-	};
-}

+ 0 - 403
BansheeEditor/Include/BsProjectLibrary.h

@@ -1,403 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsEditorPrerequisites.h"
-#include "BsModule.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	Project library is the primary location for interacting with all the resources
-	 *			in the current project. A complete hierarchy of resources is provided which
-	 *			can be interacted with by importing new ones, deleting them, moving, renaming
-	 *			and similar.
-	 */
-	class BS_ED_EXPORT ProjectLibrary : public Module<ProjectLibrary>
-	{
-	public:
-		struct LibraryEntry;
-		struct ResourceEntry;
-		struct DirectoryEntry;
-
-		/**
-		 * @brief	Types of elements in the library, either a file
-		 *			or a folder.
-		 */
-		enum class LibraryEntryType
-		{
-			File,
-			Directory
-		};
-
-		/**
-		 * @brief	A generic library entry that may be a file or a folder
-		 *			depending on its type.
-		 */
-		struct LibraryEntry
-		{
-			LibraryEntry();
-			LibraryEntry(const Path& path, const WString& name, DirectoryEntry* parent, LibraryEntryType type);
-
-			LibraryEntryType type; /**< Specific type of this entry. */
-			Path path; /**< Absolute path to the entry. */
-			WString elementName; /**< Name of the entry. */
-
-			DirectoryEntry* parent; /**< Folder this entry is located in. */
-		};
-
-		/**
-		 * @brief	A library entry representing a resource.
-		 */
-		struct ResourceEntry : public LibraryEntry
-		{
-			ResourceEntry();
-			ResourceEntry(const Path& path, const WString& name, DirectoryEntry* parent);
-
-			ProjectResourceMetaPtr meta; /**< Meta file containing various information about the resource. */
-			std::time_t lastUpdateTime; /**< Timestamp of when we last imported the resource. */
-		};
-
-		/**
-		 * @brief	A library entry representing a folder that contains other entries.
-		 */
-		struct DirectoryEntry : public LibraryEntry
-		{
-			DirectoryEntry();
-			DirectoryEntry(const Path& path, const WString& name, DirectoryEntry* parent);
-
-			Vector<LibraryEntry*> mChildren; /**< Child files or folders. */
-		};
-
-	public:
-		ProjectLibrary();
-		~ProjectLibrary();
-
-		/**
-		 * @brief	Checks if any resources at the specified path have been modified, added or deleted,
-		 *			and updates the internal hierarchy accordingly. 
-		 *
-		 * @param	path	Absolute path of the file or folder to check. If a folder is provided
-		 *					all its children will be checked recursively.
-		 */
-		void checkForModifications(const Path& path);
-
-		/**
-		 * @brief	Checks if any resources at the specified path have been modified, added or deleted,
-		 *			and updates the internal hierarchy accordingly. 
-		 *
-		 * @param	path			Absolute path of the file or folder to check. If a folder is provided
-		 *							all its children will be checked recursively.
-		 * @param	import			Should the dirty resources be automatically reimported.
-		 * @param	dirtyResources	A list of resources that should be reimported.
-		 */
-		void checkForModifications(const Path& path, bool import, Vector<Path>& dirtyResources);
-
-		/**
-		 * @brief	Returns the root library entry that references the entire library hierarchy.
-		 */
-		const LibraryEntry* getRootEntry() const { return mRootEntry; }
-
-		/**
-		 * @brief	Attempts to a find a library entry at the specified path.
-		 *
-		 * @param	path	Path to the entry, either absolute or relative to resources folder.
-		 *
-		 * @return	Found entry, or null if not found. Value returned by this method is transient,
-		 *			it may be destroyed on any following ProjectLibrary call.
-		 */
-		LibraryEntry* findEntry(const Path& path) const;
-
-		/**
-		 * @brief	Searches the library for a pattern and returns all entries matching it.
-		 *
-		 * @param	pattern	Pattern to search for. Use wildcard * to match any character(s).
-		 *
-		 * @return	A list of entries matching the pattern. Values returned by this method are transient,
-		 *			they may be destroyed on any following ProjectLibrary call.
-		 */
-		Vector<LibraryEntry*> search(const WString& pattern);
-
-		/**
-		 * @brief	Searches the library for a pattern, but only among specific resource types.
-		 *
-		 * @param	pattern	Pattern to search for. Use wildcard * to match any character(s).
-		 * @param	typeIds	RTTI type IDs of the resource types we're interested in searching.
-		 *
-		 * @return	A list of entries matching the pattern. Values returned by this method are transient, 
-		 *			they may be destroyed on any following ProjectLibrary call.
-		 */
-		Vector<LibraryEntry*> search(const WString& pattern, const Vector<UINT32>& typeIds);
-
-		/**
-		 * @brief	Returns resource path based on its UUID.
-		 *
-		 * @param	uuid	UUID of the resource to look for.
-		 *
-		 * @return	Absolute path to the resource.
-		 */
-		Path uuidToPath(const String& uuid) const;
-
-		/**
-		 * @brief	Registers a new resource in the library.
-		 *
-		 * @param	resource	Resource instance to add to the library. A copy of the
-		 *						resource will be saved at the provided path.
-		 * @param	path		Path where where to store the resource. Absolute or relative to the resources folder.
-		 */
-		void createEntry(const HResource& resource, const Path& path);
-
-		/**
-		 * @brief	Creates a new folder in the library.
-		 *
-		 * @param	path		Path where where to store the folder. Absolute or relative to the resources folder.
-		 */
-		void createFolderEntry(const Path& path);
-
-		/**
-		 * @brief	Updates a resource that is already in the library.
-		 */
-		void saveEntry(const HResource& resource);
-
-		/**
-		 * @brief	Moves a library entry from one path to another.
-		 *
-		 * @param	oldPath		Source path of the entry, absolute or relative to resources folder.
-		 * @param	newPath		Destination path of the entry, absolute or relative to resources folder.
-		 * @param	overwrite	If an entry already exists at the destination path, should it be overwritten.
-		 */
-		void moveEntry(const Path& oldPath, const Path& newPath, bool overwrite = true);
-
-		/**
-		 * @brief	Copies a library entry from one path to another.
-		 *
-		 * @param	oldPath		Source path of the entry, absolute or relative to resources folder.
-		 * @param	newPath		Destination path of the entry, absolute or relative to resources folder.
-		 * @param	overwrite	If an entry already exists at the destination path, should it be overwritten.
-		 */
-		void copyEntry(const Path& oldPath, const Path& newPath, bool overwrite = true);
-
-		/**
-		 * @brief	Deletes an entry from the library.
-		 *
-		 * @param	path		Path of the entry, absolute or relative to resources folder.
-		 */
-		void deleteEntry(const Path& path);
-
-		/**
-		 * @brief	Triggers a reimport of a resource using the provided import options, if needed.
-		 *
-		 * @param	path			Path to the resource to reimport, absolute or relative to resources folder.
-		 * @param	importOptions	Optional import options to use when importing the resource. Caller must ensure the
-		 *							import options are of the correct type for the resource in question. If null is provided
-		 *							default import options are used.
-		 * @param	forceReimport	Should the resource be reimported even if no changes are detected. This should be true
-		 *							if import options changed since last import.
-		 */
-		void reimport(const Path& path, const ImportOptionsPtr& importOptions = nullptr, bool forceReimport = false);
-
-		/**
-		 * @brief	Determines if this resource will always be included in the build, regardless if
-		 *			it's being referenced or not.
-		 *
-		 * @param	path	Path to the resource to modify, absolute or relative to resources folder.
-		 * @param	force	True if we want the resource to be included in the build, false otherwise.
-		 */
-		void setIncludeInBuild(const Path& path, bool force);
-
-		/**
-		 * @brief	Finds all top-level resource entries that should be included in a build.
-		 *			Values returned by this method are transient, they may be destroyed
-		 *			on any following ProjectLibrary call.
-		 */
-		Vector<ResourceEntry*> getResourcesForBuild() const;
-
-		/**
-		 * @brief	Loads a resource at the specified path, synchronously.
-		 *
-		 * @param	path	Path of the resource, absolute or relative to resources folder.
-		 *
-		 * @return	Loaded resource, or null handle if one is not found.
-		 */
-		HResource load(const Path& path);
-
-		/**
-		 * @brief	Returns the path to the project's resource folder where all
-		 *			the assets are stored.
-		 */
-		const Path& getResourcesFolder() const { return mResourcesFolder; }
-
-		/**
-		 * @brief	Returns the resource manifest managed by the project library.
-		 *
-		 * @note	Internal method.
-		 */
-		const ResourceManifestPtr& _getManifest() const { return mResourceManifest; }
-
-		/**
-		 * @brief	Saves all the project library data so it may be restored later,
-		 *			at the default save location in the project folder. Project
-		 *			must be loaded when calling this.
-		 */
-		void saveLibrary();
-
-		/**
-		 * @brief	Loads previously saved project library data from the default save 
-		 *			location in the project folder. Nothing is loaded if it doesn't
-		 *			exist.Project must be loaded when calling this.
-		 */
-		void loadLibrary();
-
-		/**
-		 * @brief	Clears all library data.
-		 */
-		void unloadLibrary();
-
-		Event<void(const Path&)> onEntryRemoved; /**< Triggered whenever an entry is removed from the library. Path provided is absolute. */
-		Event<void(const Path&)> onEntryAdded; /**< Triggered whenever an entry is added to the library. Path provided is absolute. */
-		Event<void(const Path&)> onEntryImported; /**< Triggered when a resource is being (re)imported. Path provided is absolute. */
-
-		static const Path RESOURCES_DIR;
-		static const Path INTERNAL_RESOURCES_DIR;
-	private:
-		/**
-		 * @brief	Common code for adding a new resource entry to the library.
-		 *
-		 * @param	parent			Parent of the new entry.
-		 * @param	filePath		Absolute path to the resource.
-		 * @param	importOptions	Optional import options to use when importing the resource. Caller must ensure the
-		 *							import options are of the correct type for the resource in question. If null is provided
-		 *							default import options are used.
-		 * @param	forceReimport	Should the resource be reimported even if we detect no changes. This should be true
-		 *							if import options changed since last import.
-		 *
-		 * @return	Newly added resource entry.
-		 */
-		ResourceEntry* addResourceInternal(DirectoryEntry* parent, const Path& filePath, const ImportOptionsPtr& importOptions = nullptr, bool forceReimport = false);
-
-		/**
-		 * @brief	Common code for adding a new folder entry to the library.
-		 *
-		 * @param	parent	Parent of the new entry.
-		 * @param	dirPath	Absolute path to the directory.
-		 *
-		 * @return	Newly added directory entry.
-		 */
-		DirectoryEntry* addDirectoryInternal(DirectoryEntry* parent, const Path& dirPath);
-
-		/**
-		 * @brief	Common code for deleting a resource from the library. This code only removes
-		 *			the library entry, not the actual resource file.
-		 *
-		 * @param	resource	Entry to delete.
-		 */
-		void deleteResourceInternal(ResourceEntry* resource);
-
-		/**
-		 * @brief	Common code for deleting a directory from the library. This code only removes
-		 *			the library entry, not the actual directory.
-		 *
-		 * @param	resource	Entry to delete.
-		 */
-		void deleteDirectoryInternal(DirectoryEntry* directory);
-
-		/**
-		 * @brief	Triggers a reimport of a resource using the provided import options, if needed. Doesn't import dependencies.
-		 *
-		 * @param	path			Absolute Path to the resource to reimport.
-		 * @param	importOptions	Optional import options to use when importing the resource. Caller must ensure the
-		 *							import options are of the correct type for the resource in question. If null is provided
-		 *							default import options are used.
-		 * @param	forceReimport	Should the resource be reimported even if we detect no changes. This should be true
-		 *							if import options changed since last import.
-		 */
-		void reimportResourceInternal(ResourceEntry* resource, const ImportOptionsPtr& importOptions = nullptr, bool forceReimport = false);
-
-		/**
-		 * @brief	Creates a full hierarchy of directory entries up to the provided directory, if any are needed.
-		 *
-		 * @param	fullPath			Absolute path to a directory we are creating the hierarchy to.
-		 * @param	newHierarchyRoot	First directory entry that already existed in our hierarchy.
-		 * @param	newHierarchyLeaf	Leaf entry corresponding to the exact entry at \p path.
-		 */
-		void createInternalParentHierarchy(const Path& fullPath, DirectoryEntry** newHierarchyRoot, DirectoryEntry** newHierarchyLeaf);
-
-		/**
-		 * @brief	Checks has the resource been modified since the last import.
-		 */
-		bool isUpToDate(ResourceEntry* resource) const;
-
-		/**
-		 * @brief	Checks is the resource a native engine resource that doesn't require importing.
-		 */
-		bool isNative(const Path& path) const;
-
-		/**
-		 * @brief	Returns a path to a .meta file based on the resource path.
-		 *
-		 * @param	path	Absolute path to the resource.
-		 *
-		 * @return	Path to the .meta file.
-		 */
-		Path getMetaPath(const Path& path) const;
-		
-		/**
-		 * @brief	Checks does the path represent a .meta file.
-		 */
-		bool isMeta(const Path& fullPath) const;
-
-		/**
-		 * @brief	Returns a set of resource paths that are dependent on the provided
-		 *			resource entry. (e.g. a shader file might be dependent on shader include file).
-		 */
-		Vector<Path> getImportDependencies(const ResourceEntry* entry);
-
-		/**
-		 * @brief	Registers any import dependencies for the specified resource.
-		 */
-		void addDependencies(const ResourceEntry* entry);
-
-		/**
-		 * @brief	Removes any import dependencies for the specified resource.
-		 */
-		void removeDependencies(const ResourceEntry* entry);
-
-		/**
-		 * @brief	Finds dependants resource for the specified resource entry and reimports them.
-		 */
-		void reimportDependants(const Path& entryPath);
-
-		/**
-		 * @brief	Makes all library entry paths relative to the current resources folder.
-		 */
-		void makeEntriesRelative();
-
-		/**
-		 * @brief	Makes all library entry paths absolute by appending them to the current resources folder.
-		 *			Entries must have previously been made relative by calling ::makeEntriesRelative.
-		 */
-		void makeEntriesAbsolute();
-
-		/**  
-		 * @brief	Deletes all library entries.
-		 */
-		void clearEntries();
-
-		static const WString LIBRARY_ENTRIES_FILENAME;
-		static const WString RESOURCE_MANIFEST_FILENAME;
-
-		ResourceManifestPtr mResourceManifest;
-		DirectoryEntry* mRootEntry;
-		Path mProjectFolder;
-		Path mResourcesFolder;
-		bool mIsLoaded;
-
-		UnorderedMap<Path, Vector<Path>> mDependencies;
-		UnorderedMap<String, Path> mUUIDToPath;
-	};
-
-	/**
-	 * @brief	Provides global access to the project library.
-	 */
-	BS_ED_EXPORT ProjectLibrary& gProjectLibrary();
-}

+ 0 - 90
BansheeEditor/Include/BsProjectResourceMeta.h

@@ -1,90 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsEditorPrerequisites.h"
-#include "BsIReflectable.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	Contains meta-data for a resource stored in the ProjectLibrary.
-	 */
-	class ProjectResourceMeta : public IReflectable
-	{
-	private:
-		struct ConstructPrivately {};
-
-	public:
-		explicit ProjectResourceMeta(const ConstructPrivately&);
-
-		/**
-		 * @brief	Creates a new project library resource meta-data entry.
-		 *
-		 * @param	uuid				UUID of the resource.
-		 * @param	typeId				RTTI type id of the resource.
-		 * @param	resourceMetaData	Non-project library specific meta-data.
-		 * @param	importOptions		Import options used for importing the resource.
-		 *
-		 * @return	New project library resource meta data instance.
-		 */
-		static ProjectResourceMetaPtr create(const String& uuid, UINT32 typeId, const ResourceMetaDataPtr& resourceMetaData,
-			const ImportOptionsPtr& importOptions);
-
-		/**
-		 * @brief	Returns the UUID of the resource this meta data belongs to.
-		 */
-		const String& getUUID() const { return mUUID; }
-
-		/**
-		 * @brief	Returns the non-project library specific meta-data,
-		 */
-		ResourceMetaDataPtr getResourceMetaData() const { return mResourceMeta; }
-
-		/**
-		 * @brief	Returns the import options used for importing the resource this
-		 *			object is referencing.
-		 */
-		const ImportOptionsPtr& getImportOptions() const { return mImportOptions; }
-
-		/**
-		 * @brief	Returns the RTTI type ID of the resource this object is referencing.
-		 */
-		UINT32 getTypeID() const { return mTypeId; }
-
-		/**
-		 * @brief	Checks should this resource always be included in the build, regardless if
-		 *			it's being referenced or not.
-		 */
-		bool getIncludeInBuild() const { return mIncludeInBuild; }
-
-		/**
-		 * @brief	Determines if this resource will always be included in the build, regardless if
-		 *			it's being referenced or not.
-		 */
-		void setIncludeInBuild(bool include) { mIncludeInBuild = include; }
-
-	private:
-		friend class ProjectLibrary;
-
-		String mUUID;
-		ResourceMetaDataPtr mResourceMeta;
-		ImportOptionsPtr mImportOptions;
-		UINT32 mTypeId;
-		bool mIncludeInBuild;
-
-		/************************************************************************/
-		/* 								RTTI		                     		*/
-		/************************************************************************/
-
-		/**
-		 * @brief	Creates a new empty meta-data instance. Used only for serialization purposes.
-		 */
-		static ProjectResourceMetaPtr createEmpty();
-
-	public:
-		friend class ProjectResourceMetaRTTI;
-		static RTTITypeBase* getRTTIStatic();
-		virtual RTTITypeBase* getRTTI() const override;	
-	};
-}

+ 0 - 57
BansheeEditor/Include/BsProjectResourceMetaRTTI.h

@@ -1,57 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsPrerequisites.h"
-#include "BsRTTIType.h"
-#include "BsProjectResourceMeta.h"
-#include "BsResourceMetaData.h"
-#include "BsImportOptions.h"
-
-namespace BansheeEngine
-{
-	class ProjectResourceMetaRTTI : public RTTIType<ProjectResourceMeta, IReflectable, ProjectResourceMetaRTTI>
-	{
-	private:
-		String& getUUID(ProjectResourceMeta* obj) { return obj->mUUID; }
-		void setUUID(ProjectResourceMeta* obj, String& val) { obj->mUUID = val; } 
-
-		UINT32& getTypeId(ProjectResourceMeta* obj) { return obj->mTypeId; }
-		void setTypeId(ProjectResourceMeta* obj, UINT32& val) { obj->mTypeId = val; }
-
-		ResourceMetaDataPtr getResourceMeta(ProjectResourceMeta* obj) { return obj->mResourceMeta; }
-		void setResourceMeta(ProjectResourceMeta* obj, ResourceMetaDataPtr val) { obj->mResourceMeta = val; }
-
-		ImportOptionsPtr getImportOptions(ProjectResourceMeta* obj) { return obj->mImportOptions; }
-		void setImportOptions(ProjectResourceMeta* obj, ImportOptionsPtr val) { obj->mImportOptions = val; }
-
-		bool& getIncludeInBuild(ProjectResourceMeta* obj) { return obj->mIncludeInBuild; }
-		void setIncludeInBuild(ProjectResourceMeta* obj, bool& val) { obj->mIncludeInBuild = val; }
-
-	public:
-		ProjectResourceMetaRTTI()
-		{
-			addPlainField("mUUID", 0, &ProjectResourceMetaRTTI::getUUID, &ProjectResourceMetaRTTI::setUUID);
-			addReflectablePtrField("mImportOptions", 1, &ProjectResourceMetaRTTI::getImportOptions, &ProjectResourceMetaRTTI::setImportOptions);
-			addReflectablePtrField("mResourceMeta", 2, &ProjectResourceMetaRTTI::getResourceMeta, &ProjectResourceMetaRTTI::setResourceMeta);
-			addPlainField("mTypeId", 3, &ProjectResourceMetaRTTI::getTypeId, &ProjectResourceMetaRTTI::setTypeId);
-			addPlainField("mIncludeInBuild", 4, &ProjectResourceMetaRTTI::getIncludeInBuild, &ProjectResourceMetaRTTI::setIncludeInBuild);
-		}
-
-		virtual const String& getRTTIName() override
-		{
-			static String name = "ProjectResourceMeta";
-			return name;
-		}
-
-		virtual UINT32 getRTTIId() override
-		{
-			return TID_ProjectResourceMeta;
-		}
-
-		virtual std::shared_ptr<IReflectable> newRTTIObject() override
-		{
-			return ProjectResourceMeta::createEmpty();
-		}
-	};
-}

+ 0 - 155
BansheeEditor/Include/BsScenePicking.h

@@ -1,155 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsEditorPrerequisites.h"
-#include "BsModule.h"
-#include "BsMatrix4.h"
-#include "BsGpuParam.h"
-
-namespace BansheeEngine
-{
-	class ScenePickingCore;
-
-	/**
-	 * @brief	Handles picking of scene objects with a pointer in scene view.
-	 */
-	class BS_ED_EXPORT ScenePicking : public Module<ScenePicking>
-	{
-		/**
-		 * @brief	Contains information about a single pickable item (mesh).
-		 */
-		struct RenderablePickData
-		{
-			SPtr<MeshCore> mesh;
-			UINT32 index;
-			Matrix4 wvpTransform;
-			bool alpha;
-			CullingMode cullMode;
-			HTexture mainTexture;
-		};
-
-	public:
-		ScenePicking();
-		~ScenePicking();
-
-		/**
-		 * @brief	Attempts to find a single nearest scene object under the provided position and area.
-		 *
-		 * @param	cam			Camera to perform the picking from.
-		 * @param	position	Pointer position relative to the camera viewport, in pixels.
-		 * @param	area		Width/height of the checked area in pixels. Use (1, 1) if you want the
-		 *						exact position under the pointer.
-		 *
-		 * @return	Nearest SceneObject under the provided area, or an empty handle if no object is found.
-		 */
-		HSceneObject pickClosestObject(const CameraPtr& cam, const Vector2I& position, const Vector2I& area);
-
-
-		/**
-		 * @brief	Attempts to find all scene objects under the provided position and area. This does not mean
-		 *			objects occluded by other objects.
-		 *
-		 * @param	cam			Camera to perform the picking from.
-		 * @param	position	Pointer position relative to the camera viewport, in pixels.
-		 * @param	area		Width/height of the checked area in pixels. Use (1, 1) if you want the
-		 *						exact position under the pointer.
-		 *
-		 * @return	A list of SceneObject%s under the provided area.
-		 */
-		Vector<HSceneObject> pickObjects(const CameraPtr& cam, const Vector2I& position, const Vector2I& area);
-
-	private:
-		friend class ScenePickingCore;
-
-		typedef Set<RenderablePickData, std::function<bool(const RenderablePickData&, const RenderablePickData&)>> RenderableSet;
-
-		/**
-		 * @brief	Encodes a pickable object identifier to a unique color.
-		 */
-		static Color encodeIndex(UINT32 index);
-
-		/**
-		 * @brief	Decodes a color into a unique object identifier. Color should
-		 *			have initially been encoded with ::encodeIndex.
-		 */
-		static UINT32 decodeIndex(Color color);
-
-		ScenePickingCore* mCore;
-	};
-
-	/**
-	 * @brief	Core thread version of the ScenePicking manager. Handles
-	 *			actual rendering.
-	 */
-	class ScenePickingCore
-	{
-		/**
-		 * @brief	A list of materials and their parameters to be used for rendering
-		 *			of pickable objects.
-		 */
-		struct MaterialData
-		{
-			SPtr<MaterialCore> mMatPickingCore;
-			SPtr<MaterialCore> mMatPickingAlphaCore;
-
-			SPtr<GpuParamsCore> mParamPickingVertParams;
-			SPtr<GpuParamsCore> mParamPickingFragParams;
-			SPtr<GpuParamsCore> mParamPickingAlphaVertParams;
-			SPtr<GpuParamsCore> mParamPickingAlphaFragParams;
-
-			GpuParamMat4Core mParamPickingWVP;
-			GpuParamMat4Core mParamPickingAlphaWVP;
-			GpuParamColorCore mParamPickingColor;
-			GpuParamColorCore mParamPickingAlphaColor;
-			GpuParamTextureCore mParamPickingAlphaTexture;
-		};
-
-	public:
-		/**
-		 * @brief	Initializes the manager. Must be called right after construction.
-		 */
-		void initialize();
-
-		/**
-		 * @brief	Destroys the manager. Must be called right before destruction.
-		 */
-		void destroy();
-
-		/**
-		 * @brief	Sets up the viewport, materials and their parameters as needed for picking. Also renders
-		 *			all the provided renderable objects. Must be followed by ::corePickingEnd. You may call other methods
-		 *			after this one, but you must ensure they render proper unique pickable colors that can be resolved
-		 *			to SceneObject%s later.
-		 *
-		 * @param	target			Render target to render to.
-		 * @param	viewportArea	Normalized area of the render target to render in.
-		 * @param	renderables		A set of pickable Renderable objects to render.
-		 * @param	position		Position of the pointer where to pick objects, in pixels relative to viewport.
-		 * @param	area			Width/height of the area to pick objects, in pixels.
-		 */
-		void corePickingBegin(const SPtr<RenderTargetCore>& target, const Rect2& viewportArea, const ScenePicking::RenderableSet& renderables,
-			const Vector2I& position, const Vector2I& area);
-		
-		/**
-		 * @brief	Ends picking operation started by ::corePickingBegin. Render target is resolved and objects in the picked area
-		 *			are returned.
-		 *
-		 * @param	target			Render target we're rendering to.
-		 * @param	viewportArea	Normalized area of the render target we're rendering in.
-		 * @param	position		Position of the pointer where to pick objects, in pixels relative to viewport.
-		 * @param	area			Width/height of the area to pick objects, in pixels.
-		 * @param	asyncOp			Async operation handle that when complete will contain the results of the picking
-		 *							operation in the form of Vector<SelectedObject>.
-		 */
-		void corePickingEnd(const SPtr<RenderTargetCore>& target, const Rect2& viewportArea, const Vector2I& position,
-			const Vector2I& area, AsyncOp& asyncOp);
-
-	private:
-		friend class ScenePicking;
-
-		static const float ALPHA_CUTOFF;
-
-		MaterialData mMaterialData[3];
-	};
-}

+ 0 - 111
BansheeEditor/Include/BsSelection.h

@@ -1,111 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsEditorPrerequisites.h"
-#include "BsModule.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	Handles scene object and resource selection. Triggeres events when selection changes and allows the 
-	 *			user to query current selection state.
-	 */
-	class BS_ED_EXPORT Selection : public Module<Selection>
-	{
-	public:
-		Selection();
-		~Selection();
-
-		/**
-		 * @brief	Returns a currently selected set of scene objects.
-		 */
-		const Vector<HSceneObject>& getSceneObjects() const;
-
-		/**
-		 * @brief	Sets a new set of scene objects to select, replacing the old ones.
-		 */
-		void setSceneObjects(const Vector<HSceneObject>& sceneObjects);
-
-		/**
-		 * @brief	Returns a currently selected set of resource paths.
-		 */
-		const Vector<Path>& getResourcePaths() const;
-
-		/**
-		 * @brief	Sets a new set of resource paths to select, replacing the old ones.
-		 */
-		void setResourcePaths(const Vector<Path>& paths);
-
-		/**
-		 * @brief	Returns a currently selected set of resource UUIDs.
-		 */
-		Vector<String> getResourceUUIDs() const;
-
-		/**
-		 * @brief	Sets a new set of resource UUIDs to select, replacing the old ones.
-		 */
-		void setResourceUUIDs(const Vector<String>& UUIDs);
-
-		/**
-		 * @brief	Deselects all currently selected scene objects.
-		 */
-		void clearSceneSelection();
-
-		/**
-		 * @brief	Deselects all currently selected resources.
-		 */
-		void clearResourceSelection();
-
-		/**
-		 * @brief	Pings the scene object, highlighting it in its respective editors.
-		 */
-		void ping(const HSceneObject& sceneObject);
-
-		/**
-		 * @brief	Pings the resource, highlighting it in its respective editors.
-		 * 		
-		 * @param	resourcePath	Resource path relative to the project library resources folder.
-		 */
-		void ping(const Path& resourcePath);
-
-		/**
-		 * @brief	Triggered whenever scene object or resource selection changes. The provided
-		 *			parameters will contain the newly selected objects/resource paths.
-		 */
-		Event<void(const Vector<HSceneObject>&, const Vector<Path>&)> onSelectionChanged; 
-
-		/**
-		 * @brief	Triggered when a scene object ping is requested. Ping usually means the
-		 *			object will be highlighted in its respective editors.
-		 */
-		Event<void(const HSceneObject&)> onSceneObjectPing; 
-
-		/**
-		 * @brief	Triggered when a resource ping is requested. Ping usually means the
-		 *			object will be highlighted in its respective editors.
-		 */
-		Event<void(const Path&)> onResourcePing; 
-	private:
-		/**
-		 * @brief	Triggered when the scene object selection in the scene tree view changes.
-		 */
-		void sceneSelectionChanged();
-
-		/**
-		 * @brief	Triggered when the resource selection in the resource tree view changes.
-		 */
-		void resourceSelectionChanged();
-
-		/**
-		 * @brief	Updates scene and resource tree views with new selection.
-		 */
-		void updateTreeViews();
-
-		Vector<HSceneObject> mSelectedSceneObjects;
-		Vector<Path> mSelectedResourcePaths;
-
-		HMessage mSceneSelectionChangedConn;
-		HMessage mResourceSelectionChangedConn;
-	};
-}

+ 0 - 118
BansheeEditor/Include/BsUndoRedo.h

@@ -1,118 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsEditorPrerequisites.h"
-#include "BsModule.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	Provides functionality to undo or redo recently performed operations in the editor.
-	 */
-	class BS_ED_EXPORT UndoRedo : public Module<UndoRedo>
-	{
-		/**
-		 * @brief	Contains data about a single undo/redo group.
-		 *			Groups allow you to create context sensitive undo/redo operations.
-		 */
-		struct GroupData
-		{
-			String name;
-			UINT32 numEntries;
-		};
-
-	public:
-		UndoRedo();
-		~UndoRedo();
-
-		/**
-		 * @brief	Executes the last command on the undo stack, undoing its operations.
-		 */
-		void undo();
-
-		/**
-		 * @brief	Executes the last command on the redo stack (last command we called undo on), 
-		 *			re-applying its operation.
-		 */
-		void redo();
-
-		/**
-		 * @brief	Creates a new undo/redo group. All new commands will be registered to this group.
-		 *			You may remove the group and all of its commands by calling ::popGroup.
-		 *
-		 *			For example you might require global editor-wide undo/redo operations, and also
-		 *			more specific ones like input in an input box. When the user is done with the input
-		 *			box you no longer require its undo operations and you may use groups to easily
-		 *			remove them.
-		 *
-		 * @param	name	Unique name for the group.
-		 */
-		void pushGroup(const String& name);
-
-		/**
-		 * @brief	Removes all the command registered to the current undo/redo group.
-		 *
-		 * @param	name	Unique name for the group.
-		 */
-		void popGroup(const String& name);
-
-		/**
-		 * @brief	Registers a new undo command.
-		 */
-		void registerCommand(EditorCommand* command);
-
-		/**
-		 * @brief	Returns the unique identifier for the command on top of the undo stack.
-		 */
-		UINT32 getTopCommandId() const;
-
-		/**
-		 * @brief	Removes a command from the undo/redo list, without executing it.
-		 *
-		 * @param	id	Identifier of the command returned by ::getTopCommandIdx.
-		 */
-		void popCommand(UINT32 id);
-
-		/**
-		 * @brief	Resets the undo/redo stacks.
-		 */
-		void clear();
-
-	private:
-		/**
-		 * @brief	Removes the last undo command from the undo stack, and returns it.
-		 */
-		EditorCommand* removeLastFromUndoStack();
-
-		/**
-		 * @brief	Adds a new command to the undo stack.
-		 */
-		void addToUndoStack(EditorCommand* command);
-
-		/**
-		 * @brief	Removes all entries from the undo stack.
-		 */
-		void clearUndoStack();
-
-		/**
-		 * @brief	Removes all entries from the redo stack.
-		 */
-		void clearRedoStack();
-
-		static const UINT32 MAX_STACK_ELEMENTS;
-
-		EditorCommand** mUndoStack;
-		EditorCommand** mRedoStack;
-
-		UINT32 mUndoStackPtr;
-		UINT32 mUndoNumElements;
-
-		UINT32 mRedoStackPtr;
-		UINT32 mRedoNumElements;
-
-		UINT32 mNextCommandId;
-
-		Stack<GroupData> mGroups;
-	};
-}

+ 0 - 45
BansheeEditor/Source/BsProjectResourceMeta.cpp

@@ -1,45 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#include "BsProjectResourceMeta.h"
-#include "BsProjectResourceMetaRTTI.h"
-
-namespace BansheeEngine
-{
-	ProjectResourceMeta::ProjectResourceMeta(const ConstructPrivately& dummy)
-		:mIncludeInBuild(false), mTypeId(0)
-	{
-
-	}
-
-	ProjectResourceMetaPtr ProjectResourceMeta::create(const String& uuid, UINT32 typeId, const ResourceMetaDataPtr& resourceMetaData,
-		const ImportOptionsPtr& importOptions)
-	{
-		ProjectResourceMetaPtr meta = bs_shared_ptr_new<ProjectResourceMeta>(ConstructPrivately());
-		meta->mUUID = uuid;
-		meta->mTypeId = typeId;
-		meta->mResourceMeta = resourceMetaData;
-		meta->mImportOptions = importOptions;
-		meta->mIncludeInBuild = false;
-
-		return meta;
-	}
-
-	ProjectResourceMetaPtr ProjectResourceMeta::createEmpty()
-	{
-		return bs_shared_ptr_new<ProjectResourceMeta>(ConstructPrivately());
-	}
-
-	/************************************************************************/
-	/* 								RTTI		                     		*/
-	/************************************************************************/
-
-	RTTITypeBase* ProjectResourceMeta::getRTTIStatic()
-	{
-		return ProjectResourceMetaRTTI::instance();
-	}
-
-	RTTITypeBase* ProjectResourceMeta::getRTTI() const
-	{
-		return ProjectResourceMeta::getRTTIStatic();
-	}
-}

+ 0 - 460
BansheeEngine/BansheeEngine.vcxproj

@@ -1,460 +0,0 @@
-<?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)\</IntDir>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <OutDir>..\bin\$(Platform)\$(Configuration)\</OutDir>
-    <IntDir>.\Intermediate\$(Platform)\$(Configuration)\</IntDir>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <OutDir>..\bin\x86\$(Configuration)\</OutDir>
-    <IntDir>.\Intermediate\$(Platform)\$(Configuration)\</IntDir>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugRelease|Win32'">
-    <OutDir>..\bin\x86\$(Configuration)\</OutDir>
-    <IntDir>.\Intermediate\$(Platform)\$(Configuration)\</IntDir>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <OutDir>..\bin\$(Platform)\$(Configuration)\</OutDir>
-    <IntDir>.\Intermediate\$(Platform)\$(Configuration)\</IntDir>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugRelease|x64'">
-    <OutDir>..\bin\$(Platform)\$(Configuration)\</OutDir>
-    <IntDir>.\Intermediate\$(Platform)\$(Configuration)\</IntDir>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <ClCompile>
-      <WarningLevel>Level3</WarningLevel>
-      <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>.\Include;..\BansheeCore\Include;..\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>.\Include;..\BansheeCore\Include;..\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>.\Include;..\BansheeCore\Include;..\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>.\Include;..\BansheeCore\Include;..\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>.\Include;..\BansheeCore\Include;..\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>.\Include;..\BansheeCore\Include;..\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\BsCamera.cpp" />
-    <ClCompile Include="Source\BsCGUIWidget.cpp" />
-    <ClCompile Include="Source\BsCursor.cpp" />
-    <ClCompile Include="Source\BsDrawHelper.cpp" />
-    <ClCompile Include="Source\BsDropDownAreaPlacement.cpp" />
-    <ClCompile Include="Source\BsGUIDropDownContent.cpp" />
-    <ClCompile Include="Source\BsGUIElementStyle.cpp" />
-    <ClCompile Include="Source\BsGUIPanel.cpp" />
-    <ClCompile Include="Source\BsGUILayoutUtility.cpp" />
-    <ClCompile Include="Source\BsGUIProgressBar.cpp" />
-    <ClCompile Include="Source\BsGUISkinRTTI.cpp" />
-    <ClCompile Include="Source\BsGUISlider.cpp" />
-    <ClCompile Include="Source\BsGUISpace.cpp" />
-    <ClCompile Include="Source\BsGUITooltip.cpp" />
-    <ClCompile Include="Source\BsGUITooltipManager.cpp" />
-    <ClCompile Include="Source\BsHEString.cpp" />
-    <ClCompile Include="Source\BsInputConfiguration.cpp" />
-    <ClCompile Include="Source\BsCLight.cpp" />
-    <ClCompile Include="Source\BsPlainText.cpp" />
-    <ClCompile Include="Source\BsPlainTextImporter.cpp" />
-    <ClCompile Include="Source\BsRenderableHandler.cpp" />
-    <ClCompile Include="Source\BsRenderable.cpp" />
-    <ClCompile Include="Source\BsRenderer.cpp" />
-    <ClCompile Include="Source\BsRendererMaterial.cpp" />
-    <ClCompile Include="Source\BsRendererMaterialManager.cpp" />
-    <ClCompile Include="Source\BsRendererUtility.cpp" />
-    <ClCompile Include="Source\BsRenderQueue.cpp" />
-    <ClCompile Include="Source\BsScriptCode.cpp" />
-    <ClCompile Include="Source\BsScriptCodeImporter.cpp" />
-    <ClCompile Include="Source\BsScriptCodeImportOptions.cpp" />
-    <ClCompile Include="Source\BsShortcutKey.cpp" />
-    <ClCompile Include="Source\BsShortcutManager.cpp" />
-    <ClCompile Include="Source\BsSplashScreen.cpp" />
-    <ClCompile Include="Source\BsVirtualInput.cpp" />
-    <ClCompile Include="Source\BsLight.cpp" />
-    <ClCompile Include="Source\BsGameSettings.cpp" />
-    <ClCompile Include="Source\BsPaths.cpp" />
-    <ClCompile Include="Source\BsEngineShaderIncludeHandler.cpp" />
-    <ClInclude Include="Include\BsApplication.h" />
-    <ClInclude Include="Include\BsCamera.h" />
-    <ClInclude Include="Include\BsCameraRTTI.h" />
-    <ClInclude Include="Include\BsCGUIWidget.h" />
-    <ClInclude Include="Include\BsCursor.h" />
-    <ClInclude Include="Include\BsDrawHelper.h" />
-    <ClInclude Include="Include\BsDropDownAreaPlacement.h" />
-    <ClInclude Include="Include\BsEngineShaderIncludeHandler.h" />
-    <ClInclude Include="Include\BsGameSettings.h" />
-    <ClInclude Include="Include\BsGameSettingsRTTI.h" />
-    <ClInclude Include="Include\BsGUIDropDownContent.h" />
-    <ClInclude Include="Include\BsGUIElementStyleRTTI.h" />
-    <ClInclude Include="Include\BsGUILayoutData.h" />
-    <ClInclude Include="Include\BsGUIPanel.h" />
-    <ClInclude Include="Include\BsGUIProgressBar.h" />
-    <ClInclude Include="Include\BsGUISkinRTTI.h" />
-    <ClInclude Include="Include\BsGUISlider.h" />
-    <ClInclude Include="Include\BsCGUIWidgetRTTI.h" />
-    <ClInclude Include="Include\BsGUITooltip.h" />
-    <ClInclude Include="Include\BsGUITooltipManager.h" />
-    <ClInclude Include="Include\BsHEString.h" />
-    <ClInclude Include="Include\BsCLight.h" />
-    <ClInclude Include="Include\BsLight.h" />
-    <ClInclude Include="Include\BsLightRTTI.h" />
-    <ClInclude Include="Include\BsCLightRTTI.h" />
-    <ClInclude Include="Include\BsPlainText.h" />
-    <ClInclude Include="Include\BsPlainTextImporter.h" />
-    <ClInclude Include="Include\BsPlainTextRTTI.h" />
-    <ClInclude Include="Include\BsRenderableElement.h" />
-    <ClInclude Include="Include\BsRenderable.h" />
-    <ClInclude Include="Include\BsRenderableRTTI.h" />
-    <ClInclude Include="Include\BsRenderer.h" />
-    <ClInclude Include="Include\BsRendererMaterial.h" />
-    <ClInclude Include="Include\BsRendererMaterialManager.h" />
-    <ClInclude Include="Include\BsRendererUtility.h" />
-    <ClInclude Include="Include\BsScriptCode.h" />
-    <ClInclude Include="Include\BsScriptCodeImporter.h" />
-    <ClInclude Include="Include\BsScriptCodeImportOptions.h" />
-    <ClInclude Include="Include\BsScriptCodeImportOptionsRTTI.h" />
-    <ClInclude Include="Include\BsScriptCodeRTTI.h" />
-    <ClInclude Include="Include\BsShapeMeshes3D.h" />
-    <ClInclude Include="Include\BsDragAndDropManager.h" />
-    <ClInclude Include="Include\BsShapeMeshes2D.h" />
-    <ClInclude Include="Include\BsBuiltinResources.h" />
-    <ClInclude Include="Include\BsEnums.h" />
-    <ClInclude Include="Include\BsGUIButton.h" />
-    <ClInclude Include="Include\BsGUIButtonBase.h" />
-    <ClInclude Include="Include\BsGUICommandEvent.h" />
-    <ClInclude Include="Include\BsGUIContent.h" />
-    <ClInclude Include="Include\BsGUIContextMenu.h" />
-    <ClInclude Include="Include\BsGUIDropDownMenu.h" />
-    <ClInclude Include="Include\BsGUIDropDownBoxManager.h" />
-    <ClInclude Include="Include\BsGUIDropDownHitBox.h" />
-    <ClInclude Include="Include\BsGUIElementContainer.h" />
-    <ClInclude Include="Include\BsGUIHelper.h" />
-    <ClInclude Include="Include\BsGUILayoutUtility.h" />
-    <ClInclude Include="Include\BsGUIListBox.h" />
-    <ClInclude Include="Include\BsGUIElementBase.h" />
-    <ClInclude Include="Include\BsGUIInputTool.h" />
-    <ClInclude Include="Include\BsGUIInputBox.h" />
-    <ClInclude Include="Include\BsGUIOptions.h" />
-    <ClInclude Include="Include\BsGUIRenderTexture.h" />
-    <ClInclude Include="Include\BsGUITextInputEvent.h" />
-    <ClInclude Include="Include\BsGUIInputCaret.h" />
-    <ClInclude Include="Include\BsGUIInputSelection.h" />
-    <ClInclude Include="Include\BsGUIDimensions.h" />
-    <ClInclude Include="Include\BsGUILayoutX.h" />
-    <ClInclude Include="Include\BsGUILayout.h" />
-    <ClInclude Include="Include\BsGUILayoutY.h" />
-    <ClInclude Include="Include\BsGUIMenu.h" />
-    <ClInclude Include="Include\BsGUIScrollBar.h" />
-    <ClInclude Include="Include\BsGUISliderHandle.h" />
-    <ClInclude Include="Include\BsGUIScrollBarHorz.h" />
-    <ClInclude Include="Include\BsGUIScrollBarVert.h" />
-    <ClInclude Include="Include\BsGUISpace.h" />
-    <ClInclude Include="Include\BsGUITexture.h" />
-    <ClInclude Include="Include\BsGUIToggle.h" />
-    <ClInclude Include="Include\BsGUIToggleGroup.h" />
-    <ClInclude Include="Include\BsGUIViewport.h" />
-    <ClInclude Include="Include\BsGUIVirtualButtonEvent.h" />
-    <ClInclude Include="Include\BsInputConfiguration.h" />
-    <ClInclude Include="Include\BsPrerequisites.h" />
-    <ClInclude Include="Include\BsGUIElement.h" />
-    <ClInclude Include="Include\BsGUIElementStyle.h" />
-    <ClInclude Include="Include\BsGUILabel.h" />
-    <ClInclude Include="Include\BsGUIManager.h" />
-    <ClInclude Include="Include\BsGUIMouseEvent.h" />
-    <ClInclude Include="Include\BsGUISkin.h" />
-    <ClInclude Include="Include\BsGUIWidget.h" />
-    <ClInclude Include="Include\BsImageSprite.h" />
-    <ClInclude Include="Include\BsProfilerOverlay.h" />
-    <ClInclude Include="Include\BsRectOffset.h" />
-    <ClInclude Include="Include\BsRenderableHandler.h" />
-    <ClInclude Include="Include\BsRenderQueue.h" />
-    <ClInclude Include="Include\BsSceneManager.h" />
-    <ClInclude Include="Include\BsGUIScrollArea.h" />
-    <ClInclude Include="Include\BsScriptManager.h" />
-    <ClInclude Include="Include\BsShortcutKey.h" />
-    <ClInclude Include="Include\BsShortcutManager.h" />
-    <ClInclude Include="Include\BsSplashScreen.h" />
-    <ClInclude Include="Include\BsSpriteTextureRTTI.h" />
-    <ClInclude Include="Include\BsSprite.h" />
-    <ClInclude Include="Include\BsSpriteTexture.h" />
-    <ClInclude Include="Include\BsTextSprite.h" />
-    <ClInclude Include="Include\BsCCamera.h" />
-    <ClInclude Include="Include\BsCCameraRTTI.h" />
-    <ClInclude Include="Include\BsCRenderable.h" />
-    <ClInclude Include="Include\BsCRenderableRTTI.h" />
-    <ClCompile Include="Source\BsGUIButtonBase.cpp" />
-    <ClCompile Include="Source\BsGUIContextMenu.cpp" />
-    <ClInclude Include="Include\BsVirtualInput.h" />
-    <ClInclude Include="Include\BsProfilerOverlayRTTI.h" />
-    <ClInclude Include="Include\BsPaths.h" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="Source\BsApplication.cpp" />
-    <ClCompile Include="Source\BsShapeMeshes2D.cpp" />
-    <ClCompile Include="Source\BsShapeMeshes3D.cpp" />
-    <ClCompile Include="Source\BsDragAndDropManager.cpp" />
-    <ClCompile Include="Source\BsBuiltinResources.cpp" />
-    <ClCompile Include="Source\BsGUIButton.cpp" />
-    <ClCompile Include="Source\BsGUIContent.cpp" />
-    <ClCompile Include="Source\BsGUIDropDownMenu.cpp" />
-    <ClCompile Include="Source\BsGUIDropDownBoxManager.cpp" />
-    <ClCompile Include="Source\BsGUIDropDownHitBox.cpp" />
-    <ClCompile Include="Source\BsGUIElementContainer.cpp" />
-    <ClCompile Include="Source\BsGUIHelper.cpp" />
-    <ClCompile Include="Source\BsGUIDimensions.cpp" />
-    <ClCompile Include="Source\BsGUIListBox.cpp" />
-    <ClCompile Include="Source\BsGUIElement.cpp" />
-    <ClCompile Include="Source\BsGUIElementBase.cpp" />
-    <ClCompile Include="Source\BsGUIInputBox.cpp" />
-    <ClCompile Include="Source\BsGUIOptions.cpp" />
-    <ClCompile Include="Source\BsGUIRenderTexture.cpp" />
-    <ClCompile Include="Source\BsGUITextInputEvent.cpp" />
-    <ClCompile Include="Source\BsGUIInputCaret.cpp" />
-    <ClCompile Include="Source\BsGUIInputSelection.cpp" />
-    <ClCompile Include="Source\BsGUIInputTool.cpp" />
-    <ClCompile Include="Source\BsGUILabel.cpp" />
-    <ClCompile Include="Source\BsGUILayout.cpp" />
-    <ClCompile Include="Source\BsGUILayoutY.cpp" />
-    <ClCompile Include="Source\BsGUIManager.cpp" />
-    <ClCompile Include="Source\BsGUIMouseEvent.cpp" />
-    <ClCompile Include="Source\BsGUIScrollBar.cpp" />
-    <ClCompile Include="Source\BsGUISliderHandle.cpp" />
-    <ClCompile Include="Source\BsGUIScrollBarHorz.cpp" />
-    <ClCompile Include="Source\BsGUIScrollBarVert.cpp" />
-    <ClCompile Include="Source\BsGUISkin.cpp" />
-    <ClCompile Include="Source\BsGUITexture.cpp" />
-    <ClCompile Include="Source\BsGUIToggle.cpp" />
-    <ClCompile Include="Source\BsGUIToggleGroup.cpp" />
-    <ClCompile Include="Source\BsGUIWidget.cpp" />
-    <ClCompile Include="Source\BsImageSprite.cpp" />
-    <ClCompile Include="Source\BsProfilerOverlay.cpp" />
-    <ClCompile Include="Source\BsSceneManager.cpp" />
-    <ClCompile Include="Source\BsGUIScrollArea.cpp" />
-    <ClCompile Include="Source\BsScriptManager.cpp" />
-    <ClCompile Include="Source\BsSprite.cpp" />
-    <ClCompile Include="Source\BsSpriteTexture.cpp" />
-    <ClCompile Include="Source\BsTextSprite.cpp" />
-    <ClCompile Include="Source\BsCCamera.cpp" />
-    <ClCompile Include="Source\BsCRenderable.cpp" />
-    <ClCompile Include="Source\BsGUILayoutX.cpp" />
-    <ClCompile Include="Source\BsGUIViewport.cpp" />
-    <ClCompile Include="Source\BsGUIMenu.cpp" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-  </ImportGroup>
-</Project>

+ 0 - 680
BansheeEngine/BansheeEngine.vcxproj.filters

@@ -1,680 +0,0 @@
-<?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="Include\BsGUIElement.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIElementStyle.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUILabel.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIManager.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUISkin.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsImageSprite.h">
-      <Filter>Header Files\2D</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsSprite.h">
-      <Filter>Header Files\2D</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsSpriteTexture.h">
-      <Filter>Header Files\2D</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsTextSprite.h">
-      <Filter>Header Files\2D</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsApplication.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUILayout.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUILayoutX.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUILayoutY.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUISpace.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIButton.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUITexture.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIToggle.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIInputBox.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUICommandEvent.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIInputCaret.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIInputSelection.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIInputTool.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIElementBase.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIScrollBarVert.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIScrollBarHorz.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIScrollArea.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIScrollBar.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIToggleGroup.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsDragAndDropManager.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIViewport.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIContent.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIListBox.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIMenu.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIContextMenu.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIHelper.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIDropDownBoxManager.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIButtonBase.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUITextInputEvent.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIMouseEvent.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsProfilerOverlay.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIOptions.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIRenderTexture.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsScriptManager.h">
-      <Filter>Header Files\Script</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsSpriteTextureRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIElementContainer.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIDropDownHitBox.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIVirtualButtonEvent.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUILayoutUtility.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUISliderHandle.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUISlider.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIProgressBar.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsPlainTextRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsScriptCodeRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsScriptCodeImportOptionsRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIDropDownContent.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIElementStyleRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUISkinRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIDimensions.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIPanel.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUILayoutData.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIDropDownMenu.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsDropDownAreaPlacement.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsProfilerOverlayRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsCCamera.h">
-      <Filter>Header Files\Components</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsCCameraRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsCRenderableRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsCRenderable.h">
-      <Filter>Header Files\Components</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsCLightRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsCLight.h">
-      <Filter>Header Files\Components</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsCameraRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsRenderableRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsLightRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsCGUIWidgetRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGameSettingsRTTI.h">
-      <Filter>Header Files\RTTI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUITooltipManager.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUITooltip.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGUIWidget.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsCGUIWidget.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsCamera.h">
-      <Filter>Header Files\Renderer</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsLight.h">
-      <Filter>Header Files\Renderer</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsRenderable.h">
-      <Filter>Header Files\Renderer</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsRenderableElement.h">
-      <Filter>Header Files\Renderer</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsRenderableHandler.h">
-      <Filter>Header Files\Renderer</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsRenderer.h">
-      <Filter>Header Files\Renderer</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsRendererMaterial.h">
-      <Filter>Header Files\Renderer</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsRendererMaterialManager.h">
-      <Filter>Header Files\Renderer</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsRenderQueue.h">
-      <Filter>Header Files\Renderer</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsSceneManager.h">
-      <Filter>Header Files\Renderer</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsPlainText.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsPlainTextImporter.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsScriptCode.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsScriptCodeImporter.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsScriptCodeImportOptions.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsBuiltinResources.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsInputConfiguration.h">
-      <Filter>Header Files\Input</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsVirtualInput.h">
-      <Filter>Header Files\Input</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsDrawHelper.h">
-      <Filter>Header Files\Utility</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsEnums.h">
-      <Filter>Header Files\Utility</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsGameSettings.h">
-      <Filter>Header Files\Utility</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsHEString.h">
-      <Filter>Header Files\Utility</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsPaths.h">
-      <Filter>Header Files\Utility</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsRectOffset.h">
-      <Filter>Header Files\Utility</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsShapeMeshes2D.h">
-      <Filter>Header Files\Utility</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsShapeMeshes3D.h">
-      <Filter>Header Files\Utility</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsPrerequisites.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsCursor.h">
-      <Filter>Header Files\Platform</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsSplashScreen.h">
-      <Filter>Header Files\Platform</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsShortcutManager.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsShortcutKey.h">
-      <Filter>Header Files\GUI</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsRendererUtility.h">
-      <Filter>Header Files\Renderer</Filter>
-    </ClInclude>
-    <ClInclude Include="Include\BsEngineShaderIncludeHandler.h">
-      <Filter>Header Files\Resources</Filter>
-    </ClInclude>
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="Source\BsGUIElement.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUILabel.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIManager.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUISkin.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsImageSprite.cpp">
-      <Filter>Source Files\2D</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsSprite.cpp">
-      <Filter>Source Files\2D</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsSpriteTexture.cpp">
-      <Filter>Source Files\2D</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsTextSprite.cpp">
-      <Filter>Source Files\2D</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsApplication.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUILayout.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUILayoutX.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUILayoutY.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIButton.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUITexture.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIToggle.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIInputBox.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIMouseEvent.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIInputCaret.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIInputSelection.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIInputTool.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIElementBase.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIScrollBarVert.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIScrollBarHorz.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIScrollArea.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIScrollBar.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIToggleGroup.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsDragAndDropManager.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIViewport.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIContent.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIListBox.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIMenu.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIHelper.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIDropDownBoxManager.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIContextMenu.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIButtonBase.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUITextInputEvent.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsProfilerOverlay.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIOptions.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIRenderTexture.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsScriptManager.cpp">
-      <Filter>Source Files\Script</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIElementContainer.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIDropDownHitBox.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUILayoutUtility.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUISliderHandle.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUISlider.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIProgressBar.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUISpace.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIDropDownContent.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIElementStyle.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUISkinRTTI.cpp">
-      <Filter>Source Files\RTTI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIDimensions.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIPanel.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIDropDownMenu.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsDropDownAreaPlacement.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsCCamera.cpp">
-      <Filter>Source Files\Components</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsCRenderable.cpp">
-      <Filter>Source Files\Components</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsCLight.cpp">
-      <Filter>Source Files\Components</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUITooltipManager.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUITooltip.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGUIWidget.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsCamera.cpp">
-      <Filter>Source Files\Renderer</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsLight.cpp">
-      <Filter>Source Files\Renderer</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsRenderable.cpp">
-      <Filter>Source Files\Renderer</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsRenderableHandler.cpp">
-      <Filter>Source Files\Renderer</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsRenderer.cpp">
-      <Filter>Source Files\Renderer</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsRendererMaterial.cpp">
-      <Filter>Source Files\Renderer</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsRendererMaterialManager.cpp">
-      <Filter>Source Files\Renderer</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsRenderQueue.cpp">
-      <Filter>Source Files\Renderer</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsSceneManager.cpp">
-      <Filter>Source Files\Renderer</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsScriptCodeImportOptions.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsScriptCodeImporter.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsScriptCode.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsPlainTextImporter.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsPlainText.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsBuiltinResources.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsInputConfiguration.cpp">
-      <Filter>Source Files\Input</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsVirtualInput.cpp">
-      <Filter>Source Files\Input</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsDrawHelper.cpp">
-      <Filter>Source Files\Utility</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsGameSettings.cpp">
-      <Filter>Source Files\Utility</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsHEString.cpp">
-      <Filter>Source Files\Utility</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsPaths.cpp">
-      <Filter>Source Files\Utility</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsShapeMeshes2D.cpp">
-      <Filter>Source Files\Utility</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsShapeMeshes3D.cpp">
-      <Filter>Source Files\Utility</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsShortcutKey.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsShortcutManager.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsCursor.cpp">
-      <Filter>Source Files\Platform</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsSplashScreen.cpp">
-      <Filter>Source Files\Platform</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsCGUIWidget.cpp">
-      <Filter>Source Files\GUI</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsRendererUtility.cpp">
-      <Filter>Source Files\Renderer</Filter>
-    </ClCompile>
-    <ClCompile Include="Source\BsEngineShaderIncludeHandler.cpp">
-      <Filter>Source Files\Resources</Filter>
-    </ClCompile>
-  </ItemGroup>
-</Project>

+ 0 - 674
BansheeEngine/Include/BsCamera.h

@@ -1,674 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsPrerequisites.h"
-#include "BsIReflectable.h"
-#include "BsMatrix4.h"
-#include "BsVector3.h"
-#include "BsVector2.h"
-#include "BsVector2I.h"
-#include "BsAABox.h"
-#include "BsQuaternion.h"
-#include "BsRay.h"
-#include "BsCoreObject.h"
-#include "BsConvexVolume.h"
-
-namespace BansheeEngine 
-{
-	/**
-	 * @brief	Projection type to use by the camera.
-	 */
-    enum ProjectionType
-    {
-		PT_ORTHOGRAPHIC, /*< Projection type where object size remains constant and parallel lines remain parallel. */
-		PT_PERSPECTIVE /*< Projection type that emulates human vision. Objects farther away appear smaller. */
-    };
-
-	/**
-	 * @brief	Clip planes that form the camera frustum (visible area).
-	 */
-    enum FrustumPlane
-    {
-        FRUSTUM_PLANE_NEAR = 0,
-        FRUSTUM_PLANE_FAR = 1,
-        FRUSTUM_PLANE_LEFT = 2,
-        FRUSTUM_PLANE_RIGHT = 3,
-        FRUSTUM_PLANE_TOP = 4,
-        FRUSTUM_PLANE_BOTTOM = 5
-    };
-
-	/**
-	 * @brief	Flags that describe a camera.
-	 */
-	enum class CameraFlags
-	{
-		/** This flag is a signal to the renderer that his camera will only render overlays and doesn't require depth   
-		 * buffer or multi-sampled render targets. This can improve performance and memory usage. */
-		Overlay = 1
-	};
-
-	/**
-	 * @brief	Camera determines how is world geometry projected onto a 2D surface. You may
-	 *			position and orient it in space, set options like aspect ratio and field or view
-	 *			and it outputs view and projection matrices required for rendering.
-	 */
-	class BS_EXPORT CameraBase
-    {
-    public:
-		virtual ~CameraBase() { }
-
-		/**
-		 * @brief	Sets the camera horizontal field of view. This determines how wide the camera
-		 *			viewing angle is along the horizontal axis. Vertical FOV is calculated from the
-		 *			horizontal FOV and the aspect ratio.
-		 */
-        virtual void setHorzFOV(const Radian& fovy);
-
-		/**
-		 * @brief	Retrieves the camera horizontal field of view.
-		 */
-        virtual const Radian& getHorzFOV() const;
-
-		/**
-		 * @brief	Sets the distance from the frustum to the near clipping plane. Anything
-		 *			closer than the near clipping plane will not be rendered. Decreasing this value
-		 *			decreases depth buffer precision.
-		 */
-        virtual void setNearClipDistance(float nearDist);
-
-		/**
-		 * @brief	Retrieves the distance from the frustum to the near clipping plane. Anything
-		 *			closer than the near clipping plane will not be rendered. Decreasing this value
-		 *			decreases depth buffer precision.
-		 */
-        virtual float getNearClipDistance() const;
-
-		/**
-		 * @brief	Sets the distance from the frustum to the far clipping plane. Anything
-		 *			farther than the far clipping plane will not be rendered. Increasing this value
-		 *			decreases depth buffer precision.
-		 */
-        virtual void setFarClipDistance(float farDist);
-
-		/**
-		 * @brief	Retrieves the distance from the frustum to the far clipping plane. Anything
-		 *			farther than the far clipping plane will not be rendered. Increasing this value
-		 *			decreases depth buffer precision.
-		 */
-        virtual float getFarClipDistance() const;
-
-		/**
-		 * @brief	Sets the current viewport aspect ratio (width / height).
-		 */
-        virtual void setAspectRatio(float ratio);
-
-		/**
-		 * @brief	Returns current viewport aspect ratio (width / height).
-		 */
-        virtual float getAspectRatio() const;
-
-		/**
-		 * @brief	Sets camera world space position.
-		 */
-		virtual void setPosition(const Vector3& position);
-
-		/**
-		 * @brief	Retrieves camera world space position.
-		 */
-		virtual Vector3 getPosition() const { return mPosition; }
-
-		/**
-		 * @brief	Sets should the camera be rendered to or not.
-		 */
-		void setIsActive(bool active) { mIsActive = active; _markCoreDirty(); }
-		
-		/**
-		 * @brief	Gets whether the camera be rendered to or not.
-		 */
-		bool getIsActive() const { return mIsActive; }
-
-		/**
-		 * @brief	Gets the Z (forward) axis of the object, in world space.
-		 *
-		 * @return	Forward axis of the object.
-		 */
-		Vector3 getForward() const { return getRotation().rotate(-Vector3::UNIT_Z); }
-
-		/**
-		 * @brief	Sets camera world space rotation.
-		 */
-		virtual void setRotation(const Quaternion& rotation);
-
-		/**
-		 * @brief	Retrieves camera world space rotation.
-		 */
-		virtual Quaternion getRotation() const { return mRotation; }
-
-		/** @brief	Manually set the extents of the frustum that will be used when calculating the
-		 *			projection matrix. This will prevents extents for being automatically calculated
-		 *			from aspect and near plane so it is up to the caller to keep these values
-		 *			accurate.
-		 *
-		 *	@param left		The position where the left clip plane intersect the near clip plane, in view space.
-		 *  @param right	The position where the right clip plane intersect the near clip plane, in view space.
-		 *  @param top		The position where the top clip plane intersect the near clip plane, in view space.
-		 *  @param bottom	The position where the bottom clip plane intersect the near clip plane, in view space.
-		*/
-		virtual void setFrustumExtents(float left, float right, float top, float bottom);
-
-		/** 
-		 * @brief	Resets frustum extents so they are automatically derived from other values.
-		 *			This is only relevant if you have previously set custom extents.
-		 */
-		virtual void resetFrustumExtents(); 
-
-		/** 
-		 * @brief	Returns the extents of the frustum in view space at the near plane.
-		 */
-		virtual void getFrustumExtents(float& outleft, float& outright, float& outtop, float& outbottom) const;
-
-		/** 
-		 * @brief	Returns the standard projection matrix that determines how are 3D points
-		 *			projected to two dimensions. The layout of this matrix depends on currently
-		 *			used render system.
-		 *
-		 * @note	You should use this matrix when sending the matrix to the render system to make sure
-		 *			everything works consistently when other render systems are used.
-		 */
-        virtual const Matrix4& getProjectionMatrixRS() const;
-
-		/** 
-		 * @brief	Returns the inverse of the render-system specific projection matrix.
-		 *
-		 * @see		getProjectionMatrixRS
-		 */
-        virtual const Matrix4& getProjectionMatrixRSInv() const;
-
-		/** 
-		 * @brief	Returns the standard projection matrix that determines how are 3D points
-		 *			projected to two dimensions. Returned matrix is standard following right-hand
-		 *			rules and depth range of [-1, 1]. 
-		 *
-		 * @note	Different render systems will expect different projection matrix layouts, in which
-		 *			case use getProjectionMatrixRS.
-         */
-        virtual const Matrix4& getProjectionMatrix() const;
-
-		/** 
-		 * @brief	Returns the inverse of the projection matrix.
-		 *
-		 * @see		getProjectionMatrix
-		 */
-        virtual const Matrix4& getProjectionMatrixInv() const;
-
-		/** 
-		 * @brief	Gets the camera view matrix. Used for positioning/orienting the camera.
-         */
-        virtual const Matrix4& getViewMatrix() const;
-
-		/** 
-		 * @brief	Returns the inverse of the view matrix.
-		 *
-		 * @see		getViewMatrix
-		 */
-		virtual const Matrix4& getViewMatrixInv() const;
-
-		/** 
-		 * @brief	Sets whether the camera should use the custom view matrix.
-		 *			When this is enabled camera will no longer calculate its view matrix
-		 *			based on position/orientation and caller will be resonsible to keep 
-		 *			the view matrix up to date.
-         */
-		virtual void setCustomViewMatrix(bool enable, const Matrix4& viewMatrix = Matrix4::IDENTITY);
-
-		/** 
-		 * @brief	Returns true if a custom view matrix is used.
-         */
-		virtual bool isCustomViewMatrixEnabled() const { return mCustomViewMatrix; }
-		
-		/** 
-		 * @brief	Sets whether the camera should use the custom projection matrix.
-		 *			When this is enabled camera will no longer calculate its projection matrix
-		 *			based on field of view, aspect and other parameters and caller will be
-		 *			resonsible to keep the projection matrix up to date.
-         */
-		virtual void setCustomProjectionMatrix(bool enable, const Matrix4& projectionMatrix = Matrix4::IDENTITY);
-
-		/** 
-		 * @brief	Returns true if a custom projection matrix is used.
-         */
-		virtual bool isCustomProjectionMatrixEnabled() const { return mCustomProjMatrix; }
-
-		/** 
-		 * @brief	Returns a convex volume representing the visible area of the camera,
-		 *			in local space.
-         */
-        virtual const ConvexVolume& getFrustum() const;
-
-		/** 
-		 * @brief	Returns a convex volume representing the visible area of the camera,
-		 *			in world space.
-         */
-        virtual ConvexVolume getWorldFrustum() const;
-
-		/**
-		 * @brief	Returns the bounding of the frustum.
-		 */
-        const AABox& getBoundingBox() const;
-
-		/**
-		 * @brief	Sets the type of projection used by the camera. Projection type 
-		 *			controls how is 3D geometry projected onto a 2D plane.
-		 */
-        virtual void setProjectionType(ProjectionType pt);
-
-		/**
-		 * @brief	Returns the type of projection used by the camera. Projection type 
-		 *			controls how is 3D geometry projected onto a 2D plane.
-		 */
-        virtual ProjectionType getProjectionType() const;
-
-		/**
-		 * @brief	Sets the orthographic window height, for use with orthographic rendering only. 
-		 *
-		 * @param	w	Width of the window in world units.
-		 * @param	h	Height of the window in world units.
-		 *
-		 * @note	Calling this method will recalculate the aspect ratio, use setOrthoWindowHeight or 
-		 *			setOrthoWindowWidth alone if you wish to preserve the aspect ratio but just fit one 
-		 *			or other dimension to a particular size.
-		 */
-		virtual void setOrthoWindow(float w, float h);
-
-		/**
-		 * @brief	Sets the orthographic window height, for use with orthographic rendering only. 
-		 *
-		 * @param	h	Height of the window in world units.
-		 *
-		 * @note	The width of the window will be calculated from the aspect ratio. 
-		 */
-		virtual void setOrthoWindowHeight(float h);
-
-		/**
-		 * @brief	Sets the orthographic window width, for use with orthographic rendering only. 
-		 *
-		 * @param	w	Width of the window in world units.
-		 *
-		 * @note	The height of the window will be calculated from the aspect ratio. 
-		 */
-		virtual void setOrthoWindowWidth(float w);
-
-		/**
-		 * @brief	Gets the orthographic window width in world units, for use with orthographic rendering only. 
-		 */
-		virtual float getOrthoWindowHeight() const;
-
-		/**
-		 * @brief	Gets the orthographic window width in world units, for use with orthographic rendering only. 
-		 *
-		 * @note	This is calculated from the orthographic height and the aspect ratio.
-		 */
-		virtual float getOrthoWindowWidth() const;
-
-		/**
-		 * @brief	Gets a priority that determines in which orders the cameras are rendered.
-		 *			This only applies to cameras rendering to the same render target. 
-		 */
-		INT32 getPriority() const { return mPriority; }
-
-		/**
-		 * @brief	Sets a priority that determines in which orders the cameras are rendered.
-		 * 			This only applies to cameras rendering to the same render target. 
-		 *
-		 * @param	priority	The priority. Higher value means the camera will be rendered sooner.
-		 */
-		void setPriority(INT32 priority) { mPriority = priority; _markCoreDirty(); }
-
-		/**
-		 * @brief	Retrieves layer bitfield that is used when determining which object should the camera render.
-		 */
-		UINT64 getLayers() const { return mLayers; }
-
-		/**
-		 * @brief	Sets layer bitfield that is used when determining which object should the camera render.
-		 */
-		void setLayers(UINT64 layers) { mLayers = layers; _markCoreDirty(); }
-
-		/**
-		 * @brief	Retrieves flags that define the camera.
-		 */
-		CameraFlags getFlags() const { return (CameraFlags)mCameraFlags; }
-
-		/**
-		 * @brief	Sets flags that define the camera.
-		 */
-		void setFlags(const CameraFlags& flags) { mCameraFlags = (UINT32)flags; _markCoreDirty(); }
-
-		/**
-		 * @brief	Converts a point in world space to screen coordinates (in pixels
-		 *			corresponding to the render target attached to the camera).
-		 */
-		Vector2I worldToScreenPoint(const Vector3& worldPoint) const;
-
-		/**
-		 * @brief	Converts a point in world space to normalized clip coordinates 
-		 *			(in [0, 1] range).
-		 */
-		Vector2 worldToClipPoint(const Vector3& worldPoint) const;
-
-		/**
-		 * @brief	Converts a point in world space to point relative to camera's
-		 *			coordinate system (view space).
-		 */
-		Vector3 worldToViewPoint(const Vector3& worldPoint) const;
-
-		/**
-		 * @brief	Converts a point in screen space (pixels corresponding to
-		 *			render target attached to the camera) to a point in world space.
-		 *
-		 * @param	screenPoint	Point to transform.
-		 * @param	depth		Depth to place the world point at. The depth is applied
-		 *						to the vector going from camera origin to the point on
-		 *						the near plane.
-		 */
-		Vector3 screenToWorldPoint(const Vector2I& screenPoint, float depth = 0.5f) const;
-
-		/**
-		 * @brief	Converts a point in screen space (pixels corresponding to
-		 *			render target attached to the camera) to a point relative to
-		 *			camera's coordinate system (view space).
-		 *
-		 * @param	screenPoint	Point to transform.
-		 * @param	depth		Depth to place the world point at. The depth is applied
-		 *						to the vector going from camera origin to the point on
-		 *						the near plane.
-		 */
-		Vector3 screenToViewPoint(const Vector2I& screenPoint, float depth = 0.5f) const;
-
-		/**
-		 * @brief	Converts a point in screen space (pixels corresponding to
-		 *			render target attached to the camera) to normalized clip 
-		 *			coordinates (in [0, 1] range).
-		 */
-		Vector2 screenToClipPoint(const Vector2I& screenPoint) const;
-
-		/**
-		 * @brief	Converts a point relative to camera's coordinate system (view space)
-		 *			into a point in world space.
-		 */
-		Vector3 viewToWorldPoint(const Vector3& viewPoint) const;
-
-		/**
-		 * @brief	Converts a point relative to camera's coordinate system (view space)
-		 *			into a point in screen space (pixels corresponding to render target 
-		 *			attached to the camera.
-		 */
-		Vector2I viewToScreenPoint(const Vector3& viewPoint) const;
-
-		/**
-		 * @brief	Converts a point relative to camera's coordinate system (view space)
-		 *			into normalized clip coordinates (in [0, 1] range).
-		 */
-		Vector2 viewToClipPoint(const Vector3& viewPoint) const;
-
-		/**
-		 * @brief	Converts a point in normalized clip coordinates ([0, 1] range) to
-		 *			a point in world space.
-		 *
-		 * @param	clipPoint	Point to transform.
-		 * @param	depth		Depth to place the world point at. The depth is applied
-		 *						to the vector going from camera origin to the point on
-		 *						the near plane.
-		 */
-		Vector3 clipToWorldPoint(const Vector2& clipPoint, float depth = 0.5f) const;
-
-		/**
-		 * @brief	Converts a point in normalized clip coordinates ([0, 1] range) to
-		 *			a point relative to camera's coordinate system (view space).
-		 *
-		 * @param	clipPoint	Point to transform.
-		 * @param	depth		Depth to place the world point at. The depth is applied
-		 *						to the vector going from camera origin to the point on
-		 *						the near plane.
-		 */
-		Vector3 clipToViewPoint(const Vector2& clipPoint, float depth = 0.5f) const;
-
-		/**
-		 * @brief	Converts a point in normalized clip coordinates ([0, 1] range) to
-		 *			a point in screen space (pixels corresponding to render target attached 
-		 *			to the camera)
-		 */
-		Vector2I clipToScreenPoint(const Vector2& clipPoint) const;
-
-		/**
-		 * @brief	Converts a point in screen space (pixels corresponding to
-		 *			render target attached to the camera) to a ray in world space
-		 *			originating at the selected point on the camera near plane.
-		 */
-		Ray screenPointToRay(const Vector2I& screenPoint) const;
-
-		/**
-		 * @brief	Projects a point from view to clip space.
-		 */
-		Vector3 projectPoint(const Vector3& point) const;
-
-		/**
-		 * @brief	Un-projects a point in clip space to view space.
-		 */
-		Vector3 unprojectPoint(const Vector3& point) const;
-
-        static const float INFINITE_FAR_PLANE_ADJUST; /**< Small constant used to reduce far plane projection to avoid inaccuracies. */
-
-	protected:
-		CameraBase();
-
-		/**
-		 * @brief	Calculate projection parameters that are used when constructing the projection matrix.
-		 */
-		virtual void calcProjectionParameters(float& left, float& right, float& bottom, float& top) const;
-
-		/**
-		 * @brief	Recalculate frustum if dirty.
-		 */
-		virtual void updateFrustum() const;
-
-		/**
-		 * @brief	Recalculate frustum planes if dirty.
-		 */
-		virtual void updateFrustumPlanes() const;
-
-		/**
-		 * @brief	Update view matrix from parent position/orientation.
-		 *
-		 * @note	Does nothing when custom view matrix is set.
-		 */
-		virtual void updateView() const;
-
-		/**
-		 * @brief	Checks if the frustum requires updating.
-		 */
-		virtual bool isFrustumOutOfDate() const;
-
-		/**
-		 * @brief	Notify camera that the frustum requires to be updated.
-		 */
-		virtual void invalidateFrustum() const;
-
-		/**
-		 * @brief	Returns a rectangle that defines the viewport position and size, in pixels.
-		 */
-		virtual Rect2I getViewportRect() const = 0;
-
-		/**
-		 * @copydoc	CoreObject::markCoreDirty
-		 */
-		virtual void _markCoreDirty() { }
-
-    protected:
-		UINT64 mLayers; /**< Bitfield that can be used for filtering what objects the camera sees. */
-		UINT32 mCameraFlags; /**< Flags that further determine type of camera. */
-
-		Vector3 mPosition; /**< World space position. */
-		Quaternion mRotation; /**< World space rotation. */
-		bool mIsActive; /**< Is camera being rendered to. */
-
-		ProjectionType mProjType; /**< Type of camera projection. */
-		Radian mHorzFOV; /**< Horizontal field of view represents how wide is the camera angle. */
-		float mFarDist; /**< Clip any objects further than this. Larger value decreases depth precision at smaller depths. */
-		float mNearDist; /**< Clip any objects close than this. Smaller value decreases depth precision at larger depths. */
-		float mAspect; /**< Width/height viewport ratio. */
-		float mOrthoHeight; /**< Height in world units used for orthographic cameras. */
-		INT32 mPriority; /**< Determines in what order will the camera be rendered. Higher priority means the camera will be rendered sooner. */
-
-		bool mCustomViewMatrix; /**< Is custom view matrix set. */
-		bool mCustomProjMatrix; /**< Is custom projection matrix set. */
-
-		bool mFrustumExtentsManuallySet; /**< Are frustum extents manually set. */
-
-		mutable Matrix4 mProjMatrixRS; /**< Cached render-system specific projection matrix. */
-		mutable Matrix4 mProjMatrix; /**< Cached projection matrix that determines how are 3D points projected to a 2D viewport. */
-		mutable Matrix4 mViewMatrix; /**< Cached view matrix that determines camera position/orientation. */
-		mutable Matrix4 mProjMatrixRSInv;
-		mutable Matrix4 mProjMatrixInv;
-		mutable Matrix4 mViewMatrixInv;
-
-		mutable ConvexVolume mFrustum; /**< Main clipping planes describing cameras visible area. */
-		mutable bool mRecalcFrustum; /**< Should frustum be recalculated. */
-		mutable bool mRecalcFrustumPlanes; /**< Should frustum planes be recalculated. */
-		mutable bool mRecalcView; /**< Should view matrix be recalculated. */
-		mutable float mLeft, mRight, mTop, mBottom; /**< Frustum extents. */
-		mutable AABox mBoundingBox; /**< Frustum bounding box. */
-     };
-
-	/**
-	 * @copydoc	CameraBase
-	 */
-	class BS_EXPORT CameraCore : public CoreObjectCore, public CameraBase
-	{
-	public:
-		~CameraCore();
-
-		/**
-		 * @brief	Returns the viewport used by the camera.
-		 */	
-		SPtr<ViewportCore> getViewport() const { return mViewport; }
-
-	protected:
-		friend class Camera;
-
-		CameraCore(SPtr<RenderTargetCore> target = nullptr,
-			float left = 0.0f, float top = 0.0f, float width = 1.0f, float height = 1.0f);
-
-		CameraCore(const SPtr<ViewportCore>& viewport);
-
-		/**
-		 * @copydoc	CoreObjectCore::initialize
-		 */
-		void initialize() override;
-
-		/**
-		 * @copydoc	CameraBase
-		 */
-		virtual Rect2I getViewportRect() const override;
-
-		/**
-		 * @copydoc	CoreObject::syncToCore
-		 */
-		void syncToCore(const CoreSyncData& data) override;
-
-		SPtr<ViewportCore> mViewport;
-	};
-
-	/**
-	 * @copydoc	CameraBase
-	 */
-	class BS_EXPORT Camera : public IReflectable, public CoreObject, public CameraBase
-    {
-    public:
-		/**
-		 * @brief	Returns the viewport used by the camera.
-		 */	
-		ViewportPtr getViewport() const { return mViewport; }
-
-		/**
-		 * @brief	Determines whether this is the main application camera. Main camera controls the final render
-		 *			surface that is displayed to the user.
-		 */	
-		bool isMain() const { return mMain; }
-
-		/**
-		 * @brief	Marks or unmarks this camera as the main application camera. Main camera controls the final render
-		 *			surface that is displayed to the user.
-		 */	
-		void setMain(bool main) { mMain = main; }
-
-		/**
-		 * @brief	Retrieves an implementation of a camera handler usable only from the
-		 *			core thread.
-		 */
-		SPtr<CameraCore> getCore() const;
-
-		/**
-	     * @brief	Returns the hash value that can be used to identify if the internal data needs an update.
-		 */
-		UINT32 _getLastModifiedHash() const { return mLastUpdateHash; }
-
-		/**
-	     * @brief	Sets the hash value that can be used to identify if the internal data needs an update.
-		 */
-		void _setLastModifiedHash(UINT32 hash) { mLastUpdateHash = hash; }
-
-		/**
-		 * @brief	Creates a new camera that renders to the specified portion of the provided render target.
-		 */
-		static CameraPtr create(RenderTargetPtr target = nullptr,
-			float left = 0.0f, float top = 0.0f, float width = 1.0f, float height = 1.0f);
-
-	protected:
-		Camera(RenderTargetPtr target = nullptr,
-			float left = 0.0f, float top = 0.0f, float width = 1.0f, float height = 1.0f);
-
-		/**
-		 * @copydoc	CameraBase
-		 */
-		virtual Rect2I getViewportRect() const override;
-
-		/**
-		 * @copydoc	CoreObject::createCore
-		 */
-		SPtr<CoreObjectCore> createCore() const override;
-
-		/**
-		 * @copydoc	CoreObject::markCoreDirty
-		 */
-		void _markCoreDirty() override;
-
-		/**
-		 * @copydoc	CoreObject::syncToCore
-		 */
-		CoreSyncData syncToCore(FrameAlloc* allocator) override;
-
-		/**
-		 * @copydoc	CoreObject::getCoreDependencies
-		 */
-		void getCoreDependencies(Vector<CoreObject*>& dependencies) override;
-
-		/**
-		 * @brief	Creates a new camera without initializing it.
-		 */
-		static CameraPtr createEmpty();
-
-		ViewportPtr mViewport; /**< Viewport that describes 2D rendering surface. */
-		bool mMain;
-		UINT32 mLastUpdateHash;
-
-		/************************************************************************/
-		/* 								RTTI		                     		*/
-		/************************************************************************/
-	public:
-		friend class CameraRTTI;
-		static RTTITypeBase* getRTTIStatic();
-		virtual RTTITypeBase* getRTTI() const override;
-     };
-}

+ 0 - 134
BansheeEngine/Include/BsCursor.h

@@ -1,134 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsPrerequisites.h"
-#include "BsModule.h"
-#include "BsPixelData.h"
-#include "BsVector2I.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	Allows you to manipulate the platform cursor in various ways.
-	 * 			
-	 * @note	Thread safe.
-	 */
-	class BS_EXPORT Cursor : public Module<Cursor>
-	{
-		/**
-		 * @brief	Internal container for data about a single cursor icon.
-		 */
-		struct CustomIcon
-		{
-			CustomIcon() {}
-			CustomIcon(const PixelData& pixelData, const Vector2I& hotSpot)
-				:hotSpot(hotSpot), pixelData(pixelData)
-			{ }
-
-			Vector2I hotSpot;
-			PixelData pixelData;
-		};
-
-	public:
-		Cursor();
-
-		/**
-		 * @brief	Moves the cursor to the specified screen position.
-		 */
-		void setScreenPosition(const Vector2I& screenPos);
-
-		/**
-		 * @brief	Retrieves the cursor position in screen coordinates.
-		 */
-		Vector2I getScreenPosition();
-
-		/**
-		 * @brief	Hides the cursor.
-		 */
-		void hide();
-
-		/**
-		 * @brief	Shows the cursor.
-		 */
-		void show();
-
-		/**
-		 * @brief	Limit cursor movement to the specified window.
-		 */
-		void clipToWindow(const RenderWindow& window);
-
-		/**
-		 * @brief	Limit cursor movement to specific area on the screen.
-		 */
-		void clipToRect(const Rect2I& screenRect);
-
-		/**
-		 * @brief	Disables cursor clipping that was set using any of the "clipTo*" methods.
-		 */
-		void clipDisable();
-		
-		/**
-		 * @brief	Sets a cursor icon. Uses one of the built-in cursor types.
-		 */
-		void setCursor(CursorType type);
-
-		/**
-		 * @brief	Sets a cursor icon. Uses one of the manually registered icons.
-		 * 			
-		 * @param	name		The name to identify the cursor, one set previously by calling "setCursorIcon".
-		 */
-		void setCursor(const String& name);
-
-		/**
-		 * @brief	Registers a new custom cursor icon you can then set by calling "setCursor".
-		 *
-		 * @param	name		The name to identify the cursor.
-		 * @param 	pixelData	Cursor image data.
-		 * @param	hotSpot		Offset on the cursor image to where the actual input happens (e.g. tip of the Arrow cursor).
-		 * 						
-		 * @note	Stores an internal copy of the pixel data. Clear it by calling "removeCursorIcon".
-		 * 			If a custom icon with the same name already exists it will be replaced.
-		 */
-		void setCursorIcon(const String& name, const PixelData& pixelData, const Vector2I& hotSpot);
-
-		/**
-		 * @brief	Registers a new custom cursor icon you can then set by calling "setCursor".
-		 *
-		 * @param	type		One of the built-in cursor types.
-		 * @param 	pixelData	Cursor image data.
-		 * @param	hotSpot		Offset on the cursor image to where the actual input happens (e.g. tip of the Arrow cursor).
-		 * 						
-		 * @note	Stores an internal copy of the pixel data. Clear it by calling "removeCursorIcon".
-		 * 			If a custom icon with the same type already exists it will be replaced.
-		 */
-		void setCursorIcon(CursorType type, const PixelData& pixelData, const Vector2I& hotSpot);
-
-		/**
-		 * @brief	Removes a custom cursor icon and releases any data associated with it.
-		 */
-		void clearCursorIcon(const String& name);
-
-		/**
-		 * @brief	Removes a custom cursor icon and releases any data associated with it. Restores
-		 * 			original icon associated with this cursor type.
-		 */
-		void clearCursorIcon(CursorType type);
-
-	private:
-		/**
-		 * @brief	Restores the default cursor icon for the specified cursor type.
-		 */
-		void restoreCursorIcon(CursorType type);
-
-		/**
-		 * @brief	Sends the cursor image to the OS, making it active.
-		 */
-		void updateCursorImage();
-
-		UnorderedMap<String, UINT32> mCustomIconNameToId;
-		UnorderedMap<UINT32, CustomIcon> mCustomIcons;
-		UINT32 mNextUniqueId;
-		INT32 mActiveCursorId;
-	};
-}

+ 0 - 45
BansheeEngine/Include/BsGUICommandEvent.h

@@ -1,45 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsPrerequisites.h"
-
-namespace BansheeEngine
-{
-	/** @cond INTERNAL */
-	/** @addtogroup GUI
-	 *  @{
-	 */
-
-	/**	Type of valid command events. */
-	enum class GUICommandEventType
-	{
-		Redraw, FocusLost, FocusGained, MoveLeft, MoveRight, MoveUp, MoveDown, 
-		SelectLeft, SelectRight, SelectUp, SelectDown, Escape, Delete, Backspace, Return, Confirm
-	};
-
-	/**
-	 * Holds data about a GUI command event. Command events are special events with a more specific purpose than general
-	 * input events.
-	 */
-	class BS_EXPORT GUICommandEvent
-	{
-	public:
-		GUICommandEvent()
-			:mType(GUICommandEventType::Redraw)
-		{ }
-
-		/**	Returns type describing what kind of event this is. */
-		GUICommandEventType getType() const { return mType; }
-	private:
-		friend class GUIManager;
-
-		/**	Sets type describing what kind of event this is. */
-		void setType(GUICommandEventType type) { mType = type; }
-
-		GUICommandEventType mType;
-	};
-
-	/** @} */
-	/** @endcond */
-}

+ 0 - 46
BansheeEngine/Include/BsGUIHelper.h

@@ -1,46 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsPrerequisites.h"
-#include "BsTextSprite.h"
-#include "BsGUIContent.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	Contains various helper methods used by GUI.
-	 */
-	class BS_EXPORT GUIHelper
-	{
-	public:
-		/**
-		 * @brief	Calculates optimal content size by returning the nearest valid size to the provided value.
-		 *
-		 * @param	contentSize		Wanted content size. This will be limited by minimal constraints of the style and layout options.
-		 * @param	style			Style to use for determining size constraints.
-		 * @param	dimensions		Dimension constraints of a GUI element.
-		 */
-		static Vector2I calcOptimalContentsSize(const Vector2I& contentSize, const GUIElementStyle& style, const GUIDimensions& dimensions);
-
-		/**
-		 * @brief	Calculates optimal content size for the provided content using the provided style and layout options for constraints.
-		 *
-		 * @param	content			Content to calculate size for.
-		 * @param	style			Style to use for determining size constraints.
-		 * @param	dimensions		Dimension constraints of a GUI element.
-		 * @param	state			State of the GUI element in case the content changes according to state.
-		 */
-		static Vector2I calcOptimalContentsSize(const GUIContent& content, const GUIElementStyle& style, 
-			const GUIDimensions& dimensions, GUIElementState state = GUIElementState::Normal);
-
-		/**
-		 * @brief	Calculates optimal content size for the provided text using the provided style and layout options for constraints.
-		 *
-		 * @param	text			Text to calculate size for.
-		 * @param	style			Style to use for determining size constraints.
-		 * @param	dimensions		Dimension constraints of a GUI element.
-		 */
-		static Vector2I calcOptimalContentsSize(const WString& text, const GUIElementStyle& style, const GUIDimensions& dimensions);
-	};
-}

+ 0 - 339
BansheeEngine/Include/BsGUIInputBox.h

@@ -1,339 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsPrerequisites.h"
-#include "BsGUIElement.h"
-#include "BsImageSprite.h"
-#include "BsTextSprite.h"
-#include "BsVirtualInput.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	Input box is a GUI element that accepts Unicode textual input. It can be
-	 *			single or multi-line and handles various types of text manipulation.
-	 */
-	class BS_EXPORT GUIInputBox : public GUIElement
-	{
-		/**
-		 * @brief	Possible visual states the input box can be in.
-		 */
-		enum class State
-		{
-			Normal,
-			Hover,
-			Focused
-		};
-
-	public:
-		/**
-		 * Returns type name of the GUI element used for finding GUI element styles. 
-		 */
-		static const String& getGUITypeName();
-
-		/**
-		 * Creates a new input box.
-		 *
-		 * @param	multiline		If true the input box can be of arbitrary height and will accept multiple lines of text.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style for this element is used.
-		 */
-		static GUIInputBox* create(bool multiline = false, const String& styleName = StringUtil::BLANK);
-
-		/**
-		 * Creates a new input box.
-		 *
-		 * @param	multiline		If true the input box can be of arbitrary height and will accept multiple lines of text.
-		 * @param	options			Options that allow you to control how is the element positioned and sized.
-		 *							This will override any similar options set by style.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default button style is used.
-		 */
-		static GUIInputBox* create(bool multiline, const GUIOptions& options, const String& styleName = StringUtil::BLANK);
-
-
-		/**
-		 * Creates a new single-line input box.
-		 *
-		 * @param	options			Options that allow you to control how is the element positioned and sized.
-		 *							This will override any similar options set by style.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default button style is used.
-		 */
-		static GUIInputBox* create(const GUIOptions& options, const String& styleName = StringUtil::BLANK);
-
-		/**
-		 * @brief	Returns the text currently entered in the input box.
-		 */
-		const WString& getText() const { return mText; }
-
-		/**
-		 * @brief	Sets the text inside the input box. This will replace any current text.
-		 */
-		void setText(const WString& text);
-
-		/**
-		 * @brief	Sets an optional filter that can control what is allowed to be entered into the
-		 *			input box. Filter should return true if the provided string is valid and false otherwise.
-		 *			Set the filter to null to deactivate filtering.
-		 */
-		void setFilter(std::function<bool(const WString&)> filter) { mFilter = filter; }
-
-		/**
-		 * @copydoc	GUIElement::getElementType
-		 */
-		virtual ElementType _getElementType() const override { return ElementType::InputBox; }
-
-		/**
-		 * @copydoc	GUIElement::_getOptimalSize
-		 */
-		virtual Vector2I _getOptimalSize() const override;
-
-		/**
-		 * @brief	Triggered whenever input text has changed.
-		 */
-		Event<void(const WString&)> onValueChanged;
-
-		/**
-		 * @brief	Triggered when the user hits the Enter key with the input box in focus.
-		 */
-		Event<void()> onConfirm;
-	protected:
-		GUIInputBox(const String& styleName, const GUIDimensions& dimensions, bool multiline);
-		virtual ~GUIInputBox();
-
-		/**
-		 * @copydoc GUIElement::_getNumRenderElements()
-		 */
-		virtual UINT32 _getNumRenderElements() const override;
-
-		/**
-		 * @copydoc GUIElement::_getMaterial()
-		 */
-		virtual const SpriteMaterialInfo& _getMaterial(UINT32 renderElementIdx) const override;
-
-		/**
-		 * @copydoc GUIElement::_getNumQuads()
-		 */
-		virtual UINT32 _getNumQuads(UINT32 renderElementIdx) const override;
-
-		/**
-		 * @copydoc GUIElement::_fillBuffer()
-		 */
-		virtual void _fillBuffer(UINT8* vertices, UINT8* uv, UINT32* indices, UINT32 startingQuad, 
-			UINT32 maxNumQuads, UINT32 vertexStride, UINT32 indexStride, UINT32 renderElementIdx) const override;
-
-		/**
-		 * @copydoc GUIElement::updateRenderElementsInternal()
-		 */
-		virtual void updateRenderElementsInternal() override;
-
-		/**
-		 * @copydoc GUIElement::updateBounds()
-		 */
-		virtual void updateClippedBounds() override;
-
-		/**
-		 * @copydoc	GUIElement::mouseEvent
-		 */
-		virtual bool _mouseEvent(const GUIMouseEvent& ev) override;
-
-		/**
-		 * @copydoc	GUIElement::textInputEvent
-		 */
-		virtual bool _textInputEvent(const GUITextInputEvent& ev) override;
-
-		/**
-		 * @copydoc	GUIElement::commandEvent
-		 */
-		virtual bool _commandEvent(const GUICommandEvent& ev) override;
-
-		/**
-		 * @copydoc	GUIElement::virtualButtonEvent
-		 */
-		virtual bool _virtualButtonEvent(const GUIVirtualButtonEvent& ev) override;
-
-		/**
-		 * @brief	Returns how much to offset text due to scrolling.
-		 *
-		 * @note	This is used when text is larger than the input box itself. As the
-		 *			caret moves the text will scroll so that the caret remains visible, and
-		 *			how much scroll is applied is determined by this value.
-		 */
-		virtual Vector2I _getTextInputOffset() const override;
-
-		/**
-		 * @brief	Returns rectangle in which the text can be displayed, in local
-		 *			coordinates (i.e. text will start at 0, 0).
-		 */
-		virtual Rect2I _getTextInputRect() const override;
-
-		/**
-		 * @copydoc	GUIElement::_getRenderElementDepth
-		 */
-		virtual UINT32 _getRenderElementDepth(UINT32 renderElementIdx) const override;
-
-		/**
-		 * @copydoc	GUIElement::_getRenderElementDepthRange
-		 */
-		virtual UINT32 _getRenderElementDepthRange() const override;
-
-		/**
-		 * @copydoc	GUIElement::_hasCustomCursor
-		 */
-		virtual bool _hasCustomCursor(const Vector2I position, CursorType& type) const override;
-
-		/**
-		 * @copydoc	GUIElement::getContextMenu
-		 */
-		virtual GUIContextMenuPtr _getContextMenu() const override;
-	private:
-		/**
-		 * @brief	Retrieves a sprite from a render element index, and a local render element index
-		 *			that represents render element within the returned sprite.
-		 */
-		Sprite* renderElemToSprite(UINT32 renderElemIdx, UINT32& localRenderElemIdx) const;
-
-		/**
-		 * @brief	Returns offset at which is the element with the provided render element index.
-		 *			Offset is relative to parent widget.
-		 */
-		Vector2I renderElemToOffset(UINT32 renderElemIdx) const;
-
-		/**
-		 * @brief	Returns a clip rectangle that can be used for clipping the render element
-		 *			with the provided index. Rectangle is in local coordiantes relative to
-		 *			element origin.
-		 */
-		Rect2I renderElemToClipRect(UINT32 renderElemIdx) const;
-
-		/**
-		 * @brief	Inserts a new string into the current text at the specified index.
-		 */
-		void insertString(UINT32 charIdx, const WString& string);
-
-		/**
-		 * @brief	Inserts a new character into the current text at the specified index.
-		 */
-		void insertChar(UINT32 charIdx, UINT32 charCode);
-
-		/**
-		 * @brief	Erases a single character at the specified index.
-		 */
-		void eraseChar(UINT32 charIdx);
-
-		/**
-		 * @brief	Deletes text that is currently selected.
-		 * 			
-		 * @param	internal	If internal not filter will be applied after the text is deleted, and no event will be 
-		 * 						triggered either.
-		 */
-		void deleteSelectedText(bool internal = false);
-
-		/**
-		 * @brief	Returns currently selected text.
-		 */
-		WString getSelectedText();
-
-		/**
-		 * @brief	Shows the input caret. You must position the caret manually after showing it.
-		 */
-		void showCaret();
-
-		/**
-		 * @brief	Hides the input caret.
-		 */
-		void hideCaret();
-
-		/**
-		 * @brief	Shows selection with the specified anchor position. You must
-		 *			position selection start and end before selection will actually render.
-		 *			Anchor position determines selection behavior as the user moves the selection
-		 *			with the keyboard.
-		 */
-		void showSelection(UINT32 anchorCaretPos);
-
-		/**
-		 * @brief	Removes any active selection.
-		 */
-		void clearSelection();
-
-		/**
-		 * @brief	Adjusts the text offset (scroll) so that the caret is visible.
-		 */
-		void scrollTextToCaret();
-
-		/**
-		 * @brief	Clamps the text offset (scroll)	so that the text fits in the
-		 *			provided bounds nicely with minimal white space.
-		 */
-		void clampScrollToBounds(Rect2I unclippedTextBounds);
-
-		/**
-		 * @brief	Returns offset at which to render the text. Relative to parent widget.
-		 */
-		Vector2I getTextOffset() const;
-
-		/**
-		 * @brief	Returns rectangle used for clipping the text. Relative to element.
-		 */
-		Rect2I getTextClipRect() const;
-
-		/**
-		 * @brief	Returns text sprite descriptor determining how is text sprite created.
-		 */
-		TEXT_SPRITE_DESC getTextDesc() const;
-
-		/**
-		 * @brief	Returns currently active input box texture, depending on active state.
-		 */
-		const HSpriteTexture& getActiveTexture() const;
-		
-		/**
-		 * @brief	Returns currently active input box text color, depending on active state.
-		 */
-		Color getActiveTextColor() const;
-
-		/**
-		 * @brief	Cuts currently selected text to clipboard.
-		 */
-		void cutText();
-
-		/**
-		 * @brief	Copies currently selected text to clipboard.
-		 */
-		void copyText();
-
-		/**
-		 * @brief	Inserts text from clipboard to current caret location.
-		 */
-		void pasteText();
-
-	private:
-		static VirtualButton mCopyVB;
-		static VirtualButton mPasteVB;
-		static VirtualButton mCutVB;
-		static VirtualButton mSelectAllVB;
-
-		// Sprites
-		ImageSprite* mImageSprite;
-		TextSprite* mTextSprite;
-		bool mIsMultiline;
-		Vector2I mTextOffset;
-		bool mHasFocus;
-		bool mIsMouseOver;
-		State mState;
-
-		IMAGE_SPRITE_DESC mImageDesc;
-		WString mText;
-		std::function<bool(const WString&)> mFilter;
-
-		bool mCaretShown;
-		bool mSelectionShown;
-		bool mDragInProgress;
-	};
-}

+ 0 - 134
BansheeEngine/Include/BsGUIInputCaret.h

@@ -1,134 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsPrerequisites.h"
-#include "BsGUIInputTool.h"
-#include "BsTextSprite.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	When paired with a character index determines should the caret be placed
-	 *			before or after it.
-	 */
-	enum CaretPos
-	{
-		CARET_BEFORE,
-		CARET_AFTER
-	};
-
-	/**
-	 * @brief	Helper class for dealing with caret for text input boxes and similar
-	 *			controls.
-	 */
-	class BS_EXPORT GUIInputCaret : public GUIInputTool
-	{
-	public:
-		GUIInputCaret();
-		~GUIInputCaret();
-
-		/**
-		 * @brief	Returns sprite used for rendering the caret.
-		 */
-		ImageSprite* getSprite() const { return mCaretSprite; }
-
-		/**
-		 * @brief	Returns offset relative to parent widget that determines placement of the
-		 *			caret sprite.
-		 */
-		Vector2I getSpriteOffset() const;
-
-		/**
-		 * @brief	Returns clip rectangle relative to parent GUI element that determines
-		 *			how is caret sprite clipped.
-		 *
-		 * @param	parentClipRect	Clip rectangle of the parent GUI element. Caret clip rectangle will additionally be
-		 *							clipped by this area. Relative to parent element.
-		 */
-		Rect2I getSpriteClipRect(const Rect2I& parentClipRect) const;
-
-		/**
-		 * @brief	Rebuilts internal caret sprite using current properties.
-		 */
-		void updateSprite();
-
-		/**
-		 * @brief	Moves caret to the start of text.
-		 */
-		void moveCaretToStart();
-
-		/**
-		 * @brief	Moves caret to the end of text.
-		 */
-		void moveCaretToEnd();
-
-		/**
-		 * @brief	Moves caret one character to the left, if not at start already.
-		 */
-		void moveCaretLeft();
-
-		/**
-		 * @brief	Moves caret one character to the right, if not at end already.
-		 */
-		void moveCaretRight();
-
-		/**
-		 * @brief	Moves caret one line up if possible.
-		 */
-		void moveCaretUp();
-
-		/**
-		 * @brief	Moves caret one line down if possible.
-		 */
-		void moveCaretDown();
-
-		/**
-		 * @brief	Moves caret to the character nearest to the specified position.
-		 *			Position is relative to parent widget.
-		 */
-		void moveCaretToPos(const Vector2I& pos);
-
-		/**
-		 * @brief	Moves the caret to a specific character index.
-		 *
-		 * @param	charIdx		Index of the character to move the caret to.
-		 * @param	caretPos	Whether to place the caret before or after the character.
-		 */
-		void moveCaretToChar(UINT32 charIdx, CaretPos caretPos);
-
-		/**
-		 * @brief	Returns character index after the current caret position.
-		 */
-		UINT32 getCharIdxAtCaretPos() const;
-
-		/**
-		 * @brief	Returns current caret position, relative to parent widget. Requires
-		 *			you to provide offset to text the caret is used for (also relative to parent widget).
-		 */
-		Vector2I getCaretPosition(const Vector2I& offset) const;
-
-		/**
-		 * @brief	Returns height of the caret, in pixels.
-		 */
-		UINT32 getCaretHeight() const;
-
-		/**
-		 * @brief	Returns true if the character after the caret is  newline.
-		 */
-		bool isCaretAtNewline() const;
-
-		/**
-		 * @brief	Returns maximum valid caret index.
-		 */
-		UINT32 getMaxCaretPos() const;
-
-		/**
-		 * @brief	Returns current caret index (not equal to character index).
-		 */
-		UINT32 getCaretPos() const { return mCaretPos; }
-	private:
-		UINT32 mCaretPos;
-		ImageSprite* mCaretSprite;
-	};
-}

+ 0 - 119
BansheeEngine/Include/BsGUIInputSelection.h

@@ -1,119 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsPrerequisites.h"
-#include "BsGUIInputTool.h"
-#include "BsTextSprite.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	Helper class for dealing with text selection for text input boxes and similar
-	 *			controls.
-	 */
-	class BS_EXPORT GUIInputSelection : public GUIInputTool
-	{
-	public:
-		GUIInputSelection();
-		~GUIInputSelection();
-
-		/**
-		 * @brief	Returns sprites representing the currently selected areas
-		 */
-		const Vector<ImageSprite*>& getSprites() const { return mSprites; }
-
-		/**
-		 * @brief	Returns how much to offset the sprite with the specified index, relative to
-		 *			the parent widget.
-		 */
-		Vector2I GUIInputSelection::getSelectionSpriteOffset(UINT32 spriteIdx) const;
-
-		/**
-		 * @brief	Returns clip rectangle relative to parent GUI element for the sprite with the specified index. 
-		 *
-		 * @param	spriteIdx	Index of the sprite to retrieve the clip rectangle for.
-		 * @param	parentClipRect	Clip rectangle of the parent GUI element. Selection clip rectangle will additionally be
-		 *							clipped by this area. Relative to parent element.
-		 */
-		Rect2I GUIInputSelection::getSelectionSpriteClipRect(UINT32 spriteIdx, const Rect2I& parentClipRect) const;
-
-		/**
-		 * @brief	Recreates the selection clip sprites.
-		 */
-		void updateSprite();
-
-		/**
-		 * @brief	Shows the selection using the specified anchor. By default this will select 0 characters so you
-		 *			must manually move the selection using "moveSelectionToCaret" before anything is considered selected.
-		 *
-		 * @param	anchorCaretPos	Anchor position which to initially select. Anchor position determines selection area behavior
-		 *							when the input caret moves (determines whether left or right side of the selection will move with the caret).
-		 */
-		void showSelection(UINT32 anchorCaretPos);
-
-		/**
-		 * @brief	Clears the currently active selection.
-		 */
-		void clearSelection();
-
-		/**
-		 * @brief	Moves the selection to caret. Selected area will be from the anchor provided in
-		 *			"showSelection" to the caret position provided here.
-		 */
-		void moveSelectionToCaret(UINT32 caretPos);
-
-		/**
-		 * @brief	Checks is anything selected.
-		 */
-		bool isSelectionEmpty() const;
-
-		/**
-		 * @brief	Selects all available text.
-		 */
-		void selectAll();
-
-		/**
-		 * @brief	Starts selection drag at the specified caret position. Call
-		 *			"selectionDragUpdate" and "selectionDragEnd" as the drag operation
-		 *			progresses.
-		 */
-		void selectionDragStart(UINT32 caretPos);
-
-		/**
-		 * @brief	Updates selection drag at the specified caret position. 
-		 */
-		void selectionDragUpdate(UINT32 caretPos);
-
-		/**
-		 * @brief	Stops selection drag.
-		 */
-		void selectionDragEnd();
-
-		/**
-		 * @brief	Gets caret index of selection start.
-		 */
-		UINT32 getSelectionStart() const { return mSelectionStart; }
-
-		/**
-		 * @brief	Gets caret index of selection end.
-		 */
-		UINT32 getSelectionEnd() const { return mSelectionEnd; }
-
-	private:
-		/**
-		 * @brief	Returns rectangles describing the currently selected areas. Rectangles
-		 *			are relative to parent GUI element.
-		 */
-		Vector<Rect2I> getSelectionRects() const;
-
-	private:
-		UINT32 mSelectionStart;
-		UINT32 mSelectionEnd;
-		UINT32 mSelectionAnchor;
-		UINT32 mSelectionDragAnchor;
-
-		Vector<Rect2I> mSelectionRects;
-		Vector<ImageSprite*> mSprites;
-	};
-}

+ 0 - 159
BansheeEngine/Include/BsGUIInputTool.h

@@ -1,159 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsPrerequisites.h"
-#include "BsTextSprite.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	Represents a single line of text used by the input tools.
-	 */
-	class BS_EXPORT GUIInputLineDesc
-	{
-	public:
-		/**
-		 * @brief	Constructs a new input line description.
-		 *
-		 * @param	startChar		Index of the first character on the line.
-		 * @param	endChar			Index of the last character on the line.
-		 * @param	lineHeight		Height of the line in pixels.
-		 * @param	lineYStart		Vertical offset from the top of the text to the start of this line (0 for first line usually)
-		 * @param	includesNewLine	True if the lines end character is a newline character.
-		 */
-		GUIInputLineDesc(UINT32 startChar, UINT32 endChar, UINT32 lineHeight, INT32 lineYStart, bool includesNewline);
-
-		/**
-		 * @brief	Returns index of the last character on the line. If lines contains a newline character it will be returned
-		 *			unless you set "includeNewLine" to false, in which case the next end-most character is returned.
-		 *			(If newline is the only character on the line, it's index will still be returned).
-		 */
-		UINT32 getEndChar(bool includeNewline = true) const;
-
-		/**
-		 * @brief	Returns index of the first character on the line.
-		 */
-		UINT32 getStartChar() const { return mStartChar; }
-
-		/**
-		 * @brief	Returns line height in pixels.
-		 */
-		UINT32 getLineHeight() const { return mLineHeight; }
-
-		/**
-		 * @brief	Returns vertical offset from the top of the text to the start of this line (0 for first line usually).
-		 */
-		INT32 getLineYStart() const { return mLineYStart; }
-
-		/**
-		 * @brief	Checks is the specified character index a newline. Character index is a global character index,
-		 *			not relative to the start character index of this line. If the index is out of range of this line
-		 *			character indices, it will always return false.
-		 */
-		bool isNewline(UINT32 charIdx) const;
-
-		/**
-		 * @brief	Returns true if the last character on this line is a newline.
-		 */
-		bool hasNewlineChar() const { return mIncludesNewline; }
-
-	private:
-		UINT32 mStartChar;
-		UINT32 mEndChar;
-		UINT32 mLineHeight;
-		INT32 mLineYStart;
-		bool mIncludesNewline;
-	};
-
-	class BS_EXPORT GUIInputTool
-	{
-	public:
-		GUIInputTool();
-		~GUIInputTool();
-
-		/**
-		 * @brief	Updates the input tool with new text descriptor and parent GUI element. These
-		 *			values will be used for all further calculations.
-		 */
-		void updateText(const GUIElement* element, const TEXT_SPRITE_DESC& textDesc);
-	protected:
-		/**
-		 * @brief	Returns text offset relative to parent widget.
-		 */
-		Vector2I getTextOffset() const;
-
-		/**
-		 * @brief	Returns number of lines in the current text string.
-		 */
-		UINT32 getNumLines() const { return (UINT32)mLineDescs.size(); }
-
-		/**
-		 * @brief	Returns descriptor for a line with the specified index.
-		 */
-		const GUIInputLineDesc& getLineDesc(UINT32 lineIdx) const { return mLineDescs.at(lineIdx); }
-
-		/**
-		 * @brief	Returns index of a line containing the specified character.
-		 *
-		 * @param	charIdx					Index of the character to look for.
-		 * @param	newlineCountsOnNextLine	If true, newline characters will return the next line
-		 *									and not the line they're actually on.
-		 */
-		UINT32 getLineForChar(UINT32 charIdx, bool newlineCountsOnNextLine = false) const;
-
-		/**
-		 * @brief	Returns a rectangle containing position and size of the character with the provided
-		 *			index, relative to parent widget.
-		 */
-		Rect2I getCharRect(UINT32 charIdx) const;
-
-		/**
-		 * @brief	Returns a rectangle containing position and size of the character with the provided
-		 *			index, relative to parent element.
-		 */
-		Rect2I getLocalCharRect(UINT32 charIdx) const;
-
-		/**
-		 * @brief	Returns character index nearest to the specified position. Position should be relative
-		 *			to parent widget.
-		 */
-		INT32 getCharIdxAtPos(const Vector2I& pos) const;
-
-		/**
-		 * @brief	Returns true if the currently set text desctiptor is valid (has any characters).
-		 */
-		bool isDescValid() const;
-
-		/**
-		 * @brief	Gets a character index after the input index. Input index represents the empty areas between the characters. 
-		 *			Newline counts as a character. (e.g. 0 is before the first character, 1 is after the first character but before 
-		 *			the second, etc.)
-		 * 			
-		 * @note	This can return an out of range character index, in case the input index is specified after the last character.
-		 */
-		UINT32 getCharIdxAtInputIdx(UINT32 inputIdx) const;
-
-		/**
-		 * @brief	Checks is the specified character index a newline.
-		 */
-		bool isNewlineChar(UINT32 charIdx) const;
-
-		/**
-		 * @brief	Checks is the character after the specified input index a newline.
-		 *
-		 * @see		getCharIdxAtInputIdx
-		 */
-		bool isNewline(UINT32 inputIdx) const;
-
-	protected:
-		const GUIElement* mElement;
-
-		Vector2* mQuads;
-		UINT32 mNumQuads;
-
-		TEXT_SPRITE_DESC mTextDesc;
-
-		Vector<GUIInputLineDesc> mLineDescs;
-	};
-}

+ 0 - 48
BansheeEngine/Include/BsGUILayoutUtility.h

@@ -1,48 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsPrerequisites.h"
-#include "BsRect2I.h"
-#include "BsVector2I.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * Helper class that performs various operations related to
-	 * GUILayout and GUI element sizing/placement.
-	 */
-	class BS_EXPORT GUILayoutUtility
-	{
-	public:
-		/**
-		 * Calculates optimal size of a GUI element. This is the size that allows the GUI element to properly display all of
-		 * its content.
-		 */
-		static Vector2I calcOptimalSize(const GUIElementBase* elem);
-
-		/**
-		 * @brief	Calculates the size of elements in a layout of the specified size.
-		 * 
-		 * @param	width				Width of the layout.
-		 * @param	height				Height of the layout.
-		 * @param	layout				Parent layout of the children to calculate the area for.
-		 * @param	updateOptimalSizes	Optimization (doesn't change the results). Set to false if
-		 *								GUIElementBase::_updateOptimalLayoutSizes was already called and optimal sizes are 
-		 *								up to date to avoid recalculating them. (Normally that is true if this is being 
-		 *								called during GUI layout update)
-		 */
-		static Vector2I calcActualSize(UINT32 width, UINT32 height, GUILayout* layout, bool updateOptimalSizes = true);
-
-	private:
-		/**
-		 * @brief	Calculates the size of elements in a layout of the specified size. Assumes the layout and all its children
-		 *			have updated optimal sizes.
-		 * 
-		 * @param	width				Width of the layout.
-		 * @param	height				Height of the layout.
-		 * @param	layout				Parent layout of the children to calculate the area for.
-		 */
-		static Vector2I calcActualSizeInternal(UINT32 width, UINT32 height, GUILayout* layout);
-	};
-}

+ 0 - 150
BansheeEngine/Include/BsGUIListBox.h

@@ -1,150 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsPrerequisites.h"
-#include "BsGUIButtonBase.h"
-#include "BsImageSprite.h"
-#include "BsTextSprite.h"
-#include "BsEvent.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	List box GUI element which when active opens a drop down
-	 *			selection with provided elements.
-	 */
-	class BS_EXPORT GUIListBox : public GUIButtonBase
-	{
-	public:
-		/**
-		 * Returns type name of the GUI element used for finding GUI element styles. 
-		 */
-		static const String& getGUITypeName();
-
-		/**
-		 * @brief	Creates a new listbox with the provided elements.
-		 *
-		 * @param	elements		Elements to display in the list box.
-		 * @param	multiselect		Determines should the listbox allow multiple elements to be selected or just one.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUIListBox* create(const Vector<HString>& elements, bool multiselect = false, 
-			const String& styleName = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new listbox with the provided elements.
-		 *
-		 * @param	elements		Elements to display in the list box.
-		 * @param	multiselect		Determines should the listbox allow multiple elements to be selected or just one.
-		 * @param	options			Options that allow you to control how is the element positioned and sized.
-		 *							This will override any similar options set by style.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUIListBox* create(const Vector<HString>& elements, bool multiselect, 
-			const GUIOptions& options, const String& styleName = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new single-select listbox with the provided elements.
-		 *
-		 * @param	elements		Elements to display in the list box.
-		 * @param	options			Options that allow you to control how is the element positioned and sized.
-		 *							This will override any similar options set by style.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUIListBox* create(const Vector<HString>& elements, const GUIOptions& options, 
-			const String& styleName = StringUtil::BLANK);
-
-		/**
-		 * @brief	Checks whether the listbox supports multiple selected elements at once.
-		 */
-		bool isMultiselect() const { return mIsMultiselect; }
-
-		/**
-		 * @brief	Changes the list box elements.
-		 */
-		void setElements(const Vector<HString>& elements);
-
-		/**
-		 * @brief	Makes the element with the specified index selected.
-		 */
-		void selectElement(UINT32 idx);
-
-		/**
-		 * @brief	Deselect element the element with the specified index. Only relevant for multi-select list boxes.
-		 */
-		void deselectElement(UINT32 idx);
-
-		/**
-		 * @brief	Returns states of all element in the list box (enabled or disabled).
-		 */
-		const Vector<bool>& getElementStates() const { return mElementStates; }
-
-		/**
-		 * @brief	Sets states for all list box elements. Only valid for multi-select list boxes. Number of states
-		 * 			must match number of list box elements.
-		 */
-		void setElementStates(const Vector<bool>& states);
-
-		/**
-		 * @copydoc	GUIButtonBase::getElementType
-		 */
-		virtual ElementType _getElementType() const override { return ElementType::ListBox; }
-
-		/**
-		 * @brief	Triggered whenever user selects or deselects an element in the list box. Returned index
-		 *			maps to the element in the elements array that the list box was initialized with.
-		 */
-		Event<void(UINT32, bool)> onSelectionToggled;
-	protected:
-		~GUIListBox();
-
-	private:
-		GUIListBox(const String& styleName, const Vector<HString>& elements, bool isMultiselect, 
-			const GUIDimensions& dimensions);
-
-		/**
-		 * @copydoc	GUIButtonBase::mouseEvent
-		 */
-		virtual bool _mouseEvent(const GUIMouseEvent& ev) override;
-
-		/**
-		 * @brief	Triggered when user clicks on an element.
-		 */
-		void elementSelected(UINT32 idx);
-
-		/**
-		 * @brief	Opens the list box drop down menu.
-		 */
-		void openListBox();
-
-		/**
-		 * @brief	Closes the list box drop down menu.
-		 */
-		void closeListBox();
-
-		/**
-		 * @brief	Called when the list box drop down menu is closed
-		 *			by external influence.
-		 */
-		void onListBoxClosed();
-
-		/**
-		 * @brief	Updates visible contents depending on selected element(s).
-		 */
-		void updateContents();
-
-	private:
-		Vector<HString> mElements;
-		Vector<bool> mElementStates;
-		GameObjectHandle<GUIDropDownMenu> mDropDownBox;
-
-		bool mIsMultiselect;
-	};
-}

+ 0 - 523
BansheeEngine/Include/BsGUIManager.h

@@ -1,523 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsPrerequisites.h"
-#include "BsGUIMouseEvent.h"
-#include "BsGUITextInputEvent.h"
-#include "BsGUICommandEvent.h"
-#include "BsGUIVirtualButtonEvent.h"
-#include "BsSprite.h"
-#include "BsModule.h"
-#include "BsColor.h"
-#include "BsMatrix4.h"
-#include "BsEvent.h"
-#include "BsMaterialParam.h"
-
-namespace BansheeEngine
-{
-	class GUIManagerCore;
-
-	/**
-	 * @brief	Manages the rendering and input of all GUI widgets in the scene. 
-	 * 			
-	 * @note	If adding or modifying GUIManager functionality ensure that GUIManager data never gets modified
-	 * 			outside of update() method or Input callbacks. If you need such functionality add temporary variables
-	 * 			that store you changes and then execute them delayed in update().  
-	 * 			
-	 *			This ensures that GUIElements don't recursively modify GUIManager while GUIManager is still using that data.
-	 *			
-	 *			e.g. setFocus usually gets called from within GUIElements, however we don't want elements in focus be modified immediately 
-	 *			since that setFocus call could have originated in sendCommandEvent and elements in focus array would be modified while
-	 *			still being iterated upon.
-	 *
-	 *			Internal class. Unless modifying internal engine systems you should have no need to access this class.
-	 */
-	class BS_EXPORT GUIManager : public Module<GUIManager>
-	{
-		/**
-		 * @brief	Valid states of a drag and drop operation
-		 */
-		enum class DragState
-		{
-			NoDrag,
-			HeldWithoutDrag,
-			Dragging
-		};
-
-		/**
-		 * @brief	GUI render data for a single viewport.
-		 */
-		struct GUIRenderData
-		{
-			GUIRenderData()
-				:isDirty(true)
-			{ }
-
-			Vector<TransientMeshPtr> cachedMeshes;
-			Vector<SpriteMaterialInfo> cachedMaterials;
-			Vector<GUIWidget*> cachedWidgetsPerMesh;
-			Vector<GUIWidget*> widgets;
-			bool isDirty;
-		};
-
-		/**
-		 * @brief	Render data for a single GUI group used for notifying the core GUI renderer.
-		 */
-		struct GUICoreRenderData
-		{
-			SPtr<TransientMeshCore> mesh;
-			SPtr<TextureCore> texture;
-			SpriteMaterial materialType;
-			Color tint;
-			Matrix4 worldTransform;
-		};
-
-		/**
-		 * @brief	Container for a GUI widget.
-		 */
-		struct WidgetInfo
-		{
-			WidgetInfo(GUIWidget* _widget)
-				:widget(_widget)
-			{ }
-
-			GUIWidget* widget;
-		};
-
-		/**
-		 * @brief	Container for data about a single GUI element and its widget.
-		 */
-		struct ElementInfo
-		{
-			ElementInfo(GUIElement* element, GUIWidget* widget)
-				:element(element), widget(widget)
-			{ }
-
-			GUIElement* element;
-			GUIWidget* widget;
-		};
-
-		/**
-		 * @brief	Container for data about a single GUI element and its widget currently under the pointer.
-		 */
-		struct ElementInfoUnderPointer
-		{
-			ElementInfoUnderPointer(GUIElement* element, GUIWidget* widget)
-				:element(element), widget(widget), usesMouseOver(false), 
-				receivedMouseOver(false), isHovering(false)
-			{ }
-
-			GUIElement* element;
-			GUIWidget* widget;
-			bool usesMouseOver;
-			bool receivedMouseOver;
-			bool isHovering;
-		};
-
-		/**
-		 * @brief	Container for GUI element in focus.
-		 */
-		struct ElementFocusInfo
-		{
-			GUIElement* element;
-			bool focus;
-		};
-
-	public:
-		GUIManager();
-		~GUIManager();
-
-		/**
-		 * @brief	Registers a newly created widget with the GUI manager.
-		 *			This should be called by every GUI widget on creation.
-		 */
-		void registerWidget(GUIWidget* widget);
-
-		/**
-		 * @brief	Unregisters a GUI widget from the GUI manager.
-		 *			This should be called by every GUI widget before getting deleted.
-		 */
-		void unregisterWidget(GUIWidget* widget);
-
-		/**
-		 * @brief	Called once per frame.
-		 */
-		void update();
-
-		/**
-		 * @brief	Queues the GUI element for destruction. Element will be destroyed during the next
-		 *			call to update().
-		 */
-		void queueForDestroy(GUIElement* element);
-
-		/**
-		 * @brief	Change the GUI element focus state.
-		 */
-		void setFocus(GUIElement* element, bool focus);
-
-		/**
-		 * @brief	Changes the color of the input caret used in input boxes and similar controls.
-		 */
-		void setCaretColor(const Color& color) { mCaretColor = color; updateCaretTexture(); }
-
-		/**
-		 * @brief	Changes the text selection highlight color used in input boxes and similar controls.
-		 */
-		void setTextSelectionColor(const Color& color) { mTextSelectionColor = color; updateTextSelectionTexture(); }
-
-		/**
-		 * @brief	Returns the default caret texture used for rendering the input caret sprite.
-		 */
-		const HSpriteTexture& getCaretTexture() const { return mCaretTexture; }
-
-		/**
-		 * @brief	Returns the default selection highlight texture used for rendering the selection highlight sprites.
-		 */
-		const HSpriteTexture& getTextSelectionTexture() const { return mTextSelectionTexture; }
-
-		/**
-		 * @brief	Checks is the input caret visible this frame.
-		 */
-		bool getCaretBlinkState() const { return mIsCaretOn; }
-
-		/**
-		 * @brief	Returns input caret helper tool that allows you to easily position and show
-		 *			an input caret in your GUI controls.
-		 */
-		GUIInputCaret* getInputCaretTool() const { return mInputCaret; }
-
-		/**
-		 * @brief	Returns input selection helper tool that allows you to easily position and show
-		 *			an input selection highlight in your GUI controls.
-		 */
-		GUIInputSelection* getInputSelectionTool() const { return mInputSelection; }
-
-		/**
-		 * @brief	Allows you to bridge GUI input from a GUI element into another render target.
-		 *
-		 * @param	renderTex 	The render target to which to bridge the input.
-		 * @param	element		The element from which to bridge input. Input will be transformed according to this
-		 * 						elements position and size. Provide nullptr if you want to remove a bridge for the specified widget.
-		 * 					
-		 * @note	This is useful if you use render textures, where your GUI is rendered off-
-		 * 			screen. In such case you need to display the render texture within another GUIElement
-		 * 			in a GUIWidget, but have no way of sending input to the render texture (normally
-		 * 			input is only sent to render windows). This allows you to change that - any GUIWidget
-		 * 			using the bridged render texture as a render target will then receive input when mouse
-		 * 			is over the specified element.
-		 * 			
-		 *			Bridged element needs to remove itself as the bridge when it is destroyed.
-		 */
-		void setInputBridge(const RenderTexture* renderTex, const GUIElement* element);
-
-		/**
-		 * @brief	Gets the core thread portion of the GUI manager, responsible for rendering
-		 * 			of GUI elements.
-		 */
-		GUIManagerCore* getCore() const { return mCore.load(std::memory_order_relaxed); }
-
-	private:
-		friend class GUIManagerCore;
-
-		/**
-		 * @brief	Recreates all dirty GUI meshes and makes them ready for rendering.
-		 */
-		void updateMeshes();
-
-		/**
-		 * @brief	Recreates the input caret texture.
-		 */
-		void updateCaretTexture();
-
-		/**
-		 * @brief	Recreates the input text selection highlight texture.
-		 */
-		void updateTextSelectionTexture();
-
-		/**
-		 * @brief	Destroys the core thread counterpart of the GUI manager.
-		 *
-		 * @param	core	Previously constructed core thread GUI manager instance.
-		 */
-		void destroyCore(GUIManagerCore* core);
-
-		/**
-		 * @brief	Destroys any elements or widgets queued for destruction.
-		 *
-		 * @note	Returns true if more elements have been added for destruction (will happen when destruction
-		 *			of one element queues up destruction of another).
-		 */
-		bool processDestroyQueue();
-
-		/**
-		 * @brief	Finds a GUI element under the pointer at the specified screen position. This method will also
-		 *			trigger pointer move/hover/leave events.
-		 *
-		 * @param	screenMousePos	Position of the pointer in screen coordinates.
-		 * @param	buttonStates	States of the three mouse buttons (left, right, middle).
-		 * @param	shift			Is shift key held.
-		 * @param	control			Is control key held.
-		 * @param	alt				Is alt key held.
-		 */
-		bool findElementUnderPointer(const Vector2I& screenMousePos, bool buttonStates[3], bool shift, bool control, bool alt);
-
-		/**
-		 * @brief	Called whenever a pointer (e.g. mouse cursor) is moved.
-		 */
-		void onPointerMoved(const PointerEvent& event);
-
-		/**
-		 * @brief	Called whenever a pointer button (e.g. mouse button) is released.
-		 */
-		void onPointerReleased(const PointerEvent& event);
-
-		/**
-		 * @brief	Called whenever a pointer button (e.g. mouse button) is pressed.
-		 */
-		void onPointerPressed(const PointerEvent& event);
-
-		/**
-		 * @brief	Called whenever a pointer button (e.g. mouse button) is double clicked.
-		 */
-		void onPointerDoubleClick(const PointerEvent& event);
-
-		/**
-		 * @brief	Called whenever a text is input.
-		 */
-		void onTextInput(const TextInputEvent& event);
-
-		/**
-		 * @brief	Called whenever an input command is input.
-		 */
-		void onInputCommandEntered(InputCommandType commandType);
-
-		/**
-		 * @brief	Called whenever a virtual button is pressed.
-		 */
-		void onVirtualButtonDown(const VirtualButton& button, UINT32 deviceIdx);
-
-		/**
-		 * @brief	Called by the drag and drop managed to notify us the drag ended.
-		 */
-		void onMouseDragEnded(const PointerEvent& event, DragCallbackInfo& dragInfo);
-
-		/**
-		 * @brief	Called when the specified window gains focus.
-		 */
-		void onWindowFocusGained(RenderWindow& win);
-
-		/**
-		 * @brief	Called when the specified window loses focus.
-		 */
-		void onWindowFocusLost(RenderWindow& win);
-
-		/**
-		 * @brief	Called when the mouse leaves the specified window.
-		 */
-		void onMouseLeftWindow(RenderWindow& win);
-
-		/**
-		 * @brief	Converts pointer buttons to mouse buttons.
-		 */
-		GUIMouseButton buttonToGUIButton(PointerEventButton pointerButton) const;
-
-		/**
-		 * @brief	Converts screen coordinates to coordinates relative to the specified widget.
-		 */
-		Vector2I getWidgetRelativePos(const GUIWidget* widget, const Vector2I& screenPos) const;
-
-		/**
-		 * @brief	Converts window coordinates to coordinates relative to the specified bridged widget.
-		 *			Returned coordinates will be relative to the bridge element.
-		 *
-		 * @param	If provided widget has no bridge, coordinates are returned as is.
-		 */
-		Vector2I windowToBridgedCoords(const GUIWidget& widget, const Vector2I& windowPos) const;
-
-		/**
-		 * @brief	Returns the parent render window of the specified widget.
-		 */
-		const RenderWindow* getWidgetWindow(const GUIWidget& widget) const;
-
-		/**
-		 * @brief	Hides the tooltip if any is shown.
-		 */
-		void hideTooltip();
-
-		/**
-		 * @brief	Sends a mouse event to the specified GUI element.
-		 *
-		 * @param	element	Element to send the event to.
-		 * @param	event	Event data.
-		 */
-		bool sendMouseEvent(GUIElement* element, const GUIMouseEvent& event);
-
-		/**
-		 * @brief	Sends a text input event to the specified GUI element.
-		 *
-		 * @param	element	Element to send the event to.
-		 * @param	event	Event data.
-		 */
-		bool sendTextInputEvent(GUIElement* element, const GUITextInputEvent& event);
-
-		/**
-		 * @brief	Sends a command event to the specified GUI element.
-		 *
-		 * @param	element	Element to send the event to.
-		 * @param	event	Event data.
-		 */
-		bool sendCommandEvent(GUIElement* element, const GUICommandEvent& event);
-
-		/**
-		 * @brief	Sends a virtual button event to the specified GUI element.
-		 *
-		 * @param	element	Element to send the event to.
-		 * @param	event	Event data.
-		 */
-		bool sendVirtualButtonEvent(GUIElement* element, const GUIVirtualButtonEvent& event);
-
-		static const UINT32 DRAG_DISTANCE;
-		static const float TOOLTIP_HOVER_TIME;
-
-		static const UINT32 MESH_HEAP_INITIAL_NUM_VERTS;
-		static const UINT32 MESH_HEAP_INITIAL_NUM_INDICES;
-
-		Vector<WidgetInfo> mWidgets;
-		UnorderedMap<const Viewport*, GUIRenderData> mCachedGUIData;
-		MeshHeapPtr mMeshHeap;
-
-		std::atomic<GUIManagerCore*> mCore;
-		bool mCoreDirty;
-
-		VertexDataDescPtr mVertexDesc;
-
-		Stack<GUIElement*> mScheduledForDestruction;
-
-		// Element and widget pointer is currently over
-		Vector<ElementInfoUnderPointer> mElementsUnderPointer;
-		Vector<ElementInfoUnderPointer> mNewElementsUnderPointer;
-
-		// Element and widget that's being clicked on
-		GUIMouseButton mActiveMouseButton;
-		Vector<ElementInfo> mActiveElements;
-		Vector<ElementInfo> mNewActiveElements;
-
-		// Element and widget that currently have the keyboard focus
-		Vector<ElementInfo> mElementsInFocus;
-		Vector<ElementInfo> mNewElementsInFocus;
-
-		Vector<ElementFocusInfo> mForcedFocusElements;
-
-		// Tooltip
-		bool mShowTooltip;
-		float mTooltipElementHoverStart;
-
-		GUIInputCaret* mInputCaret;
-		GUIInputSelection* mInputSelection;
-
-		bool mSeparateMeshesByWidget;
-		Vector2I mLastPointerScreenPos;
-
-		DragState mDragState;
-		Vector2I mLastPointerClickPos;
-		Vector2I mDragStartPos;
-
-		GUIMouseEvent mMouseEvent;
-		GUITextInputEvent mTextInputEvent;
-		GUICommandEvent mCommandEvent;
-		GUIVirtualButtonEvent mVirtualButtonEvent;
-
-		HSpriteTexture mCaretTexture;
-		Color mCaretColor;
-		float mCaretBlinkInterval;
-		float mCaretLastBlinkTime;
-		bool mIsCaretOn;
-		CursorType mActiveCursor;
-
-		HSpriteTexture mTextSelectionTexture;
-		Color mTextSelectionColor;
-
-		Map<const RenderTexture*, const GUIElement*> mInputBridge;
-
-		HEvent mOnPointerMovedConn;
-		HEvent mOnPointerPressedConn;
-		HEvent mOnPointerReleasedConn;
-		HEvent mOnPointerDoubleClick;
-		HEvent mOnTextInputConn;
-		HEvent mOnInputCommandConn;
-		HEvent mOnVirtualButtonDown;
-
-		HEvent mDragEndedConn;
-
-		HEvent mWindowGainedFocusConn;
-		HEvent mWindowLostFocusConn;
-
-		HEvent mMouseLeftWindowConn;
-	};
-
-	/**
-	 * @brief	Handles GUI rendering on the core thread.
-	 */
-	class BS_EXPORT GUIManagerCore
-	{
-		friend class GUIManager;
-
-		/** Material reference and parameter handles for a specific material type. */
-		struct MaterialInfo
-		{
-			MaterialInfo() { }
-			MaterialInfo(const SPtr<MaterialCore>& material);
-
-			SPtr<MaterialCore> material;
-
-			MaterialParamMat4Core worldTransformParam;
-			MaterialParamFloatCore invViewportWidthParam;
-			MaterialParamFloatCore invViewportHeightParam;
-			MaterialParamColorCore tintParam;
-			MaterialParamTextureCore textureParam;
-			MaterialParamSampStateCore samplerParam;
-		};
-
-	public:
-		~GUIManagerCore();
-
-		/**
-		 * Initializes the object. Must be called right after construction.
-		 *
-		 * @param[in]	textMat			Material used for drawing text sprites.
-		 * @param[in]	imageMat		Material used for drawing non-transparent image sprites.
-		 * @param[in]	imageAlphaMat	Material used for drawing transparent image sprites.
-		 */
-		void initialize(const SPtr<MaterialCore>& textMat, const SPtr<MaterialCore>& imageMat,
-			const SPtr<MaterialCore>& imageAlphaMat);
-
-	private:
-		/**
-		 * @brief	Updates the internal data that determines what will be rendered on the next
-		 *			::render call.
-		 *
-		 * @param	data	GUI mesh/material per viewport.
-		 */
-		void updateData(const UnorderedMap<SPtr<CameraCore>, Vector<GUIManager::GUICoreRenderData>>& perCameraData);
-
-		/**
-		 * @brief	Triggered by the Renderer when the GUI should be rendered.
-		 */
-		void render(const SPtr<CameraCore>& camera);
-
-		UnorderedMap<SPtr<CameraCore>, Vector<GUIManager::GUICoreRenderData>> mPerCameraData;
-
-		// Immutable
-		MaterialInfo mTextMaterialInfo;
-		MaterialInfo mImageMaterialInfo;
-		MaterialInfo mImageAlphaMaterialInfo;
-
-		SPtr<SamplerStateCore> mSamplerState;
-	};
-
-	/**
-	 * @copydoc	GUIManager
-	 */
-	BS_EXPORT GUIManager& gGUIManager();
-}

+ 0 - 208
BansheeEngine/Include/BsGUIMenu.h

@@ -1,208 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsPrerequisites.h"
-#include "BsGUIDropDownMenu.h"
-#include "BsShortcutKey.h"
-
-namespace BansheeEngine
-{
-	class GUIMenuItem;
-
-	/**
-	 * @brief	Used for comparing GUI menu items in order to determine the order
-	 *			in which they are presented.
-	 */
-	struct GUIMenuItemComparer
-	{
-		bool operator() (const GUIMenuItem* const& a, const GUIMenuItem* const& b);
-	};
-
-	/**
-	 * Holds information about a single element in a GUI menu.
-	 */
-	class BS_EXPORT GUIMenuItem
-	{
-	public:
-		/**
-		 * @brief	Constructs a new non-separator menu item.
-		 *
-		 * @param	parent		Parent item, if any.
-		 * @param	name		Name of the item to be displayed.
-		 * @param	callback	Callback to be triggered when menu items is selected.
-		 * @param	priority	Priority that determines the order of this element compared to its siblings.
-		 * @param	seqIdx		Sequential index of the menu item that specifies in what order was it added to the menu
-		 * 						compared to other items.
-		 * @param	key			Keyboard shortcut that can be used for triggering the menu item.
-		 */
-		GUIMenuItem(GUIMenuItem* parent, const WString& name, std::function<void()> callback, 
-			INT32 priority, UINT32 seqIdx, const ShortcutKey& key);
-
-		/**
-		 * @brief	Constructs a new separator menu item.
-		 *
-		 * @param	parent		Parent item, if any.
-		 * @param	priority	Priority that determines the order of this element compared to its siblings.
-		 * @param	seqIdx		Sequential index of the menu item that specifies in what order was it added to the menu
-		 * 						compared to other items.
-		 */
-		GUIMenuItem(GUIMenuItem* parent, INT32 priority, UINT32 seqIdx);
-		~GUIMenuItem();
-
-		/**
-		 * @brief	Registers a new child with the item.
-		 */
-		void addChild(GUIMenuItem* child) { mChildren.insert(child); }
-
-		/**
-		 * @brief	Returns number of child menu items.
-		 */
-		UINT32 getNumChildren() const { return (UINT32)mChildren.size(); }
-
-		/**
-		 * @brief	Returns the parent menu item, or null if none.
-		 */
-		GUIMenuItem* getParent() { return mParent; }
-
-		/**
-		 * @brief	Returns name of the menu item. Empty if separator.
-		 */
-		const WString& getName() const { return mName; }
-
-		/**
-		 * @brief	Returns callback that will trigger when menu item is selected. Null for separators.
-		 */
-		std::function<void()> getCallback() const { return mCallback; }
-
-		/**
-		 * @brief	Returns a keyboard shortcut that may be used for triggering the menu item callback.
-		 */
-		const ShortcutKey& getShortcut() const { return mShortcut; }
-
-		/**
-		 * @brief	Checks is the menu item a separator or a normal named menu item.
-		 */
-		bool isSeparator() const { return mIsSeparator; }
-
-		/**
-		 * @brief	Attempts to find a child menu item with the specified name.
-		 *			Only direct descendants are searched.
-		 */
-		const GUIMenuItem* findChild(const WString& name) const;
-
-		/**
-		 * @brief	Removes the first child with the specified name.
-		 */
-		void removeChild(const WString& name);
-
-		/**
-		 * @brief	Removes the specified child.
-		 */
-		void removeChild(const GUIMenuItem* item);
-
-	private:
-		friend class GUIMenu;
-		friend struct GUIMenuItemComparer;
-
-		/**
-		 * @copydoc	GUIMenuitem::findChild(const WString& name) const
-		 */
-		GUIMenuItem* findChild(const WString& name);
-
-		GUIMenuItem* mParent;
-		bool mIsSeparator;
-		WString mName;
-		std::function<void()> mCallback;
-		INT32 mPriority;
-		ShortcutKey mShortcut;
-		UINT32 mSeqIdx;
-		Set<GUIMenuItem*, GUIMenuItemComparer> mChildren;
-	};
-
-	/**
-	 * Class that allows creation of menus with drop down functionality.
-	 * Menu consists out of a number of top level elements, each of which opens
-	 * a drop down menu which may internally hold a deeper hierarchy of menus.
-	 *
-	 * @note	When specifying menu items you must provide a path. Path must be formated in a certain way.
-	 *			All path elements must be separated by /, e.g. "View/Toolbars/Find". "View" would be the top
-	 *			level path element, "Toolbars" a child in its menu that opens up its own submenu, and "Find"
-	 *			a child in the "Toolbars" sub-menu with an optional callback.
-	 *
-	 *			This is an abstract class and you should provide specialized implementations for specific menu types.
-	 */
-	class BS_EXPORT GUIMenu
-	{
-	public:
-		GUIMenu();
-		virtual ~GUIMenu();
-
-		/**
-		 * @brief	Adds a new menu item with the specified callback. 
-		 *			
-		 * @param	path		Path that determines where to add the element. See class information on how to specify paths.
-		 *						All sub-elements of a path will be added automatically.
-		 * @param	callback	Callback that triggers when the path element is selected.
-		 * @param	priority	Priority determines the position of the menu item relative to its siblings.
-		 *						Higher priority means it will be placed earlier in the menu.
-		 * @param	key			Keyboard shortcut that can be used for triggering the menu item.
-		 *
-		 * @returns	A menu item object that you may use for removing the menu item later. Its lifetime is managed internally.
-		 */
-		GUIMenuItem* addMenuItem(const WString& path, std::function<void()> callback, INT32 priority, const ShortcutKey& key = ShortcutKey::NONE);
-
-		/**
-		 * @brief	Adds a new separator menu item with the specified callback.
-		 *			
-		 * @param	path		Path that determines where to add the element. See class information on how to specify paths.
-		 *						All sub-elements of a path will be added automatically.
-		 * @param	priority	Priority determines the position of the menu item relative to its siblings.
-		 *						Higher priority means it will be placed earlier in the menu.
-		 *
-		 * @returns	A menu item object that you may use for removing the menu item later. Its lifetime is managed internally.
-		 */
-		GUIMenuItem* addSeparator(const WString& path, INT32 priority);
-
-		/**
-		 * @brief	Returns a menu item at the specified path, or null if one is not found.
-		 */
-		GUIMenuItem* getMenuItem(const WString& path);
-
-		/**
-		 * @brief	Removes the specified menu item from the path. If the menu item has any sub-menus they will also be removed.
-		 */
-		void removeMenuItem(const GUIMenuItem* item);
-
-		/**
-		 * @brief	Normally menu items use values from their paths as their names. However path labels don't provide a way of
-		 * 			localizing the menu item. This method allows you to set specific names (different from path labels)
-		 * 			to each menu item. All the values are localized so they will also be updated according to the string table.
-		 *
-		 * @param	menuItemLabel	The menu item label. (e.g. if you have a menu like "View/Toolbars/Find, this parameter would be either
-		 * 							"View", "Toolbars" or "Find" depending which entry you want to localize)
-		 * @param	localizedName	Localized string with the name.
-		 */
-		void setLocalizedName(const WString& menuItemLabel, const HString& localizedName);
-
-		/**
-		 * @brief	Returns data used for initializing a drop down list, for all elements.
-		 */
-		GUIDropDownData getDropDownData() const;
-	protected:
-		/**
-		 * @brief	Adds a menu item at the specified path, as a normal button or as a separator.
-		 */
-		GUIMenuItem* addMenuItemInternal(const WString& path, std::function<void()> callback, bool isSeparator, 
-			INT32 priority, const ShortcutKey& key);
-
-		/**
-		 * @brief	Return drop down data for the specified menu.
-		 */
-		GUIDropDownData getDropDownDataInternal(const GUIMenuItem& menu) const;
-
-		GUIMenuItem mRootElement;
-		UnorderedMap<WString, HString> mLocalizedEntryNames;
-		UINT32 mNextIdx;
-	};
-}

+ 0 - 135
BansheeEngine/Include/BsGUIPanel.h

@@ -1,135 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsPrerequisites.h"
-#include "BsGUILayout.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	Represents a GUI panel that you can use for free placement 
-	 *			of GUI elements within its bounds.
-	 */
-	class BS_EXPORT GUIPanel : public GUILayout
-	{
-	public:
-		GUIPanel(INT16 depth, UINT16 depthRangeMin, UINT16 depthRangeMax, const GUIDimensions& dimensions);
-		GUIPanel() {};
-		~GUIPanel() {};
-
-		/**
-		 * @copydoc	GUIElementBase::_getType
-		 */
-		virtual Type _getType() const override { return GUIElementBase::Type::Panel; }
-
-		/**
-		 * @brief	Calculate optimal sizes of all child layout elements.
-		 */
-		void _updateOptimalLayoutSizes() override;
-
-		/**
-		 * @copydoc	GUIElementBase::_calculateLayoutSizeRange
-		 */
-		virtual LayoutSizeRange _calculateLayoutSizeRange() const override;
-
-		/**
-		 * @copydoc	GUILayout::_getElementAreas
-		 */
-		void _getElementAreas(const Rect2I& layoutArea, Rect2I* elementAreas, UINT32 numElements,
-			const Vector<LayoutSizeRange>& sizeRanges, const LayoutSizeRange& mySizeRange) const override;
-
-		/**
-		 * @brief	Calculates the size of the provided child within this layout with the provided dimensions.
-		 *
-		 * @note	Internal method.
-		 */
-		Rect2I _getElementArea(const Rect2I& layoutArea, const GUIElementBase* element, const LayoutSizeRange& sizeRange) const;
-
-		/**
-		 * @brief	Calculates an element size range for the provided child of the GUI panel. Will return cached bounds
-		 *			so make sure to update optimal size ranges before calling.
-		 *
-		 * @note	Internal method.
-		 */
-		LayoutSizeRange _getElementSizeRange(const GUIElementBase* element) const;
-
-		/**
-		 * @brief	Assigns the specified layout information to a child element of a GUI panel.
-		 *
-		 * @note	Internal method.
-		 */
-		void _updateChildLayout(GUIElementBase* element, const GUILayoutData& data);
-
-		/**
-		 * @copydoc	GUIElementBase::_updateLayoutInternal
-		 */
-		void _updateLayoutInternal(const GUILayoutData& data) override;
-
-		/**
-		 * @brief	Updates the provided depth range by taking into consideration the depth range of the panel.
-		 * 			This depth range should be passed on to child elements of the panel.
-		 */
-		void _updateDepthRange(GUILayoutData& data);
-
-		/**
-		 * @brief	Changes values that control at which depth is GUI panel and its children rendered.
-		 *
-		 * @param	depth			Determines rendering order of the GUI panel. Panels with lower depth will be
-		 *							rendered in front of panels with higher depth. Provided depth is relative
-		 *							to depth of the parent GUI panel (if any).
-		 * @param	depthRangeMin	Minimum range of depths that children of this GUI panel can have. If any panel has depth
-		 *							outside of the range [depth - depthRangeMin, depth + depthRangeMax] it will be clamped to
-		 *							nearest extreme. Value of -1 means infinite range.
-		 * @param	depthRangeMax	Maximum range of depths that children of this GUI panel can have. If any panel has depth
-		 *							outside of the range [depth - depthRangeMin, depth + depthRangeMax] it will be clamped to
-		 *							nearest extreme. Value of -1 means infinite range.
-		 */
-		void setDepthRange(INT16 depth = 0, UINT16 depthRangeMin = -1, UINT16 depthRangeMax = -1);
-
-		/**
-		 * @brief	Creates a new GUI panel.
-		 *
-		 * @param	depth			Determines rendering order of the GUI panel. Panels with lower depth will be
-		 *							rendered in front of panels with higher depth. Provided depth is relative
-		 *							to depth of the parent GUI panel (if any).
-		 * @param	depthRangeMin	Minimum range of depths that children of this GUI panel can have. If any panel has depth
-		 *							outside of the range [depth - depthRangeMin, depth + depthRangeMax] it will be clamped to
-		 *							nearest extreme. Value of -1 means infinite range.
-		 * @param	depthRangeMax	Maximum range of depths that children of this GUI panel can have. If any panel has depth
-		 *							outside of the range [depth - depthRangeMin, depth + depthRangeMax] it will be clamped to
-		 *							nearest extreme. Value of -1 means infinite range.
-		 */
-		static GUIPanel* create(INT16 depth = 0, UINT16 depthRangeMin = -1, UINT16 depthRangeMax = -1);
-
-		/**
-		 * @brief	Creates a new GUI panel.
-		 *
-		 * @param	depth		Determines rendering order of the GUI panel. Panels with lower depth will be
-		 *						rendered in front of panels with higher depth. Provided depth is relative
-		 *						to depth of the parent GUI panel (if any).
-		 */
-		static GUIPanel* create(const GUIOptions& options);
-
-		/**
-		 * @brief	Creates a new GUI panel.
-		 *
-		 * @param	depth			Determines rendering order of the GUI panel. Panels with lower depth will be
-		 *							rendered in front of panels with higher depth. Provided depth is relative
-		 *							to depth of the parent GUI panel (if any).
-		 * @param	depthRangeMin	Minimum range of depths that children of this GUI panel can have. If any panel has depth
-		 *							outside of the range [depth - depthRangeMin, depth + depthRangeMax] it will be clamped to
-		 *							nearest extreme. Value of -1 means infinite range.
-		 * @param	depthRangeMax	Maximum range of depths that children of this GUI panel can have. If any panel has depth
-		 *							outside of the range [depth - depthRangeMin, depth + depthRangeMax] it will be clamped to
-		 *							nearest extreme. Value of -1 means infinite range.
-		 * @param	options			Options that allow you to control how is the element positioned and sized.
-		 */
-		static GUIPanel* create(INT16 depth, UINT16 depthRangeMin, UINT16 depthRangeMax, const GUIOptions& options);
-
-	protected:
-		INT16 mDepthOffset;
-		UINT16 mDepthRangeMin;
-		UINT16 mDepthRangeMax;
-	};
-}

+ 0 - 95
BansheeEngine/Include/BsGUIProgressBar.h

@@ -1,95 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsPrerequisites.h"
-#include "BsGUIElementContainer.h"
-#include "BsEvent.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	GUI element containing a background image and a fill image that
-	 *			is scaled depending on the percentage set by the caller.
-	 */
-	class BS_EXPORT GUIProgressBar : public GUIElementContainer
-	{
-	public:
-		/**
-		 * Returns type name of the GUI element used for finding GUI element styles. 
-		 */
-		static const String& getGUITypeName();
-
-		/**
-		 * @brief	Name of the style for the fill image used by the progress bar.
-		 */
-		static const String& getBarStyleType();
-
-		/**
-		 * @brief	Name of the style for the background image used by the progress bar.
-		 */
-		static const String& getBackgroundStyleType();
-
-		/**
-		 * @brief	Creates a new progress bar.
-		 *
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUIProgressBar* create(const String& styleName = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new progress bar.
-		 *
-		 * @param	options			Options that allow you to control how is the element positioned and sized.
-		 *							This will override any similar options set by style.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUIProgressBar* create(const GUIOptions& options, const String& styleName = StringUtil::BLANK);
-
-		/**
-		 * @brief	Fills up the progress bar up to the specified percentage.
-		 *
-		 * @param	pct	How far to extend the fill image, in percent ranging [0.0f, 1.0f]
-		 */
-		void setPercent(float pct);
-
-		/**
-		 * @brief	Gets the percentage of how full is the progress bar currently.
-		 */
-		float getPercent() const { return mPercent; }
-
-		/**
-		 * @copydoc	GUIElement::setTint
-		 */
-		virtual void setTint(const Color& color) override;
-
-		/**
-		 * @copydoc	GUIElementContainer::_getOptimalSize
-		 */
-		virtual Vector2I _getOptimalSize() const override;
-
-		Event<void(float percent)> onChanged;
-	protected:
-		GUIProgressBar(const String& styleName, const GUIDimensions& dimensions);
-
-		/**
-		 * @copydoc	GUIElementContainer::_updateLayoutInternal
-		 */
-		virtual void _updateLayoutInternal(const GUILayoutData& data) override;
-
-		/**
-		 * @copydoc	GUIElementContainer::styleUpdated
-		 */
-		void styleUpdated() override;
-
-	private:
-		GUITexture* mBar;
-		GUITexture* mBackground;
-
-		float mPercent;
-	};
-}

+ 0 - 256
BansheeEngine/Include/BsGUIScrollArea.h

@@ -1,256 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsPrerequisites.h"
-#include "BsGUIElementContainer.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	Scroll bar options for a GUI scroll area.
-	 */
-	enum class ScrollBarType
-	{
-		ShowIfDoesntFit,
-		AlwaysShow,
-		NeverShow
-	};
-
-	/**
-	 * @brief	A GUI element container with support for vertical & horizontal scrolling.
-	 */
-	class BS_EXPORT GUIScrollArea : public GUIElementContainer
-	{
-	public:
-		/**
-		 * Returns type name of the GUI element used for finding GUI element styles. 
-		 */
-		static const String& getGUITypeName();
-
-		/**
-		 * @brief	Creates a new empty scroll area.
-		 *
-		 * @param	vertBarType		Vertical scrollbar options.
-		 * @param	horzBarType		Horizontal scrollbar options.
-		 * @param	scrollBarStyle	(Optional) Style used by the scroll bars.
-		 * @param	scrollAreaStyle	(Optional) Style used by the scroll content area.
-		 */
-		static GUIScrollArea* create(ScrollBarType vertBarType, ScrollBarType horzBarType, 
-			const String& scrollBarStyle = StringUtil::BLANK, const String& scrollAreaStyle = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new empty scroll area.
-		 *
-		 * @param	vertBarType		Vertical scrollbar options.
-		 * @param	horzBarType		Horizontal scrollbar options.
-		 * @param	options			Options that allow you to control how is the element positioned and sized.
-		 *							This will override any similar options set by style.
-		 * @param	scrollBarStyle	(Optional) Style used by the scroll bars.
-		 * @param	scrollAreaStyle	(Optional) Style used by the scroll content area.
-		 */
-		static GUIScrollArea* create(ScrollBarType vertBarType, ScrollBarType horzBarType, 
-			const GUIOptions& options, const String& scrollBarStyle = StringUtil::BLANK, 
-			const String& scrollAreaStyle = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new empty scroll area. Scroll bars will be show if needed and hidden otherwise.
-		 *
-		 * @param	scrollBarStyle	(Optional) Style used by the scroll bars.
-		 * @param	scrollAreaStyle	(Optional) Style used by the scroll content area.
-		 */
-		static GUIScrollArea* create(const String& scrollBarStyle = StringUtil::BLANK, 
-			const String& scrollAreaStyle = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new empty scroll area. Scroll bars will be show if needed and hidden otherwise.
-		 *
-		 * @param	options			Options that allow you to control how is the element positioned and sized.
-		 *							This will override any similar options set by style.
-		 * @param	scrollBarStyle	(Optional) Style used by the scroll bars.
-		 * @param	scrollAreaStyle	(Optional) Style used by the scroll content area.
-		 */
-		static GUIScrollArea* create(const GUIOptions& options, const String& scrollBarStyle = StringUtil::BLANK, 
-			const String& scrollAreaStyle = StringUtil::BLANK);
-
-		/**
-		 * @copydoc	GUIElementContainer::getElementType
-		 */
-		virtual ElementType _getElementType() const override { return ElementType::ScrollArea; }
-
-		/**
-		 * @brief	Returns the scroll area layout that you may use to add elements inside the scroll area.
-		 */
-		GUILayout& getLayout() const { return *mContentLayout; }
-
-		/**
-		 * @brief	Scrolls the area up by specified amount of pixels, if possible.
-		 */
-		void scrollUpPx(UINT32 pixels);
-
-		/**
-		 * @brief	Scrolls the area down by specified amount of pixels, if possible.
-		 */
-		void scrollDownPx(UINT32 pixels);
-
-		/**
-		 * @brief	Scrolls the area left by specified amount of pixels, if possible.
-		 */
-		void scrollLeftPx(UINT32 pixels);
-
-		/**
-		 * @brief	Scrolls the area right by specified amount of pixels, if possible.
-		 */
-		void scrollRightPx(UINT32 pixels);
-
-		/**
-		 * @brief	Scrolls the area up by specified percentage (ranging [0, 1]), if possible.
-		 */
-		void scrollUpPct(float percent);
-
-		/**
-		 * @brief	Scrolls the area down by specified percentage (ranging [0, 1]), if possible.
-		 */
-		void scrollDownPct(float percent);
-
-		/**
-		 * @brief	Scrolls the area left by specified percentage (ranging [0, 1]), if possible.
-		 */
-		void scrollLeftPct(float percent);
-
-		/**
-		 * @brief	Scrolls the area right by specified percentage (ranging [0, 1]), if possible.
-		 */
-		void scrollRightPct(float percent);
-
-		/**
-		 * @brief	Scrolls the contents to the specified position.
-		 *			(0 meaning top-most part of the content is visible,
-		 *			and 1 meaning bottom-most part is visible)
-		 */
-		void scrollToVertical(float pct);
-
-		/**
-		 * @brief	Scrolls the contents to the specified position.
-		 *			(0 meaning left-most part of the content is visible,
-		 *			and 1 meaning right-most part is visible)
-		 */
-		void scrollToHorizontal(float pct);
-
-		/**
-		 * @brief	Returns how much is the scroll area scrolled in the vertical direction.
-		 *			Returned value represents percentage where 0 means no scrolling
-		 *			is happening, and 1 means area is fully scrolled to the bottom.
-		 */
-		float getVerticalScroll() const;
-
-		/**
-		 * @brief	Returns how much is the scroll area scrolled in the horizontal direction.
-		 *			Returned value represents percentage where 0 means no scrolling
-		 *			is happening, and 1 means area is fully scrolled to the right.
-		 */
-		float getHorizontalScroll() const;
-
-		/**
-		 * @brief	Returns the bounds of the scroll area not including the scroll bars.
-		 *			(i.e. only the portion that contains the contents).
-		 */
-		Rect2I getContentBounds();
-
-		/**
-		 * @brief	Number of pixels the scroll bar will occupy when active. This is width
-		 *			for vertical scrollbar, and height for horizontal scrollbar.
-		 */
-		static const UINT32 ScrollBarWidth;
-	protected:
-		~GUIScrollArea();
-
-		/**
-		 * @copydoc	GUIElementContainer::_getLayoutSizeRange
-		 */
-		virtual LayoutSizeRange _getLayoutSizeRange() const override;
-
-		/**
-		 * @copydoc GUIElementContainer::updateBounds
-		 */
-		virtual void updateClippedBounds() override;
-
-		/**
-		 * @copydoc	GUIElementBase::_calculateLayoutSizeRange
-		 */
-		LayoutSizeRange _calculateLayoutSizeRange() const override;
-
-		/**
-		 * @copydoc	GUIElementBase::_updateOptimalLayoutSizes
-		 */
-		void _updateOptimalLayoutSizes() override;
-
-		/**
-		 * @copydoc GUIElementContainer::_getOptimalSize
-		 */
-		Vector2I _getOptimalSize() const override;
-	private:
-		GUIScrollArea(ScrollBarType vertBarType, ScrollBarType horzBarType, 
-			const String& scrollBarStyle, const String& scrollAreaStyle, const GUIDimensions& dimensions);
-
-		/**
-		 * @copydoc	GUIElementContainer::mouseEvent
-		 */
-		virtual bool _mouseEvent(const GUIMouseEvent& ev) override;
-
-		/**
-		 * @brief	Called when the vertical scrollbar moves. 
-		 *
-		 * @param	pct	Scrollbar position ranging [0, 1].
-		 */
-		void vertScrollUpdate(float pct);
-
-		/**
-		 * @brief	Called when the horizontal scrollbar moves. 
-		 *
-		 * @param	pct	Scrollbar position ranging [0, 1].
-		 */
-		void horzScrollUpdate(float pct);
-
-		/**
-		 * @copydoc	GUIElementContainer::_updateLayoutInternal
-		 */
-		void _updateLayoutInternal(const GUILayoutData& data) override;
-
-		/**
-		 * @copydoc	GUIElementContainer::_getElementAreas
-		 */
-		void _getElementAreas(const Rect2I& layoutArea, Rect2I* elementAreas, UINT32 numElements, 
-			const Vector<LayoutSizeRange>& sizeRanges, const LayoutSizeRange& mySizeRange) const override;
-
-		/**
-		 * @copydoc	GUIElementContainer::_getElementAreas
-		 *
-		 * @note	Also calculates some scroll area specific values.
-		 */
-		void _getElementAreas(const Rect2I& layoutArea, Rect2I* elementAreas, UINT32 numElements, 
-			const Vector<LayoutSizeRange>& sizeRanges, Vector2I& visibleSize, Vector2I& contentSize) const;
-
-		ScrollBarType mVertBarType;
-		ScrollBarType mHorzBarType;
-		String mScrollBarStyle;
-
-		GUILayout* mContentLayout;
-		GUIScrollBarVert* mVertScroll;
-		GUIScrollBarHorz* mHorzScroll;
-
-		float mVertOffset;
-		float mHorzOffset;
-		bool mRecalculateVertOffset;
-		bool mRecalculateHorzOffset;
-
-		Vector2I mVisibleSize;
-		Vector2I mContentSize;
-
-		Vector<LayoutSizeRange> mChildSizeRanges;
-		LayoutSizeRange mSizeRange;
-
-		static const UINT32 MinHandleSize;
-		static const UINT32 WheelScrollAmount;
-	};
-}

+ 0 - 150
BansheeEngine/Include/BsGUIScrollBar.h

@@ -1,150 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsPrerequisites.h"
-#include "BsGUIElement.h"
-#include "BsEvent.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	GUI element representing an element with a draggable handle
-	 *			of a variable size.
-	 */
-	class BS_EXPORT GUIScrollBar : public GUIElement
-	{
-	public:
-		/**
-		 * @brief	Triggered whenever the scrollbar handle is moved. Value provided
-		 *			is the handle position in percent (ranging [0, 1]).
-		 */
-		Event<void(float newPosition)> onScrollPositionChanged;
-
-		/**
-		 * @brief	Sets the size of the handle in pixels.
-		 *
-		 * @note	Internal method. Does not trigger layout update.
-		 */
-		void _setHandleSize(UINT32 size);
-
-		/**
-		 * @brief	Sets the position of the scroll handle in percent (ranging [0, 1]).
-		 *
-		 * @note	Internal method. Does not trigger layout update.
-		 */
-		void _setScrollPos(float pct);
-
-		/**
-		 * @brief	Returns the position of the scroll handle in percent (ranging [0, 1]).
-		 */
-		float getScrollPos() const;
-
-		/**
-		 * @brief	Moves the handle by some amount. Amount is specified in the percentage
-		 * 			of the entire scrollable area. Values out of range will be clamped.
-		 */
-		void scroll(float amount);
-
-		/**
-		 * @brief	Returns the maximum size of the scroll handle, in pixels.
-		 */
-		UINT32 getMaxHandleSize() const;
-
-		/**
-		 * @brief	Returns the maximum scrollable size the handle can move within (e.g. scroll bar length).
-		 */
-		UINT32 getScrollableSize() const;
-
-		/**
-		 * @copydoc	GUIElement::setTint
-		 */
-		virtual void setTint(const Color& color) override;
-
-		/**
-		 * @copydoc	GUIElement::_getOptimalSize
-		 */
-		virtual Vector2I _getOptimalSize() const override;
-	protected:
-		/**
-		 * @brief	Constructs a new scrollbar.
-		 *
-		 * @param	horizontal	If true the scroll bar will have a horizontal moving handle, otherwise
-		 *						it will be a vertical one.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 * @param	options			Options that allow you to control how is the element positioned and sized.
-		 *							This will override any similar options set by style.
-		 */
-		GUIScrollBar(bool horizontal, const String& styleName, const GUIDimensions& dimensions);
-		virtual ~GUIScrollBar();
-
-		/**
-		 * @copydoc GUIElement::_getNumRenderElements
-		 */
-		virtual UINT32 _getNumRenderElements() const override;
-
-		/**
-		 * @copydoc GUIElement::_getMaterial
-		 */
-		virtual const SpriteMaterialInfo& _getMaterial(UINT32 renderElementIdx) const override;
-
-		/**
-		 * @copydoc GUIElement::_getNumQuads
-		 */
-		virtual UINT32 _getNumQuads(UINT32 renderElementIdx) const override;
-
-		/**
-		 * @copydoc GUIElement::_fillBuffer
-		 */
-		virtual void _fillBuffer(UINT8* vertices, UINT8* uv, UINT32* indices, UINT32 startingQuad, 
-			UINT32 maxNumQuads, UINT32 vertexStride, UINT32 indexStride, UINT32 renderElementIdx) const override;
-
-		/**
-		 * @copydoc GUIElement::updateRenderElementsInternal
-		 */
-		virtual void updateRenderElementsInternal() override;
-
-		/**
-		 * @copydoc GUIElement::updateBounds
-		 */
-		virtual void updateClippedBounds() override;
-
-		/**
-		 * @copydoc GUIElement::_getRenderElementDepth
-		 */
-		virtual UINT32 _getRenderElementDepth(UINT32 renderElementIdx) const override;
-
-		/**
-		 * @copydoc	GUIElement::_getRenderElementDepthRange
-		 */
-		virtual UINT32 _getRenderElementDepthRange() const override;
-	private:
-		/**
-		 * @brief	Triggered whenever the scroll handle moves. Provided value represents the new 
-		 *			position of the handle in percent (ranging [0, 1]).
-		 */
-		void handleMoved(float handlePct);
-
-		/**
-		 * @brief	Triggered when scroll up button is clicked.
-		 */
-		void upButtonClicked();
-
-		/**
-		 * @brief	Triggered when scroll down button is clicked.
-		 */
-		void downButtonClicked();
-
-		GUILayout* mLayout;
-		ImageSprite* mImageSprite;
-
-		GUIButton* mUpBtn;
-		GUIButton* mDownBtn;
-		GUISliderHandle* mHandleBtn;
-		bool mHorizontal;
-
-		static const UINT32 ButtonScrollAmount;
-	};
-}

+ 0 - 44
BansheeEngine/Include/BsGUIScrollBarHorz.h

@@ -1,44 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsPrerequisites.h"
-#include "BsGUIScrollBar.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	Specialization of a horizontal scroll bar.
-	 */
-	class BS_EXPORT GUIScrollBarHorz : public GUIScrollBar
-	{
-	public:
-		/**
-		 * Returns type name of the GUI element used for finding GUI element styles. 
-		 */
-		static const String& getGUITypeName();
-
-		/**
-		 * @brief	Creates a new horizontal scroll bar.
-		 *
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUIScrollBarHorz* create(const String& styleName = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new horizontal scroll bar.
-		 *
-		 * @param	options			Options that allow you to control how is the element positioned and sized.
-		 *							This will override any similar options set by style.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUIScrollBarHorz* create(const GUIOptions& options, const String& styleName = StringUtil::BLANK);
-	protected:
-		GUIScrollBarHorz(const String& styleName, const GUIDimensions& dimensions);
-		~GUIScrollBarHorz();
-	};
-}

+ 0 - 45
BansheeEngine/Include/BsGUIScrollBarVert.h

@@ -1,45 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsPrerequisites.h"
-#include "BsGUIScrollBar.h"
-#include "BsEvent.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	Specialization of a vertical scroll bar.
-	 */
-	class BS_EXPORT GUIScrollBarVert : public GUIScrollBar
-	{
-	public:
-		/**
-		 * Returns type name of the GUI element used for finding GUI element styles. 
-		 */
-		static const String& getGUITypeName();
-
-		/**
-		 * @brief	Creates a new vertical scroll bar.
-		 *
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUIScrollBarVert* create(const String& styleName = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new vertical scroll bar.
-		 *
-		 * @param	options			Options that allow you to control how is the element positioned and sized.
-		 *							This will override any similar options set by style.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUIScrollBarVert* create(const GUIOptions& options, const String& styleName = StringUtil::BLANK);
-	protected:
-		GUIScrollBarVert(const String& styleName, const GUIDimensions& dimensions);
-		~GUIScrollBarVert();
-	};
-}

+ 0 - 177
BansheeEngine/Include/BsGUISlider.h

@@ -1,177 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsPrerequisites.h"
-#include "BsGUIElementContainer.h"
-#include "BsEvent.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	A slider with a draggable handle that can be vertical or horizontal.
-	 */
-	class BS_EXPORT GUISlider : public GUIElementContainer
-	{
-	public:
-		/**
-		 * @brief	Name of the style for the handle button used by the slider.
-		 */
-		static const String& getHandleStyleType();
-
-		/**
-		 * @brief	Name of the style for the background image used by the slider.
-		 */
-		static const String& getBackgroundStyleType();
-
-		/**
-		 * @brief	Name of the style for the background fill image used by the slider.
-		 */
-		static const String& getFillStyleType();
-
-		/**
-		 * @brief	Moves the slider handle the the specified position in the handle area.
-		 *
-		 * @param	pct	Position to move the handle to, in percent ranging [0.0f, 1.0f]
-		 */
-		void setPercent(float pct);
-
-		/**
-		 * @brief	Gets the current position of the slider handle, in percent ranging [0.0f, 1.0f].
-		 */
-		float getPercent() const;
-
-		/**
-		 * @brief	Gets the current value of the slider. This is the slider handle position percentage scaled within
-		 * 			the current minimum and maximum range, rounded up to nearest step increment.
-		 */
-		float getValue() const;
-
-		/**
-		 * @brief	Sets a new value of the slider. This value should be within minimum and maximum range values.
-		 */
-		void setValue(float value);
-
-		/**
-		 * @brief	Sets a minimum and maximum allow values in the input field.
-		 *			Set to large negative/positive values if you don't require clamping.
-		 */
-		void setRange(float min, float max);
-
-		/**
-		 * @brief	Sets a step that defines the minimal increment the value can be increased/decreased by. Set to zero
-		 * 			to have no step.
-		 */
-		void setStep(float step);
-
-		/**
-		 * @copydoc	GUIElement::setTint
-		 */
-		virtual void setTint(const Color& color) override;
-
-		/**
-		 * @copydoc	GUIElementContainer::_getOptimalSize
-		 */
-		virtual Vector2I _getOptimalSize() const override;
-
-		Event<void(float percent)> onChanged;
-	protected:
-		GUISlider(bool horizontal, const String& styleName, const GUIDimensions& dimensions);
-		virtual ~GUISlider();
-
-		/**
-		 * @copydoc	GUIElementContainer::_updateLayoutInternal
-		 */
-		virtual void _updateLayoutInternal(const GUILayoutData& data) override;
-
-		/**
-		 * @copydoc	GUIElementContainer::styleUpdated
-		 */
-		void styleUpdated() override;
-
-		/**
-		 * @brief	Triggered when the slider handles moves.
-		 */
-		void onHandleMoved(float newPosition);
-
-	private:
-		GUISliderHandle* mSliderHandle;
-		GUITexture* mBackground;
-		GUITexture* mFillBackground;
-		bool mHorizontal;
-		float mMinRange;
-		float mMaxRange;
-
-		HEvent mHandleMovedConn;
-	};
-
-	/**
-	 * @brief	A horizontal slider with a draggable handle.
-	 */
-	class BS_EXPORT GUISliderHorz : public GUISlider
-	{
-	public:
-		/**
-		 * Returns type name of the GUI element used for finding GUI element styles. 
-		 */
-		static const String& getGUITypeName();
-
-		/**
-		 * @brief	Creates a new horizontal slider.
-		 *
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUISliderHorz* create(const String& styleName = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new horizontal slider.
-		 *
-		 * @param	options			Options that allow you to control how is the element positioned and sized.
-		 *							This will override any similar options set by style.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUISliderHorz* create(const GUIOptions& options, const String& styleName = StringUtil::BLANK);
-
-	private:
-		GUISliderHorz(const String& styleName, const GUIDimensions& dimensions);
-	};
-
-	/**
-	 * @brief	A vertical slider with a draggable handle.
-	 */
-	class BS_EXPORT GUISliderVert : public GUISlider
-	{
-	public:
-		/**
-		 * Returns type name of the GUI element used for finding GUI element styles. 
-		 */
-		static const String& getGUITypeName();
-
-		/**
-		 * @brief	Creates a new vertical slider.
-		 *
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUISliderVert* create(const String& styleName = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new vertical slider.
-		 *
-		 * @param	options			Options that allow you to control how is the element positioned and sized.
-		 *							This will override any similar options set by style.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUISliderVert* create(const GUIOptions& options, const String& styleName = StringUtil::BLANK);
-
-	private:
-		GUISliderVert(const String& styleName, const GUIDimensions& dimensions);
-	};
-}

+ 0 - 178
BansheeEngine/Include/BsGUISliderHandle.h

@@ -1,178 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsPrerequisites.h"
-#include "BsGUIElement.h"
-#include "BsImageSprite.h"
-#include "BsEvent.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	A handle that can be dragged from its predefined minimum and maximum position,
-	 *			either horizontally or vertically.
-	 */
-	class BS_EXPORT GUISliderHandle : public GUIElement
-	{
-		/**
-		 * @brief	Visual state of the handle
-		 */
-		enum class State
-		{
-			Normal, Hover, Active
-		};
-
-	public:
-		/**
-		 * Returns type name of the GUI element used for finding GUI element styles. 
-		 */
-		static const String& getGUITypeName();
-
-		/**
-		 * @brief	Creates a new handle.
-		 *
-		 * @param	horizontal		Should the handle be movable vertically or horizontally.
-		 * @param	jumpOnClick		If true clicking on a specific position on the slider will cause
-		 *							the slider handle to jump to that position. Otherwise the slider
-		 *							will just slightly move towards that direction.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUISliderHandle* create(bool horizontal, bool jumpOnClick, const String& styleName = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new handle.
-		 *
-		 * @param	horizontal		Should the handle be movable vertically or horizontally.
-		 * @param	jumpOnClick		If true clicking on a specific position on the slider will cause
-		 *							the slider handle to jump to that position. Otherwise the slider
-		 *							will just slightly move towards that direction.
-		 * @param	options			Options that allow you to control how is the element positioned and sized.
-		 *							This will override any similar options set by style.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUISliderHandle* create(bool horizontal, bool jumpOnClick, const GUIOptions& options,
-			const String& styleName = StringUtil::BLANK);
-
-		/**
-		 * @brief	Size of the handle in pixels, along the handle drag direction.
-		 *
-		 * @note	Internal method. Does not trigger layout update.
-		 */
-		void _setHandleSize(UINT32 size);
-
-		/**
-		 * @brief	Moves the handle the the specified position in the handle area.
-		 *
-		 * @param	pct	Position to move the handle to, in percent ranging [0.0f, 1.0f]
-		 *
-		 * @note	Internal method. Does not trigger layout update.
-		 */
-		void _setHandlePos(float pct);
-
-		/**
-		 * @brief	Gets the current position of the handle, in percent ranging [0.0f, 1.0f].
-		 */
-		float getHandlePos() const;
-
-		/**
-		 * @brief	Returns the position of the slider handle, in pixels. Relative to this object.
-		 */
-		INT32 getHandlePosPx() const;
-
-		/**
-		 * @brief	Returns remaining length of the scrollable area not covered by the handle, in pixels.
-		 */
-		UINT32 getScrollableSize() const;
-
-		/**
-		 * @brief	Returns the total length of the area the handle can move in, in pixels.
-		 */
-		UINT32 getMaxSize() const;
-
-		/**
-		 * @brief	Sets a step that defines the minimal increment the value can be increased/decreased by. Set to zero
-		 * 			to have no step.
-		 */
-		void setStep(float step);
-
-		/**
-		 * @copydoc	GUIElement::_getOptimalSize
-		 */
-		virtual Vector2I _getOptimalSize() const override;
-
-		Event<void(float newPosition)> onHandleMoved;
-	protected:
-		~GUISliderHandle();
-
-		/**
-		 * @copydoc GUIElement::_getNumRenderElements()
-		 */
-		virtual UINT32 _getNumRenderElements() const override;
-
-		/**
-		 * @copydoc GUIElement::_getMaterial()
-		 */
-		virtual const SpriteMaterialInfo& _getMaterial(UINT32 renderElementIdx) const override;
-
-		/**
-		 * @copydoc GUIElement::_getNumQuads()
-		 */
-		virtual UINT32 _getNumQuads(UINT32 renderElementIdx) const override;
-
-		/**
-		 * @copydoc GUIElement::_fillBuffer()
-		 */
-		virtual void _fillBuffer(UINT8* vertices, UINT8* uv, UINT32* indices, UINT32 startingQuad, 
-			UINT32 maxNumQuads, UINT32 vertexStride, UINT32 indexStride, UINT32 renderElementIdx) const override;
-
-		/**
-		 * @copydoc GUIElement::updateRenderElementsInternal()
-		 */
-		virtual void updateRenderElementsInternal() override;
-
-		/**
-		 * @copydoc GUIElement::updateBounds()
-		 */
-		virtual void updateClippedBounds() override;
-	private:
-		GUISliderHandle(bool horizontal, bool jumpOnClick, const String& styleName, const GUIDimensions& dimensions);
-
-		/**
-		 * @copydoc	GUIElement::mouseEvent
-		 */
-		virtual bool _mouseEvent(const GUIMouseEvent& ev) override;
-
-		/**
-		 * @brief	Checks are the specified over the scroll handle. Coordinates are relative
-		 *			to the parent widget.
-		 */
-		bool isOnHandle(const Vector2I& pos) const;
-
-		/**
-		 * @brief	Sets the position of the slider handle, in pixels. Relative to this object. For internal use only.
-		 */
-		void setHandlePosPx(INT32 pos);
-
-		/**
-		 * @brief	Gets the currently active texture, depending on handle state.
-		 */
-		const HSpriteTexture& getActiveTexture() const;
-
-		ImageSprite* mImageSprite;
-		UINT32 mHandleSize;
-
-		bool mHorizontal; // Otherwise its vertical
-		bool mJumpOnClick;
-		float mPctHandlePos;
-		float mStep;
-		INT32 mDragStartPos;
-		bool mMouseOverHandle;
-		bool mHandleDragged;
-		State mState;
-	};
-}

+ 0 - 123
BansheeEngine/Include/BsGUISpace.h

@@ -1,123 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsPrerequisites.h"
-#include "BsGUIElementBase.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	GUI element that may be inserted into layouts in order to make
-	 *			a space of a fixed size.
-	 */
-	class BS_EXPORT GUIFixedSpace : public GUIElementBase
-	{
-	public:
-		GUIFixedSpace(UINT32 size)
-			:mSize(size)
-		{ }
-
-		~GUIFixedSpace();
-
-		/**
-		 * @brief	Returns the size of the space in pixels.
-		 */
-		UINT32 getSize() const { return mSize; }
-
-		/**
-		 * @brief	Changes the size of the space to the specified value, in pixels.
-		 */
-		void setSize(UINT32 size) { if (mSize != size) { mSize = size; _markLayoutAsDirty(); } }
-
-		/**
-		 * @copydoc	GUIElementBase::_getType
-		 */
-		Type _getType() const override { return GUIElementBase::Type::FixedSpace; }
-
-		/**
-		 * @copydoc	GUIElementBase::_getOptimalSize
-		 */
-		virtual Vector2I _getOptimalSize() const override { return Vector2I(getSize(), getSize()); }
-
-		/**
-		 * @copydoc	GUIElementBase::_calculateLayoutSizeRange
-		 */
-		virtual LayoutSizeRange _calculateLayoutSizeRange() const override;
-
-		/**
-		 * @copydoc	GUIElementBase::_getPadding
-		 */
-		virtual const RectOffset& _getPadding() const  override
-		{
-			static RectOffset padding;
-
-			return padding;
-		}
-
-		/**
-		 * @brief	Creates a new fixed space GUI element.
-		 */
-		static GUIFixedSpace* create(UINT32 size);
-
-		/**
-		 * @brief	Destroys the space and removes it from its parent.
-		 */
-		static void destroy(GUIFixedSpace* space);
-
-	protected:
-		UINT32 mSize;
-	};
-
-	/**
-	 * @brief	GUI element that may be inserted into layouts to make a space of
-	 *			a flexible size. The space will expand only if there is room and
-	 *			other elements are not squished because of it. If multiple flexible
-	 *			spaces are in a layout, their sizes will be shared equally.
-	 *
-	 * @note	e.g. If you had a horizontal layout with a button, and you wanted to
-	 *			align that button to the right of the layout, you would insert a flexible
-	 *			space before the button in the layout.
-	 */
-	class BS_EXPORT GUIFlexibleSpace : public GUIElementBase
-	{
-	public:
-		GUIFlexibleSpace() {}
-		~GUIFlexibleSpace();
-
-		/**
-		 * @copydoc	GUIElementBase::_getType
-		 */
-		Type _getType() const override { return GUIElementBase::Type::FlexibleSpace; }
-
-		/**
-		 * @copydoc	GUIElementBase::_getOptimalSize
-		 */
-		virtual Vector2I _getOptimalSize() const override { return Vector2I(0, 0); }
-
-		/**
-		 * @copydoc	GUIElementBase::_calculateLayoutSizeRange
-		 */
-		virtual LayoutSizeRange _calculateLayoutSizeRange() const override;
-
-		/**
-		 * @copydoc	GUIElementBase::_getPadding
-		 */
-		virtual const RectOffset& _getPadding() const override
-		{
-			static RectOffset padding;
-
-			return padding;
-		}
-
-		/**
-		 * @brief	Creates a new flexible space GUI element.
-		 */
-		static GUIFlexibleSpace* create();
-
-		/**
-		 * @brief	Destroys the space and removes it from its parent.
-		 */
-		static void destroy(GUIFlexibleSpace* space);
-	};
-}

+ 0 - 219
BansheeEngine/Include/BsGUITexture.h

@@ -1,219 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsPrerequisites.h"
-#include "BsGUIElement.h"
-#include "BsImageSprite.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	Type of scaling modes for GUI images.
-	 */
-	enum class GUIImageScaleMode
-	{
-		StretchToFit, /**< Image will stretch non-uniformly in all dimensions in order to cover the assigned area fully. */
-		ScaleToFit, /**< Image will scale uniformly until one dimension is aligned with the assigned area. Remaining dimension might have empty space. */
-		CropToFit, /**< Image will scale uniformly until both dimensions are larger or aligned with the assigned area. Remaining dimension might be cropped. */
-		RepeatToFit /**< Image will keep its original size, but will repeat in order to fill the assigned area. */
-	};
-
-	/**
-	 * @brief	A GUI element that displays a texture.
-	 */
-	class BS_EXPORT GUITexture : public GUIElement
-	{
-	public:
-		/**
-		 * Returns type name of the GUI element used for finding GUI element styles. 
-		 */
-		static const String& getGUITypeName();
-
-		/**
-		 * @brief	Creates a new GUI texture element.
-		 *
-		 * @param	texture			Texture element to display. If this is null then the texture specified
-		 *							by the style will be used.
-		 * @param	scale			Scale mode to use when sizing the texture.
-		 * @param	transparent		Determines should the texture be rendered with transparency active.
-		 * @param	options			Options that allow you to control how is the element positioned and sized.
-		 *							This will override any similar options set by style.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUITexture* create(const HSpriteTexture& texture, GUIImageScaleMode scale, bool transparent,
-			const GUIOptions& options, const String& styleName = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new GUI texture element.
-		 *
-		 * @param	texture			Texture element to display. If this is null then the texture specified
-		 *							by the style will be used.
-		 * @param	scale			Scale mode to use when sizing the texture.
-		 * @param	transparent		Determines should the texture be rendered with transparency active.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUITexture* create(const HSpriteTexture& texture, GUIImageScaleMode scale, bool transparent,
-			const String& styleName = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new GUI texture element.
-		 *
-		 * @param	texture			Texture element to display. If this is null then the texture specified
-		 *							by the style will be used.
-		 * @param	scale			Scale mode to use when sizing the texture.
-		 * @param	options			Options that allow you to control how is the element positioned and sized.
-		 *							This will override any similar options set by style.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUITexture* create(const HSpriteTexture& texture, GUIImageScaleMode scale, 
-			const GUIOptions& options, const String& styleName = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new GUI texture element.
-		 *
-		 * @param	texture			Texture element to display. If this is null then the texture specified
-		 *							by the style will be used.
-		 * @param	scale			Scale mode to use when sizing the texture.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUITexture* create(const HSpriteTexture& texture, GUIImageScaleMode scale, 
-			const String& styleName = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new GUI texture element. Uses the default StretchToFit scale mode.
-		 *
-		 * @param	texture			Texture element to display. If this is null then the texture specified
-		 *							by the style will be used.
-		 * @param	options			Options that allow you to control how is the element positioned and sized.
-		 *							This will override any similar options set by style.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUITexture* create(const HSpriteTexture& texture, 
-			const GUIOptions& options, const String& styleName = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new GUI texture element. Uses the default StretchToFit scale mode.
-		 *
-		 * @param	texture			Texture element to display. If this is null then the texture specified
-		 *							by the style will be used.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUITexture* create(const HSpriteTexture& texture, const String& styleName = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new GUI texture element. Uses the "normal" texture from the active GUI element style.
-		 *
-		 * @param	scale			Scale mode to use when sizing the texture.
-		 * @param	options			Options that allow you to control how is the element positioned and sized.
-		 *							This will override any similar options set by style.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUITexture* create(GUIImageScaleMode scale, const GUIOptions& options, 
-			const String& styleName = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new GUI texture element. Uses the "normal" texture from the active GUI element style.
-		 *
-		 * @param	scale			Scale mode to use when sizing the texture.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUITexture* create(GUIImageScaleMode scale, const String& styleName = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new GUI texture element. Uses the "normal" texture from the active GUI element style.
-		 *			Uses the default StretchToFit scale mode.
-		 *
-		 * @param	options			Options that allow you to control how is the element positioned and sized.
-		 *							This will override any similar options set by style.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUITexture* create(const GUIOptions& options, const String& styleName = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new GUI texture element. Uses the "normal" texture from the active GUI element style.
-		 *			Uses the default StretchToFit scale mode.
-		 *
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUITexture* create(const String& styleName = StringUtil::BLANK);
-
-		/**
-		 * @brief	Changes the active texture. If the provided texture is null 
-		 *			then the texture specified by the style will be used.
-		 */
-		void setTexture(const HSpriteTexture& texture);
-
-		/**
-		 * @copydoc	GUIElement::getElementType
-		 */
-		virtual ElementType _getElementType() const override { return ElementType::Texture; }
-
-		/**
-		 * @copydoc	GUIElement::_getOptimalSize
-		 */
-		virtual Vector2I _getOptimalSize() const override;
-	protected:
-		GUITexture(const String& styleName, const HSpriteTexture& texture, GUIImageScaleMode scale, 
-			bool transparent, const GUIDimensions& dimensions);
-		virtual ~GUITexture();
-
-		/**
-		 * @copydoc GUIElement::_getNumRenderElements
-		 */
-		virtual UINT32 _getNumRenderElements() const override;
-
-		/**
-		 * @copydoc GUIElement::_getMaterial
-		 */
-		virtual const SpriteMaterialInfo& _getMaterial(UINT32 renderElementIdx) const override;
-
-		/**
-		 * @copydoc GUIElement::_getNumQuads
-		 */
-		virtual UINT32 _getNumQuads(UINT32 renderElementIdx) const override;
-
-		/**
-		 * @copydoc GUIElement::_fillBuffer
-		 */
-		virtual void _fillBuffer(UINT8* vertices, UINT8* uv, UINT32* indices, UINT32 startingQuad, 
-			UINT32 maxNumQuads, UINT32 vertexStride, UINT32 indexStride, UINT32 renderElementIdx) const override;
-
-		/**
-		 * @copydoc GUIElement::updateRenderElementsInternal
-		 */
-		virtual void updateRenderElementsInternal() override;
-
-		/**
-		 * @copydoc GUIElement::styleUpdated
-		 */
-		virtual void styleUpdated() override;
-
-		ImageSprite* mImageSprite;
-		HSpriteTexture mActiveTexture;
-		IMAGE_SPRITE_DESC mDesc;
-		GUIImageScaleMode mScaleMode;
-		bool mTransparent;
-		bool mUsingStyleTexture;
-	};
-}

+ 0 - 152
BansheeEngine/Include/BsGUIToggle.h

@@ -1,152 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsPrerequisites.h"
-#include "BsGUIButtonBase.h"
-#include "BsGUIToggleGroup.h"
-#include "BsImageSprite.h"
-#include "BsTextSprite.h"
-#include "BsGUIContent.h"
-#include "BsEvent.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	GUI element representing a toggle (on/off) button.
-	 */
-	class BS_EXPORT GUIToggle : public GUIButtonBase
-	{
-	public:
-		/**
-		 * Returns type name of the GUI element used for finding GUI element styles. 
-		 */
-		static const String& getGUITypeName();
-
-		/**
-		 * @brief	Creates a new toggle button with the specified label.
-		 *
-		 * @param	text			Label to display in the button, if any.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUIToggle* create(const HString& text, const String& styleName = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new toggle button with the specified label.
-		 *
-		 * @param	text			Label to display in the button, if any.
-		 * @param	options			Options that allow you to control how is the element positioned and sized.
-		 *							This will override any similar options set by style.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUIToggle* create(const HString& text, const GUIOptions& options, 
-			const String& styleName = StringUtil::BLANK);
-	
-		/**
-		 * @brief	Creates a new toggle button with the specified label.
-		 *
-		 * @param	text			Label to display in the button, if any.
-		 * @param	toggleGroup		Toggle group this button belongs to.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUIToggle* create(const HString& text, std::shared_ptr<GUIToggleGroup> toggleGroup, 
-			const String& styleName = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new toggle button with the specified label.
-		 *
-		 * @param	text			Label to display in the button, if any.
-		 * @param	toggleGroup		Toggle group this button belongs to.
-		 * @param	options			Options that allow you to control how is the element positioned and sized.
-		 *							This will override any similar options set by style.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 */
-		static GUIToggle* create(const HString& text, std::shared_ptr<GUIToggleGroup> toggleGroup, 
-			const GUIOptions& options, const String& styleName = StringUtil::BLANK);
-
-		/**
-		 * @copydoc	GUIToggle::create(const HString& text, const String& styleName)
-		 */
-		static GUIToggle* create(const GUIContent& content, const String& styleName = StringUtil::BLANK);
-
-		/**
-		 * @copydoc	GUIToggle::create(const HString& text, const GUIOptions& options, const String& styleName)
-		 */
-		static GUIToggle* create(const GUIContent& content, const GUIOptions& options, 
-			const String& styleName = StringUtil::BLANK);
-
-		/**
-		 * @copydoc	GUIToggle::create(const HString& text, std::shared_ptr<GUIToggleGroup> toggleGroup, const String& styleName)
-		 */
-		static GUIToggle* create(const GUIContent& content, std::shared_ptr<GUIToggleGroup> toggleGroup, 
-			const String& styleName = StringUtil::BLANK);
-
-		/**
-		 * @copydoc	GUIToggle::create(const HString& text, std::shared_ptr<GUIToggleGroup> toggleGroup, const GUIOptions& options, const String& styleName)
-		 */
-		static GUIToggle* create(const GUIContent& content, std::shared_ptr<GUIToggleGroup> toggleGroup, 
-			const GUIOptions& options, const String& styleName = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a toggle group that you may provide to GUIToggle upon construction. Toggles sharing the
-		 *			same group will only have a single element active at a time.
-		 *
-		 * @param	allowAllOff	If true all of the toggle buttons can be turned off, if false one will always be turned on.
-		 */
-		static std::shared_ptr<GUIToggleGroup> createToggleGroup(bool allowAllOff = false);
-
-		/**
-		 * @brief	Checks the toggle, making it active.
-		 */
-		virtual void toggleOn();
-
-		/**
-		 * @brief	Unchecks the toggle, making it inactive.
-		 */
-		virtual void toggleOff();
-
-		/**
-		 * @brief	Checks is the toggle currently on.
-		 */
-		bool isToggled() const { return mIsToggled; }
-
-		/**
-		 * @copydoc	GUIButtonBase::getElementType
-		 */
-		virtual ElementType _getElementType() const override { return ElementType::Toggle; }
-
-		/**
-		 * @brief	Sets a toggle group of the toggle button. Toggling one button in a group will
-		 *			automatically untoggle others.
-		 */
-		void _setToggleGroup(std::shared_ptr<GUIToggleGroup> toggleGroup);
-
-		/**
-		 * @brief	Triggered whenever the button is toggled on or off.
-		 */
-		Event<void(bool)> onToggled;
-	protected:
-		virtual ~GUIToggle();
-
-	protected:
-		GUIToggle(const String& styleName, const GUIContent& content, 
-			std::shared_ptr<GUIToggleGroup> toggleGroup, const GUIDimensions& dimensions);
-
-		/**
-		 * @copydoc	GUIButtonBase::mouseEvent
-		 */
-		virtual bool _mouseEvent(const GUIMouseEvent& ev) override;
-
-	protected:
-		std::shared_ptr<GUIToggleGroup> mToggleGroup;
-		bool mIsToggled;
-	};
-}

+ 0 - 107
BansheeEngine/Include/BsGUIViewport.h

@@ -1,107 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsPrerequisites.h"
-#include "BsGUIElement.h"
-#include "BsMath.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	Displays a Camera view in the form of a GUI element.
-	 */
-	class BS_EXPORT GUIViewport : public GUIElement
-	{
-	public:
-		/**
-		 * Returns type name of the GUI element used for finding GUI element styles. 
-		 */
-		static const String& getGUITypeName();
-
-		/**
-		 * @brief	Creates a new GUI viewport element.
-		 *
-		 * @param	camera			Camera whos view to display in the element. Element will update the camera
-		 *							as it resizes.
-		 * @param	aspectRatio		Initial aspect of the camera. Determines how is FOV adjusted as the element resizes.
-		 * @param	fieldOfView		Initial FOV of the camera. Determines how is FOV adjusted as the element resizes.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 *
-		 * @note Render target used by the GUIWidget and Camera must be the same. 
-		 */
-		static GUIViewport* create(const HCamera& camera, float aspectRatio, Degree fieldOfView, const String& styleName = StringUtil::BLANK);
-
-		/**
-		 * @brief	Creates a new GUI viewport element.
-		 *
-		 * @param	camera			Camera whos view to display in the element. Element will update the camera
-		 *							as it resizes.
-		 * @param	aspectRatio		Initial aspect of the camera. Determines how is FOV adjusted as the element resizes.
-		 * @param	fieldOfView		Initial FOV of the camera. Determines how is FOV adjusted as the element resizes.
-		 * @param	options			Options that allow you to control how is the element positioned and sized.
-		 *							This will override any similar options set by style.
-		 * @param	styleName		Optional style to use for the element. Style will be retrieved
-		 *							from GUISkin of the GUIWidget the element is used on. If not specified
-		 *							default style is used.
-		 *
-		 * @note Render target used by the GUIWidget and Camera must be the same. 
-		 */
-		static GUIViewport* create(const GUIOptions& options, const HCamera& camera, 
-			float aspectRatio, Degree fieldOfView, const String& styleName = StringUtil::BLANK);
-
-		/**
-		 * @copydoc	GUIElement::_getOptimalSize
-		 */
-		virtual Vector2I _getOptimalSize() const override;
-
-	protected:
-		~GUIViewport();
-
-		/**
-		 * @copydoc GUIElement::_getNumRenderElements
-		 */
-		virtual UINT32 _getNumRenderElements() const override;
-
-		/**
-		 * @copydoc GUIElement::_getMaterial
-		 */
-		virtual const SpriteMaterialInfo& _getMaterial(UINT32 renderElementIdx) const override;
-
-		/**
-		 * @copydoc GUIElement::_getNumQuads
-		 */
-		virtual UINT32 _getNumQuads(UINT32 renderElementIdx) const override;
-
-		/**
-		 * @copydoc GUIElement::_fillBuffer
-		 */
-		virtual void _fillBuffer(UINT8* vertices, UINT8* uv, UINT32* indices, UINT32 startingQuad, 
-			UINT32 maxNumQuads, UINT32 vertexStride, UINT32 indexStride, UINT32 renderElementIdx) const override;
-
-		/**
-		 * @copydoc GUIElement::updateClippedBounds
-		 */
-		virtual void updateClippedBounds() override;
-
-		/**
-		 * @copydoc GUIElement::updateRenderElementsInternal
-		 */
-		virtual void updateRenderElementsInternal() override;
-
-	private:
-		GUIViewport(const String& styleName, const HCamera& camera, float aspectRatio, Degree fieldOfView, const GUIDimensions& dimensions);
-
-		/**
-		 * @copydoc	GUIElement::_changeParentWidget
-		 */
-		void _changeParentWidget(GUIWidget* widget) override;
-
-		HCamera mCamera;
-		float mAspectRatio;
-		Degree mFieldOfView;
-		Radian mVerticalFOV;
-	};
-}

+ 0 - 50
BansheeEngine/Include/BsHEString.h

@@ -1,50 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	Helper class used for constructing HString%s that references the engine string table.
-	 *			Engine string table is just a separate string table so it doesn't conflict with
-	 *			the game string table.
-	 */
-	class BS_EXPORT HEString
-	{
-	public:
-		/**
-		 * @brief	Creates a new localized string with the specified identifier in the engine string table. 
-		 *			If the identifier doesn't previously exist in the string table, identifier value will also 
-		 *			be used for initializing the default language version of the string.
-		 *
-		 * @param	identifier		String you can use for later referencing the localized string.
-		 */
-		HEString(const WString& identifier);
-
-		/**
-		 * @brief	Creates a new localized string with the specified identifier in the engine string table and sets the 
-		 *			default language version of the string. If a string with that identifier already exists default language 
-		 *			string will be updated.
-		 *
-		 * @param	identifier		String you can use for later referencing the localized string.
-		 * @param	default			Default string to assign to the specified identifier. Language to which it
-		 *							will be assigned depends on the StringTable::DEFAULT_LANGUAGE value.
-		 */
-		HEString(const WString& identifier, const WString& default);
-
-		/**
-		 * @brief	Creates a new empty localized string in the engine string table.
-		 */
-		HEString();
-
-		/**
-		 * @brief	Implicitly casts the editor string type to a generic string type.
-		 */
-		operator HString() const;
-
-	private:
-		static const UINT32 ENGINE_STRING_TABLE_ID;
-
-		HString mInternal;
-	};
-}

+ 0 - 210
BansheeEngine/Include/BsInputConfiguration.h

@@ -1,210 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsPrerequisites.h"
-#include "BsInputFwd.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	Describes a virtual button. Virtual buttons allow you to
-	 *			map custom actions without needing to know about what 
-	 *			physical buttons trigger those actions.
-	 */
-	struct BS_EXPORT VIRTUAL_BUTTON_DESC
-	{
-		VIRTUAL_BUTTON_DESC();
-
-		/**
-		 * @brief	Constructs a virtual button descriptor.
-		 *
-		 * @param	buttonCode	Physical button the virtual button is triggered by.
-		 * @param	modifiers	Modifiers required to be pressed with the physical button to trigger the virtual button.
-		 * @param	repeatable	If true, the virtual button events will be sent continually while the physical button is being held.
-		 */
-		VIRTUAL_BUTTON_DESC(ButtonCode buttonCode, ButtonModifier modifiers = ButtonModifier::None, bool repeatable = false);
-
-		ButtonCode buttonCode;
-		ButtonModifier modifiers;
-		bool repeatable;
-	};
-
-	/**
-	 * @brief	Describes a virtual axis. Virtual axes allow you to map
-	 *			custom axes without needing to know the actual physical device
-	 *			handling those axes.
-	 */
-	struct BS_EXPORT VIRTUAL_AXIS_DESC
-	{
-		VIRTUAL_AXIS_DESC();
-
-		/**
-		 * @brief	Constructs a new virtual axis descriptor.
-		 *
-		 * @param	type		Type of physical axis to map to. See InputAxis type for common types, but you are not limited to those values.
-		 * @param	deadZone	Value below which to ignore axis value and consider it 0.
-		 * @param	sensitivity	Higher sensitivity means the axis will more easily reach its maximum values.
-		 * @param	invert		Should axis values be inverted.
-		 */
-		VIRTUAL_AXIS_DESC(UINT32 type, float deadZone = 0.0001f, float sensitivity = 1.0f, bool invert = false);
-
-		float deadZone;
-		float sensitivity;
-		bool invert;
-		UINT32 type;
-	};
-
-	/**
-	 * @brief	Identifier for a virtual button. 
-	 * 			
-	 * @note	Primary purpose of this class is to avoid expensive string compare (i.e. button names),
-	 * 			and instead use a unique button identifier for compare. Generally you want to create 
-	 * 			one of these using the button name, and then store it for later use. 
-	 * 			
-	 *			This class is not thread safe and should only be used on the sim thread.
-	 *
-	 * @see		VIRTUAL_BUTTON_DESC
-	 */
-	class BS_EXPORT VirtualButton 
-	{
-	public:
-		VirtualButton();
-		VirtualButton(const String& name);
-
-		bool operator== (const VirtualButton& rhs) const
-		{
-			return (buttonIdentifier == rhs.buttonIdentifier);
-		}
-
-		UINT32 buttonIdentifier;
-	private:
-		static Map<String, UINT32> UniqueButtonIds;
-		static UINT32 NextButtonId;
-	};
-
-	/**
-	 * @brief	Identifier for a virtual axis. 
-	 * 			
-	 * @note	Primary purpose of this class is to avoid expensive string compare (i.e. axis names),
-	 * 			and instead use a unique axis identifier for compare. Generally you want to create 
-	 * 			one of these using the axis name, and then store it for later use. 
-	 * 			
-	 *			This class is not thread safe and should only be used on the sim thread.
-	 *
-	 * @see		VIRTUAL_AXIS_DESC
-	 */
-	class BS_EXPORT VirtualAxis
-	{
-	public:
-		VirtualAxis();
-		VirtualAxis(const String& name);
-
-		UINT32 axisIdentifier;
-
-		bool operator== (const VirtualAxis& rhs) const
-		{
-			return (axisIdentifier == rhs.axisIdentifier);
-		}
-
-	private:
-		static Map<String, UINT32> UniqueAxisIds;
-		static UINT32 NextAxisId;
-	};
-
-	/**
-	 * @brief	Contains virtual <-> physical key mappings.
-	 */
-	class BS_EXPORT InputConfiguration
-	{
-		static const int MAX_NUM_DEVICES_PER_TYPE = 8;
-		static const int MAX_NUM_DEVICES = (UINT32)InputDevice::Count * MAX_NUM_DEVICES_PER_TYPE;
-
-		/**
-		 * @brief	Internal virtual button data container.
-		 */
-		struct VirtualButtonData
-		{
-			String name;
-			VirtualButton button;
-			VIRTUAL_BUTTON_DESC desc;
-		};
-
-		/**
-		 * @brief	Internal virtual axis data container.
-		 */
-		struct VirtualAxisData
-		{
-			String name;
-			VirtualAxis axis;
-			VIRTUAL_AXIS_DESC desc;
-		};
-
-		/**
-		 * @brief	Internal container for holding axis data for all devices.
-		 */
-		struct DeviceAxisData
-		{
-			VirtualAxisData axes[(UINT32)InputAxis::Count];
-		};
-
-	public:
-		InputConfiguration();
-
-		/**
-		 * @brief	Registers a new virtual button.
-		 *
-		 * @param	name		Unique name used to access the virtual button.
-		 * @param	buttonCode	Physical button the virtual button is triggered by.
-		 * @param	modifiers	Modifiers required to be pressed with the physical button to trigger the virtual button.
-		 * @param	repeatable	If true, the virtual button events will be sent continually while the physical button is being held.
-		 */
-		void registerButton(const String& name, ButtonCode buttonCode, ButtonModifier modifiers = ButtonModifier::None, bool repeatable = false);
-
-		/**
-		 * @brief	Unregisters a virtual button with the specified name. Events will no longer be generated for that button.
-		 */
-		void unregisterButton(const String& name);
-
-		/**
-		 * @brief	Registers a new virtual axis.
-		 *
-		 * @param	name	Unique name used to access the axis.
-		 * @param	desc	Descriptor structure containing virtual axis creation parameters.
-		 */
-		void registerAxis(const String& name, const VIRTUAL_AXIS_DESC& desc);
-
-		/**
-		 * @brief	Unregisters a virtual axis with the specified name. You will no longer
-		 *			be able to retrieve valid values for that axis.
-		 */
-		void unregisterAxis(const String& name);
-
-		/**
-		 * @brief	Sets repeat interval for held virtual buttons. Buttons will be continously triggered in
-		 * 			interval increments as long as they button is being held.
-		 */
-		void setRepeatInterval(UINT64 milliseconds) { mRepeatInterval = milliseconds; }
-
-		/**
-		 * @brief	Gets the currently set repeat interval for held virtual buttons.
-		 */
-		UINT64 getRepeatInterval() const { return mRepeatInterval; }
-
-		/**
-		 * @brief	Returns data about virtual buttons that are triggered 
-		 *			by the specified physical button code and modifier flags.
-		 */
-		bool _getButtons(ButtonCode code, UINT32 modifiers, Vector<VirtualButton>& btns, Vector<VIRTUAL_BUTTON_DESC>& btnDescs) const;
-
-		/**
-		 * @brief	Retrieves virtual axis descriptor for the provided axis.
-		 */
-		bool _getAxis(const VirtualAxis& axis, VIRTUAL_AXIS_DESC& axisDesc) const;
-	private:
-		Vector<VirtualButtonData> mButtons[BC_Count];
-		Vector<VirtualAxisData> mAxes;
-
-		UINT64 mRepeatInterval;
-	};
-}

+ 0 - 306
BansheeEngine/Include/BsRenderable.h

@@ -1,306 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsPrerequisites.h"
-#include "BsIReflectable.h"
-#include "BsCoreObject.h"
-#include "BsIResourceListener.h"
-#include "BsBounds.h"
-#include "BsAABox.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	Signals which portion of a Renderable is dirty.
-	 */
-	enum class RenderableDirtyFlag
-	{
-		Transform = 0x01,
-		Everything = 0x02
-	};
-
-	/**
-	 * @brief	Renderable represents any visible object in the scene. It has a mesh,
-	 *			bounds and a set of materials. Renderer will render any Renderable objects
-	 *			visible by a camera.
-	 */
-	template<bool Core>
-	class BS_EXPORT TRenderable
-	{
-		template<bool Core> struct TMeshType {};
-		template<> struct TMeshType < false > { typedef HMesh Type; };
-		template<> struct TMeshType < true > { typedef SPtr<MeshCore> Type; };
-
-		template<bool Core> struct TMaterialType {};
-		template<> struct TMaterialType < false > { typedef HMaterial Type; };
-		template<> struct TMaterialType < true > { typedef SPtr<MaterialCore> Type; };
-
-		typedef typename TMeshType<Core>::Type MeshType;
-		typedef typename TMaterialType<Core>::Type MaterialType;
-
-	public:
-		TRenderable();
-		virtual ~TRenderable();
-
-		/**
-		 * @brief	Sets the mesh to render. All sub-meshes of the mesh will be rendered,
-		 *			and you may set individual materials for each sub-mesh.
-		 */
-		void setMesh(const MeshType& mesh);
-
-		/**
-		 * @brief	Sets a material that will be used for rendering a sub-mesh with
-		 *			the specified index. If a sub-mesh doesn't have a specific material set
-		 *			then the primary material will be used.
-		 */
-		void setMaterial(UINT32 idx, const MaterialType& material);
-
-		/**
-		 * @brief	Sets the primary material to use for rendering. Any sub-mesh that
-		 *			doesn't have an explicit material set will use this material.
-		 *
-		 * @note	This is equivalent to calling setMaterial(0, material).
-		 */
-		void setMaterial(const MaterialType& material);
-
-		/**
-		 * @brief	Returns all materials used for rendering this renderable. Each of the materials is used for rendering
-		 * 			a single sub-mesh.
-		 */
-		const Vector<MaterialType>& getMaterials() { return mMaterials; }
-
-		/**
-		 * @brief	Sets all materials used for rendering this renderable. Each of the materials is used for rendering
-		 * 			a single sub-mesh. If number of materials is larger than number of sub-meshes, they will be ignored.
-		 * 			If lower, the remaining materials will be removed.
-		 */
-		void setMaterials(const Vector<MaterialType>& materials);
-
-		/**
-		 * @brief	Sets the layer bitfield that controls whether a renderable is considered 
-		 *			visible in a specific camera. Renderable layer must match camera layer
-		 *			in order for the camera to render the component.
-		 */
-		void setLayer(UINT64 layer);
-
-		/**
-		 * @brief	Sets the transform matrix that is applied to the object
-		 *			when its being rendered.
-		 */
-		void setTransform(const Matrix4& transform, const Matrix4& transformNoScale);
-
-		/**
-		 * @brief	Sets whether the object should be rendered or not.
-		 */
-		void setIsActive(bool active);
-
-		/**
-		 * @brief	Gets the layer bitfield that controls whether a renderable is considered 
-		 *			visible in a specific camera. Renderable layer must match camera layer
-		 *			in order for the camera to render the component.
-		 */
-		UINT64 getLayer() const { return mLayer; }
-
-		/**
-		 * @brief	Returns the mesh used for rendering.
-		 */
-		MeshType getMesh() const { return mMesh; }
-
-		/**
-		 * @brief	Returns the material used for rendering a sub-mesh with
-		 *			the specified index.
-		 */
-		MaterialType getMaterial(UINT32 idx) const { return mMaterials[idx]; }
-
-		/**
-		 * @brief	Returns the transform matrix that is applied to the object
-		 *			when its being rendered.
-		 */
-		Matrix4 getTransform() const { return mTransform; }
-
-		/**
-		 * @brief	Returns the transform matrix that is applied to the object
-		 *			when its being rendered. This transform matrix does not
-		 *			include scale values.
-		 */
-		Matrix4 getTransformNoScale() const { return mTransformNoScale; }
-
-		/**
-		 * @brief	Gets whether the object should be rendered or not.
-		 */
-		bool getIsActive() const { return mIsActive; }
-
-		/**
-		 * @brief	Retrieves the world position of the renderable.
-		 */
-		Vector3 getPosition() const { return mPosition; }
-
-	protected:
-		/**
-		 * @copydoc	CoreObject::markCoreDirty
-		 */
-		virtual void _markCoreDirty(RenderableDirtyFlag flag = RenderableDirtyFlag::Everything) { }
-
-		/**
-		 * @copydoc	CoreObject::markDependenciesDirty
-		 */
-		virtual void _markDependenciesDirty() { }
-
-		/**
-		 * @copydoc	IResourceListener::markResourcesDirty
-		 */
-		virtual void _markResourcesDirty() { }
-
-		MeshType mMesh;
-		Vector<MaterialType> mMaterials;
-		UINT64 mLayer;
-		Vector<AABox> mWorldBounds;
-		Vector3 mPosition;
-		Matrix4 mTransform;
-		Matrix4 mTransformNoScale;
-		bool mIsActive;
-	};
-
-	/**
-	 * @copydoc	TRenderable
-	 */
-	class BS_EXPORT RenderableCore : public CoreObjectCore, public TRenderable<true>
-	{
-	public:
-		~RenderableCore();
-
-		/**
-		 * @brief	Gets world bounds of the mesh rendered by this object.
-		 */
-		Bounds getBounds() const;
-
-		/**
-		 * @brief	Returns the type that controls how is this object rendered.
-		 */
-		RenderableType getRenderableType() const { return RenType_LitTextured; }
-
-		/**
-		 * @brief	Sets an ID that can be used for uniquely identifying this handler by the renderer.
-		 */
-		void setRendererId(UINT32 id) { mRendererId = id; }
-
-		/**
-		 * @brief	Retrieves an ID that can be used for uniquely identifying this handler by the renderer.
-		 */
-		UINT32 getRendererId() const { return mRendererId; }
-
-	protected:
-		friend class Renderable;
-
-		RenderableCore();
-
-		/**
-		 * @copydoc	CoreObject::initialize
-		 */
-		void initialize() override;
-
-		/**
-		 * @copydoc	CoreObject::syncToCore
-		 */
-		void syncToCore(const CoreSyncData& data) override;
-
-		UINT32 mRendererId;
-	};
-
-	/**
-	 * @copydoc	TRenderable
-	 */
-	class BS_EXPORT Renderable : public IReflectable, public CoreObject, public TRenderable<false>, public IResourceListener
-	{
-	public:
-		/**
-		 * @brief	Gets world bounds of the mesh rendered by this object.
-		 */
-		Bounds getBounds() const;
-
-		/**
-		 * @brief	Retrieves an implementation of a renderable handler usable only from the
-		 *			core thread.
-		 */
-		SPtr<RenderableCore> getCore() const;
-
-		/**
-	     * @brief	Returns the hash value that can be used to identify if the internal data needs an update.
-		 */
-		UINT32 _getLastModifiedHash() const { return mLastUpdateHash; }
-
-		/**
-	     * @brief	Sets the hash value that can be used to identify if the internal data needs an update.
-		 */
-		void _setLastModifiedHash(UINT32 hash) { mLastUpdateHash = hash; }
-
-		/**
-		 * @brief	Creates a new renderable handler instance.
-		 */
-		static RenderablePtr create();
-
-	protected:
-		Renderable();
-
-		/**
-		 * @copydoc	CoreObject::createCore
-		 */
-		SPtr<CoreObjectCore> createCore() const override;
-
-		/**
-		 * @copydoc	CoreObject::markCoreDirty
-		 */
-		void _markCoreDirty(RenderableDirtyFlag flag = RenderableDirtyFlag::Everything) override;
-
-		/**
-		* @copydoc	IResourceListener::markResourcesDirty
-		*/
-		void _markResourcesDirty() override;
-
-		/**
-		 * @copydoc	CoreObject::markDependenciesDirty
-		 */
-		void _markDependenciesDirty() override;
-
-		/**
-		 * @copydoc	CoreObject::syncToCore
-		 */
-		CoreSyncData syncToCore(FrameAlloc* allocator) override;
-
-		/**
-		 * @copydoc	CoreObject::getCoreDependencies
-		 */
-		void getCoreDependencies(Vector<CoreObject*>& dependencies) override;
-
-		/**
-		 * @copydoc	IResourceListener::getListenerResources
-		 */
-		void getListenerResources(Vector<HResource>& resources) override;
-
-		/**
-		 * @copydoc IResourceListener::notifyResourceLoaded
-		 */
-		void notifyResourceLoaded(const HResource& resource) override;
-
-		/**
-		 * @copydoc IResourceListener::notifyResourceChanged
-		 */
-		void notifyResourceChanged(const HResource& resource) override;
-
-		/**
-		 * @brief	Creates a new renderable handler instance without initializing it.
-		 */
-		static RenderablePtr createEmpty();
-
-		UINT32 mLastUpdateHash;
-
-		/************************************************************************/
-		/* 								RTTI		                     		*/
-		/************************************************************************/
-	public:
-		friend class RenderableRTTI;
-		static RTTITypeBase* getRTTIStatic();
-		virtual RTTITypeBase* getRTTI() const override;
-	};
-}

+ 0 - 71
BansheeEngine/Include/BsRenderer.h

@@ -1,71 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsPrerequisites.h"
-#include "BsCoreRenderer.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @copydoc	CoreRenderer
-	 */
-	class BS_EXPORT Renderer : public CoreRenderer
-	{
-	public:
-		virtual ~Renderer() { }
-
-		/**
-		 * @brief	Called whenever a new renderable is created.
-		 *
-		 * @note	Core thread.
-		 *			Internal method.
-		 */
-		virtual void _notifyRenderableAdded(RenderableCore* renderable) { }
-
-		/**
-		 * @brief	Called whenever a renderable is updated.
-		 *
-		 * @note	Core thread.
-		 *			Internal method.
-		 */
-		virtual void _notifyRenderableUpdated(RenderableCore* renderable) { }
-
-		/**
-		 * @brief	Called whenever a renderable is destroyed.
-		 *
-		 * @note	Core thread.
-		 *			Internal method.
-		 */
-		virtual void _notifyRenderableRemoved(RenderableCore* renderable) { }
-
-		/**
-		 * @brief	Called whenever a new light is created.
-		 *
-		 * @note	Core thread.
-		 *			Internal method.
-		 */
-		virtual void _notifyLightAdded(LightCore* light) { }
-
-		/**
-		 * @brief	Called whenever a light is updated.
-		 *
-		 * @note	Core thread.
-		 *			Internal method.
-		 */
-		virtual void _notifyLightUpdated(LightCore* light) { }
-
-		/**
-		 * @brief	Called whenever a light is destroyed.
-		 *
-		 * @note	Core thread.
-		 *			Internal method.
-		 */
-		virtual void _notifyLightRemoved(LightCore* light) { }
-	};
-
-	/**
-	 * @brief	Retrieves the currently active renderer.
-	 */
-	SPtr<Renderer> BS_EXPORT gRenderer();
-}

+ 0 - 196
BansheeEngine/Include/BsSceneManager.h

@@ -1,196 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-#pragma once
-
-#include "BsPrerequisites.h"
-#include "BsCoreSceneManager.h"
-
-namespace BansheeEngine
-{
-	/**
-	 * @brief	Contains information about a camera managed by the scene manager.
-	 */
-	struct SceneCameraData
-	{
-		SceneCameraData() { }
-
-		SceneCameraData(const CameraPtr& camera, const HSceneObject& sceneObject)
-			:camera(camera), sceneObject(sceneObject)
-		{ }
-
-		CameraPtr camera;
-		HSceneObject sceneObject;
-	};
-
-	/**
-	 * @brief	Contains information about a renderable managed by the scene manager.
-	 */
-	struct SceneRenderableData
-	{
-		SceneRenderableData() { }
-
-		SceneRenderableData(const RenderablePtr& renderable, const HSceneObject& sceneObject)
-			:renderable(renderable), sceneObject(sceneObject)
-		{ }
-
-		RenderablePtr renderable;
-		HSceneObject sceneObject;
-	};
-
-	/**
-	 * @brief	Contains information about a light managed by the scene manager.
-	 */
-	struct SceneLightData
-	{
-		SceneLightData() { }
-
-		SceneLightData(const SPtr<Light>& light, const HSceneObject& sceneObject)
-			:light(light), sceneObject(sceneObject)
-		{ }
-
-		SPtr<Light> light;
-		HSceneObject sceneObject;
-	};
-
-	/**
-	 * @brief	Manages active SceneObjects and provides ways for querying
-	 *			and updating them or their components.
-	 */
-	class BS_EXPORT SceneManager : public CoreSceneManager
-	{
-	public:
-		struct InitOnStart
-		{
-		public:
-			InitOnStart()
-			{
-				SceneManagerFactory::setFactoryMethod(&startUp);
-			}
-
-			static void startUp()
-			{
-				CoreSceneManager::startUp<SceneManager>();
-			}
-		};
-
-		SceneManager() { }
-		virtual ~SceneManager() {}
-
-		/**
-		 * @brief	Returns all cameras in the scene.
-		 *
-		 * @note	Internal method.
-		 */
-		const Map<Camera*, SceneCameraData>& getAllCameras() const { return mCameras; }
-
-		/**
-		 * @brief	Returns all renderables in the scene.
-		 *
-		 * @note	Internal method.
-		 */
-		const Map<Renderable*, SceneRenderableData>& getAllRenderables() const { return mRenderables; }
-
-		/**
-		 * @brief	Returns the camera in the scene marked as main. Main camera controls the final render
-		 *			surface that is displayed to the user. If there are multiple main cameras, the first one found
-		 *			returned.
-		 *
-		 * @note	Internal method.
-		 */
-		SceneCameraData getMainCamera() const;
-
-		/**
-		 * @brief	Sets the render target that the main camera in the scene (if any) will render its view to. This
-		 * 			generally means the main game window when running standalone, or the Game viewport when running
-		 * 			in editor.
-		 *
-		 * @note	Internal method.
-		 */
-		void setMainRenderTarget(const RenderTargetPtr& rt);
-
-		/**
-		 * @brief	Notifies the scene manager that a new renderable was created.
-		 * 
-		 * @note	Internal method.
-		 */
-		void _registerRenderable(const SPtr<Renderable>& renderable, const HSceneObject& so);
-
-		/**
-		 * @brief	Notifies the scene manager that a renderable was removed.
-		 *
-		 * @note	Internal method.
-		 */
-		void _unregisterRenderable(const SPtr<Renderable>& renderable);
-
-		/**
-		 * @brief	Notifies the scene manager that a new camera was created.
-		 *
-		 * @note	Internal method.
-		 */
-		void _registerCamera(const SPtr<Camera>& camera, const HSceneObject& so);
-
-		/**
-		 * @brief	Notifies the scene manager that a camera was removed.
-		 *
-		 * @note	Internal method.
-		 */
-		void _unregisterCamera(const SPtr<Camera>& camera);
-
-		/**
-		 * @brief	Notifies the scene manager that a camera either became the main camera, or has stopped being main camera.
-		 *
-		 * @note	Internal method.
-		 */
-		void _notifyMainCameraStateChanged(const SPtr<Camera>& camera);
-
-		/**
-		 * @brief	Notifies the scene manager that a new light was created.
-		 *
-		 * @note	Internal method.
-		 */
-		void _registerLight(const SPtr<Light>& light, const HSceneObject& so);
-
-		/**
-		 * @brief	Notifies the scene manager that a light was removed.
-		 *
-		 * @note	Internal method.
-		 */
-		void _unregisterLight(const SPtr<Light>& light);
-
-		/**
-		 * @copydoc	CoreSceneManager::_updateCoreObjectTransforms
-		 */
-		virtual void _updateCoreObjectTransforms() override;
-
-		/**
-		 * @copydoc	CoreSceneManager::instance
-		 */
-		static SceneManager& instance();
-
-		/**
-		 * @copydoc	CoreSceneManager::instancePtr
-		 */
-		static SceneManager* instancePtr();
-
-	private:
-		/**
-		 * @brief	Callback that is triggered when the main render target size is changed.
-		 */
-		void onMainRenderTargetResized();
-
-		Map<Camera*, SceneCameraData> mCameras;
-		Map<Renderable*, SceneRenderableData> mRenderables;
-		Map<Light*, SceneLightData> mLights;
-		Vector<SceneCameraData> mMainCameras;
-		RenderTargetPtr mMainRT;
-
-		HEvent mMainRTResizedConn;
-
-		volatile static InitOnStart DoInitOnStart;
-	};
-
-	/**
-	 * @copydoc	SceneManager
-	 */
-	BS_EXPORT SceneManager& gSceneManager();
-}

Daži faili netika attēloti, jo izmaiņu fails ir pārāk liels