Browse Source

Started on DX11 renderer for UWP

Ivan Safrin 10 năm trước cách đây
mục cha
commit
6f18df383d
42 tập tin đã thay đổi với 1204 bổ sung1977 xóa
  1. 20 20
      build/windows/universal/Polycode.sln
  2. BIN
      build/windows/universal/PolycodeCore/PolycodeCore.rc
  3. 86 77
      build/windows/universal/PolycodeCore/PolycodeCore.vcxproj
  4. 244 241
      build/windows/universal/PolycodeCore/PolycodeCore.vcxproj.filters
  5. 14 0
      build/windows/universal/PolycodeCore/resource.h
  6. 160 0
      build/windows/universal/TemplateApp/App.cpp
  7. 49 0
      build/windows/universal/TemplateApp/App.h
  8. 0 8
      build/windows/universal/TemplateApp/App.xaml
  9. 0 85
      build/windows/universal/TemplateApp/App.xaml.cpp
  10. 0 31
      build/windows/universal/TemplateApp/App.xaml.h
  11. 0 27
      build/windows/universal/TemplateApp/Generated Files/App.g.h
  12. 0 96
      build/windows/universal/TemplateApp/Generated Files/App.g.hpp
  13. 0 9
      build/windows/universal/TemplateApp/Generated Files/App.xaml
  14. BIN
      build/windows/universal/TemplateApp/Generated Files/App.xbf
  15. 0 28
      build/windows/universal/TemplateApp/Generated Files/MainPage.g.h
  16. 0 40
      build/windows/universal/TemplateApp/Generated Files/MainPage.g.hpp
  17. 0 14
      build/windows/universal/TemplateApp/Generated Files/MainPage.xaml
  18. BIN
      build/windows/universal/TemplateApp/Generated Files/MainPage.xbf
  19. 0 57
      build/windows/universal/TemplateApp/Generated Files/XamlBindingInfo.g.h
  20. 0 13
      build/windows/universal/TemplateApp/Generated Files/XamlBindingInfo.g.hpp
  21. 0 2
      build/windows/universal/TemplateApp/Generated Files/XamlLibMetadataProvider.g.cpp
  22. 0 544
      build/windows/universal/TemplateApp/Generated Files/XamlTypeInfo.Impl.g.cpp
  23. 0 98
      build/windows/universal/TemplateApp/Generated Files/XamlTypeInfo.g.cpp
  24. 0 343
      build/windows/universal/TemplateApp/Generated Files/XamlTypeInfo.g.h
  25. 0 13
      build/windows/universal/TemplateApp/MainPage.xaml
  26. 0 27
      build/windows/universal/TemplateApp/MainPage.xaml.cpp
  27. 0 21
      build/windows/universal/TemplateApp/MainPage.xaml.h
  28. 2 2
      build/windows/universal/TemplateApp/Package.appxmanifest
  29. 8 6
      build/windows/universal/TemplateApp/PolycodeTemplateApp.cpp
  30. 106 86
      build/windows/universal/TemplateApp/TemplateApp.vcxproj
  31. 12 25
      build/windows/universal/TemplateApp/TemplateApp.vcxproj.filters
  32. 1 6
      build/windows/universal/TemplateApp/pch.cpp
  33. 13 10
      build/windows/universal/TemplateApp/pch.h
  34. 1 1
      include/polycode/core/PolyCoreServices.h
  35. 92 0
      include/polycode/core/PolyDX11GraphicsInterface.h
  36. 7 6
      include/polycode/core/PolyGlobals.h
  37. 70 27
      include/polycode/core/PolyUWPCore.h
  38. BIN
      lib/windows/x64/Polycore.lib
  39. BIN
      lib/windows/x64/Polycored.lib
  40. 129 0
      src/core/PolyDX11GraphicsInterface.cpp
  41. 0 8
      src/core/PolyRenderer.cpp
  42. 190 6
      src/core/PolyUWPCore.cpp

+ 20 - 20
build/windows/universal/Polycode.sln

@@ -3,9 +3,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00
 # Visual Studio 14
 # Visual Studio 14
 VisualStudioVersion = 14.0.23107.0
 VisualStudioVersion = 14.0.23107.0
 MinimumVisualStudioVersion = 10.0.40219.1
 MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PolycodeCore", "PolycodeCore\PolycodeCore.vcxproj", "{EE7AE05C-9AE5-47FA-8A08-28E8D8D89B94}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TemplateApp", "TemplateApp\TemplateApp.vcxproj", "{A19BD860-B494-4D18-8AFB-B788E29236CF}"
 EndProject
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TemplateApp", "TemplateApp\TemplateApp.vcxproj", "{06B5F55D-2971-4458-A612-348ECD8AD7DF}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PolycodeCore", "PolycodeCore\PolycodeCore.vcxproj", "{EE7AE05C-9AE5-47FA-8A08-28E8D8D89B94}"
 EndProject
 EndProject
 Global
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -17,6 +17,24 @@ Global
 		Release|x86 = Release|x86
 		Release|x86 = Release|x86
 	EndGlobalSection
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{A19BD860-B494-4D18-8AFB-B788E29236CF}.Debug|ARM.ActiveCfg = Debug|ARM
+		{A19BD860-B494-4D18-8AFB-B788E29236CF}.Debug|ARM.Build.0 = Debug|ARM
+		{A19BD860-B494-4D18-8AFB-B788E29236CF}.Debug|ARM.Deploy.0 = Debug|ARM
+		{A19BD860-B494-4D18-8AFB-B788E29236CF}.Debug|x64.ActiveCfg = Debug|x64
+		{A19BD860-B494-4D18-8AFB-B788E29236CF}.Debug|x64.Build.0 = Debug|x64
+		{A19BD860-B494-4D18-8AFB-B788E29236CF}.Debug|x64.Deploy.0 = Debug|x64
+		{A19BD860-B494-4D18-8AFB-B788E29236CF}.Debug|x86.ActiveCfg = Debug|Win32
+		{A19BD860-B494-4D18-8AFB-B788E29236CF}.Debug|x86.Build.0 = Debug|Win32
+		{A19BD860-B494-4D18-8AFB-B788E29236CF}.Debug|x86.Deploy.0 = Debug|Win32
+		{A19BD860-B494-4D18-8AFB-B788E29236CF}.Release|ARM.ActiveCfg = Release|ARM
+		{A19BD860-B494-4D18-8AFB-B788E29236CF}.Release|ARM.Build.0 = Release|ARM
+		{A19BD860-B494-4D18-8AFB-B788E29236CF}.Release|ARM.Deploy.0 = Release|ARM
+		{A19BD860-B494-4D18-8AFB-B788E29236CF}.Release|x64.ActiveCfg = Release|x64
+		{A19BD860-B494-4D18-8AFB-B788E29236CF}.Release|x64.Build.0 = Release|x64
+		{A19BD860-B494-4D18-8AFB-B788E29236CF}.Release|x64.Deploy.0 = Release|x64
+		{A19BD860-B494-4D18-8AFB-B788E29236CF}.Release|x86.ActiveCfg = Release|Win32
+		{A19BD860-B494-4D18-8AFB-B788E29236CF}.Release|x86.Build.0 = Release|Win32
+		{A19BD860-B494-4D18-8AFB-B788E29236CF}.Release|x86.Deploy.0 = Release|Win32
 		{EE7AE05C-9AE5-47FA-8A08-28E8D8D89B94}.Debug|ARM.ActiveCfg = Debug|ARM
 		{EE7AE05C-9AE5-47FA-8A08-28E8D8D89B94}.Debug|ARM.ActiveCfg = Debug|ARM
 		{EE7AE05C-9AE5-47FA-8A08-28E8D8D89B94}.Debug|ARM.Build.0 = Debug|ARM
 		{EE7AE05C-9AE5-47FA-8A08-28E8D8D89B94}.Debug|ARM.Build.0 = Debug|ARM
 		{EE7AE05C-9AE5-47FA-8A08-28E8D8D89B94}.Debug|x64.ActiveCfg = Debug|x64
 		{EE7AE05C-9AE5-47FA-8A08-28E8D8D89B94}.Debug|x64.ActiveCfg = Debug|x64
@@ -29,24 +47,6 @@ Global
 		{EE7AE05C-9AE5-47FA-8A08-28E8D8D89B94}.Release|x64.Build.0 = Release|x64
 		{EE7AE05C-9AE5-47FA-8A08-28E8D8D89B94}.Release|x64.Build.0 = Release|x64
 		{EE7AE05C-9AE5-47FA-8A08-28E8D8D89B94}.Release|x86.ActiveCfg = Release|Win32
 		{EE7AE05C-9AE5-47FA-8A08-28E8D8D89B94}.Release|x86.ActiveCfg = Release|Win32
 		{EE7AE05C-9AE5-47FA-8A08-28E8D8D89B94}.Release|x86.Build.0 = Release|Win32
 		{EE7AE05C-9AE5-47FA-8A08-28E8D8D89B94}.Release|x86.Build.0 = Release|Win32
-		{06B5F55D-2971-4458-A612-348ECD8AD7DF}.Debug|ARM.ActiveCfg = Debug|ARM
-		{06B5F55D-2971-4458-A612-348ECD8AD7DF}.Debug|ARM.Build.0 = Debug|ARM
-		{06B5F55D-2971-4458-A612-348ECD8AD7DF}.Debug|ARM.Deploy.0 = Debug|ARM
-		{06B5F55D-2971-4458-A612-348ECD8AD7DF}.Debug|x64.ActiveCfg = Debug|x64
-		{06B5F55D-2971-4458-A612-348ECD8AD7DF}.Debug|x64.Build.0 = Debug|x64
-		{06B5F55D-2971-4458-A612-348ECD8AD7DF}.Debug|x64.Deploy.0 = Debug|x64
-		{06B5F55D-2971-4458-A612-348ECD8AD7DF}.Debug|x86.ActiveCfg = Debug|Win32
-		{06B5F55D-2971-4458-A612-348ECD8AD7DF}.Debug|x86.Build.0 = Debug|Win32
-		{06B5F55D-2971-4458-A612-348ECD8AD7DF}.Debug|x86.Deploy.0 = Debug|Win32
-		{06B5F55D-2971-4458-A612-348ECD8AD7DF}.Release|ARM.ActiveCfg = Release|ARM
-		{06B5F55D-2971-4458-A612-348ECD8AD7DF}.Release|ARM.Build.0 = Release|ARM
-		{06B5F55D-2971-4458-A612-348ECD8AD7DF}.Release|ARM.Deploy.0 = Release|ARM
-		{06B5F55D-2971-4458-A612-348ECD8AD7DF}.Release|x64.ActiveCfg = Release|x64
-		{06B5F55D-2971-4458-A612-348ECD8AD7DF}.Release|x64.Build.0 = Release|x64
-		{06B5F55D-2971-4458-A612-348ECD8AD7DF}.Release|x64.Deploy.0 = Release|x64
-		{06B5F55D-2971-4458-A612-348ECD8AD7DF}.Release|x86.ActiveCfg = Release|Win32
-		{06B5F55D-2971-4458-A612-348ECD8AD7DF}.Release|x86.Build.0 = Release|Win32
-		{06B5F55D-2971-4458-A612-348ECD8AD7DF}.Release|x86.Deploy.0 = Release|Win32
 	EndGlobalSection
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
 		HideSolutionNode = FALSE

BIN
build/windows/universal/PolycodeCore/PolycodeCore.rc


+ 86 - 77
build/windows/universal/PolycodeCore/PolycodeCore.vcxproj

@@ -26,83 +26,6 @@
       <Platform>x64</Platform>
       <Platform>x64</Platform>
     </ProjectConfiguration>
     </ProjectConfiguration>
   </ItemGroup>
   </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="..\..\..\..\src\core\PolyBasicFileProvider.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyBezierCurve.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyBone.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyCamera.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyClient.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyColor.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyConfig.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyCore.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyCoreFileProvider.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyCoreInput.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyCoreServices.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyCubemap.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyData.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyEntity.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyEvent.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyEventDispatcher.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyEventHandler.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyFont.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyFontGlyphSheet.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyFontManager.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyGPUDrawBuffer.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyImage.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyInputEvent.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyLabel.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyLogger.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyMaterial.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyMaterialManager.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyMatrix4.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyMesh.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyObject.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyParticleEmitter.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyPeer.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyPerlin.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyQuaternion.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyQuaternionCurve.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyRay.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyRectangle.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyRenderDataArray.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyRenderer.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyResource.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyResourceManager.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyScene.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolySceneEntityInstance.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolySceneImage.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolySceneLabel.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolySceneLight.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolySceneLine.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolySceneManager.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolySceneMesh.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyScenePrimitive.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolySceneRenderTexture.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolySceneSound.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolySceneSprite.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyServer.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyShader.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolySkeleton.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolySocket.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolySound.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolySoundManager.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyString.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyTexture.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyThreaded.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyTimer.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyTimerManager.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyTween.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyTweenManager.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyUWPCore.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyVector2.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyVector3.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\PolyVector4.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\rgbe.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\tinystr.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\tinyxml.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\tinyxmlerror.cpp" />
-    <ClCompile Include="..\..\..\..\src\core\tinyxmlparser.cpp" />
-  </ItemGroup>
   <ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\..\..\..\include\Polycode.h" />
     <ClInclude Include="..\..\..\..\include\Polycode.h" />
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyBasicFileProvider.h" />
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyBasicFileProvider.h" />
@@ -119,6 +42,7 @@
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyCoreServices.h" />
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyCoreServices.h" />
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyCubemap.h" />
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyCubemap.h" />
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyData.h" />
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyData.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\core\PolyDX11GraphicsInterface.h" />
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyEntity.h" />
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyEntity.h" />
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyEvent.h" />
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyEvent.h" />
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyEventDispatcher.h" />
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyEventDispatcher.h" />
@@ -183,6 +107,85 @@
     <ClInclude Include="..\..\..\..\include\polycode\core\stb_image.h" />
     <ClInclude Include="..\..\..\..\include\polycode\core\stb_image.h" />
     <ClInclude Include="..\..\..\..\include\polycode\core\tinystr.h" />
     <ClInclude Include="..\..\..\..\include\polycode\core\tinystr.h" />
     <ClInclude Include="..\..\..\..\include\polycode\core\tinyxml.h" />
     <ClInclude Include="..\..\..\..\include\polycode\core\tinyxml.h" />
+    <ClInclude Include="resource.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\..\src\core\PolyBasicFileProvider.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyBezierCurve.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyBone.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyCamera.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyClient.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyColor.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyConfig.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyCore.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyCoreFileProvider.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyCoreInput.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyCoreServices.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyCubemap.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyData.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyDX11GraphicsInterface.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyEntity.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyEvent.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyEventDispatcher.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyEventHandler.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyFont.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyFontGlyphSheet.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyFontManager.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyGPUDrawBuffer.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyImage.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyInputEvent.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyLabel.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyLogger.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyMaterial.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyMaterialManager.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyMatrix4.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyMesh.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyObject.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyParticleEmitter.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyPeer.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyPerlin.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyQuaternion.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyQuaternionCurve.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyRay.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyRectangle.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyRenderDataArray.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyRenderer.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyResource.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyResourceManager.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyScene.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolySceneEntityInstance.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolySceneImage.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolySceneLabel.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolySceneLight.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolySceneLine.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolySceneManager.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolySceneMesh.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyScenePrimitive.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolySceneRenderTexture.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolySceneSound.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolySceneSprite.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyServer.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyShader.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolySkeleton.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolySocket.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolySound.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolySoundManager.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyString.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyTexture.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyThreaded.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyTimer.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyTimerManager.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyTween.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyTweenManager.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyUWPCore.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyVector2.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyVector3.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\PolyVector4.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\rgbe.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\tinystr.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\tinyxml.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\tinyxmlerror.cpp" />
+    <ClCompile Include="..\..\..\..\src\core\tinyxmlparser.cpp" />
   </ItemGroup>
   </ItemGroup>
   <PropertyGroup Label="Globals">
   <PropertyGroup Label="Globals">
     <ProjectGuid>{ee7ae05c-9ae5-47fa-8a08-28e8d8d89b94}</ProjectGuid>
     <ProjectGuid>{ee7ae05c-9ae5-47fa-8a08-28e8d8d89b94}</ProjectGuid>
