ソースを参照

Started on DX11 renderer for UWP

Ivan Safrin 10 年 前
コミット
6f18df383d
42 ファイル変更1204 行追加1977 行削除
  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
 VisualStudioVersion = 14.0.23107.0
 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
-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
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -17,6 +17,24 @@ Global
 		Release|x86 = Release|x86
 	EndGlobalSection
 	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.Build.0 = Debug|ARM
 		{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|x86.ActiveCfg = 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
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE

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


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

@@ -26,83 +26,6 @@
       <Platform>x64</Platform>
     </ProjectConfiguration>
   </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>
     <ClInclude Include="..\..\..\..\include\Polycode.h" />
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyBasicFileProvider.h" />
@@ -119,6 +42,7 @@
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyCoreServices.h" />
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyCubemap.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\PolyEvent.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\tinystr.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>
   <PropertyGroup Label="Globals">
     <ProjectGuid>{ee7ae05c-9ae5-47fa-8a08-28e8d8d89b94}</ProjectGuid>
@@ -349,6 +352,9 @@
       <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
       <GenerateWindowsMetadata>false</GenerateWindowsMetadata>
     </Link>
+    <Lib>
+      <TargetMachine>MachineX64</TargetMachine>
+    </Lib>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <ClCompile>
@@ -362,6 +368,9 @@
       <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
       <GenerateWindowsMetadata>false</GenerateWindowsMetadata>
     </Link>
+    <Lib>
+      <TargetMachine>MachineX64</TargetMachine>
+    </Lib>
   </ItemDefinitionGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">

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

@@ -1,10 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <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">
       <UniqueIdentifier>{3a81c187-e488-4f3d-a455-45ae0819f819}</UniqueIdentifier>
     </Filter>
@@ -13,234 +9,8 @@
     </Filter>
   </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>
     </ClInclude>
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyBezierCurve.h">
@@ -258,6 +28,9 @@
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyCocoaCore.h">
       <Filter>Include</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\..\..\include\Polycode.h">
+      <Filter>Include</Filter>
+    </ClInclude>
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyColor.h">
       <Filter>Include</Filter>
     </ClInclude>
@@ -267,6 +40,9 @@
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyCore.h">
       <Filter>Include</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\core\PolyCoreFileProvider.h">
+      <Filter>Include</Filter>
+    </ClInclude>
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyCoreInput.h">
       <Filter>Include</Filter>
     </ClInclude>
@@ -279,6 +55,9 @@
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyData.h">
       <Filter>Include</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\core\PolyDX11GraphicsInterface.h">
+      <Filter>Include</Filter>
+    </ClInclude>
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyEntity.h">
       <Filter>Include</Filter>
     </ClInclude>
@@ -447,6 +226,9 @@
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyTweenManager.h">
       <Filter>Include</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\core\PolyUWPCore.h">
+      <Filter>Include</Filter>
+    </ClInclude>
     <ClInclude Include="..\..\..\..\include\polycode\core\PolyVector2.h">
       <Filter>Include</Filter>
     </ClInclude>
@@ -468,14 +250,235 @@
     <ClInclude Include="..\..\..\..\include\polycode\core\tinyxml.h">
       <Filter>Include</Filter>
     </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>
 </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">
 
   <Identity
-    Name="70653703-3505-40ca-a433-1766d9043955"
+    Name="af5cfeae-618a-4196-8770-859d7d37ae6c"
     Publisher="CN=ivan"
     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>
     <DisplayName>TemplateApp</DisplayName>

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

@@ -7,19 +7,21 @@
 
 PolycodeTemplateApp::PolycodeTemplateApp(PolycodeView *view) {
     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!
-    /*
+    
     Scene *scene = new Scene(Scene::SCENE_2D);
     scene->useClearColor = true;
     
     ScenePrimitive *test = new ScenePrimitive(ScenePrimitive::TYPE_VPLANE, 0.5, 0.5);
     test->setMaterialByName("Unlit");
-    test->getLocalShaderOptions()->loadTextureForParam("diffuse", "main_icon.png");
+   // test->getLocalShaderOptions()->loadTextureForParam("diffuse", "main_icon.png");
     scene->addChild(test);
-    */
+    
 }
 
 PolycodeTemplateApp::~PolycodeTemplateApp() {

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

@@ -1,44 +1,45 @@
 <?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">
-    <ProjectConfiguration Include="Debug|ARM">
-      <Configuration>Debug</Configuration>
-      <Platform>ARM</Platform>
-    </ProjectConfiguration>
     <ProjectConfiguration Include="Debug|Win32">
       <Configuration>Debug</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
     <ProjectConfiguration Include="Debug|x64">
       <Configuration>Debug</Configuration>
       <Platform>x64</Platform>
     </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|ARM">
+    <ProjectConfiguration Include="Release|x64">
       <Configuration>Release</Configuration>
-      <Platform>ARM</Platform>
+      <Platform>x64</Platform>
     </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|Win32">
-      <Configuration>Release</Configuration>
-      <Platform>Win32</Platform>
+    <ProjectConfiguration Include="Debug|ARM">
+      <Configuration>Debug</Configuration>
+      <Platform>ARM</Platform>
     </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|x64">
+    <ProjectConfiguration Include="Release|ARM">
       <Configuration>Release</Configuration>
-      <Platform>x64</Platform>
+      <Platform>ARM</Platform>
     </ProjectConfiguration>
   </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">
     <ConfigurationType>Application</ConfigurationType>
     <UseDebugLibraries>true</UseDebugLibraries>
@@ -77,6 +78,9 @@
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <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 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" />
@@ -101,110 +105,111 @@
     <PackageCertificateKeyFile>TemplateApp_TemporaryKey.pfx</PackageCertificateKeyFile>
   </PropertyGroup>
   <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 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 Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
-    <IncludePath>C:\Users\ivan\Desktop\Workshop\PolycodeNewNew\include;$(IncludePath)</IncludePath>
+    <IncludePath>..\..\..\..\include;$(IncludePath)</IncludePath>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
-    <IncludePath>C:\Users\ivan\Desktop\Workshop\PolycodeNewNew\include;$(IncludePath)</IncludePath>
+    <IncludePath>..\..\..\..\include;$(IncludePath)</IncludePath>
   </PropertyGroup>
   <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 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>
   <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>
+      <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
+      <PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile>
+      <AdditionalIncludeDirectories>$(ProjectDir);$(IntermediateOutputPath);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
       <DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
     </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 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>
+      <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
+      <PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile>
+      <AdditionalIncludeDirectories>$(ProjectDir);$(IntermediateOutputPath);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
       <DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
     </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 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>
+      <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
+      <PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile>
+      <AdditionalIncludeDirectories>$(ProjectDir);$(IntermediateOutputPath);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
       <DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
     </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 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>
+      <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
+      <PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile>
+      <AdditionalIncludeDirectories>$(ProjectDir);$(IntermediateOutputPath);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
       <DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
     </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 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>
+      <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
+      <PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile>
+      <AdditionalIncludeDirectories>$(ProjectDir);$(IntermediateOutputPath);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
       <DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <PrecompiledHeader>NotUsing</PrecompiledHeader>
     </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 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>
+      <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
+      <PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile>
+      <AdditionalIncludeDirectories>$(ProjectDir);$(IntermediateOutputPath);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
       <DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <PrecompiledHeader>NotUsing</PrecompiledHeader>
-      <PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <CompileAs>Default</CompileAs>
     </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>
-  <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>
     <Image Include="Assets\LockScreenLogo.scale-200.png" />
     <Image Include="Assets\SplashScreen.scale-200.png" />
@@ -215,12 +220,12 @@
     <Image Include="Assets\Wide310x150Logo.scale-200.png" />
   </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">
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
@@ -231,7 +236,22 @@
     </ClCompile>
     <ClCompile Include="PolycodeTemplateApp.cpp" />
   </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" />
   <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>
 </Project>

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

@@ -1,30 +1,10 @@
 <?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>
-    <Filter Include="Common">
-      <UniqueIdentifier>06b5f55d-2971-4458-a612-348ecd8ad7df</UniqueIdentifier>
-    </Filter>
     <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>
     </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">
       <Filter>Assets</Filter>
     </Image>
@@ -48,12 +28,19 @@
     </Image>
   </ItemGroup>
   <ItemGroup>
-    <AppxManifest Include="Package.appxmanifest" />
+    <ClCompile Include="App.cpp" />
+    <ClCompile Include="pch.cpp" />
+    <ClCompile Include="PolycodeTemplateApp.cpp" />
   </ItemGroup>
   <ItemGroup>
-    <None Include="TemplateApp_TemporaryKey.pfx" />
+    <ClInclude Include="App.h" />
+    <ClInclude Include="pch.h" />
+    <ClInclude Include="PolycodeTemplateApp.h" />
   </ItemGroup>
   <ItemGroup>
-    <Page Include="MainPage.xaml" />
+    <AppxManifest Include="Package.appxmanifest" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="TemplateApp_TemporaryKey.pfx" />
   </ItemGroup>
 </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 TORADIANS 0.0174532925
 
-#if defined(_WINDOWS) && defined(Polycore_EXPORTS)
-	#define _PolyExport __declspec(dllexport)
-#else
-	#define _PolyExport
-#endif
-
 //#define COMPILE_SDL_CORE		1
 
 #define PLATFORM_WINDOWS  1
@@ -86,6 +80,13 @@ typedef unsigned int PolyRendererIndexType;
 	#define PLATFORM PLATFORM_UNIX
 #endif
 
+#if (defined(_WINDOWS) || defined(WINAPI_FAMILY)) && defined(POLYCODE_EXPORTS)
+	#define _PolyExport __declspec(dllexport)
+#else
+	#define _PolyExport
+#endif
+
+
 #ifdef POLYCODE_NUMBER_IS_SINGLE
 typedef float Number;
 #else

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

@@ -2,44 +2,87 @@
 #pragma once
 
 #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 DirectX;
+using namespace Microsoft::WRL;
+using namespace Windows::Foundation;
 
 
 #define POLYCODE_CORE UWPCore
 
 class PolycodeView {
 	public:
+		IUnknown *window;
+};
+
+class UWPCoreMutex : public CoreMutex {
+	public:
+		std::mutex mutex;
 };
 
-class UWPCore : public Core {
+
+class _PolyExport UWPCore : public Core {
 	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;
 
-GPUDrawBuffer::GPUDrawBuffer() {
-    
-}
-
-GPUDrawBuffer::~GPUDrawBuffer() {
-    
-}
-
 GraphicsInterface::GraphicsInterface() {
 }
 

+ 190 - 6
src/core/PolyUWPCore.cpp

@@ -1,10 +1,22 @@
 
 #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) 
 	: 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() {
@@ -12,27 +24,46 @@ UWPCore::~UWPCore() {
 }
 
 void UWPCore::Render() {
-
+	renderer->beginFrame();
+	services->Render(Polycode::Rectangle(0, 0, 640, 480));
+	renderer->endFrame();
 }
 
 bool UWPCore::systemUpdate() {
-	return true;
+	if (!running) {
+		return false;
+	}
+	doSleep();
+	updateCore();
+	return running;
 }
 
 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() {
-	return NULL;
+	UWPCoreMutex *mutex = new UWPCoreMutex();
+	return mutex;
 }
 
 void UWPCore::copyStringToClipboard(const String& str) {
@@ -73,11 +104,162 @@ String UWPCore::saveFilePicker(std::vector<CoreFileExtension> extensions) {
 }
 
 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() {
-
+	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) {
@@ -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) {
+
+	
 	return false;
 }