@@ -349,6 +352,9 @@
       <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
       <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
       <GenerateWindowsMetadata>false</GenerateWindowsMetadata>
       <GenerateWindowsMetadata>false</GenerateWindowsMetadata>
     </Link>
     </Link>
+    <Lib>
+      <TargetMachine>MachineX64</TargetMachine>
+    </Lib>
   </ItemDefinitionGroup>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <ClCompile>
     <ClCompile>
@@ -362,6 +368,9 @@
       <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
       <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
       <GenerateWindowsMetadata>false</GenerateWindowsMetadata>
       <GenerateWindowsMetadata>false</GenerateWindowsMetadata>
     </Link>
     </Link>
+    <Lib>
+      <TargetMachine>MachineX64</TargetMachine>
+    </Lib>
   </ItemDefinitionGroup>
   </ItemDefinitionGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   <ImportGroup Label="ExtensionTargets">

+ 244 - 241
build/windows/universal/PolycodeCore/PolycodeCore.vcxproj.filters

@@ -1,10 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup>
   <ItemGroup>
-    <Filter Include="Resource Files">
-      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
-      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tga;tiff;tif;png;wav;mfcribbon-ms</Extensions>
-    </Filter>
     <Filter Include="Source">
     <Filter Include="Source">
       <UniqueIdentifier>{3a81c187-e488-4f3d-a455-45ae0819f819}</UniqueIdentifier>
       <UniqueIdentifier>{3a81c187-e488-4f3d-a455-45ae0819f819}</UniqueIdentifier>
     </Filter>
     </Filter>
@@ -13,234 +9,8 @@
     </Filter>
     </Filter>
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
-    <ClCompile Include="..\..\..\..\src\core\PolyBezierCurve.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyBone.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyCamera.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyClient.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyColor.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyConfig.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyCore.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyCoreInput.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyCoreServices.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyCubemap.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyData.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyEntity.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyEvent.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyEventDispatcher.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyEventHandler.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyFont.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyFontGlyphSheet.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyFontManager.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyGPUDrawBuffer.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyImage.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyInputEvent.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyLabel.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyLogger.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyMaterial.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyMaterialManager.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyMatrix4.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyMesh.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyObject.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyParticleEmitter.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyPeer.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyPerlin.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyQuaternion.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyQuaternionCurve.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyRay.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyRectangle.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyRenderDataArray.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyRenderer.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyResource.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyResourceManager.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyScene.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolySceneEntityInstance.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolySceneImage.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolySceneLabel.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolySceneLight.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolySceneLine.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolySceneManager.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolySceneMesh.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyScenePrimitive.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolySceneRenderTexture.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolySceneSound.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolySceneSprite.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyServer.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyShader.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolySkeleton.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolySocket.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolySound.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolySoundManager.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyString.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyTexture.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyThreaded.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyTimer.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyTimerManager.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyTween.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyTweenManager.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyVector2.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyVector3.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyVector4.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\rgbe.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\tinystr.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\tinyxml.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\tinyxmlerror.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\tinyxmlparser.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyUWPCore.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyBasicFileProvider.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\core\PolyCoreFileProvider.cpp">
-      <Filter>Source</Filter>
-    </ClCompile>
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="..\..\..\..\include\Polycode.h">
+    <ClInclude Include="resource.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\core\PolyBasicFileProvider.h">
       <Filter>Include</Filter>
       <Filter>Include</Filter>
     </ClInclude>
     </ClInclude>
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyBezierCurve.h">
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyBezierCurve.h">
@@ -258,6 +28,9 @@
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyCocoaCore.h">
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyCocoaCore.h">
       <Filter>Include</Filter>
       <Filter>Include</Filter>
     </ClInclude>
     </ClInclude>
+    <ClInclude Include="..\..\..\..\include\Polycode.h">
+      <Filter>Include</Filter>
+    </ClInclude>
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyColor.h">
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyColor.h">
       <Filter>Include</Filter>
       <Filter>Include</Filter>
     </ClInclude>
     </ClInclude>
@@ -267,6 +40,9 @@
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyCore.h">
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyCore.h">
       <Filter>Include</Filter>
       <Filter>Include</Filter>
     </ClInclude>
     </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\core\PolyCoreFileProvider.h">
+      <Filter>Include</Filter>
+    </ClInclude>
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyCoreInput.h">
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyCoreInput.h">
       <Filter>Include</Filter>
       <Filter>Include</Filter>
     </ClInclude>
     </ClInclude>
@@ -279,6 +55,9 @@
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyData.h">
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyData.h">
       <Filter>Include</Filter>
       <Filter>Include</Filter>
     </ClInclude>
     </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\core\PolyDX11GraphicsInterface.h">
+      <Filter>Include</Filter>
+    </ClInclude>
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyEntity.h">
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyEntity.h">
       <Filter>Include</Filter>
       <Filter>Include</Filter>
     </ClInclude>
     </ClInclude>
@@ -447,6 +226,9 @@
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyTweenManager.h">
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyTweenManager.h">
       <Filter>Include</Filter>
       <Filter>Include</Filter>
     </ClInclude>
     </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\core\PolyUWPCore.h">
+      <Filter>Include</Filter>
+    </ClInclude>
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyVector2.h">
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyVector2.h">
       <Filter>Include</Filter>
       <Filter>Include</Filter>
     </ClInclude>
     </ClInclude>
@@ -468,14 +250,235 @@
     <ClInclude Include="..\..\..\..\include\polycode\core\tinyxml.h">
     <ClInclude Include="..\..\..\..\include\polycode\core\tinyxml.h">
       <Filter>Include</Filter>
       <Filter>Include</Filter>
     </ClInclude>
     </ClInclude>
-    <ClInclude Include="..\..\..\..\include\polycode\core\PolyUWPCore.h">
-      <Filter>Include</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\..\..\include\polycode\core\PolyBasicFileProvider.h">
-      <Filter>Include</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\..\..\include\polycode\core\PolyCoreFileProvider.h">
-      <Filter>Include</Filter>
-    </ClInclude>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\..\src\core\PolyBasicFileProvider.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyBezierCurve.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyBone.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyCamera.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyClient.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyColor.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyConfig.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyCore.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyCoreFileProvider.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyCoreInput.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyCoreServices.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyCubemap.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyData.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyDX11GraphicsInterface.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyEntity.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyEvent.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyEventDispatcher.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyEventHandler.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyFont.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyFontGlyphSheet.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyFontManager.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyGPUDrawBuffer.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyImage.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyInputEvent.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyLabel.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyLogger.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyMaterial.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyMaterialManager.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyMatrix4.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyMesh.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyObject.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyParticleEmitter.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyPeer.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyPerlin.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyQuaternion.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyQuaternionCurve.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyRay.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyRectangle.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyRenderDataArray.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyRenderer.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyResource.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyResourceManager.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyScene.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolySceneEntityInstance.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolySceneImage.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolySceneLabel.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolySceneLight.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolySceneLine.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolySceneManager.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolySceneMesh.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyScenePrimitive.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolySceneRenderTexture.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolySceneSound.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolySceneSprite.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyServer.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyShader.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolySkeleton.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolySocket.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolySound.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolySoundManager.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyString.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyTexture.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyThreaded.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyTimer.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyTimerManager.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyTween.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyTweenManager.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyUWPCore.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyVector2.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyVector3.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\PolyVector4.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\rgbe.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\tinystr.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\tinyxml.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\tinyxmlerror.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\core\tinyxmlparser.cpp">
+      <Filter>Source</Filter>
+    </ClCompile>
   </ItemGroup>
   </ItemGroup>
 </Project>
 </Project>

+ 14 - 0
build/windows/universal/PolycodeCore/resource.h

@@ -0,0 +1,14 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by PolycodeCore.rc
+
+// Next default values for new objects
+// 
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE        101
+#define _APS_NEXT_COMMAND_VALUE         40001
+#define _APS_NEXT_CONTROL_VALUE         1001
+#define _APS_NEXT_SYMED_VALUE           101
+#endif
+#endif

+ 160 - 0
build/windows/universal/TemplateApp/App.cpp

@@ -0,0 +1,160 @@
+#include "pch.h"
+#include "App.h"
+
+#include <ppltasks.h>
+
+using namespace TemplateApp;
+
+using namespace concurrency;
+using namespace Windows::ApplicationModel;
+using namespace Windows::ApplicationModel::Core;
+using namespace Windows::ApplicationModel::Activation;
+using namespace Windows::UI::Core;
+using namespace Windows::UI::Input;
+using namespace Windows::System;
+using namespace Windows::Foundation;
+using namespace Windows::Graphics::Display;
+
+// The DirectX 12 Application template is documented at http://go.microsoft.com/fwlink/?LinkID=613670&clcid=0x409
+
+// The main function is only used to initialize our IFrameworkView class.
+[Platform::MTAThread]
+int main(Platform::Array<Platform::String^>^)
+{
+	auto direct3DApplicationSource = ref new Direct3DApplicationSource();
+	CoreApplication::Run(direct3DApplicationSource);
+	return 0;
+}
+
+IFrameworkView^ Direct3DApplicationSource::CreateView()
+{
+	return ref new App();
+}
+
+App::App() :
+	m_windowClosed(false),
+	m_windowVisible(true)
+{
+}
+
+// The first method called when the IFrameworkView is being created.
+void App::Initialize(CoreApplicationView^ applicationView)
+{
+	// Register event handlers for app lifecycle. This example includes Activated, so that we
+	// can make the CoreWindow active and start rendering on the window.
+	applicationView->Activated +=
+		ref new TypedEventHandler<CoreApplicationView^, IActivatedEventArgs^>(this, &App::OnActivated);
+
+	CoreApplication::Suspending +=
+		ref new Windows::Foundation::EventHandler<SuspendingEventArgs^>(this, &App::OnSuspending);
+
+	CoreApplication::Resuming +=
+		ref new Windows::Foundation::EventHandler<Platform::Object^>(this, &App::OnResuming);
+}
+
+// Called when the CoreWindow object is created (or re-created).
+void App::SetWindow(CoreWindow^ window)
+{
+	window->SizeChanged += 
+		ref new TypedEventHandler<CoreWindow^, WindowSizeChangedEventArgs^>(this, &App::OnWindowSizeChanged);
+
+	window->VisibilityChanged +=
+		ref new TypedEventHandler<CoreWindow^, VisibilityChangedEventArgs^>(this, &App::OnVisibilityChanged);
+
+	window->Closed += 
+		ref new TypedEventHandler<CoreWindow^, CoreWindowEventArgs^>(this, &App::OnWindowClosed);
+
+	DisplayInformation^ currentDisplayInformation = DisplayInformation::GetForCurrentView();
+
+	currentDisplayInformation->DpiChanged +=
+		ref new TypedEventHandler<DisplayInformation^, Object^>(this, &App::OnDpiChanged);
+
+	currentDisplayInformation->OrientationChanged +=
+		ref new TypedEventHandler<DisplayInformation^, Object^>(this, &App::OnOrientationChanged);
+
+	DisplayInformation::DisplayContentsInvalidated +=
+		ref new TypedEventHandler<DisplayInformation^, Object^>(this, &App::OnDisplayContentsInvalidated);
+
+	PolycodeView *view = new PolycodeView();
+	view->window = reinterpret_cast<IUnknown*>(window);
+	app = new PolycodeTemplateApp(view);
+}
+
+// Initializes scene resources, or loads a previously saved app state.
+void App::Load(Platform::String^ entryPoint)
+{
+
+}
+
+// This method is called after the window becomes active.
+void App::Run()
+{
+
+	while (!m_windowClosed)
+	{
+		if (m_windowVisible)
+		{
+			CoreWindow::GetForCurrentThread()->Dispatcher->ProcessEvents(CoreProcessEventsOption::ProcessAllIfPresent);
+		}
+		else
+		{
+			CoreWindow::GetForCurrentThread()->Dispatcher->ProcessEvents(CoreProcessEventsOption::ProcessOneAndAllPending);
+		}
+
+		app->Update();
+	}
+}
+
+// Required for IFrameworkView.
+// Terminate events do not cause Uninitialize to be called. It will be called if your IFrameworkView
+// class is torn down while the app is in the foreground.
+void App::Uninitialize()
+{
+}
+
+// Application lifecycle event handlers.
+
+void App::OnActivated(CoreApplicationView^ applicationView, IActivatedEventArgs^ args)
+{
+	// Run() won't start until the CoreWindow is activated.
+	CoreWindow::GetForCurrentThread()->Activate();
+}
+
+void App::OnSuspending(Platform::Object^ sender, SuspendingEventArgs^ args)
+{
+
+}
+
+void App::OnResuming(Platform::Object^ sender, Platform::Object^ args)
+{
+}
+
+// Window event handlers.
+
+void App::OnWindowSizeChanged(CoreWindow^ sender, WindowSizeChangedEventArgs^ args)
+{
+}
+
+void App::OnVisibilityChanged(CoreWindow^ sender, VisibilityChangedEventArgs^ args)
+{
+	m_windowVisible = args->Visible;
+}
+
+void App::OnWindowClosed(CoreWindow^ sender, CoreWindowEventArgs^ args)
+{
+	m_windowClosed = true;
+}
+
+// DisplayInformation event handlers.
+
+void App::OnDpiChanged(DisplayInformation^ sender, Object^ args)
+{
+}
+
+void App::OnOrientationChanged(DisplayInformation^ sender, Object^ args)
+{
+}
+
+void App::OnDisplayContentsInvalidated(DisplayInformation^ sender, Object^ args)
+{
+}

+ 49 - 0
build/windows/universal/TemplateApp/App.h

@@ -0,0 +1,49 @@
+#pragma once
+
+#include "pch.h"
+#include "PolycodeTemplateApp.h"
+
+namespace TemplateApp
+{
+	// Main entry point for our app. Connects the app with the Windows shell and handles application lifecycle events.
+	ref class App sealed : public Windows::ApplicationModel::Core::IFrameworkView
+	{
+	public:
+		App();
+
+		// IFrameworkView methods.
+		virtual void Initialize(Windows::ApplicationModel::Core::CoreApplicationView^ applicationView);
+		virtual void SetWindow(Windows::UI::Core::CoreWindow^ window);
+		virtual void Load(Platform::String^ entryPoint);
+		virtual void Run();
+		virtual void Uninitialize();
+
+	protected:
+		// Application lifecycle event handlers.
+		void OnActivated(Windows::ApplicationModel::Core::CoreApplicationView^ applicationView, Windows::ApplicationModel::Activation::IActivatedEventArgs^ args);
+		void OnSuspending(Platform::Object^ sender, Windows::ApplicationModel::SuspendingEventArgs^ args);
+		void OnResuming(Platform::Object^ sender, Platform::Object^ args);
+
+		// Window event handlers.
+		void OnWindowSizeChanged(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::WindowSizeChangedEventArgs^ args);
+		void OnVisibilityChanged(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::VisibilityChangedEventArgs^ args);
+		void OnWindowClosed(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::CoreWindowEventArgs^ args);
+
+		// DisplayInformation event handlers.
+		void OnDpiChanged(Windows::Graphics::Display::DisplayInformation^ sender, Platform::Object^ args);
+		void OnOrientationChanged(Windows::Graphics::Display::DisplayInformation^ sender, Platform::Object^ args);
+		void OnDisplayContentsInvalidated(Windows::Graphics::Display::DisplayInformation^ sender, Platform::Object^ args);
+
+	private:
+		bool m_windowClosed;
+		bool m_windowVisible;
+
+		PolycodeTemplateApp *app;
+	};
+}
+
+ref class Direct3DApplicationSource sealed : Windows::ApplicationModel::Core::IFrameworkViewSource
+{
+public:
+	virtual Windows::ApplicationModel::Core::IFrameworkView^ CreateView();
+};

+ 0 - 8
build/windows/universal/TemplateApp/App.xaml

@@ -1,8 +0,0 @@
-<Application
-    x:Class="TemplateApp.App"
-    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
-    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-    xmlns:local="using:TemplateApp"
-    RequestedTheme="Light">
-
-</Application>

+ 0 - 85
build/windows/universal/TemplateApp/App.xaml.cpp

@@ -1,85 +0,0 @@
-//
-// App.xaml.cpp
-// Implementation of the App class.
-//
-
-#include "pch.h"
-#include "MainPage.xaml.h"
-
-using namespace TemplateApp;
-
-using namespace Platform;
-using namespace Windows::ApplicationModel;
-using namespace Windows::ApplicationModel::Activation;
-using namespace Windows::Foundation;
-using namespace Windows::Foundation::Collections;
-using namespace Windows::UI::Xaml;
-using namespace Windows::UI::Xaml::Controls;
-using namespace Windows::UI::Xaml::Controls::Primitives;
-using namespace Windows::UI::Xaml::Data;
-using namespace Windows::UI::Xaml::Input;
-using namespace Windows::UI::Xaml::Interop;
-using namespace Windows::UI::Xaml::Media;
-using namespace Windows::UI::Xaml::Navigation;
-
-App::App()
-{
-	InitializeComponent();
-	Suspending += ref new SuspendingEventHandler(this, &App::OnSuspending);
-
-	app = new PolycodeTemplateApp(NULL);
-}
-
-
-void App::OnLaunched(Windows::ApplicationModel::Activation::LaunchActivatedEventArgs^ e)
-{
-
-	auto rootFrame = dynamic_cast<Frame^>(Window::Current->Content);
-	if (rootFrame == nullptr)
-	{
-		rootFrame = ref new Frame();
-
-		rootFrame->NavigationFailed += ref new Windows::UI::Xaml::Navigation::NavigationFailedEventHandler(this, &App::OnNavigationFailed);
-
-		if (e->PreviousExecutionState == ApplicationExecutionState::Terminated)
-		{
-		}
-
-		if (rootFrame->Content == nullptr)
-		{
-			rootFrame->Navigate(TypeName(MainPage::typeid), e->Arguments);
-		}
-		Window::Current->Content = rootFrame;
-		Window::Current->Activate();
-	}
-	else
-	{
-		if (rootFrame->Content == nullptr)
-		{
-			// When the navigation stack isn't restored navigate to the first page,
-			// configuring the new page by passing required information as a navigation
-			// parameter
-			rootFrame->Navigate(TypeName(MainPage::typeid), e->Arguments);
-		}
-		// Ensure the current window is active
-		Window::Current->Activate();
-	}
-}
-
-void App::OnSuspending(Object^ sender, SuspendingEventArgs^ e)
-{
-	(void) sender;	// Unused parameter
-	(void) e;	// Unused parameter
-
-	//TODO: Save application state and stop any background activity
-}
-
-void App::OnNavigationFailed(Platform::Object ^sender, Windows::UI::Xaml::Navigation::NavigationFailedEventArgs ^e)
-{
-	throw ref new FailureException("Failed to load Page " + e->SourcePageType.Name);
-}
-
-void App::Update()
-{
-	app->Update();
-}

+ 0 - 31
build/windows/universal/TemplateApp/App.xaml.h

@@ -1,31 +0,0 @@
-//
-// App.xaml.h
-// Declaration of the App class.
-//
-
-#pragma once
-
-#include "App.g.h"
-#include "PolycodeTemplateApp.h"
-
-namespace TemplateApp
-{
-	/// <summary>
-	/// Provides application-specific behavior to supplement the default Application class.
-	/// </summary>
-	ref class App sealed
-	{
-	protected:
-		virtual void OnLaunched(Windows::ApplicationModel::Activation::LaunchActivatedEventArgs^ e) override;
-		void Update();
-
-	internal:
-		App();
-
-	private:
-		void OnSuspending(Platform::Object^ sender, Windows::ApplicationModel::SuspendingEventArgs^ e);
-		void OnNavigationFailed(Platform::Object ^sender, Windows::UI::Xaml::Navigation::NavigationFailedEventArgs ^e);
-
-		PolycodeTemplateApp *app;
-	};
-}

+ 0 - 27
build/windows/universal/TemplateApp/Generated Files/App.g.h

@@ -1,27 +0,0 @@
-#pragma once
-//------------------------------------------------------------------------------
-//     This code was generated by a tool.
-//
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
-//------------------------------------------------------------------------------
-
-#include "XamlTypeInfo.g.h"
-
-namespace TemplateApp
-{
-    partial ref class App :  public ::Windows::UI::Xaml::Application,
-        public ::Windows::UI::Xaml::Markup::IXamlMetadataProvider
-    {
-    public:
-        void InitializeComponent();
-        [Windows::Foundation::Metadata::DefaultOverload]
-        virtual ::Windows::UI::Xaml::Markup::IXamlType^ GetXamlType(::Windows::UI::Xaml::Interop::TypeName type);
-        virtual ::Windows::UI::Xaml::Markup::IXamlType^ GetXamlType(::Platform::String^ fullName);
-        virtual ::Platform::Array<::Windows::UI::Xaml::Markup::XmlnsDefinition>^ GetXmlnsDefinitions();
-    private:
-        ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider^ _provider;
-        bool _contentLoaded;
-    };
-}
-

+ 0 - 96
build/windows/universal/TemplateApp/Generated Files/App.g.hpp

@@ -1,96 +0,0 @@
-//------------------------------------------------------------------------------
-//     This code was generated by a tool.
-//
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
-//------------------------------------------------------------------------------
-
-#include "pch.h"
-#include "App.xaml.h"
-
-
-#if defined _DEBUG && !defined DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION
-extern "C" __declspec(dllimport) int __stdcall IsDebuggerPresent();
-#endif
-
-#if (defined(_M_IX86) || defined(_M_AMD64)) && !defined(_VSDESIGNER_DONT_LOAD_AS_DLL)
-#if defined(_M_IX86)
-#pragma comment(linker, "/EXPORT:DllGetActivationFactory=_DllGetActivationFactory@8,PRIVATE")
-#pragma comment(linker, "/EXPORT:DllCanUnloadNow=_DllCanUnloadNow@0,PRIVATE")
-#pragma comment(linker, "/EXPORT:VSDesignerDllMain=_VSDesignerDllMain@12,PRIVATE")
-#pragma comment(linker, "/INCLUDE:___refMTAThread")
-#elif defined(_M_AMD64)
-#pragma comment(linker, "/EXPORT:DllGetActivationFactory=DllGetActivationFactory,PRIVATE")
-#pragma comment(linker, "/EXPORT:DllCanUnloadNow,PRIVATE")
-#pragma comment(linker, "/EXPORT:VSDesignerDllMain,PRIVATE")
-#pragma comment(linker, "/INCLUDE:__refMTAThread")
-#endif
-
-extern int __abi___threading_model;
-
-extern "C"
-{
-    int __stdcall _DllMainCRTStartup(void* hinstDLL, unsigned long fdwReason, void** lpvReserved);
-
-    int __stdcall VSDesignerDllMain(void* hinstDLL, unsigned long fdwReason, void** lpvReserved)
-    {
-        __abi___threading_model = _VCCORLIB_THREADING_MODEL_OVERRIDE;
-        return _DllMainCRTStartup(hinstDLL, fdwReason, lpvReserved);
-    }
-}
-
-#endif // (defined(_M_IX86) || defined(_M_AMD64)) && !defined(_VSDESIGNER_DONT_LOAD_AS_DLL)
-
-void ::TemplateApp::App::InitializeComponent()
-{
-#if defined _DEBUG && !defined DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION
-    UnhandledException += ref new ::Windows::UI::Xaml::UnhandledExceptionEventHandler(
-        [](::Platform::Object^ sender, ::Windows::UI::Xaml::UnhandledExceptionEventArgs^ e)
-        {
-            (void)sender; // Unused parameter
-            if (IsDebuggerPresent())
-            {
-                ::Platform::String^ errorMessage = e->Message;
-                __debugbreak();
-            }
-        });
-#endif
-}
-
-
-::Windows::UI::Xaml::Markup::IXamlType^ ::TemplateApp::App::GetXamlType(::Windows::UI::Xaml::Interop::TypeName type)
-{
-    if(_provider == nullptr)
-    {
-        _provider = ref new XamlTypeInfo::InfoProvider::XamlTypeInfoProvider();
-    }
-    return _provider->GetXamlTypeByType(type);
-}
-
-::Windows::UI::Xaml::Markup::IXamlType^ ::TemplateApp::App::GetXamlType(::Platform::String^ fullName)
-{
-    if(_provider == nullptr)
-    {
-        _provider = ref new XamlTypeInfo::InfoProvider::XamlTypeInfoProvider();
-    }
-    return _provider->GetXamlTypeByName(fullName);
-}
-
-::Platform::Array<::Windows::UI::Xaml::Markup::XmlnsDefinition>^ ::TemplateApp::App::GetXmlnsDefinitions()
-{
-    return ref new ::Platform::Array<::Windows::UI::Xaml::Markup::XmlnsDefinition>(0);
-}
-
-#ifndef DISABLE_XAML_GENERATED_MAIN
-int __cdecl main(::Platform::Array<::Platform::String^>^ args)
-{
-    (void)args; // Unused parameter
-    ::Windows::UI::Xaml::Application::Start(ref new ::Windows::UI::Xaml::ApplicationInitializationCallback(
-        [](::Windows::UI::Xaml::ApplicationInitializationCallbackParams^ p) {
-            (void)p; // Unused parameter
-            auto app = ref new ::TemplateApp::App();
-        }));
-}
-#endif
-
-

+ 0 - 9
build/windows/universal/TemplateApp/Generated Files/App.xaml

@@ -1,9 +0,0 @@
-<Application
-    x:Class="TemplateApp.App"
-    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
-    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-    xmlns:local="using:TemplateApp"
-    RequestedTheme="Light">
-
-</Application>
-

BIN
build/windows/universal/TemplateApp/Generated Files/App.xbf


+ 0 - 28
build/windows/universal/TemplateApp/Generated Files/MainPage.g.h

@@ -1,28 +0,0 @@
-#pragma once
-//------------------------------------------------------------------------------
-//     This code was generated by a tool.
-//
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
-//------------------------------------------------------------------------------
-
-
-
-namespace TemplateApp
-{
-    [::Windows::Foundation::Metadata::WebHostHidden]
-    partial ref class MainPage : public ::Windows::UI::Xaml::Controls::Page, 
-        public ::Windows::UI::Xaml::Markup::IComponentConnector,
-        public ::Windows::UI::Xaml::Markup::IComponentConnector2
-    {
-    public:
-        void InitializeComponent();
-        virtual void Connect(int connectionId, ::Platform::Object^ target);
-        virtual ::Windows::UI::Xaml::Markup::IComponentConnector^ GetBindingConnector(int connectionId, ::Platform::Object^ target);
-    
-    private:
-        bool _contentLoaded;
-    
-    };
-}
-

+ 0 - 40
build/windows/universal/TemplateApp/Generated Files/MainPage.g.hpp

@@ -1,40 +0,0 @@
-//------------------------------------------------------------------------------
-//     This code was generated by a tool.
-//
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
-//------------------------------------------------------------------------------
-#include "pch.h"
-
-#if defined _DEBUG && !defined DISABLE_XAML_GENERATED_BINDING_DEBUG_OUTPUT
-extern "C" __declspec(dllimport) int __stdcall IsDebuggerPresent();
-#endif
-
-#include "MainPage.xaml.h"
-
-void ::TemplateApp::MainPage::InitializeComponent()
-{
-    if (_contentLoaded)
-    {
-        return;
-    }
-    _contentLoaded = true;
-    ::Windows::Foundation::Uri^ resourceLocator = ref new ::Windows::Foundation::Uri(L"ms-appx:///MainPage.xaml");
-    ::Windows::UI::Xaml::Application::LoadComponent(this, resourceLocator, ::Windows::UI::Xaml::Controls::Primitives::ComponentResourceLocation::Application);
-}
-
-void ::TemplateApp::MainPage::Connect(int __connectionId, ::Platform::Object^ __target)
-{
-    __connectionId;         // unreferenced 
-    __target;               // unreferenced
-    _contentLoaded = true;
-}
-
-::Windows::UI::Xaml::Markup::IComponentConnector^ ::TemplateApp::MainPage::GetBindingConnector(int __connectionId, ::Platform::Object^ __target)
-{
-    __connectionId;         // unreferenced
-    __target;               // unreferenced
-    return nullptr;
-}
-
-

+ 0 - 14
build/windows/universal/TemplateApp/Generated Files/MainPage.xaml

@@ -1,14 +0,0 @@
-<Page
-    x:Class="TemplateApp.MainPage"
-    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
-    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-    xmlns:local="using:TemplateApp"
-    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
-    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
-    mc:Ignorable="d">
-
-    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
-
-    </Grid>
-</Page>
-

BIN
build/windows/universal/TemplateApp/Generated Files/MainPage.xbf


+ 0 - 57
build/windows/universal/TemplateApp/Generated Files/XamlBindingInfo.g.h

@@ -1,57 +0,0 @@
-//------------------------------------------------------------------------------
-// <auto-generated>
-//     This code was generated by a tool.
-//
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-#pragma once
-
-namespace XamlBindingInfo
-{
-    ref class XamlBindings;
-
-    class IXamlBindings
-    {
-    public:
-        virtual ~IXamlBindings() {};
-        virtual bool IsInitialized() = 0;
-        virtual void Update() = 0;
-        virtual bool SetDataRoot(::Platform::Object^ data) = 0;
-        virtual void StopTracking() = 0;
-        virtual void Connect(int connectionId, ::Platform::Object^ target) = 0;
-        virtual void ResetTemplate() = 0;
-        virtual int ProcessBindings(::Windows::UI::Xaml::Controls::ContainerContentChangingEventArgs^ args) = 0;
-        virtual void SubscribeForDataContextChanged(::Windows::UI::Xaml::FrameworkElement^ object, ::XamlBindingInfo::XamlBindings^ handler) = 0;
-    };
-
-    ref class XamlBindings sealed : 
-        ::Windows::UI::Xaml::IDataTemplateExtension, 
-        ::Windows::UI::Xaml::Markup::IComponentConnector
-    {
-    internal:
-        XamlBindings(::XamlBindingInfo::IXamlBindings* pBindings);
-        void Initialize();
-        void Update();
-        void StopTracking();
-        void Loading(::Windows::UI::Xaml::FrameworkElement^ src, ::Platform::Object^ data);
-        void DataContextChanged(::Windows::UI::Xaml::FrameworkElement^ sender, ::Windows::UI::Xaml::DataContextChangedEventArgs^ args);
-        void SubscribeForDataContextChanged(::Windows::UI::Xaml::FrameworkElement^ object);
-
-    public:
-        // IComponentConnector
-        virtual void Connect(int connectionId, ::Platform::Object^ target);
-
-        // IDataTemplateExtension
-        virtual bool ProcessBinding(unsigned int);
-        virtual int ProcessBindings(::Windows::UI::Xaml::Controls::ContainerContentChangingEventArgs^ args);
-        virtual void ResetTemplate();
-
-    private:
-        ~XamlBindings();
-
-        IXamlBindings* _pBindings = nullptr;
-    };
-}
-

+ 0 - 13
build/windows/universal/TemplateApp/Generated Files/XamlBindingInfo.g.hpp

@@ -1,13 +0,0 @@
-
-//------------------------------------------------------------------------------
-// <auto-generated>
-//     This code was generated by a tool.
-//
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-#include "pch.h"
-
-
-

+ 0 - 2
build/windows/universal/TemplateApp/Generated Files/XamlLibMetadataProvider.g.cpp

@@ -1,2 +0,0 @@
-
-

+ 0 - 544
build/windows/universal/TemplateApp/Generated Files/XamlTypeInfo.Impl.g.cpp

@@ -1,544 +0,0 @@
-//------------------------------------------------------------------------------
-// <auto-generated>
-//     This code was generated by a tool.
-//
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-#include "pch.h"
-#include <regex>
-#include "XamlTypeInfo.g.h"
-
-
-
-// XamlTypeInfoProvider
-::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider::GetXamlTypeByType(::Windows::UI::Xaml::Interop::TypeName type)
-{
-    auto xamlType = GetXamlTypeByName(type.Name);
-    ::XamlTypeInfo::InfoProvider::XamlUserType^ userXamlType = dynamic_cast<::XamlTypeInfo::InfoProvider::XamlUserType^>(xamlType);
-    if (xamlType == nullptr || (userXamlType != nullptr && userXamlType->IsReturnTypeStub && !userXamlType->IsLocalType))
-    {
-        ::Windows::UI::Xaml::Markup::IXamlType^ libXamlType = CheckOtherMetadataProvidersForType(type);
-        if (libXamlType != nullptr)
-        {
-            if(libXamlType->IsConstructible || xamlType == nullptr)
-            {
-                xamlType = libXamlType;
-            }
-        }
-    }
-            return xamlType;
-}
-
-::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider::GetXamlTypeByName(::Platform::String^ typeName)
-{
-    if (typeName == nullptr || typeName->IsEmpty())
-    {
-        return nullptr;
-    }
-
-    auto val = _xamlTypes.find(typeName);
-    ::Windows::UI::Xaml::Markup::IXamlType^ xamlType = nullptr;
-    if (val != _xamlTypes.end())
-    {
-        xamlType = (val->second).Resolve<::Windows::UI::Xaml::Markup::IXamlType>();
-        if(xamlType != nullptr)
-        {
-            return xamlType;
-        }
-    }
-
-    xamlType = CreateXamlType(typeName);
-    ::XamlTypeInfo::InfoProvider::XamlUserType^ userXamlType = dynamic_cast<::XamlTypeInfo::InfoProvider::XamlUserType^>(xamlType);
-    if (xamlType == nullptr || (userXamlType != nullptr && userXamlType->IsReturnTypeStub && !userXamlType->IsLocalType))
-    {
-        ::Windows::UI::Xaml::Markup::IXamlType^ libXamlType  = CheckOtherMetadataProvidersForName(typeName);
-        if (libXamlType != nullptr)
-        {
-            if(libXamlType->IsConstructible || xamlType == nullptr)
-            {
-                xamlType = libXamlType;
-            }
-        }
-    }
-
-
-    if (xamlType != nullptr)
-    {
-        Platform::WeakReference wr(xamlType);
-        _xamlTypes[xamlType->FullName] =  wr;
-    }
-    return xamlType;
-}
-
-::Windows::UI::Xaml::Markup::IXamlMember^ ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider::GetMemberByLongName(::Platform::String^ longMemberName)
-{
-    if (longMemberName == nullptr || longMemberName->IsEmpty())
-    {
-        return nullptr;
-    }
-
-    auto val = _xamlMembers.find(longMemberName);
-    if (val != _xamlMembers.end())
-    {
-        return val->second;
-    }
-
-    auto xamlMember = CreateXamlMember(longMemberName);
-
-    if (xamlMember != nullptr)
-    {
-        _xamlMembers[longMemberName] = xamlMember;
-    }
-    return xamlMember;
-}
-
-
-
-// XamlSystemBaseType
-::XamlTypeInfo::InfoProvider::XamlSystemBaseType::XamlSystemBaseType(::Platform::String^ name) :
-    _fullName(name)
-{
-}
-
-::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::BaseType::get()
-{
-    throw ref new ::Platform::NotImplementedException;
-}
-
-::Windows::UI::Xaml::Markup::IXamlMember^ ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::ContentProperty::get()
-{
-    throw ref new ::Platform::NotImplementedException;
-}
-
-::Platform::String^ ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::FullName::get()
-{
-    return _fullName;
-}
-
-::Platform::String^ ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::Name::get()
-{
-    const wchar_t* seperator = wcsrchr(_fullName->Data(), '.');
-    if (seperator == nullptr)
-    {
-        return _fullName;
-    }
-    return ref new ::Platform::String(seperator);
-}
-
-bool ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::IsArray::get()
-{
-    throw ref new ::Platform::NotImplementedException;
-}
-
-bool ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::IsCollection::get()
-{
-    throw ref new ::Platform::NotImplementedException;
-}
-
-bool ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::IsConstructible::get()
-{
-    throw ref new ::Platform::NotImplementedException;
-}
-
-bool ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::IsDictionary::get()
-{
-    throw ref new ::Platform::NotImplementedException;
-}
-
-bool ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::IsMarkupExtension::get()
-{
-    throw ref new ::Platform::NotImplementedException;
-}
-
-bool ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::IsEnum::get()
-{
-    throw ref new ::Platform::NotImplementedException;
-}
-
-bool ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::IsSystemType::get()
-{
-    throw ref new ::Platform::NotImplementedException;
-}
-
-bool ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::IsBindable::get()
-{
-    throw ref new ::Platform::NotImplementedException;
-}
-
-::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::ItemType::get()
-{
-    throw ref new ::Platform::NotImplementedException;
-}
-
-::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::KeyType::get()
-{
-    throw ref new ::Platform::NotImplementedException;
-}
-
-::Windows::UI::Xaml::Interop::TypeName (::XamlTypeInfo::InfoProvider::XamlSystemBaseType::UnderlyingType::get)()
-{
-    ::Windows::UI::Xaml::Interop::TypeName typeName;
-
-    typeName.Name = _fullName;
-    typeName.Kind = ::Windows::UI::Xaml::Interop::TypeKind::Primitive;
-
-    return typeName;
-}
-
-::Platform::Object^ ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::ActivateInstance()
-{
-    throw ref new ::Platform::NotImplementedException;
-}
-
-::Windows::UI::Xaml::Markup::IXamlMember^ ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::GetMember(::Platform::String^)
-{
-    throw ref new ::Platform::NotImplementedException;
-}
-
-void ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::AddToVector(::Platform::Object^, ::Platform::Object^)
-{
-    throw ref new ::Platform::NotImplementedException;
-}
-
-void ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::AddToMap(::Platform::Object^, ::Platform::Object^, ::Platform::Object^)
-{
-    throw ref new ::Platform::NotImplementedException;
-}
-
-void ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::RunInitializer()
-{
-    throw ref new ::Platform::NotImplementedException;
-}
-
-::Platform::Object^ ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::CreateFromString(::Platform::String^)
-{
-    throw ref new ::Platform::NotImplementedException;
-}
-
-//XamlUserType
-::XamlTypeInfo::InfoProvider::XamlUserType::XamlUserType(::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider^ provider, ::Platform::String^ fullName, ::Windows::UI::Xaml::Markup::IXamlType^ baseType) :
-    _isArray(false),
-    _isMarkupExtension(false),
-    _isEnum(false),
-    _isBindable(false),
-    _isReturnTypeStub(false),
-    _isLocalType(false),
-    _fullName(fullName),
-    _provider(provider),
-    _baseType(baseType)
-{
-}
-
-::Platform::String^ ::XamlTypeInfo::InfoProvider::XamlUserType::FullName::get()
-{
-    return _fullName;
-}
-
-::Platform::String^ ::XamlTypeInfo::InfoProvider::XamlUserType::Name::get()
-{
-    const wchar_t *seperator = wcsrchr(_fullName->Data(), '.');
-    if (seperator == nullptr)
-    {
-        return _fullName;
-    }
-    return ref new ::Platform::String(seperator);
-}
-
-::Windows::UI::Xaml::Interop::TypeName (::XamlTypeInfo::InfoProvider::XamlUserType::UnderlyingType::get)()
-{
-    ::Windows::UI::Xaml::Interop::TypeName typeName;
-
-    typeName.Name = _fullName;
-    typeName.Kind = KindOfType;
-
-    return typeName;
-}
-
-bool ::XamlTypeInfo::InfoProvider::XamlUserType::IsSystemType::get()
-{
-    return true;
-}
-
-::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlUserType::BaseType::get()
-{
-    return _baseType;
-}
-
-bool ::XamlTypeInfo::InfoProvider::XamlUserType::IsArray::get()
-{
-    return _isArray;
-}
-
-bool ::XamlTypeInfo::InfoProvider::XamlUserType::IsCollection::get()
-{
-    return CollectionAdd != nullptr;
-}
-
-bool ::XamlTypeInfo::InfoProvider::XamlUserType::IsConstructible::get()
-{
-    return Activator != nullptr;
-}
-
-bool ::XamlTypeInfo::InfoProvider::XamlUserType::IsDictionary::get()
-{
-    return DictionaryAdd != nullptr;
-}
-
-bool ::XamlTypeInfo::InfoProvider::XamlUserType::IsMarkupExtension::get()
-{
-    return _isMarkupExtension;
-}
-
-bool ::XamlTypeInfo::InfoProvider::XamlUserType::IsEnum::get()
-{
-    return _isEnum;
-}
-
-bool ::XamlTypeInfo::InfoProvider::XamlUserType::IsBindable::get()
-{
-    return _isBindable;
-}
-
-bool ::XamlTypeInfo::InfoProvider::XamlUserType::IsReturnTypeStub::get()
-{
-    return _isReturnTypeStub;
-}
-
-bool ::XamlTypeInfo::InfoProvider::XamlUserType::IsLocalType::get()
-{
-    return _isLocalType;
-}
-
-::Windows::UI::Xaml::Markup::IXamlMember^ ::XamlTypeInfo::InfoProvider::XamlUserType::ContentProperty::get()
-{
-    return _provider->GetMemberByLongName(_contentPropertyName);
-}
-
-::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlUserType::ItemType::get()
-{
-    return _provider->GetXamlTypeByName(_itemTypeName);
-}
-
-::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlUserType::KeyType::get()
-{
-    return _provider->GetXamlTypeByName(_keyTypeName);
-}
-
-::Windows::UI::Xaml::Markup::IXamlMember^ ::XamlTypeInfo::InfoProvider::XamlUserType::GetMember(::Platform::String^ name)
-{
-    auto val = _memberNames.find(name);
-    if (val != _memberNames.end())
-    {
-        return _provider->GetMemberByLongName(val->second);
-    }
-    return nullptr;
-}
-
-::Platform::Object^ ::XamlTypeInfo::InfoProvider::XamlUserType::ActivateInstance()
-{
-    return Activator();
-}
-
-void ::XamlTypeInfo::InfoProvider::XamlUserType::AddToMap(::Platform::Object^ instance, ::Platform::Object^ key, ::Platform::Object^ item)
-{
-    DictionaryAdd(instance, key, item);
-}
-
-void ::XamlTypeInfo::InfoProvider::XamlUserType::AddToVector(::Platform::Object^ instance, ::Platform::Object^ item)
-{
-    CollectionAdd(instance, item);
-}
-
-void ::XamlTypeInfo::InfoProvider::XamlUserType::RunInitializer()
-{
-    // The C++ runtime will have already run all the Static Initializers at start up.
-}
-
-::Platform::Object^ ::XamlTypeInfo::InfoProvider::XamlUserType::CreateFromString(::Platform::String^ input)
-{
-    return FromStringConverter(this, input);
-}
-
-void ::XamlTypeInfo::InfoProvider::XamlUserType::SetContentPropertyName(::Platform::String^ contentPropertyName)
-{
-    _contentPropertyName = contentPropertyName;
-}
-
-void ::XamlTypeInfo::InfoProvider::XamlUserType::SetIsArray()
-{
-    _isArray = true;
-}
-
-void ::XamlTypeInfo::InfoProvider::XamlUserType::SetIsMarkupExtension()
-{
-    _isMarkupExtension = true;
-}
-
-void ::XamlTypeInfo::InfoProvider::XamlUserType::SetIsEnum()
-{
-    _isEnum = true;
-}
-
-void ::XamlTypeInfo::InfoProvider::XamlUserType::SetIsBindable()
-{
-    _isBindable = true;
-}
-
-void ::XamlTypeInfo::InfoProvider::XamlUserType::SetIsReturnTypeStub()
-{
-    _isReturnTypeStub = true;
-}
-
-void ::XamlTypeInfo::InfoProvider::XamlUserType::SetIsLocalType()
-{
-    _isLocalType = true;
-}
-
-void ::XamlTypeInfo::InfoProvider::XamlUserType::SetItemTypeName(::Platform::String^ itemTypeName)
-{
-    _itemTypeName = itemTypeName;
-}
-
-void ::XamlTypeInfo::InfoProvider::XamlUserType::SetKeyTypeName(::Platform::String^ keyTypeName)
-{
-    _keyTypeName = keyTypeName;
-}
-
-void ::XamlTypeInfo::InfoProvider::XamlUserType::AddMemberName(::Platform::String^ shortName)
-{
-    _memberNames[shortName] = FullName + "." + shortName;
-}
-
-void ::XamlTypeInfo::InfoProvider::XamlUserType::AddEnumValue(::Platform::String^ name, ::Platform::Object^ value)
-{
-    _enumValues[name->Data()] = value;
-}
-
-::default::uint32 (::XamlTypeInfo::InfoProvider::XamlUserType::CreateEnumUIntFromString)(::Platform::String^ input)
-{
-    bool found = false;
-
-    const std::wregex regularExpression(L"^\\s+|\\s*,\\s*|\\s+$");
-    uint32 val = 0;
-
-    for (std::wcregex_token_iterator it(input->Begin(), input->End(), regularExpression, -1), end; it != end; ++it)
-    {
-        const std::wcsub_match& subMatch = *it;
-
-        if (subMatch.length() == 0 )
-        {
-            continue;
-        }
-
-        std::wstring lookup(subMatch.first, (unsigned int)subMatch.length());
-
-        try
-        {
-            auto entry = _enumValues.find(lookup);
-            if (entry != _enumValues.end())
-            {
-                const auto f = entry->second;
-                val |= safe_cast<int>(f);
-            }
-            else
-            {
-                val |= std::stoi(subMatch);
-            }
-            found=true;
-        }
-        catch (const std::invalid_argument& )
-        {
-            found = false;
-            break;
-        }
-    }
-
-    if(found)
-    {
-        return val;
-    }
-    throw ref new ::Platform::InvalidArgumentException();
-}
-
-// XamlMember
-::XamlTypeInfo::InfoProvider::XamlMember::XamlMember(::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider^ provider, ::Platform::String^ name, ::Platform::String^ typeName) :
-    _isAttachable(false),
-    _isDependencyProperty(false),
-    _isReadOnly(false),
-    _name(name),
-    _typeName(typeName),
-    _provider(provider)
-{
-}
-
-void ::XamlTypeInfo::InfoProvider::XamlMember::SetIsAttachable()
-{
-    _isAttachable = true;
-}
-
-bool ::XamlTypeInfo::InfoProvider::XamlMember::IsAttachable::get()
-{
-    return _isAttachable;
-}
-
-void ::XamlTypeInfo::InfoProvider::XamlMember::SetIsDependencyProperty()
-{
-    _isDependencyProperty = true;
-}
-
-bool ::XamlTypeInfo::InfoProvider::XamlMember::IsDependencyProperty::get()
-{
-    return _isDependencyProperty;
-}
-
-void ::XamlTypeInfo::InfoProvider::XamlMember::SetIsReadOnly()
-{
-    _isReadOnly = true;
-}
-
-bool ::XamlTypeInfo::InfoProvider::XamlMember::IsReadOnly::get()
-{
-    return _isReadOnly;
-}
-
-::Platform::String^ ::XamlTypeInfo::InfoProvider::XamlMember::Name::get()
-{
-    return _name;
-}
-
-::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlMember::Type::get()
-{
-    return _provider->GetXamlTypeByName(_typeName);
-}
-
-void ::XamlTypeInfo::InfoProvider::XamlMember::SetTargetTypeName(::Platform::String^ targetTypeName)
-{
-    _targetTypeName = targetTypeName;
-}
-
-::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlMember::TargetType::get()
-{
-    return _provider->GetXamlTypeByName(_targetTypeName);
-}
-
-::Platform::Object^ ::XamlTypeInfo::InfoProvider::XamlMember::GetValue(::Platform::Object^ instance)
-{
-    if (Getter != nullptr)
-    {
-        return Getter(instance);
-    }
-    throw ref new ::Platform::NullReferenceException();
-}
-
-void ::XamlTypeInfo::InfoProvider::XamlMember::SetValue(::Platform::Object^ instance, ::Platform::Object^ value)
-{
-    if (Setter != nullptr)
-    {
-        Setter(instance, value);
-        return;
-    }
-    throw ref new ::Platform::NullReferenceException();
-}
-

+ 0 - 98
build/windows/universal/TemplateApp/Generated Files/XamlTypeInfo.g.cpp

@@ -1,98 +0,0 @@
-//------------------------------------------------------------------------------
-// <auto-generated>
-//     This code was generated by a tool.
-//
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-#include "pch.h"
-#include "XamlTypeInfo.g.h"
-
-#include "App.xaml.h"
-#include "MainPage.xaml.h"
-#include "XamlBindingInfo.g.hpp"
-#include "App.g.hpp"
-#include "MainPage.g.hpp"
-
-
-::Platform::Collections::Vector<::Windows::UI::Xaml::Markup::IXamlMetadataProvider^>^ ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider::OtherProviders::get()
-{
-    if(_otherProviders == nullptr)
-    {
-        auto otherProviders = ref new ::Platform::Collections::Vector<::Windows::UI::Xaml::Markup::IXamlMetadataProvider^>();
-        _otherProviders = otherProviders;
-    }
-    return _otherProviders;
-}
-
-::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider::CheckOtherMetadataProvidersForName(::Platform::String^ typeName)
-{
-    ::Windows::UI::Xaml::Markup::IXamlType^ foundXamlType = nullptr;
-    for (unsigned int i = 0; i < OtherProviders->Size; i++)
-    {
-        auto xamlType = OtherProviders->GetAt(i)->GetXamlType(typeName);
-        if(xamlType != nullptr)
-        {
-            if(xamlType->IsConstructible)    // not Constructible means it might be a Return Type Stub
-            {
-                return xamlType;
-            }
-            foundXamlType = xamlType;
-        }
-    }
-    return foundXamlType;
-}
-
-::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider::CheckOtherMetadataProvidersForType(::Windows::UI::Xaml::Interop::TypeName t)
-{
-    ::Windows::UI::Xaml::Markup::IXamlType^ foundXamlType = nullptr;
-    for (unsigned int i = 0; i < OtherProviders->Size; i++)
-    {
-        auto xamlType = OtherProviders->GetAt(i)->GetXamlType(t);
-        if(xamlType != nullptr)
-        {
-            if(xamlType->IsConstructible)    // not Constructible means it might be a Return Type Stub
-            {
-                return xamlType;
-            }
-            foundXamlType = xamlType;
-        }
-    }
-    return foundXamlType;
-}
-
-::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider::CreateXamlType(::Platform::String^ typeName)
-{
-    if (typeName == L"Windows.UI.Xaml.Controls.Page")
-    {
-        return ref new XamlSystemBaseType(typeName);
-    }
-    if (typeName == L"Windows.UI.Xaml.Controls.UserControl")
-    {
-        return ref new XamlSystemBaseType(typeName);
-    }
-    if (typeName == L"TemplateApp.MainPage")
-    {
-        ::XamlTypeInfo::InfoProvider::XamlUserType^ userType = ref new ::XamlTypeInfo::InfoProvider::XamlUserType(this, L"TemplateApp.MainPage", this->GetXamlTypeByName(L"Windows.UI.Xaml.Controls.Page"));
-        userType->KindOfType = ::Windows::UI::Xaml::Interop::TypeKind::Custom;
-        userType->Activator =
-            []() -> ::Platform::Object^ 
-            {
-                return ref new ::TemplateApp::MainPage(); 
-            };
-        userType->SetIsLocalType();
-        return userType;
-    }
-
-
-    return nullptr;
-    }
-
-::Windows::UI::Xaml::Markup::IXamlMember^ ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider::CreateXamlMember(::Platform::String^ longMemberName)
-{
-    // No Local Properties
-    (void)longMemberName; // Unused parameter
-    return nullptr;
-}
-

+ 0 - 343
build/windows/universal/TemplateApp/Generated Files/XamlTypeInfo.g.h

@@ -1,343 +0,0 @@
-//------------------------------------------------------------------------------
-// <auto-generated>
-//     This code was generated by a tool.
-//
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-#pragma once
-#include <collection.h>
-
-namespace XamlTypeInfo
-{
-    namespace InfoProvider
-    {
-
-
-        ref class XamlTypeInfoProvider sealed
-        {
-        internal:
-            ::Windows::UI::Xaml::Markup::IXamlType^ CreateXamlType(::Platform::String^ typeName);
-            ::Windows::UI::Xaml::Markup::IXamlMember^ CreateXamlMember(::Platform::String^ longMemberName);
-
-            ::Windows::UI::Xaml::Markup::IXamlType^ GetXamlTypeByName(::Platform::String^ typeName);
-            ::Windows::UI::Xaml::Markup::IXamlType^ GetXamlTypeByType(::Windows::UI::Xaml::Interop::TypeName t);
-            ::Windows::UI::Xaml::Markup::IXamlMember^ GetMemberByLongName(::Platform::String^ longMemberName);
-
-        private:
-            std::map<::Platform::String^, ::Platform::WeakReference> _xamlTypes;
-            std::map<::Platform::String^, ::Windows::UI::Xaml::Markup::IXamlMember^> _xamlMembers;
-
-        public:
-            void AddOtherProvider(::Windows::UI::Xaml::Markup::IXamlMetadataProvider^ otherProvider);
-        private:
-            ::Platform::Collections::Vector<::Windows::UI::Xaml::Markup::IXamlMetadataProvider^>^ _otherProviders;
-            property ::Platform::Collections::Vector<::Windows::UI::Xaml::Markup::IXamlMetadataProvider^>^ OtherProviders
-            {
-                ::Platform::Collections::Vector<::Windows::UI::Xaml::Markup::IXamlMetadataProvider^>^ get();
-            }
-
-            ::Windows::UI::Xaml::Markup::IXamlType^ CheckOtherMetadataProvidersForName(::Platform::String^ typeName);
-            ::Windows::UI::Xaml::Markup::IXamlType^ CheckOtherMetadataProvidersForType(::Windows::UI::Xaml::Interop::TypeName t);
-        };
-
-        ref class XamlSystemBaseType sealed : public ::Windows::UI::Xaml::Markup::IXamlType
-        {
-        internal:
-            XamlSystemBaseType(::Platform::String^ name);
-
-        public:
-            virtual property ::Windows::UI::Xaml::Markup::IXamlType^ BaseType 
-            {
-                ::Windows::UI::Xaml::Markup::IXamlType^ get();
-            }
-
-            virtual property ::Windows::UI::Xaml::Markup::IXamlMember^ ContentProperty 
-            {
-                ::Windows::UI::Xaml::Markup::IXamlMember^ get();
-            }
-
-            virtual property ::Platform::String^ FullName
-            {
-                ::Platform::String^ get();
-            }
-
-            virtual property ::Platform::String^ Name
-            {
-                ::Platform::String^ get();
-            }
-
-            virtual property bool IsArray
-            {
-                bool get();
-            }
-
-            virtual property bool IsCollection
-            {
-                bool get();
-            }
-
-            virtual property bool IsConstructible
-            {
-                bool get();
-            }
-
-            virtual property bool IsDictionary
-            {
-                bool get();
-            }
-
-            virtual property bool IsMarkupExtension
-            {
-                bool get();
-            }
-
-            virtual property bool IsEnum
-            {
-                bool get();
-            }
-
-            virtual property bool IsSystemType
-            {
-                bool get();
-            }
-
-            virtual property bool IsBindable
-            {
-                bool get();
-            }
-
-            virtual property ::Windows::UI::Xaml::Markup::IXamlType^ ItemType
-            {
-                ::Windows::UI::Xaml::Markup::IXamlType^ get();
-            }
-
-            virtual property ::Windows::UI::Xaml::Markup::IXamlType^ KeyType
-            {
-                ::Windows::UI::Xaml::Markup::IXamlType^ get();
-            }
-
-            virtual property ::Windows::UI::Xaml::Interop::TypeName UnderlyingType
-            {
-                ::Windows::UI::Xaml::Interop::TypeName get();
-            }
-
-            virtual ::Platform::Object^ ActivateInstance();
-            virtual ::Windows::UI::Xaml::Markup::IXamlMember^ GetMember(::Platform::String^ name);
-            virtual void AddToVector(::Platform::Object^ instance, ::Platform::Object^ value);
-            virtual void AddToMap(::Platform::Object^ instance, ::Platform::Object^ key, ::Platform::Object^ value);
-            virtual void RunInitializer();
-            virtual ::Platform::Object^ CreateFromString(::Platform::String^ value);
-
-        private:
-            ::Platform::String^ _fullName;
-        };
-
-        ref class XamlUserType sealed : public [::Platform::Metadata::RuntimeClassName] ::Windows::UI::Xaml::Markup::IXamlType
-        {
-        internal:
-            XamlUserType(::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider^ provider, ::Platform::String^ fullName, ::Windows::UI::Xaml::Markup::IXamlType^ baseType);
-
-        public:
-            // --- Interface methods ----
-            virtual property ::Platform::String^ FullName
-            {
-                ::Platform::String^ get();
-            }
-
-            virtual property ::Platform::String^ Name
-            {
-                ::Platform::String^ get();
-            }
-
-            virtual property ::Windows::UI::Xaml::Interop::TypeName UnderlyingType
-            {
-                ::Windows::UI::Xaml::Interop::TypeName get();
-            }
-
-            virtual property bool IsSystemType
-            {
-                bool get();
-            }
-
-            virtual property ::Windows::UI::Xaml::Markup::IXamlType^ BaseType 
-            { 
-                ::Windows::UI::Xaml::Markup::IXamlType^ get();
-            }
-
-            virtual property bool IsArray 
-            { 
-                bool get();
-            }
-
-            virtual property bool IsCollection 
-            { 
-                bool get();
-            }
-
-            virtual property bool IsConstructible 
-            { 
-                bool get();
-            }
-
-            virtual property bool IsDictionary 
-            { 
-                bool get();
-            }
-
-            virtual property bool IsMarkupExtension 
-            { 
-                bool get();
-            }
-
-            virtual property bool IsEnum 
-            { 
-                bool get();
-            }
-
-            virtual property bool IsBindable
-            { 
-                bool get();
-            }
-
-            virtual property ::Windows::UI::Xaml::Markup::IXamlMember^ ContentProperty 
-            { 
-                ::Windows::UI::Xaml::Markup::IXamlMember^ get();
-            }
-
-            virtual property ::Windows::UI::Xaml::Markup::IXamlType^ ItemType 
-            { 
-                ::Windows::UI::Xaml::Markup::IXamlType^ get();
-            }
-
-            virtual property ::Windows::UI::Xaml::Markup::IXamlType^ KeyType 
-            { 
-                ::Windows::UI::Xaml::Markup::IXamlType^ get();
-            }
-
-            virtual ::Windows::UI::Xaml::Markup::IXamlMember^ GetMember(::Platform::String^ name);
-            virtual ::Platform::Object^ ActivateInstance();
-            virtual void AddToMap(::Platform::Object^ instance, ::Platform::Object^ key, ::Platform::Object^ value);
-            virtual void AddToVector(::Platform::Object^ instance, ::Platform::Object^ value);
-            virtual void RunInitializer();
-            virtual ::Platform::Object^ CreateFromString(::Platform::String^ value);
-            // --- End of Interface methods
-
-            property bool IsReturnTypeStub
-            { 
-                bool get();
-            }
-
-            property bool IsLocalType
-            {
-                bool get();
-            }
-
-        internal:
-            typedef ::Platform::Object^ (*ActivatorFn)();
-            typedef void (*AddToCollectionFn)(::Platform::Object^ instance, ::Platform::Object^ item);
-            typedef void (*AddToDictionaryFn)(::Platform::Object^ instance, ::Platform::Object^ key, ::Platform::Object^ item);
-            typedef ::Platform::Object^ (*StringConverterFn)(::XamlTypeInfo::InfoProvider::XamlUserType^ userType, ::Platform::String^ input);
-
-            property ActivatorFn Activator;
-            property AddToCollectionFn CollectionAdd;
-            property AddToDictionaryFn DictionaryAdd;
-            property ::Windows::UI::Xaml::Interop::TypeKind KindOfType;
-            property StringConverterFn FromStringConverter;
-
-            void SetContentPropertyName(::Platform::String^ contentPropertyName);
-            void SetIsArray();
-            void SetIsMarkupExtension();
-            void SetIsEnum();
-            void SetIsBindable();
-            void SetIsReturnTypeStub();
-            void SetIsLocalType();
-            void SetItemTypeName(::Platform::String^ itemTypeName);
-            void SetKeyTypeName(::Platform::String^ keyTypeName);
-            void AddMemberName(::Platform::String^ shortName);
-            void AddEnumValue(::Platform::String^ name, ::Platform::Object^ value);
-            uint32 CreateEnumUIntFromString(::Platform::String^ input);
-
-        private:
-            ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider^ _provider;
-            ::Windows::UI::Xaml::Markup::IXamlType^ _baseType;
-            bool _isArray;
-            bool _isConstructible;
-            bool _isDictionary;
-            bool _isMarkupExtension;
-            bool _isEnum;
-            bool _isBindable;
-            bool _isReturnTypeStub;
-            bool _isLocalType;
-
-            ::Platform::String^ _contentPropertyName;
-            ::Platform::String^ _itemTypeName;
-            ::Platform::String^ _keyTypeName;
-            ::Platform::String^ _fullName;
-            std::map<::Platform::String^, ::Platform::String^> _memberNames;
-            std::map<std::wstring, ::Platform::Object^> _enumValues;
-        };
-
-        ref class XamlMember sealed : public ::Windows::UI::Xaml::Markup::IXamlMember
-        {
-        internal:
-            XamlMember(::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider^ provider, ::Platform::String^ name, ::Platform::String^ typeName);
-
-            void SetIsAttachable();
-            void SetIsDependencyProperty();
-            void SetIsReadOnly();
-            void SetTargetTypeName(::Platform::String^ targetTypeName);
-
-            typedef ::Platform::Object^ (*PropertyGetterFn)(::Platform::Object^ instance);
-            typedef void (*PropertySetterFn)(::Platform::Object^ instance, ::Platform::Object^ value);
-
-            property PropertyGetterFn Getter;
-            property PropertySetterFn Setter;
-
-        public:
-            virtual property bool IsAttachable
-            { 
-                bool get();
-            }
-
-            virtual property bool IsDependencyProperty 
-            { 
-                bool get();
-            }
-
-            virtual property bool IsReadOnly
-            { 
-                bool get();
-            }
-
-            virtual property ::Platform::String^ Name
-            { 
-                ::Platform::String^ get();
-            }
-
-            virtual property ::Windows::UI::Xaml::Markup::IXamlType^ Type
-            {
-                ::Windows::UI::Xaml::Markup::IXamlType^ get();
-            }
-
-            virtual property ::Windows::UI::Xaml::Markup::IXamlType^ TargetType
-            {
-                ::Windows::UI::Xaml::Markup::IXamlType^ get();
-            }
-
-            virtual ::Platform::Object^ GetValue(::Platform::Object^ instance);
-            virtual void SetValue(::Platform::Object^ instance, ::Platform::Object^ value);
-
-        private:
-            bool _isAttachable;
-            bool _isDependencyProperty;
-            bool _isReadOnly; 
-            ::Platform::String^ _name;
-            ::Platform::String^ _targetTypeName;
-            ::Platform::String^ _typeName;
-            ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider^ _provider;
-        };
-    }
-}
-

+ 0 - 13
build/windows/universal/TemplateApp/MainPage.xaml

@@ -1,13 +0,0 @@
-<Page
-    x:Class="TemplateApp.MainPage"
-    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
-    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-    xmlns:local="using:TemplateApp"
-    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
-    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
-    mc:Ignorable="d">
-
-    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
-
-    </Grid>
-</Page>

+ 0 - 27
build/windows/universal/TemplateApp/MainPage.xaml.cpp

@@ -1,27 +0,0 @@
-//
-// MainPage.xaml.cpp
-// Implementation of the MainPage class.
-//
-
-#include "pch.h"
-#include "MainPage.xaml.h"
-
-using namespace TemplateApp;
-
-using namespace Platform;
-using namespace Windows::Foundation;
-using namespace Windows::Foundation::Collections;
-using namespace Windows::UI::Xaml;
-using namespace Windows::UI::Xaml::Controls;
-using namespace Windows::UI::Xaml::Controls::Primitives;
-using namespace Windows::UI::Xaml::Data;
-using namespace Windows::UI::Xaml::Input;
-using namespace Windows::UI::Xaml::Media;
-using namespace Windows::UI::Xaml::Navigation;
-
-// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409
-
-MainPage::MainPage()
-{
-	InitializeComponent();
-}

+ 0 - 21
build/windows/universal/TemplateApp/MainPage.xaml.h

@@ -1,21 +0,0 @@
-//
-// MainPage.xaml.h
-// Declaration of the MainPage class.
-//
-
-#pragma once
-
-#include "MainPage.g.h"
-
-namespace TemplateApp
-{
-	/// <summary>
-	/// An empty page that can be used on its own or navigated to within a Frame.
-	/// </summary>
-	public ref class MainPage sealed
-	{
-	public:
-		MainPage();
-
-	};
-}

+ 2 - 2
build/windows/universal/TemplateApp/Package.appxmanifest

@@ -7,11 +7,11 @@
   IgnorableNamespaces="uap mp">
   IgnorableNamespaces="uap mp">
 
 
   <Identity
   <Identity
-    Name="70653703-3505-40ca-a433-1766d9043955"
+    Name="af5cfeae-618a-4196-8770-859d7d37ae6c"
     Publisher="CN=ivan"
     Publisher="CN=ivan"
     Version="1.0.0.0" />
     Version="1.0.0.0" />
 
 
-  <mp:PhoneIdentity PhoneProductId="70653703-3505-40ca-a433-1766d9043955" PhonePublisherId="00000000-0000-0000-0000-000000000000"/>
+  <mp:PhoneIdentity PhoneProductId="af5cfeae-618a-4196-8770-859d7d37ae6c" PhonePublisherId="00000000-0000-0000-0000-000000000000"/>
 
 
   <Properties>
   <Properties>
     <DisplayName>TemplateApp</DisplayName>
     <DisplayName>TemplateApp</DisplayName>

+ 8 - 6
build/windows/universal/TemplateApp/PolycodeTemplateApp.cpp

@@ -7,19 +7,21 @@
 
 
 PolycodeTemplateApp::PolycodeTemplateApp(PolycodeView *view) {
 PolycodeTemplateApp::PolycodeTemplateApp(PolycodeView *view) {
     core = new POLYCODE_CORE(view, 1280,720,false,false, 0,0,60);
     core = new POLYCODE_CORE(view, 1280,720,false,false, 0,0,60);
-//	CoreServices::getInstance()->getResourceManager()->addArchive("default.pak");
-	//CoreServices::getInstance()->getResourceManager()->addDirResource("default");
-
+    
+    //core->addFileSource("archive", "default.pak");
+    ResourcePool *globalPool = Services()->getResourceManager()->getGlobalPool();
+    globalPool->loadResourcesFromFolder("default", true);
+    
 	// Write your code here!
 	// Write your code here!
-    /*
+    
     Scene *scene = new Scene(Scene::SCENE_2D);
     Scene *scene = new Scene(Scene::SCENE_2D);
     scene->useClearColor = true;
     scene->useClearColor = true;
     
     
     ScenePrimitive *test = new ScenePrimitive(ScenePrimitive::TYPE_VPLANE, 0.5, 0.5);
     ScenePrimitive *test = new ScenePrimitive(ScenePrimitive::TYPE_VPLANE, 0.5, 0.5);
     test->setMaterialByName("Unlit");
     test->setMaterialByName("Unlit");
-    test->getLocalShaderOptions()->loadTextureForParam("diffuse", "main_icon.png");
+   // test->getLocalShaderOptions()->loadTextureForParam("diffuse", "main_icon.png");
     scene->addChild(test);
     scene->addChild(test);
-    */
+    
 }
 }
 
 
 PolycodeTemplateApp::~PolycodeTemplateApp() {
 PolycodeTemplateApp::~PolycodeTemplateApp() {

+ 106 - 86
build/windows/universal/TemplateApp/TemplateApp.vcxproj

@@ -1,44 +1,45 @@
 <?xml version="1.0" encoding="utf-8"?>
 <?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup Label="Globals">
-    <ProjectGuid>{06b5f55d-2971-4458-a612-348ecd8ad7df}</ProjectGuid>
-    <RootNamespace>TemplateApp</RootNamespace>
-    <DefaultLanguage>en-US</DefaultLanguage>
-    <MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
-    <AppContainerApplication>true</AppContainerApplication>
-    <ApplicationType>Windows Store</ApplicationType>
-    <WindowsTargetPlatformVersion>10.0.10240.0</WindowsTargetPlatformVersion>
-    <WindowsTargetPlatformMinVersion>10.0.10240.0</WindowsTargetPlatformMinVersion>
-    <ApplicationTypeRevision>10.0</ApplicationTypeRevision>
-    <EnableDotNetNativeCompatibleProfile>true</EnableDotNetNativeCompatibleProfile>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup Label="ProjectConfigurations">
   <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|ARM">
-      <Configuration>Debug</Configuration>
-      <Platform>ARM</Platform>
-    </ProjectConfiguration>
     <ProjectConfiguration Include="Debug|Win32">
     <ProjectConfiguration Include="Debug|Win32">
       <Configuration>Debug</Configuration>
       <Configuration>Debug</Configuration>
       <Platform>Win32</Platform>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
     </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
     <ProjectConfiguration Include="Debug|x64">
     <ProjectConfiguration Include="Debug|x64">
       <Configuration>Debug</Configuration>
       <Configuration>Debug</Configuration>
       <Platform>x64</Platform>
       <Platform>x64</Platform>
     </ProjectConfiguration>
     </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|ARM">
+    <ProjectConfiguration Include="Release|x64">
       <Configuration>Release</Configuration>
       <Configuration>Release</Configuration>
-      <Platform>ARM</Platform>
+      <Platform>x64</Platform>
     </ProjectConfiguration>
     </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|Win32">
-      <Configuration>Release</Configuration>
-      <Platform>Win32</Platform>
+    <ProjectConfiguration Include="Debug|ARM">
+      <Configuration>Debug</Configuration>
+      <Platform>ARM</Platform>
     </ProjectConfiguration>
     </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|x64">
+    <ProjectConfiguration Include="Release|ARM">
       <Configuration>Release</Configuration>
       <Configuration>Release</Configuration>
-      <Platform>x64</Platform>
+      <Platform>ARM</Platform>
     </ProjectConfiguration>
     </ProjectConfiguration>
   </ItemGroup>
   </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{a19bd860-b494-4d18-8afb-b788e29236cf}</ProjectGuid>
+    <Keyword>DirectXApp</Keyword>
+    <RootNamespace>TemplateApp</RootNamespace>
+    <DefaultLanguage>en-US</DefaultLanguage>
+    <MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
+    <AppContainerApplication>true</AppContainerApplication>
+    <ApplicationType>Windows Store</ApplicationType>
+    <WindowsTargetPlatformVersion>10.0.10240.0</WindowsTargetPlatformVersion>
+    <WindowsTargetPlatformMinVersion>10.0.10240.0</WindowsTargetPlatformMinVersion>
+    <ApplicationTypeRevision>10.0</ApplicationTypeRevision>
+    <EnableDotNetNativeCompatibleProfile>true</EnableDotNetNativeCompatibleProfile>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <ConfigurationType>Application</ConfigurationType>
     <UseDebugLibraries>true</UseDebugLibraries>
     <UseDebugLibraries>true</UseDebugLibraries>
@@ -77,6 +78,9 @@
   </PropertyGroup>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   <ImportGroup Label="ExtensionSettings">
+    <Import Project="$(VSINSTALLDIR)\Common7\IDE\Extensions\Microsoft\VsGraphics\ImageContentTask.props" />
+    <Import Project="$(VSINSTALLDIR)\Common7\IDE\Extensions\Microsoft\VsGraphics\MeshContentTask.props" />
+    <Import Project="$(VSINSTALLDIR)\Common7\IDE\Extensions\Microsoft\VsGraphics\ShaderGraphContentTask.props" />
   </ImportGroup>
   </ImportGroup>
   <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
   <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" />
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
@@ -101,110 +105,111 @@
     <PackageCertificateKeyFile>TemplateApp_TemporaryKey.pfx</PackageCertificateKeyFile>
     <PackageCertificateKeyFile>TemplateApp_TemporaryKey.pfx</PackageCertificateKeyFile>
   </PropertyGroup>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <IncludePath>C:\Users\ivan\Desktop\Workshop\PolycodeNewNew\include;$(IncludePath)</IncludePath>
-    <LibraryPath>C:\Users\ivan\Desktop\Workshop\PolycodeNewNew\lib\windows\x86;$(LibraryPath)</LibraryPath>
+    <IncludePath>..\..\..\..\include;$(IncludePath)</IncludePath>
   </PropertyGroup>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <IncludePath>C:\Users\ivan\Desktop\Workshop\PolycodeNewNew\include;$(IncludePath)</IncludePath>
-    <LibraryPath>C:\Users\ivan\Desktop\Workshop\PolycodeNewNew\lib\windows\x86;$(LibraryPath)</LibraryPath>
+    <IncludePath>..\..\..\..\include;$(IncludePath)</IncludePath>
   </PropertyGroup>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
-    <IncludePath>C:\Users\ivan\Desktop\Workshop\PolycodeNewNew\include;$(IncludePath)</IncludePath>
+    <IncludePath>..\..\..\..\include;$(IncludePath)</IncludePath>
   </PropertyGroup>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
-    <IncludePath>C:\Users\ivan\Desktop\Workshop\PolycodeNewNew\include;$(IncludePath)</IncludePath>
+    <IncludePath>..\..\..\..\include;$(IncludePath)</IncludePath>
   </PropertyGroup>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <IncludePath>C:\Users\ivan\Desktop\Workshop\PolycodeNewNew\include;$(IncludePath)</IncludePath>
-    <LibraryPath>C:\Users\ivan\Desktop\Workshop\PolycodeNewNew\lib\windows\x64;$(LibraryPath)</LibraryPath>
+    <IncludePath>..\..\..\..\include;$(IncludePath)</IncludePath>
+    <LibraryPath>..\..\..\..\lib\windows\x64;$(LibraryPath)</LibraryPath>
   </PropertyGroup>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <IncludePath>C:\Users\ivan\Desktop\Workshop\PolycodeNewNew\include;$(IncludePath)</IncludePath>
-    <LibraryPath>C:\Users\ivan\Desktop\Workshop\PolycodeNewNew\lib\windows\x64;$(LibraryPath)</LibraryPath>
+    <IncludePath>..\..\..\..\include;$(IncludePath)</IncludePath>
+    <LibraryPath>..\..\..\..\lib\windows\x64;$(LibraryPath)</LibraryPath>
   </PropertyGroup>
   </PropertyGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
+    <Link>
+      <AdditionalDependencies>mincore.lib;d3d12.lib;dxgi.lib;windowscodecs.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\arm; $(VCInstallDir)\lib\arm</AdditionalLibraryDirectories>
+    </Link>
     <ClCompile>
     <ClCompile>
+      <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
+      <PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile>
+      <AdditionalIncludeDirectories>$(ProjectDir);$(IntermediateOutputPath);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
       <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
       <DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
       <DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
     </ClCompile>
     </ClCompile>
-    <Link>
-      <AdditionalDependencies>Polycored.lib;zlib.lib;physfs.lib;OpenAL32.lib;freetype.lib;libogg.lib;libpng15_static.lib;libvorbis.lib;libvorbisfile.lib;lua5.1.lib;WindowsApp.lib;%(AdditionalDependencies)</AdditionalDependencies>
-    </Link>
   </ItemDefinitionGroup>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
+    <Link>
+      <AdditionalDependencies>mincore.lib;d3d12.lib;dxgi.lib;windowscodecs.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\arm; $(VCInstallDir)\lib\arm</AdditionalLibraryDirectories>
+    </Link>
     <ClCompile>
     <ClCompile>
+      <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
+      <PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile>
+      <AdditionalIncludeDirectories>$(ProjectDir);$(IntermediateOutputPath);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
       <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
       <DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
       <DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
     </ClCompile>
     </ClCompile>
-    <Link>
-      <AdditionalDependencies>Polycore.lib;zlib.lib;physfs.lib;OpenAL32.lib;freetype.lib;libogg.lib;libpng15_static.lib;libvorbis.lib;libvorbisfile.lib;lua5.1.lib;WindowsApp.lib;%(AdditionalDependencies)</AdditionalDependencies>
-    </Link>
   </ItemDefinitionGroup>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Link>
+      <AdditionalDependencies>mincore.lib;d3d12.lib;dxgi.lib;windowscodecs.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store; $(VCInstallDir)\lib</AdditionalLibraryDirectories>
+    </Link>
     <ClCompile>
     <ClCompile>
+      <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
+      <PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile>
+      <AdditionalIncludeDirectories>$(ProjectDir);$(IntermediateOutputPath);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
       <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
       <DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
       <DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
     </ClCompile>
     </ClCompile>
-    <Link>
-      <AdditionalDependencies>Polycored.lib;zlib.lib;physfs.lib;OpenAL32.lib;freetype.lib;libogg.lib;libpng15_static.lib;libvorbis.lib;libvorbisfile.lib;lua5.1.lib;WindowsApp.lib;%(AdditionalDependencies)</AdditionalDependencies>
-    </Link>
   </ItemDefinitionGroup>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Link>
+      <AdditionalDependencies>mincore.lib;d3d12.lib;dxgi.lib;windowscodecs.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store; $(VCInstallDir)\lib</AdditionalLibraryDirectories>
+    </Link>
     <ClCompile>
     <ClCompile>
+      <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
+      <PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile>
+      <AdditionalIncludeDirectories>$(ProjectDir);$(IntermediateOutputPath);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
       <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
       <DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
       <DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
     </ClCompile>
     </ClCompile>
-    <Link>
-      <AdditionalDependencies>Polycore.lib;zlib.lib;physfs.lib;OpenAL32.lib;freetype.lib;libogg.lib;libpng15_static.lib;libvorbis.lib;libvorbisfile.lib;lua5.1.lib;WindowsApp.lib;%(AdditionalDependencies)</AdditionalDependencies>
-    </Link>
   </ItemDefinitionGroup>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Link>
+      <AdditionalDependencies>freetype.lib;Polycored.lib;d3d11.lib;dxgi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\amd64; $(VCInstallDir)\lib\amd64</AdditionalLibraryDirectories>
+    </Link>
     <ClCompile>
     <ClCompile>
+      <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
+      <PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile>
+      <AdditionalIncludeDirectories>$(ProjectDir);$(IntermediateOutputPath);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
       <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
       <DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
       <DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <PrecompiledHeader>NotUsing</PrecompiledHeader>
       <PrecompiledHeader>NotUsing</PrecompiledHeader>
     </ClCompile>
     </ClCompile>
-    <Link>
-      <AdditionalDependencies>Polycored.lib;zlib.lib;physfs.lib;OpenAL32.lib;freetype.lib;libogg.lib;libpng15_static.lib;libvorbis.lib;libvorbisfile.lib;lua5.1.lib;WindowsApp.lib;%(AdditionalDependencies)</AdditionalDependencies>
-    </Link>
   </ItemDefinitionGroup>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Link>
+      <AdditionalDependencies>freetype.lib;Polycore.lib;mincore.lib;d3d11.lib;dxgi.lib;windowscodecs.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\amd64; $(VCInstallDir)\lib\amd64</AdditionalLibraryDirectories>
+    </Link>
     <ClCompile>
     <ClCompile>
+      <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
+      <PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile>
+      <AdditionalIncludeDirectories>$(ProjectDir);$(IntermediateOutputPath);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
       <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
       <DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
       <DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <PrecompiledHeader>NotUsing</PrecompiledHeader>
       <PrecompiledHeader>NotUsing</PrecompiledHeader>
-      <PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <CompileAs>Default</CompileAs>
     </ClCompile>
     </ClCompile>
-    <Link>
-      <AdditionalDependencies>Polycore.lib;zlib.lib;physfs.lib;freetype.lib;libogg.lib;libpng15_static.lib;libvorbis.lib;libvorbisfile.lib;lua5.1.lib;WindowsApp.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
-    </Link>
   </ItemDefinitionGroup>
   </ItemDefinitionGroup>
-  <ItemGroup>
-    <ClInclude Include="pch.h" />
-    <ClInclude Include="App.xaml.h">
-      <DependentUpon>App.xaml</DependentUpon>
-    </ClInclude>
-    <ClInclude Include="MainPage.xaml.h">
-      <DependentUpon>MainPage.xaml</DependentUpon>
-    </ClInclude>
-    <ClInclude Include="PolycodeTemplateApp.h" />
-  </ItemGroup>
-  <ItemGroup>
-    <ApplicationDefinition Include="App.xaml">
-      <SubType>Designer</SubType>
-    </ApplicationDefinition>
-    <Page Include="MainPage.xaml">
-      <SubType>Designer</SubType>
-    </Page>
-  </ItemGroup>
-  <ItemGroup>
-    <AppxManifest Include="Package.appxmanifest">
-      <SubType>Designer</SubType>
-    </AppxManifest>
-    <None Include="TemplateApp_TemporaryKey.pfx" />
-  </ItemGroup>
   <ItemGroup>
   <ItemGroup>
     <Image Include="Assets\LockScreenLogo.scale-200.png" />
     <Image Include="Assets\LockScreenLogo.scale-200.png" />
     <Image Include="Assets\SplashScreen.scale-200.png" />
     <Image Include="Assets\SplashScreen.scale-200.png" />
@@ -215,12 +220,12 @@
     <Image Include="Assets\Wide310x150Logo.scale-200.png" />
     <Image Include="Assets\Wide310x150Logo.scale-200.png" />
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
-    <ClCompile Include="App.xaml.cpp">
-      <DependentUpon>App.xaml</DependentUpon>
-    </ClCompile>
-    <ClCompile Include="MainPage.xaml.cpp">
-      <DependentUpon>MainPage.xaml</DependentUpon>
-    </ClCompile>
+    <ClInclude Include="App.h" />
+    <ClInclude Include="pch.h" />
+    <ClInclude Include="PolycodeTemplateApp.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="App.cpp" />
     <ClCompile Include="pch.cpp">
     <ClCompile Include="pch.cpp">
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
@@ -231,7 +236,22 @@
     </ClCompile>
     </ClCompile>
     <ClCompile Include="PolycodeTemplateApp.cpp" />
     <ClCompile Include="PolycodeTemplateApp.cpp" />
   </ItemGroup>
   </ItemGroup>
+  <ItemGroup>
+    <AppxManifest Include="Package.appxmanifest">
+      <SubType>Designer</SubType>
+    </AppxManifest>
+    <None Include="TemplateApp_TemporaryKey.pfx" />
+  </ItemGroup>
+  <ItemGroup>
+    <Reference Include="PolycodeCoreComponent">
+      <HintPath>..\..\..\..\lib\windows\x64\PolycodeCoreComponent.winmd</HintPath>
+      <IsWinMDFile>true</IsWinMDFile>
+    </Reference>
+  </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   <ImportGroup Label="ExtensionTargets">
+    <Import Project="$(VSINSTALLDIR)\Common7\IDE\Extensions\Microsoft\VsGraphics\ImageContentTask.targets" />
+    <Import Project="$(VSINSTALLDIR)\Common7\IDE\Extensions\Microsoft\VsGraphics\MeshContentTask.targets" />
+    <Import Project="$(VSINSTALLDIR)\Common7\IDE\Extensions\Microsoft\VsGraphics\ShaderGraphContentTask.targets" />
   </ImportGroup>
   </ImportGroup>
 </Project>
 </Project>

+ 12 - 25
build/windows/universal/TemplateApp/TemplateApp.vcxproj.filters

@@ -1,30 +1,10 @@
 <?xml version="1.0" encoding="utf-8"?>
 <?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup>
   <ItemGroup>
-    <Filter Include="Common">
-      <UniqueIdentifier>06b5f55d-2971-4458-a612-348ecd8ad7df</UniqueIdentifier>
-    </Filter>
     <Filter Include="Assets">
     <Filter Include="Assets">
-      <UniqueIdentifier>d761e570-4bd3-4e51-afc7-4f48514b6e2d</UniqueIdentifier>
+      <UniqueIdentifier>614fddde-1eb9-49ee-acec-2012bcdd83b8</UniqueIdentifier>
       <Extensions>bmp;fbx;gif;jpg;jpeg;tga;tiff;tif;png</Extensions>
       <Extensions>bmp;fbx;gif;jpg;jpeg;tga;tiff;tif;png</Extensions>
     </Filter>
     </Filter>
-  </ItemGroup>
-  <ItemGroup>
-    <ApplicationDefinition Include="App.xaml" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="App.xaml.cpp" />
-    <ClCompile Include="MainPage.xaml.cpp" />
-    <ClCompile Include="pch.cpp" />
-    <ClCompile Include="PolycodeTemplateApp.cpp" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="pch.h" />
-    <ClInclude Include="App.xaml.h" />
-    <ClInclude Include="MainPage.xaml.h" />
-    <ClInclude Include="PolycodeTemplateApp.h" />
-  </ItemGroup>
-  <ItemGroup>
     <Image Include="Assets\LockScreenLogo.scale-200.png">
     <Image Include="Assets\LockScreenLogo.scale-200.png">
       <Filter>Assets</Filter>
       <Filter>Assets</Filter>
     </Image>
     </Image>
@@ -48,12 +28,19 @@
     </Image>
     </Image>
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
-    <AppxManifest Include="Package.appxmanifest" />
+    <ClCompile Include="App.cpp" />
+    <ClCompile Include="pch.cpp" />
+    <ClCompile Include="PolycodeTemplateApp.cpp" />
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
-    <None Include="TemplateApp_TemporaryKey.pfx" />
+    <ClInclude Include="App.h" />
+    <ClInclude Include="pch.h" />
+    <ClInclude Include="PolycodeTemplateApp.h" />
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
-    <Page Include="MainPage.xaml" />
+    <AppxManifest Include="Package.appxmanifest" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="TemplateApp_TemporaryKey.pfx" />
   </ItemGroup>
   </ItemGroup>
 </Project>
 </Project>

+ 1 - 6
build/windows/universal/TemplateApp/pch.cpp

@@ -1,6 +1 @@
-//
-// pch.cpp
-// Include the standard header and generate the precompiled header.
-//
-
-#include "pch.h"
+#include "pch.h"

+ 13 - 10
build/windows/universal/TemplateApp/pch.h

@@ -1,11 +1,14 @@
-//
-// pch.h
-// Header for standard system include files.
-//
+#pragma once
 
 
-#pragma once
-
-#include <collection.h>
-#include <ppltasks.h>
-
-#include "App.xaml.h"
+#include <wrl.h>
+#include <wrl/client.h>
+#include <d3d12.h>
+#include <dxgi1_4.h>
+#include <d3d11_3.h>
+#include <pix.h>
+#include <DirectXColors.h>
+#include <DirectXMath.h>
+#include <memory>
+#include <vector>
+#include <agile.h>
+#include <concrt.h>

+ 1 - 1
include/polycode/core/PolyCoreServices.h

@@ -178,6 +178,6 @@ namespace Polycode {
 	};
 	};
     
     
 
 
-    CoreServices *Services();
+	_PolyExport CoreServices *Services();
     
     
 }
 }

+ 92 - 0
include/polycode/core/PolyDX11GraphicsInterface.h

@@ -0,0 +1,92 @@
+    
+/*
+Copyright (C) 2015 by Ivan Safrin
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+*/
+
+
+#pragma once
+#include "polycode/core/PolyGlobals.h"
+#include "polycode/core/PolyRenderer.h"
+#include "polycode/core/PolyTexture.h"
+
+#include "PolyCore.h"
+
+#include <wrl.h>
+#include <wrl/client.h>
+#include <d3d11_2.h>
+#include <d2d1_2.h>
+#include <d2d1effects_1.h>
+#include <dwrite_2.h>
+#include <wincodec.h>
+#include <DirectXColors.h>
+#include <DirectXMath.h>
+#include <memory>
+#include <concrt.h>
+#include <ppltasks.h>
+
+namespace Polycode {
+	class _PolyExport DX11GraphicsInterface : public GraphicsInterface {
+		
+	public:
+		
+		DX11GraphicsInterface();
+		~DX11GraphicsInterface();
+
+		// implementation
+        
+        void createTexture(Texture *texture);
+        void setViewport(unsigned int x,unsigned  int y,unsigned  int width, unsigned height);
+        void clearBuffers(const Color &clearColor, bool colorBuffer, bool depthBuffer, bool stencilBuffer);
+        void setParamInShader(Shader *shader, ProgramParam *param, LocalShaderParam *localParam);
+        void setAttributeInShader(Shader *shader, ProgramAttribute *attribute, AttributeBinding *attributeBinding);
+        void disableAttribute(Shader *shader, const ProgramAttribute &attribute);
+        void useShader(Shader *shader);
+        void createProgram(ShaderProgram *program);
+        void createShader(Shader *shader);
+        void beginDrawCall();
+        void endDrawCall();
+        void setBlendingMode(unsigned int blendingMode);
+        
+        void bindFramebuffer(Texture *framebufferTexture);
+        
+        void createVertexBuffer(VertexDataArray *dataArray);
+        void createIndexBuffer(IndexDataArray *dataArray);
+        
+        void drawIndices(int type, IndexDataArray *indexArray);
+        void drawArrays(int type, unsigned int vertexCount);
+        
+        void enableDepthTest(bool val);
+        void enableDepthWrite(bool val);
+        void enableBackfaceCulling(bool val);
+        void setLineSize(Number lineSize);
+
+		void setContext(ID3D11DeviceContext2 *context);
+		void setViews(ID3D11RenderTargetView *targetView, ID3D11DepthStencilView *depthStencilView);
+
+	protected:
+
+		ID3D11DeviceContext2 *context;
+		ID3D11RenderTargetView	*m_d3dRenderTargetView;
+		ID3D11DepthStencilView	*m_d3dDepthStencilView;
+
+	};
+}
+

+ 7 - 6
include/polycode/core/PolyGlobals.h

@@ -65,12 +65,6 @@ typedef unsigned int PolyRendererIndexType;
 #define TODEGREES 57.2957795
 #define TODEGREES 57.2957795
 #define TORADIANS 0.0174532925
 #define TORADIANS 0.0174532925
 
 
-#if defined(_WINDOWS) && defined(Polycore_EXPORTS)
-	#define _PolyExport __declspec(dllexport)
-#else
-	#define _PolyExport
-#endif
-
 //#define COMPILE_SDL_CORE		1
 //#define COMPILE_SDL_CORE		1
 
 
 #define PLATFORM_WINDOWS  1
 #define PLATFORM_WINDOWS  1
@@ -86,6 +80,13 @@ typedef unsigned int PolyRendererIndexType;
 	#define PLATFORM PLATFORM_UNIX
 	#define PLATFORM PLATFORM_UNIX
 #endif
 #endif
 
 
+#if (defined(_WINDOWS) || defined(WINAPI_FAMILY)) && defined(POLYCODE_EXPORTS)
+	#define _PolyExport __declspec(dllexport)
+#else
+	#define _PolyExport
+#endif
+
+
 #ifdef POLYCODE_NUMBER_IS_SINGLE
 #ifdef POLYCODE_NUMBER_IS_SINGLE
 typedef float Number;
 typedef float Number;
 #else
 #else

+ 70 - 27
include/polycode/core/PolyUWPCore.h

@@ -2,44 +2,87 @@
 #pragma once
 #pragma once
 
 
 #include "PolyCore.h"
 #include "PolyCore.h"
-#include <vector>
+#include "polycode/core/PolyDX11GraphicsInterface.h"
 
 
+#include <wrl.h>
+#include <wrl/client.h>
+#include <d3d11_2.h>
+#include <d2d1_2.h>
+#include <d2d1effects_1.h>
+#include <dwrite_2.h>
+#include <wincodec.h>
+#include <DirectXColors.h>
+#include <DirectXMath.h>
+#include <memory>
+#include <concrt.h>
+
+#include <ppltasks.h>
+
+using namespace concurrency;
 using namespace Polycode;
 using namespace Polycode;
+using namespace DirectX;
+using namespace Microsoft::WRL;
+using namespace Windows::Foundation;
 
 
 
 
 #define POLYCODE_CORE UWPCore
 #define POLYCODE_CORE UWPCore
 
 
 class PolycodeView {
 class PolycodeView {
 	public:
 	public:
+		IUnknown *window;
+};
+
+class UWPCoreMutex : public CoreMutex {
+	public:
+		std::mutex mutex;
 };
 };
 
 
-class UWPCore : public Core {
+
+class _PolyExport UWPCore : public Core {
 	public:
 	public:
 	
 	
-	UWPCore(PolycodeView *view, int xRes, int yRes, bool fullScreen, bool vSync, int aaLevel, int anisotropyLevel, int frameRate, int monitorIndex = -1, bool retinaSupport = false);
-	~UWPCore();
-
-	void Render();
-	bool systemUpdate();
-	void setCursor(int cursorType);
-	void lockMutex(CoreMutex *mutex);
-	void unlockMutex(CoreMutex *mutex);
-	CoreMutex *createMutex();
-	void copyStringToClipboard(const String& str);
-	String getClipboardString();
-	void createFolder(const String& folderPath);
-	void copyDiskItem(const String& itemPath, const String& destItemPath);
-	void moveDiskItem(const String& itemPath, const String& destItemPath);
-	void removeDiskItem(const String& itemPath);
-	String openFolderPicker();
-	std::vector<String> openFilePicker(std::vector<CoreFileExtension> extensions, bool allowMultiple);
-	String saveFilePicker(std::vector<CoreFileExtension> extensions);
-	void handleVideoModeChange(VideoModeChangeInfo *modeInfo);
-	void flushRenderContext();
-	void resizeTo(int xRes, int yRes);
-	void openURL(String url);
-	unsigned int getTicks();
-	String executeExternalCommand(String command, String args, String inDirectory);
-	bool systemParseFolder(const Polycode::String& pathString, bool showHidden, std::vector<OSFileEntry> &targetVector);
+		UWPCore(PolycodeView *view, int xRes, int yRes, bool fullScreen, bool vSync, int aaLevel, int anisotropyLevel, int frameRate, int monitorIndex = -1, bool retinaSupport = false);
+		~UWPCore();
+
+		void Render();
+		bool systemUpdate();
+		void setCursor(int cursorType);
+		void createThread(Threaded *target);
+		void lockMutex(CoreMutex *mutex);
+		void unlockMutex(CoreMutex *mutex);
+		CoreMutex *createMutex();
+		void copyStringToClipboard(const String& str);
+		String getClipboardString();
+		void createFolder(const String& folderPath);
+		void copyDiskItem(const String& itemPath, const String& destItemPath);
+		void moveDiskItem(const String& itemPath, const String& destItemPath);
+		void removeDiskItem(const String& itemPath);
+		String openFolderPicker();
+		std::vector<String> openFilePicker(std::vector<CoreFileExtension> extensions, bool allowMultiple);
+		String saveFilePicker(std::vector<CoreFileExtension> extensions);
+		void handleVideoModeChange(VideoModeChangeInfo *modeInfo);
+		void flushRenderContext();
+		void resizeTo(int xRes, int yRes);
+		void openURL(String url);
+		unsigned int getTicks();
+		String executeExternalCommand(String command, String args, String inDirectory);
+		bool systemParseFolder(const Polycode::String& pathString, bool showHidden, std::vector<OSFileEntry> &targetVector);
+
+	
+
+	private:
+
+		DX11GraphicsInterface *graphicsInterface;
+
+
+		D3D_FEATURE_LEVEL								m_d3dFeatureLevel;
+		Microsoft::WRL::ComPtr<ID3D11Device2>			m_d3dDevice;
+		Microsoft::WRL::ComPtr<ID3D11DeviceContext2>	m_d3dContext;
+		Microsoft::WRL::ComPtr<IDXGISwapChain1>			m_swapChain;
+
+		Microsoft::WRL::ComPtr<ID3D11RenderTargetView>	m_d3dRenderTargetView;
+		Microsoft::WRL::ComPtr<ID3D11DepthStencilView>	m_d3dDepthStencilView;
+
+		IUnknown *m_Window;
 
 
 };
 };

BIN
lib/windows/x64/Polycore.lib


BIN
lib/windows/x64/Polycored.lib


+ 129 - 0
src/core/PolyDX11GraphicsInterface.cpp

@@ -0,0 +1,129 @@
+
+/*
+ Copyright (C) 2015 by Ivan Safrin
+ 
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+ 
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+ 
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ THE SOFTWARE.
+ */
+
+#include "polycode/core/PolyDX11GraphicsInterface.h"
+#include "polycode/core/PolyLogger.h"
+#include "polycode/core/PolyCoreServices.h"
+
+using namespace Polycode;
+
+void DX11GraphicsInterface::setContext(ID3D11DeviceContext2 *context) {
+	this->context = context;
+}
+
+void DX11GraphicsInterface::setViews(ID3D11RenderTargetView *targetView, ID3D11DepthStencilView *depthStencilView) {
+	m_d3dRenderTargetView = targetView;
+	m_d3dDepthStencilView = depthStencilView;
+}
+
+DX11GraphicsInterface::DX11GraphicsInterface() {
+
+}
+
+DX11GraphicsInterface::~DX11GraphicsInterface() {
+    
+}
+
+void DX11GraphicsInterface::setParamInShader(Shader *shader, ProgramParam *param, LocalShaderParam *localParam) {
+    
+}
+
+void DX11GraphicsInterface::setBlendingMode(unsigned int blendingMode) {
+   
+}
+
+void DX11GraphicsInterface::beginDrawCall() {
+}
+
+void DX11GraphicsInterface::endDrawCall() {
+}
+
+void DX11GraphicsInterface::useShader(Shader *shader) {
+   
+}
+
+void DX11GraphicsInterface::setAttributeInShader(Shader *shader, ProgramAttribute *attribute, AttributeBinding *attributeBinding) {
+
+}
+
+void DX11GraphicsInterface::disableAttribute(Shader *shader, const ProgramAttribute &attribute) {
+
+}
+
+void DX11GraphicsInterface::drawIndices(int type, IndexDataArray *indexArray) {
+}
+
+void DX11GraphicsInterface::drawArrays(int type, unsigned int vertexCount) {
+
+}
+
+void DX11GraphicsInterface::bindFramebuffer(Texture *framebufferTexture) {
+}
+
+void DX11GraphicsInterface::createTexture(Texture *texture) {
+}
+
+void DX11GraphicsInterface::setViewport(unsigned int x,unsigned  int y,unsigned  int width, unsigned height) {
+
+}
+
+void DX11GraphicsInterface::createProgram(ShaderProgram *program) {
+}
+
+void DX11GraphicsInterface::createVertexBuffer(VertexDataArray *dataArray) {
+}
+
+void DX11GraphicsInterface::createIndexBuffer(IndexDataArray *dataArray) {
+}
+
+void DX11GraphicsInterface::createShader(Shader *shader) {    
+}
+
+void DX11GraphicsInterface::enableBackfaceCulling(bool val) {
+}
+
+void DX11GraphicsInterface::enableDepthTest(bool val) {
+}
+
+void DX11GraphicsInterface::enableDepthWrite(bool val) {
+}
+
+void DX11GraphicsInterface::setLineSize(Number lineSize) {
+
+}
+
+void DX11GraphicsInterface::clearBuffers(const Color &clearColor, bool colorBuffer, bool depthBuffer, bool stencilBuffer) {
+
+	if (colorBuffer) {
+		FLOAT ColorRGBA[4] = { clearColor.r, clearColor.g, clearColor.b, clearColor.a};
+		context->ClearRenderTargetView(m_d3dRenderTargetView, ColorRGBA);
+	}
+	UINT clearFlags = 0;
+	if (depthBuffer) {
+		clearFlags = clearFlags | D3D11_CLEAR_DEPTH;
+	}
+	if (stencilBuffer) {
+		clearFlags = clearFlags | D3D11_CLEAR_STENCIL;
+	}
+	context->ClearDepthStencilView(m_d3dDepthStencilView, clearFlags, 1.0f, 0);
+}

+ 0 - 8
src/core/PolyRenderer.cpp

@@ -29,14 +29,6 @@
 
 
 using namespace Polycode;
 using namespace Polycode;
 
 
-GPUDrawBuffer::GPUDrawBuffer() {
-    
-}
-
-GPUDrawBuffer::~GPUDrawBuffer() {
-    
-}
-
 GraphicsInterface::GraphicsInterface() {
 GraphicsInterface::GraphicsInterface() {
 }
 }
 
 

+ 190 - 6
src/core/PolyUWPCore.cpp

@@ -1,10 +1,22 @@
 
 
 #include "polycode/core/PolyUWPCore.h"
 #include "polycode/core/PolyUWPCore.h"
+#include <ppltasks.h>
 
 
+using namespace concurrency;
+using namespace DirectX;
+using namespace Microsoft::WRL;
+using namespace Windows::Foundation;
 
 
 UWPCore::UWPCore(PolycodeView *view, int xRes, int yRes, bool fullScreen, bool vSync, int aaLevel, int anisotropyLevel, int frameRate, int monitorIndex, bool retinaSupport) 
 UWPCore::UWPCore(PolycodeView *view, int xRes, int yRes, bool fullScreen, bool vSync, int aaLevel, int anisotropyLevel, int frameRate, int monitorIndex, bool retinaSupport) 
 	: Core(xRes, yRes, fullScreen, vSync, aaLevel, anisotropyLevel, frameRate, monitorIndex) {
 	: Core(xRes, yRes, fullScreen, vSync, aaLevel, anisotropyLevel, frameRate, monitorIndex) {
 
 
+	m_Window = view->window;
+
+	renderer = new Renderer();
+	graphicsInterface = new DX11GraphicsInterface();
+	renderer->setGraphicsInterface(this, graphicsInterface);
+	services->setRenderer(renderer);
+	setVideoMode(xRes, yRes, fullScreen, vSync, aaLevel, anisotropyLevel, retinaSupport);
 }
 }
 
 
 UWPCore::~UWPCore() {
 UWPCore::~UWPCore() {
@@ -12,27 +24,46 @@ UWPCore::~UWPCore() {
 }
 }
 
 
 void UWPCore::Render() {
 void UWPCore::Render() {
-
+	renderer->beginFrame();
+	services->Render(Polycode::Rectangle(0, 0, 640, 480));
+	renderer->endFrame();
 }
 }
 
 
 bool UWPCore::systemUpdate() {
 bool UWPCore::systemUpdate() {
-	return true;
+	if (!running) {
+		return false;
+	}
+	doSleep();
+	updateCore();
+	return running;
 }
 }
 
 
 void UWPCore::setCursor(int cursorType) {
 void UWPCore::setCursor(int cursorType) {
 
 
 }
 }
 
 
-void UWPCore::lockMutex(CoreMutex *mutex) {
+void launchThread(Threaded *target) {
+	target->runThread();
+	target->scheduledForRemoval = true;
+}
+
+void UWPCore::createThread(Threaded * target) {
+	Core::createThread(target);
+	std::thread *thread = new std::thread(launchThread, target);
 
 
 }
 }
 
 
-void UWPCore::unlockMutex(CoreMutex *mutex) {
+void UWPCore::lockMutex(CoreMutex *mutex) {
+	((UWPCoreMutex*)mutex)->mutex.lock();
+}
 
 
+void UWPCore::unlockMutex(CoreMutex *mutex) {
+	((UWPCoreMutex*)mutex)->mutex.unlock();
 }
 }
 
 
 CoreMutex *UWPCore::createMutex() {
 CoreMutex *UWPCore::createMutex() {
-	return NULL;
+	UWPCoreMutex *mutex = new UWPCoreMutex();
+	return mutex;
 }
 }
 
 
 void UWPCore::copyStringToClipboard(const String& str) {
 void UWPCore::copyStringToClipboard(const String& str) {
@@ -73,11 +104,162 @@ String UWPCore::saveFilePicker(std::vector<CoreFileExtension> extensions) {
 }
 }
 
 
 void UWPCore::handleVideoModeChange(VideoModeChangeInfo *modeInfo) {
 void UWPCore::handleVideoModeChange(VideoModeChangeInfo *modeInfo) {
+	
+	if (m_d3dContext == nullptr) {
+		D3D_FEATURE_LEVEL featureLevels[] = {
+			D3D_FEATURE_LEVEL_11_1,
+			D3D_FEATURE_LEVEL_11_0,
+			D3D_FEATURE_LEVEL_10_1,
+			D3D_FEATURE_LEVEL_10_0,
+			D3D_FEATURE_LEVEL_9_3,
+			D3D_FEATURE_LEVEL_9_2,
+			D3D_FEATURE_LEVEL_9_1
+		};
+
+		ComPtr<ID3D11Device> device;
+		ComPtr<ID3D11DeviceContext> context;
+
+		HRESULT hr = D3D11CreateDevice(
+			nullptr,					// Specify nullptr to use the default adapter.
+			D3D_DRIVER_TYPE_HARDWARE,	// Create a device using the hardware graphics driver.
+			0,							// Should be 0 unless the driver is D3D_DRIVER_TYPE_SOFTWARE.
+			0,				// Set debug and Direct2D compatibility flags.
+			featureLevels,				// List of feature levels this app can support.
+			ARRAYSIZE(featureLevels),	// Size of the list above.
+			D3D11_SDK_VERSION,			// Always set this to D3D11_SDK_VERSION for Windows Store apps.
+			&device,					// Returns the Direct3D device created.
+			&m_d3dFeatureLevel,			// Returns feature level of device created.
+			&context					// Returns the device immediate context.
+			);
+
+		if (FAILED(hr)) {
+			D3D11CreateDevice(
+				nullptr,
+				D3D_DRIVER_TYPE_WARP, // Create a WARP device instead of a hardware device.
+				0,
+				0,
+				featureLevels,
+				ARRAYSIZE(featureLevels),
+				D3D11_SDK_VERSION,
+				&device,
+				&m_d3dFeatureLevel,
+				&context
+				);
+		}
+
+		device.As(&m_d3dDevice);
+		context.As(&m_d3dContext);
+	}
+
+	// ---------------- window stuff
+
+	// Clear the previous window size specific context.
+	ID3D11RenderTargetView* nullViews[] = { nullptr };
+	m_d3dContext->OMSetRenderTargets(ARRAYSIZE(nullViews), nullViews, nullptr);
+	m_d3dRenderTargetView = nullptr;
+	m_d3dDepthStencilView = nullptr;
+	m_d3dContext->Flush();
+
+
+	if (m_swapChain != nullptr) {
+		HRESULT hr = m_swapChain->ResizeBuffers(
+			2,
+			modeInfo->xRes,
+			modeInfo->yRes,
+			DXGI_FORMAT_B8G8R8A8_UNORM,
+			0
+			);
+	} else {
+		DXGI_SWAP_CHAIN_DESC1 swapChainDesc = { 0 };
+
+		swapChainDesc.Width = lround(modeInfo->xRes);
+		swapChainDesc.Height = lround(modeInfo->yRes);
+		swapChainDesc.Format = DXGI_FORMAT_B8G8R8A8_UNORM; // This is the most common swap chain format.
+		swapChainDesc.Stereo = false;
+		swapChainDesc.SampleDesc.Count = 1; // Don't use multi-sampling.
+		swapChainDesc.SampleDesc.Quality = 0;
+		swapChainDesc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;
+		swapChainDesc.BufferCount = 2; // Use double-buffering to minimize latency.
+		swapChainDesc.SwapEffect = DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL; // All Windows Store apps must use this SwapEffect.
+		swapChainDesc.Flags = 0;
+		swapChainDesc.Scaling = DXGI_SCALING_NONE;
+		swapChainDesc.AlphaMode = DXGI_ALPHA_MODE_IGNORE;
+
+		// This sequence obtains the DXGI factory that was used to create the Direct3D device above.
+		ComPtr<IDXGIDevice3> dxgiDevice;
+		m_d3dDevice.As(&dxgiDevice);
+
+		ComPtr<IDXGIAdapter> dxgiAdapter;
+		dxgiDevice->GetAdapter(&dxgiAdapter);
+
+		ComPtr<IDXGIFactory2> dxgiFactory;
+		dxgiAdapter->GetParent(IID_PPV_ARGS(&dxgiFactory));
+
+		dxgiFactory->CreateSwapChainForCoreWindow(
+			m_d3dDevice.Get(),
+			m_Window,
+			&swapChainDesc,
+			nullptr,
+			&m_swapChain
+			);
+
+		dxgiDevice->SetMaximumFrameLatency(1);
+	}
+
+
+	// Create a render target view of the swap chain back buffer.
+	ComPtr<ID3D11Texture2D> backBuffer;
+	m_swapChain->GetBuffer(0, IID_PPV_ARGS(&backBuffer));
+
+	m_d3dDevice->CreateRenderTargetView(
+			backBuffer.Get(),
+			nullptr,
+			&m_d3dRenderTargetView
+		);
+
+	// Create a depth stencil view for use with 3D rendering if needed.
+	CD3D11_TEXTURE2D_DESC depthStencilDesc(
+		DXGI_FORMAT_D24_UNORM_S8_UINT,
+		modeInfo->xRes,
+		modeInfo->yRes,
+		1, // This depth stencil view has only one texture.
+		1, // Use a single mipmap level.
+		D3D11_BIND_DEPTH_STENCIL
+		);
+
+	ComPtr<ID3D11Texture2D> depthStencil;
+	m_d3dDevice->CreateTexture2D(
+		&depthStencilDesc,
+		nullptr,
+		&depthStencil
+		);
+
+	CD3D11_DEPTH_STENCIL_VIEW_DESC depthStencilViewDesc(D3D11_DSV_DIMENSION_TEXTURE2D);
+	m_d3dDevice->CreateDepthStencilView(
+		depthStencil.Get(),
+		&depthStencilViewDesc,
+		&m_d3dDepthStencilView
+		);
+
+	// Set the 3D rendering viewport to target the entire window.
+	CD3D11_VIEWPORT m_screenViewport = CD3D11_VIEWPORT(
+		0.0f,
+		0.0f,
+		modeInfo->xRes,
+		modeInfo->yRes
+		);
+
+	m_d3dContext->RSSetViewports(1, &m_screenViewport);
+
+	graphicsInterface->setContext(m_d3dContext.Get());
+	graphicsInterface->setViews(m_d3dRenderTargetView.Get(), m_d3dDepthStencilView.Get());
 
 
 }
 }
 
 
 void UWPCore::flushRenderContext() {
 void UWPCore::flushRenderContext() {
-
+	HRESULT hr = m_swapChain->Present(1, 0);
+	m_d3dContext->DiscardView(m_d3dRenderTargetView.Get());
+	m_d3dContext->DiscardView(m_d3dDepthStencilView.Get());
 }
 }
 
 
 void UWPCore::resizeTo(int xRes, int yRes) {
 void UWPCore::resizeTo(int xRes, int yRes) {
@@ -97,6 +279,8 @@ String UWPCore::executeExternalCommand(String command, String args, String inDir
 }
 }
 
 
 bool UWPCore::systemParseFolder(const Polycode::String& pathString, bool showHidden, std::vector<OSFileEntry> &targetVector) {
 bool UWPCore::systemParseFolder(const Polycode::String& pathString, bool showHidden, std::vector<OSFileEntry> &targetVector) {
+
+	
 	return false;
 	return false;
 }
 }