ソースを参照

Merge branch 'next' of https://github.com/blackberry/GamePlay into next

Conflicts:
	samples/character/sample-character.vcxproj
	samples/lua/sample-lua.vcxproj
	samples/mesh/sample-mesh.vcxproj
	samples/particles/sample-particles.vcxproj
	samples/racer/sample-racer.vcxproj
	samples/spaceship/sample-spaceship.vcxproj
sgrenier 12 年 前
コミット
0c49c9e200
80 ファイル変更980 行追加1404 行削除
  1. 14 7
      .gitignore
  2. 7 1
      gameplay/CMakeLists.txt
  3. 0 0
      gameplay/res/design/arial.ttf
  4. 0 0
      gameplay/res/ui/arial.gpb
  5. 3 2
      samples/browser/CMakeLists.txt
  6. BIN
      samples/browser/res/common/arial-distance.gpb
  7. BIN
      samples/browser/res/common/badaboom.gpb
  8. BIN
      samples/browser/res/common/custom.gpb
  9. 7 7
      samples/browser/res/common/default.theme
  10. BIN
      samples/browser/res/common/fonts/arial-distance.gpb
  11. BIN
      samples/browser/res/common/fonts/badaboom.gpb
  12. BIN
      samples/browser/res/common/fonts/fishfingers.gpb
  13. BIN
      samples/browser/res/common/fonts/neuropol.gpb
  14. BIN
      samples/browser/res/common/neuropol.gpb
  15. 1 1
      samples/browser/res/common/terrain/terrain.form
  16. 20 30
      samples/browser/sample-browser.vcxproj
  17. 18 18
      samples/browser/sample-browser.vcxproj.filters
  18. 2 2
      samples/browser/sample-browser.xcodeproj/project.pbxproj
  19. 1 1
      samples/browser/src/Audio3DSample.cpp
  20. 1 1
      samples/browser/src/BillboardSample.cpp
  21. 1 1
      samples/browser/src/CreateSceneSample.cpp
  22. 1 1
      samples/browser/src/GamepadSample.cpp
  23. 1 1
      samples/browser/src/GestureSample.cpp
  24. 1 1
      samples/browser/src/InputSample.cpp
  25. 1 1
      samples/browser/src/LightSample.cpp
  26. 1 1
      samples/browser/src/LoadSceneSample.cpp
  27. 1 1
      samples/browser/src/MeshBatchSample.cpp
  28. 1 1
      samples/browser/src/MeshPrimitiveSample.cpp
  29. 1 1
      samples/browser/src/PhysicsCollisionObjectSample.cpp
  30. 1 1
      samples/browser/src/PostProcessSample.cpp
  31. 1 1
      samples/browser/src/SamplesGame.cpp
  32. 1 1
      samples/browser/src/SpriteBatchSample.cpp
  33. 1 1
      samples/browser/src/TerrainSample.cpp
  34. 13 7
      samples/browser/src/TextSample.cpp
  35. 1 1
      samples/browser/src/TextureSample.cpp
  36. 1 1
      samples/browser/src/TriangleSample.cpp
  37. 2 1
      samples/character/CMakeLists.txt
  38. BIN
      samples/character/res/common/arial.gpb
  39. 15 6
      samples/character/sample-character.vcxproj
  40. 2 2
      samples/character/sample-character.xcodeproj/project.pbxproj
  41. 3 2
      samples/character/src/CharacterGame.cpp
  42. 3 2
      samples/lua/CMakeLists.txt
  43. BIN
      samples/lua/res/arial.gpb
  44. 1 1
      samples/lua/res/game.lua
  45. 18 25
      samples/lua/sample-lua.vcxproj
  46. 52 55
      samples/lua/sample-lua.vcxproj.filters
  47. 2 2
      samples/lua/sample-lua.xcodeproj/project.pbxproj
  48. 3 2
      samples/mesh/CMakeLists.txt
  49. 18 25
      samples/mesh/sample-mesh.vcxproj
  50. 96 99
      samples/mesh/sample-mesh.vcxproj.filters
  51. 2 2
      samples/mesh/sample-mesh.xcodeproj/project.pbxproj
  52. 1 1
      samples/mesh/src/MeshGame.cpp
  53. 2 1
      samples/particles/CMakeLists.txt
  54. BIN
      samples/particles/res/arial.gpb
  55. 3 3
      samples/particles/res/editor.form
  56. 20 20
      samples/particles/res/editor.theme
  57. 18 25
      samples/particles/sample-particles.vcxproj
  58. 110 113
      samples/particles/sample-particles.vcxproj.filters
  59. 2 2
      samples/particles/sample-particles.xcodeproj/project.pbxproj
  60. 1 1
      samples/particles/src/ParticlesGame.cpp
  61. 2 1
      samples/racer/CMakeLists.txt
  62. BIN
      samples/racer/res/common/arial.gpb
  63. 6 6
      samples/racer/res/common/menu.theme
  64. 27 28
      samples/racer/sample-racer.vcxproj
  65. 0 3
      samples/racer/sample-racer.vcxproj.filters
  66. 2 2
      samples/racer/sample-racer.xcodeproj/project.pbxproj
  67. 1 1
      samples/racer/src/RacerGame.cpp
  68. 3 2
      samples/spaceship/CMakeLists.txt
  69. BIN
      samples/spaceship/res/airstrip.gpb
  70. 0 96
      samples/spaceship/res/challenge.form
  71. 0 65
      samples/spaceship/res/menu.form
  72. 0 237
      samples/spaceship/res/menu.theme
  73. BIN
      samples/spaceship/res/menuAtlas.png
  74. 12 10
      samples/spaceship/sample-spaceship.vcxproj
  75. 103 115
      samples/spaceship/sample-spaceship.vcxproj.filters
  76. 2 2
      samples/spaceship/sample-spaceship.xcodeproj/project.pbxproj
  77. 1 1
      template/TEMPLATE_PROJECT-ios.plist
  78. 1 1
      template/TEMPLATE_PROJECT-macosx.plist
  79. 342 350
      template/template.vcxproj
  80. 2 2
      template/template.xcodeproj/project.pbxproj

+ 14 - 7
.gitignore

@@ -74,7 +74,8 @@ gameplay.xcworkspace/xcshareddata/gameplay.xccheckout
 /samples/browser/Device-Coverage
 /samples/browser/Device-Profile
 /samples/browser/Device-Release
-/samples/browser/res/shaders
+/samples/browser/res/shaders
+/samples/browser/res/ui
 /samples/browser/res/logo_powered_white.png
 /samples/browser/android/src
 /samples/browser/android/assets
@@ -101,7 +102,8 @@ gameplay.xcworkspace/xcshareddata/gameplay.xccheckout
 /samples/character/Device-Release
 /samples/character/Device-Release-QC
 /samples/character/game.config
-/samples/character/res/shaders
+/samples/character/res/shaders
+/samples/character/res/ui
 /samples/character/res/logo_powered_white.png
 /samples/character/android/project.properties
 /samples/character/android/proguard.cfg
@@ -126,7 +128,8 @@ gameplay.xcworkspace/xcshareddata/gameplay.xccheckout
 /samples/lua/Device-Coverage
 /samples/lua/Device-Profile
 /samples/lua/Device-Release
-/samples/lua/res/shaders
+/samples/lua/res/shaders
+/samples/lua/res/ui
 /samples/lua/res/logo_powered_white.png
 /samples/lua/android/src
 /samples/lua/android/assets
@@ -150,7 +153,8 @@ gameplay.xcworkspace/xcshareddata/gameplay.xccheckout
 /samples/mesh/Device-Coverage
 /samples/mesh/Device-Profile
 /samples/mesh/Device-Release
-/samples/mesh/res/shaders
+/samples/mesh/res/shaders
+/samples/mesh/res/ui
 /samples/mesh/res/logo_powered_white.png
 /samples/mesh/android/src
 /samples/mesh/android/assets
@@ -174,7 +178,8 @@ gameplay.xcworkspace/xcshareddata/gameplay.xccheckout
 /samples/particles/Device-Coverage
 /samples/particles/Device-Profile
 /samples/particles/Device-Release
-/samples/particles/res/shaders
+/samples/particles/res/shaders
+/samples/particles/res/ui
 /samples/particles/res/logo_powered_white.png
 /samples/particles/Device-Debug
 /samples/particles/Debug
@@ -203,7 +208,8 @@ gameplay.xcworkspace/xcshareddata/gameplay.xccheckout
 /samples/racer/Device-Release
 /samples/racer/Device-Release-QC
 /samples/racer/game.config
-/samples/racer/res/shaders
+/samples/racer/res/shaders
+/samples/racer/res/ui
 /samples/racer/res/logo_powered_white.png
 /samples/racer/android/project.properties
 /samples/racer/android/proguard.cfg
@@ -230,7 +236,8 @@ gameplay.xcworkspace/xcshareddata/gameplay.xccheckout
 /samples/spaceship/Device-Coverage
 /samples/spaceship/Device-Profile
 /samples/spaceship/Device-Release
-/samples/spaceship/res/shaders
+/samples/spaceship/res/shaders
+/samples/spaceship/res/ui
 /samples/spaceship/res/logo_powered_white.png
 /samples/spaceship/android/NUL
 /samples/spaceship/android/project.properties

+ 7 - 1
gameplay/CMakeLists.txt

@@ -612,6 +612,12 @@ set(GAMEPLAY_RES_SHADERS
     res/shaders/textured.vert
 )
 
+set(GAMEPLAY_RES_SHADERS
+    res/ui/arial.gpb
+    res/ui/default.png
+    res/ui/default.theme
+)
+
 include_directories( 
     src
     ../external-deps/lua/include
@@ -645,7 +651,7 @@ set_target_properties(gameplay PROPERTIES
 )
 
 source_group(lua FILES ${GAMEPLAY_LUA})
-source_group(res FILES ${GAMEPLAY_RES} ${GAMEPLAY_RES} ${GAMEPLAY_RES_SHADERS})
+source_group(res FILES ${GAMEPLAY_RES} ${GAMEPLAY_RES} ${GAMEPLAY_RES_SHADERS} ${GAMEPLAY_RES_UI})
 source_group(src FILES ${GAMEPLAY_SRC})
 
 

+ 0 - 0
gameplay/res/arial.ttf → gameplay/res/design/arial.ttf


+ 0 - 0
samples/browser/res/common/arial.gpb → gameplay/res/ui/arial.gpb


+ 3 - 2
samples/browser/CMakeLists.txt

@@ -109,12 +109,13 @@ set_target_properties(${GAME_NAME} PROPERTIES
     CLEAN_DIRECT_OUTPUT 1
 )
 
-source_group(res FILES ${GAME_RES} ${GAMEPLAY_RES} ${GAME_RES_SHADERS} ${GAME_RES_SHADERS_LIB})
+source_group(res FILES ${GAME_RES} ${GAMEPLAY_RES} ${GAMEPLAY_RES_SHADERS} ${GAMEPLAY_RES_UI})
 source_group(src FILES ${GAME_SRC})
 
 COPY_RES( ${GAME_NAME} )
 COPY_RES_EXTRA( ${GAME_NAME} ${CMAKE_SOURCE_DIR}/gameplay
     res/logo_powered_white.png 
     res/shaders/*
-    )
+    res/ui/*
+)
 

BIN
samples/browser/res/common/arial-distance.gpb


BIN
samples/browser/res/common/badaboom.gpb


BIN
samples/browser/res/common/custom.gpb


+ 7 - 7
samples/browser/res/common/default.theme

@@ -213,7 +213,7 @@ theme mainMenu
         {
             skin = underliner
             textColor = #ffffffff
-            font = res/common/arial.gpb
+            font = res/ui/arial.gpb
             fontSize = 16
             textAlignment = ALIGN_BOTTOM_HCENTER
         }
@@ -234,7 +234,7 @@ theme mainMenu
             skin = mainNormal
             imageList = normalImages
 
-            font = res/common/arial.gpb
+            font = res/ui/arial.gpb
             textColor = #ffffffff
             fontSize = 16
             textAlignment = ALIGN_VCENTER_HCENTER
@@ -289,7 +289,7 @@ theme mainMenu
 
         stateNormal
         {
-            font = res/common/arial.gpb
+            font = res/ui/arial.gpb
             fontSize = 16
         }
 
@@ -312,7 +312,7 @@ theme mainMenu
         stateNormal
         {
             imageList = normalImages
-            font = res/common/arial.gpb
+            font = res/ui/arial.gpb
             textColor = #ffffffff
             fontSize = 16
             textAlignment = ALIGN_VCENTER_HCENTER
@@ -334,14 +334,14 @@ theme mainMenu
     {
         stateNormal
         {
-            font = res/common/arial.gpb
+            font = res/ui/arial.gpb
             fontSize = 16
             textAlignment = ALIGN_VCENTER_LEFT
         }
 
         stateActive
         {
-            font = res/common/arial.gpb
+            font = res/ui/arial.gpb
             fontSize = 16
             textAlignment = ALIGN_VCENTER_LEFT
         }
@@ -365,7 +365,7 @@ theme mainMenu
         stateNormal
         {
             textColor = #ffffffff
-            font = res/common/arial.gpb
+            font = res/ui/arial.gpb
             fontSize = 24
             textAlignment = ALIGN_BOTTOM_HCENTER
         }

BIN
samples/browser/res/common/fonts/arial-distance.gpb


BIN
samples/browser/res/common/fonts/badaboom.gpb


BIN
samples/browser/res/common/fishfingers.gpb → samples/browser/res/common/fonts/fishfingers.gpb


BIN
samples/mesh/res/arial.gpb → samples/browser/res/common/fonts/neuropol.gpb


BIN
samples/browser/res/common/neuropol.gpb


+ 1 - 1
samples/browser/res/common/terrain/terrain.form

@@ -146,7 +146,7 @@ form terrainForm
             consumeInputEvents = false
             autoWidth = true
             autoHeight = true
-            font = res/common/arial.gpb
+            font = res/ui/arial.gpb
             fontSize = 24
             textAlignment = ALIGN_VCENTER_HCENTER
         }

+ 20 - 30
samples/browser/sample-browser.vcxproj

@@ -153,10 +153,6 @@
       <AdditionalDependencies>lua.lib;OpenAL32.lib;OpenGL32.lib;GLU32.lib;glew32.lib;libpng.lib;zlib.lib;gameplay.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;BulletDynamics.lib;BulletCollision.lib;LinearMath.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\external-deps\lua\lib\windows\x86;..\..\external-deps\bullet\lib\windows\x86;..\..\external-deps\openal\lib\windows\x86;..\..\external-deps\oggvorbis\lib\windows\x86;..\..\external-deps\glew\lib\windows\x86;..\..\external-deps\png\lib\windows\x86;..\..\external-deps\zlib\lib\windows\x86;..\..\gameplay\windows\x86\$(Configuration)</AdditionalLibraryDirectories>
     </Link>
-    <PostBuildEvent>
-      <Command>xcopy ..\..\gameplay\res\shaders res\shaders\* /s /y /d
-copy ..\..\gameplay\res\logo_powered_white.png res</Command>
-    </PostBuildEvent>
     <CustomBuildStep>
       <Command>
       </Command>
@@ -165,6 +161,11 @@ copy ..\..\gameplay\res\logo_powered_white.png res</Command>
       <Outputs>
       </Outputs>
     </CustomBuildStep>
+    <PreBuildEvent>
+      <Command>xcopy ..\..\gameplay\res\shaders res\shaders\* /s /y /d
+xcopy ..\..\gameplay\res\ui res\ui\* /s /y /d
+copy ..\..\gameplay\res\logo_powered_white.png res</Command>
+    </PreBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <ClCompile>
@@ -183,10 +184,6 @@ copy ..\..\gameplay\res\logo_powered_white.png res</Command>
       <AdditionalDependencies>lua.lib;OpenAL32.lib;OpenGL32.lib;GLU32.lib;glew32.lib;libpng.lib;zlib.lib;gameplay.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;BulletDynamics.lib;BulletCollision.lib;LinearMath.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\external-deps\lua\lib\windows\x64;..\..\external-deps\bullet\lib\windows\x64;..\..\external-deps\openal\lib\windows\x64;..\..\external-deps\oggvorbis\lib\windows\x64;..\..\external-deps\glew\lib\windows\x64;..\..\external-deps\png\lib\windows\x64;..\..\external-deps\zlib\lib\windows\x64;..\..\gameplay\windows\x64\$(Configuration)</AdditionalLibraryDirectories>
     </Link>
-    <PostBuildEvent>
-      <Command>
-      </Command>
-    </PostBuildEvent>
     <CustomBuildStep>
       <Command>
       </Command>
@@ -217,10 +214,6 @@ copy ..\..\gameplay\res\logo_powered_white.png res</Command>
       <AdditionalDependencies>lua.lib;OpenAL32.lib;OpenGL32.lib;GLU32.lib;glew32.lib;libpng.lib;zlib.lib;gameplay.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;BulletDynamics.lib;BulletCollision.lib;LinearMath.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\external-deps\lua\lib\windows\x86;..\..\external-deps\bullet\lib\windows\x86;..\..\external-deps\openal\lib\windows\x86;..\..\external-deps\oggvorbis\lib\windows\x86;..\..\external-deps\glew\lib\windows\x86;..\..\external-deps\png\lib\windows\x86;..\..\external-deps\zlib\lib\windows\x86;..\..\gameplay\windows\x86\$(Configuration)</AdditionalLibraryDirectories>
     </Link>
-    <PostBuildEvent>
-      <Command>xcopy ..\..\gameplay\res\shaders res\shaders\* /s /y /d
-copy ..\..\gameplay\res\logo_powered_white.png res</Command>
-    </PostBuildEvent>
     <CustomBuildStep>
       <Command>
       </Command>
@@ -229,6 +222,11 @@ copy ..\..\gameplay\res\logo_powered_white.png res</Command>
       <Outputs>
       </Outputs>
     </CustomBuildStep>
+    <PreBuildEvent>
+      <Command>xcopy ..\..\gameplay\res\shaders res\shaders\* /s /y /d
+xcopy ..\..\gameplay\res\ui res\ui\* /s /y /d
+copy ..\..\gameplay\res\logo_powered_white.png res</Command>
+    </PreBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugMem|x64'">
     <ClCompile>
@@ -249,10 +247,6 @@ copy ..\..\gameplay\res\logo_powered_white.png res</Command>
       <AdditionalDependencies>lua.lib;OpenAL32.lib;OpenGL32.lib;GLU32.lib;glew32.lib;libpng.lib;zlib.lib;gameplay.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;BulletDynamics.lib;BulletCollision.lib;LinearMath.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\external-deps\lua\lib\windows\x64;..\..\external-deps\bullet\lib\windows\x64;..\..\external-deps\openal\lib\windows\x64;..\..\external-deps\oggvorbis\lib\windows\x64;..\..\external-deps\glew\lib\windows\x64;..\..\external-deps\png\lib\windows\x64;..\..\external-deps\zlib\lib\windows\x64;..\..\gameplay\windows\x64\$(Configuration)</AdditionalLibraryDirectories>
     </Link>
-    <PostBuildEvent>
-      <Command>
-      </Command>
-    </PostBuildEvent>
     <CustomBuildStep>
       <Command>
       </Command>
@@ -281,10 +275,6 @@ copy ..\..\gameplay\res\logo_powered_white.png res</Command>
       <AdditionalDependencies>lua.lib;OpenAL32.lib;OpenGL32.lib;GLU32.lib;glew32.lib;libpng.lib;zlib.lib;gameplay.lib;BulletDynamics.lib;BulletCollision.lib;LinearMath.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\external-deps\lua\lib\windows\x86;..\..\external-deps\bullet\lib\windows\x86;..\..\external-deps\openal\lib\windows\x86;..\..\external-deps\oggvorbis\lib\windows\x86;..\..\external-deps\glew\lib\windows\x86;..\..\external-deps\png\lib\windows\x86;..\..\external-deps\zlib\lib\windows\x86;..\..\gameplay\windows\x86\$(Configuration)</AdditionalLibraryDirectories>
     </Link>
-    <PostBuildEvent>
-      <Command>xcopy ..\..\gameplay\res\shaders res\shaders\* /s /y /d
-copy ..\..\gameplay\res\logo_powered_white.png res</Command>
-    </PostBuildEvent>
     <CustomBuildStep>
       <Command>
       </Command>
@@ -293,6 +283,11 @@ copy ..\..\gameplay\res\logo_powered_white.png res</Command>
       <Outputs>
       </Outputs>
     </CustomBuildStep>
+    <PreBuildEvent>
+      <Command>xcopy ..\..\gameplay\res\shaders res\shaders\* /s /y /d
+xcopy ..\..\gameplay\res\ui res\ui\* /s /y /d
+copy ..\..\gameplay\res\logo_powered_white.png res</Command>
+    </PreBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <ClCompile>
@@ -313,10 +308,6 @@ copy ..\..\gameplay\res\logo_powered_white.png res</Command>
       <AdditionalDependencies>lua.lib;OpenAL32.lib;OpenGL32.lib;GLU32.lib;glew32.lib;libpng.lib;zlib.lib;gameplay.lib;BulletDynamics.lib;BulletCollision.lib;LinearMath.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\external-deps\lua\lib\windows\x64;..\..\external-deps\bullet\lib\windows\x64;..\..\external-deps\openal\lib\windows\x64;..\..\external-deps\oggvorbis\lib\windows\x64;..\..\external-deps\glew\lib\windows\x64;..\..\external-deps\png\lib\windows\x64;..\..\external-deps\zlib\lib\windows\x64;..\..\gameplay\windows\x64\$(Configuration)</AdditionalLibraryDirectories>
     </Link>
-    <PostBuildEvent>
-      <Command>
-      </Command>
-    </PostBuildEvent>
     <CustomBuildStep>
       <Command>
       </Command>
@@ -334,20 +325,20 @@ copy ..\..\gameplay\res\logo_powered_white.png res</Command>
       <SubType>Designer</SubType>
     </None>
     <None Include="icon.png" />
-    <None Include="res\common\arial-distance.gpb" />
-    <None Include="res\common\arial.gpb" />
-    <None Include="res\common\badaboom.gpb" />
     <None Include="res\common\box.gpb" />
     <None Include="res\common\box.material" />
     <None Include="res\common\camera.lua" />
     <None Include="res\common\constraints.gpb" />
     <None Include="res\common\constraints.physics" />
     <None Include="res\common\constraints.scene" />
-    <None Include="res\common\custom.gpb" />
     <None Include="res\common\default.theme" />
     <None Include="res\common\duck.gpb" />
     <None Include="res\common\duck.material" />
-    <None Include="res\common\fishfingers.gpb" />
+    <None Include="res\common\fonts\arial-distance.gpb" />
+    <None Include="res\common\fonts\badaboom.gpb" />
+    <None Include="res\common\fonts\custom.gpb" />
+    <None Include="res\common\fonts\fishfingers.gpb" />
+    <None Include="res\common\fonts\neuropol.gpb" />
     <None Include="res\common\forms\formBasicControls.form" />
     <None Include="res\common\forms\formFlowLayout.form" />
     <None Include="res\common\forms\formScrolling.form" />
@@ -361,7 +352,6 @@ copy ..\..\gameplay\res\logo_powered_white.png res</Command>
     <None Include="res\common\light.form" />
     <None Include="res\common\light.material" />
     <None Include="res\common\lightBrickWall.gpb" />
-    <None Include="res\common\neuropol.gpb" />
     <None Include="res\common\physics.form" />
     <None Include="res\common\physics.gpb" />
     <None Include="res\common\physics.material" />

+ 18 - 18
samples/browser/sample-browser.vcxproj.filters

@@ -27,6 +27,9 @@
     <Filter Include="res\shaders">
       <UniqueIdentifier>{e1543678-e81b-48de-b753-3d5f000fd70b}</UniqueIdentifier>
     </Filter>
+    <Filter Include="res\common\fonts">
+      <UniqueIdentifier>{10e17594-e3ef-49d2-a2a4-fb874c32b5c7}</UniqueIdentifier>
+    </Filter>
   </ItemGroup>
   <ItemGroup>
     <None Include="game.config" />
@@ -104,15 +107,6 @@
     <None Include="res\common\terrain\terrain.form">
       <Filter>res\common\terrain</Filter>
     </None>
-    <None Include="res\common\arial.gpb">
-      <Filter>res\common</Filter>
-    </None>
-    <None Include="res\common\arial-distance.gpb">
-      <Filter>res\common</Filter>
-    </None>
-    <None Include="res\common\badaboom.gpb">
-      <Filter>res\common</Filter>
-    </None>
     <None Include="res\common\box.gpb">
       <Filter>res\common</Filter>
     </None>
@@ -131,9 +125,6 @@
     <None Include="res\common\constraints.scene">
       <Filter>res\common</Filter>
     </None>
-    <None Include="res\common\custom.gpb">
-      <Filter>res\common</Filter>
-    </None>
     <None Include="res\common\default.theme">
       <Filter>res\common</Filter>
     </None>
@@ -143,9 +134,6 @@
     <None Include="res\common\duck.material">
       <Filter>res\common</Filter>
     </None>
-    <None Include="res\common\fishfingers.gpb">
-      <Filter>res\common</Filter>
-    </None>
     <None Include="res\common\gamepad.form">
       <Filter>res\common</Filter>
     </None>
@@ -167,9 +155,6 @@
     <None Include="res\common\lightBrickWall.gpb">
       <Filter>res\common</Filter>
     </None>
-    <None Include="res\common\neuropol.gpb">
-      <Filter>res\common</Filter>
-    </None>
     <None Include="res\common\physics.form">
       <Filter>res\common</Filter>
     </None>
@@ -251,6 +236,21 @@
     <None Include="res\common\terrain\terrain.material">
       <Filter>res\common\terrain</Filter>
     </None>
+    <None Include="res\common\fonts\arial-distance.gpb">
+      <Filter>res\common\fonts</Filter>
+    </None>
+    <None Include="res\common\fonts\badaboom.gpb">
+      <Filter>res\common\fonts</Filter>
+    </None>
+    <None Include="res\common\fonts\custom.gpb">
+      <Filter>res\common\fonts</Filter>
+    </None>
+    <None Include="res\common\fonts\fishfingers.gpb">
+      <Filter>res\common\fonts</Filter>
+    </None>
+    <None Include="res\common\fonts\neuropol.gpb">
+      <Filter>res\common\fonts</Filter>
+    </None>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="src\MeshPrimitiveSample.h">

+ 2 - 2
samples/browser/sample-browser.xcodeproj/project.pbxproj

@@ -472,7 +472,7 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
-			shellScript = "cp -rf ../../gameplay/res/logo_powered_white.png ${SRCROOT}/res\nrsync -rau ../../gameplay/res/shaders ${SRCROOT}/res\ntouch -cm ${SRCROOT}/res";
+			shellScript = "rsync -rau ../../gameplay/res/shaders ${SRCROOT}/res\nrsync -rau ../../gameplay/res/ui ${SRCROOT}/res\ncp -rf ../../gameplay/res/logo_powered_white.png ${SRCROOT}/res\ntouch -cm ${SRCROOT}/res";
 		};
 		5B61612414CCC24C0073B857 /* ShellScript */ = {
 			isa = PBXShellScriptBuildPhase;
@@ -485,7 +485,7 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
-			shellScript = "cp -rf ${SRCROOT}/../../gameplay/res/logo_powered_white.png ${SRCROOT}/res\nrsync -rau ${SRCROOT}/../../gameplay/res/shaders ${SRCROOT}/res\ntouch -cm ${SRCROOT}/res";
+			shellScript = "rsync -rau ${SRCROOT}/../../gameplay/res/shaders ${SRCROOT}/res\nrsync -rau ${SRCROOT}/../../gameplay/res/ui ${SRCROOT}/res\ncp -rf ${SRCROOT}/../../gameplay/res/logo_powered_white.png ${SRCROOT}/res\ntouch -cm ${SRCROOT}/res";
 		};
 /* End PBXShellScriptBuildPhase section */
 

+ 1 - 1
samples/browser/src/Audio3DSample.cpp

@@ -24,7 +24,7 @@ Audio3DSample::Audio3DSample()
 void Audio3DSample::initialize()
 {
     setMultiTouch(true);
-    _font = Font::create("res/common/arial.gpb");
+    _font = Font::create("res/ui/arial.gpb");
     // Load game scene from file
     _scene = Scene::load("res/common/box.gpb");
 

+ 1 - 1
samples/browser/src/BillboardSample.cpp

@@ -34,7 +34,7 @@ void BillboardSample::initialize()
     setMultiTouch(true);
 
 	// Create the font and scene
-    _font = Font::create("res/common/arial.gpb");
+    _font = Font::create("res/ui/arial.gpb");
 	_scene = Scene::create();
 
 	// Initialize the camera

+ 1 - 1
samples/browser/src/CreateSceneSample.cpp

@@ -67,7 +67,7 @@ CreateSceneSample::CreateSceneSample()
 void CreateSceneSample::initialize()
 {
     // Create the font for drawing the framerate.
-    _font = Font::create("res/common/arial.gpb");
+    _font = Font::create("res/ui/arial.gpb");
 
     // Create a new empty scene.
     _scene = Scene::create();

+ 1 - 1
samples/browser/src/GamepadSample.cpp

@@ -18,7 +18,7 @@ void GamepadSample::initialize()
     if (_gamepad && _gamepad->isVirtual())
         _gamepad->getForm()->setEnabled(true);
 
-    _font = Font::create("res/common/arial.gpb");
+    _font = Font::create("res/ui/arial.gpb");
     _status = "Looking for gamepads...";
 }
 

+ 1 - 1
samples/browser/src/GestureSample.cpp

@@ -20,7 +20,7 @@ void GestureSample::initialize()
     setMultiTouch(true);
 
     // Load font
-    _font = Font::create("res/common/arial.gpb");
+    _font = Font::create("res/ui/arial.gpb");
     assert(_font);
 
     bool anySupported = false;

+ 1 - 1
samples/browser/src/InputSample.cpp

@@ -21,7 +21,7 @@ void InputSample::initialize()
     setMultiTouch(true);
 
     // Load font
-    _font = Font::create("res/common/arial.gpb");
+    _font = Font::create("res/ui/arial.gpb");
     assert(_font);
 
     // Reuse part of the gamepad texture as the crosshair in this sample.

+ 1 - 1
samples/browser/src/LightSample.cpp

@@ -43,7 +43,7 @@ LightSample::LightSample()
 void LightSample::initialize()
 {
     // Create the font for drawing the framerate.
-    _font = Font::create("res/common/arial.gpb");
+    _font = Font::create("res/ui/arial.gpb");
 
 	// Load the scene
 	_scene = Scene::load("res/common/lightBrickWall.gpb");

+ 1 - 1
samples/browser/src/LoadSceneSample.cpp

@@ -14,7 +14,7 @@ LoadSceneSample::LoadSceneSample()
 void LoadSceneSample::initialize()
 {
     // Create the font for drawing the framerate.
-    _font = Font::create("res/common/arial.gpb");
+    _font = Font::create("res/ui/arial.gpb");
 
     _scene = Scene::load("res/common/sample.scene");
 

+ 1 - 1
samples/browser/src/MeshBatchSample.cpp

@@ -43,7 +43,7 @@ void MeshBatchSample::initialize()
 {
     setMultiTouch(true);
     // Create the font for drawing the framerate.
-    _font = Font::create("res/common/arial.gpb");
+    _font = Font::create("res/ui/arial.gpb");
 
     Matrix::createOrthographic(getWidth(), getHeight(), -1.0f, 1.0f, &_worldViewProjectionMatrix);
     _meshBatch = createMeshBatch(Mesh::TRIANGLES);

+ 1 - 1
samples/browser/src/MeshPrimitiveSample.cpp

@@ -156,7 +156,7 @@ MeshPrimitiveSample::MeshPrimitiveSample()
 void MeshPrimitiveSample::initialize()
 {
     // Create the font for drawing the framerate.
-    _font = Font::create("res/common/arial.gpb");
+    _font = Font::create("res/ui/arial.gpb");
 
     // Create an orthographic projection matrix.
     float width = getWidth() / (float)getHeight();

+ 1 - 1
samples/browser/src/PhysicsCollisionObjectSample.cpp

@@ -21,7 +21,7 @@ PhysicsCollisionObjectSample::PhysicsCollisionObjectSample()
 void PhysicsCollisionObjectSample::initialize()
 {
     // Create the font for drawing the framerate.
-    _font = Font::create("res/common/arial.gpb");
+    _font = Font::create("res/ui/arial.gpb");
 
     _scene = Scene::load("res/common/physics.scene");
     // Use the aspect ratio of the display instead of the aspect ratio defined in the scene file.

+ 1 - 1
samples/browser/src/PostProcessSample.cpp

@@ -79,7 +79,7 @@ PostProcessSample::PostProcessSample()
 
 void PostProcessSample::initialize()
 {
-    _font = Font::create("res/common/arial.gpb");
+    _font = Font::create("res/ui/arial.gpb");
 
     // Load game scene from file
     _scene = Scene::load("res/common/duck.gpb");

+ 1 - 1
samples/browser/src/SamplesGame.cpp

@@ -16,7 +16,7 @@ SamplesGame::SamplesGame()
 
 void SamplesGame::initialize()
 {
-    _font = Font::create("res/common/arial.gpb");
+    _font = Font::create("res/ui/arial.gpb");
 
     for (size_t i = 0; i < _categories->size(); ++i)
     {

+ 1 - 1
samples/browser/src/SpriteBatchSample.cpp

@@ -14,7 +14,7 @@ SpriteBatchSample::SpriteBatchSample()
 void SpriteBatchSample::initialize()
 {
     // Create the font for drawing the framerate.
-    _font = Font::create("res/common/arial.gpb");
+    _font = Font::create("res/ui/arial.gpb");
 
     // Create an orthographic projection matrix.
     float width = getWidth() / (float)getHeight();

+ 1 - 1
samples/browser/src/TerrainSample.cpp

@@ -58,7 +58,7 @@ void TerrainSample::initialize()
     SAFE_RELEASE(bundle);
 
     // Load font
-	_font = Font::create("res/common/arial.gpb");
+	_font = Font::create("res/ui/arial.gpb");
 
     // Setup form
     _form = Form::create("res/common/terrain/terrain.form");

+ 13 - 7
samples/browser/src/TextSample.cpp

@@ -5,16 +5,24 @@
     ADD_SAMPLE("Graphics", "Text", TextSample, 9);
 #endif
 
-#define FONT_COUNT 6
+#define FONT_COUNT 5
 
 std::string _fontNames[] =
 {
     "arial",
-    "arial-distance",
+    "arial-dist.field",
     "badaboom",
     "fishfingers",
-    "neuropol",
-    "custom",
+    "neuropol"
+};
+
+std::string _fontFiles[] =
+{
+    "res/ui/arial.gpb",
+    "res/common/fonts/arial-distance.gpb",
+    "res/common/fonts/badaboom.gpb",
+    "res/common/fonts/fishfingers.gpb",
+    "res/common/fonts/neuropol.gpb"
 };
 
 TextSample::TextSample()
@@ -47,9 +55,7 @@ void TextSample::initialize()
 
     for (unsigned int i = 0; i < _fontsCount; i++)
     {
-        std::string s = "res/common/";
-        s += _fontNames[i].c_str();
-        s += ".gpb";
+        std::string s = _fontFiles[i].c_str();
         Font* f = Font::create(s.c_str());
         _fonts.push_back(f);
     }

+ 1 - 1
samples/browser/src/TextureSample.cpp

@@ -49,7 +49,7 @@ TextureSample::TextureSample()
 void TextureSample::initialize()
 {
     // Create the font for drawing the framerate.
-    _font = Font::create("res/common/arial.gpb");
+    _font = Font::create("res/ui/arial.gpb");
 
     // Create an empty scene.
     _scene = Scene::create();

+ 1 - 1
samples/browser/src/TriangleSample.cpp

@@ -49,7 +49,7 @@ TriangleSample::TriangleSample()
 void TriangleSample::initialize()
 {
     // Create the font for drawing the framerate.
-    _font = Font::create("res/common/arial.gpb");
+    _font = Font::create("res/ui/arial.gpb");
 
     // Create an orthographic projection matrix.
     float width = getWidth() / (float)getHeight();

+ 2 - 1
samples/character/CMakeLists.txt

@@ -16,13 +16,14 @@ set_target_properties(${GAME_NAME} PROPERTIES
     CLEAN_DIRECT_OUTPUT 1
 )
 
-source_group(res FILES ${GAME_RES} ${GAMEPLAY_RES} ${GAME_RES_SHADERS} ${GAME_RES_SHADERS_LIB})
+source_group(res FILES ${GAME_RES} ${GAMEPLAY_RES} ${GAMEPLAY_RES_SHADERS} ${GAMEPLAY_RES_UI})
 source_group(src FILES ${GAME_SRC})
 
 COPY_RES( ${GAME_NAME} )
 COPY_RES_EXTRA( ${GAME_NAME} ${CMAKE_SOURCE_DIR}/gameplay
     res/logo_powered_white.png 
     res/shaders/*
+    res/ui/*
 )
 
 # Just use the PNG config file (most compatible)

BIN
samples/character/res/common/arial.gpb


+ 15 - 6
samples/character/sample-character.vcxproj

@@ -155,11 +155,14 @@
     <CustomBuildStep>
       <Outputs>game.config.dummy</Outputs>
     </CustomBuildStep>
-    <PostBuildEvent>
+    <PreBuildEvent>
       <Command>xcopy ..\..\gameplay\res\shaders res\shaders\* /s /y /d
+xcopy ..\..\gameplay\res\ui res\ui\* /s /y /d
+
 copy ..\..\gameplay\res\logo_powered_white.png res
+
 copy .\game.dxt.config .\game.config</Command>
-    </PostBuildEvent>
+    </PreBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <ClCompile>
@@ -215,11 +218,14 @@ copy .\game.dxt.config .\game.config</Command>
     <CustomBuildStep>
       <Outputs>game.config.dummy</Outputs>
     </CustomBuildStep>
-    <PostBuildEvent>
+    <PreBuildEvent>
       <Command>xcopy ..\..\gameplay\res\shaders res\shaders\* /s /y /d
+xcopy ..\..\gameplay\res\ui res\ui\* /s /y /d
+
 copy ..\..\gameplay\res\logo_powered_white.png res
+
 copy .\game.dxt.config .\game.config</Command>
-    </PostBuildEvent>
+    </PreBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugMem|x64'">
     <ClCompile>
@@ -276,11 +282,14 @@ copy .\game.dxt.config .\game.config</Command>
     <CustomBuildStep>
       <Outputs>game.config.dummy</Outputs>
     </CustomBuildStep>
-    <PostBuildEvent>
+    <PreBuildEvent>
       <Command>xcopy ..\..\gameplay\res\shaders res\shaders\* /s /y /d
+xcopy ..\..\gameplay\res\ui res\ui\* /s /y /d
+
 copy ..\..\gameplay\res\logo_powered_white.png res
+
 copy .\game.dxt.config .\game.config</Command>
-    </PostBuildEvent>
+    </PreBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <ClCompile>

+ 2 - 2
samples/character/sample-character.xcodeproj/project.pbxproj

@@ -343,7 +343,7 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
-			shellScript = "cp -rf ${SRCROOT}/../../gameplay/res/logo_powered_white.png ${SRCROOT}/res\nrsync -rau ${SRCROOT}/../../gameplay/res/shaders ${SRCROOT}/res\ncp -rf ${SRCROOT}/game.dxt.config ${SRCROOT}/game.config\ntouch -cm ${SRCROOT}/res";
+			shellScript = "rsync -rau ${SRCROOT}/../../gameplay/res/shaders ${SRCROOT}/res\nrsync -rau ${SRCROOT}/../../gameplay/res/ui ${SRCROOT}/res\ncp -rf ${SRCROOT}/../../gameplay/res/logo_powered_white.png ${SRCROOT}/res\ncp -rf ${SRCROOT}/game.dxt.config ${SRCROOT}/game.config\ntouch -cm ${SRCROOT}/res";
 		};
 		5B43D1D614C35F4C008A5D9D /* ShellScript */ = {
 			isa = PBXShellScriptBuildPhase;
@@ -356,7 +356,7 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
-			shellScript = "cp -rf ${SRCROOT}/../../gameplay/res/logo_powered_white.png ${SRCROOT}/res\nrsync -rau ${SRCROOT}/../../gameplay/res/shaders ${SRCROOT}/res\ncp -rf ${SRCROOT}/game.pvrtc.config ${SRCROOT}/game.config\ntouch -cm ${SRCROOT}/res";
+			shellScript = "rsync -rau ${SRCROOT}/../../gameplay/res/shaders ${SRCROOT}/res\nrsync -rau ${SRCROOT}/../../gameplay/res/ui ${SRCROOT}/res\ncp -rf ${SRCROOT}/../../gameplay/res/logo_powered_white.png ${SRCROOT}/res\ncp -rf ${SRCROOT}/game.pvrtc.config ${SRCROOT}/game.config\ntouch -cm ${SRCROOT}/res";
 		};
 /* End PBXShellScriptBuildPhase section */
 

+ 3 - 2
samples/character/src/CharacterGame.cpp

@@ -36,7 +36,7 @@ void CharacterGame::initialize()
     displayScreen(this, &CharacterGame::drawSplash, NULL, 1000L);
 
     // Load the font.
-    _font = Font::create("res/common/arial.gpb");
+    _font = Font::create("res/ui/arial.gpb");
 
     // Load scene.
     _scene = Scene::load("res/common/sample.scene");
@@ -586,6 +586,7 @@ void CharacterGame::animationEvent(AnimationClip* clip, AnimationClip::Listener:
 {
     if (clip == _kickClip && !_applyKick)
     {
+        _keyFlags = 0;
         if (_hasBall)
         {
             _applyKick = true;
@@ -594,7 +595,7 @@ void CharacterGame::animationEvent(AnimationClip* clip, AnimationClip::Listener:
     }
     else
     {
-        clip->crossFade(_currentClip, 150);
+        clip->crossFade(_currentClip, 100);
     }
 }
 

+ 3 - 2
samples/lua/CMakeLists.txt

@@ -16,11 +16,12 @@ set_target_properties(${GAME_NAME} PROPERTIES
     CLEAN_DIRECT_OUTPUT 1
 )
 
-source_group(res FILES ${GAME_RES} ${GAMEPLAY_RES} ${GAME_RES_SHADERS} ${GAME_RES_SHADERS_LIB})
+source_group(res FILES ${GAME_RES} ${GAMEPLAY_RES} ${GAMEPLAY_RES_SHADERS} ${GAMEPLAY_RES_UI})
 source_group(src FILES ${GAME_SRC})
 
 COPY_RES( ${GAME_NAME} )
 COPY_RES_EXTRA( ${GAME_NAME} ${CMAKE_SOURCE_DIR}/gameplay
     res/logo_powered_white.png 
     res/shaders/*
-    )
+    res/ui/*
+)

BIN
samples/lua/res/arial.gpb


+ 1 - 1
samples/lua/res/game.lua

@@ -8,7 +8,7 @@ function initialize()
     _touchX = 0
 
     -- Load font
-    _font = Font.create("res/arial.gpb")
+    _font = Font.create("res/ui/arial.gpb")
 
     -- Load mesh/scene from file
     _scene = Scene.load("res/lua.scene")

+ 18 - 25
samples/lua/sample-lua.vcxproj

@@ -151,10 +151,6 @@
       <AdditionalDependencies>lua.lib;OpenAL32.lib;OpenGL32.lib;GLU32.lib;glew32.lib;libpng.lib;zlib.lib;gameplay.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;BulletDynamics.lib;BulletCollision.lib;LinearMath.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\external-deps\lua\lib\windows\x86;..\..\external-deps\bullet\lib\windows\x86;..\..\external-deps\openal\lib\windows\x86;..\..\external-deps\oggvorbis\lib\windows\x86;..\..\external-deps\glew\lib\windows\x86;..\..\external-deps\png\lib\windows\x86;..\..\external-deps\zlib\lib\windows\x86;..\..\gameplay\windows\x86\$(Configuration)</AdditionalLibraryDirectories>
     </Link>
-    <PostBuildEvent>
-      <Command>xcopy ..\..\gameplay\res\shaders res\shaders\* /s /y /d
-copy ..\..\gameplay\res\logo_powered_white.png res</Command>
-    </PostBuildEvent>
     <CustomBuildStep>
       <Command>
       </Command>
@@ -163,6 +159,12 @@ copy ..\..\gameplay\res\logo_powered_white.png res</Command>
       <Outputs>
       </Outputs>
     </CustomBuildStep>
+    <PreBuildEvent>
+      <Command>xcopy ..\..\gameplay\res\shaders res\shaders\* /s /y /d
+xcopy ..\..\gameplay\res\ui res\ui\* /s /y /d
+
+copy ..\..\gameplay\res\logo_powered_white.png res</Command>
+    </PreBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <ClCompile>
@@ -181,10 +183,6 @@ copy ..\..\gameplay\res\logo_powered_white.png res</Command>
       <AdditionalDependencies>lua.lib;OpenAL32.lib;OpenGL32.lib;GLU32.lib;glew32.lib;libpng.lib;zlib.lib;gameplay.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;BulletDynamics.lib;BulletCollision.lib;LinearMath.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\external-deps\lua\lib\windows\x64;..\..\external-deps\bullet\lib\windows\x64;..\..\external-deps\openal\lib\windows\x64;..\..\external-deps\oggvorbis\lib\windows\x64;..\..\external-deps\glew\lib\windows\x64;..\..\external-deps\png\lib\windows\x64;..\..\external-deps\zlib\lib\windows\x64;..\..\gameplay\windows\x64\$(Configuration)</AdditionalLibraryDirectories>
     </Link>
-    <PostBuildEvent>
-      <Command>
-      </Command>
-    </PostBuildEvent>
     <CustomBuildStep>
       <Command>
       </Command>
@@ -213,10 +211,6 @@ copy ..\..\gameplay\res\logo_powered_white.png res</Command>
       <AdditionalDependencies>lua.lib;OpenAL32.lib;OpenGL32.lib;GLU32.lib;glew32.lib;libpng.lib;zlib.lib;gameplay.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;BulletDynamics.lib;BulletCollision.lib;LinearMath.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\external-deps\lua\lib\windows\x86;..\..\external-deps\bullet\lib\windows\x86;..\..\external-deps\openal\lib\windows\x86;..\..\external-deps\oggvorbis\lib\windows\x86;..\..\external-deps\glew\lib\windows\x86;..\..\external-deps\png\lib\windows\x86;..\..\external-deps\zlib\lib\windows\x86;..\..\gameplay\windows\x86\$(Configuration)</AdditionalLibraryDirectories>
     </Link>
-    <PostBuildEvent>
-      <Command>xcopy ..\..\gameplay\res\shaders res\shaders\* /s /y /d
-copy ..\..\gameplay\res\logo_powered_white.png res</Command>
-    </PostBuildEvent>
     <CustomBuildStep>
       <Command>
       </Command>
@@ -225,6 +219,12 @@ copy ..\..\gameplay\res\logo_powered_white.png res</Command>
       <Outputs>
       </Outputs>
     </CustomBuildStep>
+    <PreBuildEvent>
+      <Command>xcopy ..\..\gameplay\res\shaders res\shaders\* /s /y /d
+xcopy ..\..\gameplay\res\ui res\ui\* /s /y /d
+
+copy ..\..\gameplay\res\logo_powered_white.png res</Command>
+    </PreBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugMem|x64'">
     <ClCompile>
@@ -245,10 +245,6 @@ copy ..\..\gameplay\res\logo_powered_white.png res</Command>
       <AdditionalDependencies>lua.lib;OpenAL32.lib;OpenGL32.lib;GLU32.lib;glew32.lib;libpng.lib;zlib.lib;gameplay.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;BulletDynamics.lib;BulletCollision.lib;LinearMath.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\external-deps\lua\lib\windows\x64;..\..\external-deps\bullet\lib\windows\x64;..\..\external-deps\openal\lib\windows\x64;..\..\external-deps\oggvorbis\lib\windows\x64;..\..\external-deps\glew\lib\windows\x64;..\..\external-deps\png\lib\windows\x64;..\..\external-deps\zlib\lib\windows\x64;..\..\gameplay\windows\x64\$(Configuration)</AdditionalLibraryDirectories>
     </Link>
-    <PostBuildEvent>
-      <Command>
-      </Command>
-    </PostBuildEvent>
     <CustomBuildStep>
       <Command>
       </Command>
@@ -277,10 +273,6 @@ copy ..\..\gameplay\res\logo_powered_white.png res</Command>
       <AdditionalDependencies>lua.lib;OpenAL32.lib;OpenGL32.lib;GLU32.lib;glew32.lib;libpng.lib;zlib.lib;gameplay.lib;BulletDynamics.lib;BulletCollision.lib;LinearMath.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\external-deps\lua\lib\windows\x86;..\..\external-deps\bullet\lib\windows\x86;..\..\external-deps\openal\lib\windows\x86;..\..\external-deps\oggvorbis\lib\windows\x86;..\..\external-deps\glew\lib\windows\x86;..\..\external-deps\png\lib\windows\x86;..\..\external-deps\zlib\lib\windows\x86;..\..\gameplay\windows\x86\$(Configuration)</AdditionalLibraryDirectories>
     </Link>
-    <PostBuildEvent>
-      <Command>xcopy ..\..\gameplay\res\shaders res\shaders\* /s /y /d
-copy ..\..\gameplay\res\logo_powered_white.png res</Command>
-    </PostBuildEvent>
     <CustomBuildStep>
       <Command>
       </Command>
@@ -289,6 +281,12 @@ copy ..\..\gameplay\res\logo_powered_white.png res</Command>
       <Outputs>
       </Outputs>
     </CustomBuildStep>
+    <PreBuildEvent>
+      <Command>xcopy ..\..\gameplay\res\shaders res\shaders\* /s /y /d
+xcopy ..\..\gameplay\res\ui res\ui\* /s /y /d
+
+copy ..\..\gameplay\res\logo_powered_white.png res</Command>
+    </PreBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <ClCompile>
@@ -309,10 +307,6 @@ copy ..\..\gameplay\res\logo_powered_white.png res</Command>
       <AdditionalDependencies>lua.lib;OpenAL32.lib;OpenGL32.lib;GLU32.lib;glew32.lib;libpng.lib;zlib.lib;gameplay.lib;BulletDynamics.lib;BulletCollision.lib;LinearMath.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\external-deps\lua\lib\windows\x64;..\..\external-deps\bullet\lib\windows\x64;..\..\external-deps\openal\lib\windows\x64;..\..\external-deps\oggvorbis\lib\windows\x64;..\..\external-deps\glew\lib\windows\x64;..\..\external-deps\png\lib\windows\x64;..\..\external-deps\zlib\lib\windows\x64;..\..\gameplay\windows\x64\$(Configuration)</AdditionalLibraryDirectories>
     </Link>
-    <PostBuildEvent>
-      <Command>
-      </Command>
-    </PostBuildEvent>
     <CustomBuildStep>
       <Command>
       </Command>
@@ -329,7 +323,6 @@ copy ..\..\gameplay\res\logo_powered_white.png res</Command>
     <None Include="game.config" />
     <None Include="icon.png" />
     <None Include="res\ai.lua" />
-    <None Include="res\arial.gpb" />
     <None Include="res\game.lua" />
     <None Include="res\lua.fbx" />
     <None Include="res\lua.gpb" />

+ 52 - 55
samples/lua/sample-lua.vcxproj.filters

@@ -1,56 +1,53 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup>
-    <Filter Include="res">
-    </Filter>
-    <Filter Include="src">
-    </Filter>
-    <Filter Include="res\shaders">
-      <UniqueIdentifier>{68243144-f027-4318-bbef-5f0e62ae5e82}</UniqueIdentifier>
-    </Filter>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="icon.png" />
-    <None Include="bar-descriptor.xml" />
-    <None Include="game.config" />
-    <None Include="res\ai.lua">
-      <Filter>res</Filter>
-    </None>
-    <None Include="res\arial.gpb">
-      <Filter>res</Filter>
-    </None>
-    <None Include="res\game.lua">
-      <Filter>res</Filter>
-    </None>
-    <None Include="res\lua.gpb">
-      <Filter>res</Filter>
-    </None>
-    <None Include="res\lua.material">
-      <Filter>res</Filter>
-    </None>
-    <None Include="res\lua.mb">
-      <Filter>res</Filter>
-    </None>
-    <None Include="res\lua.scene">
-      <Filter>res</Filter>
-    </None>
-    <None Include="res\lua.fbx">
-      <Filter>res</Filter>
-    </None>
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="src\LuaGame.h">
-      <Filter>src</Filter>
-    </ClInclude>
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="src\LuaGame.cpp">
-      <Filter>src</Filter>
-    </ClCompile>
-  </ItemGroup>
-  <ItemGroup>
-    <Image Include="res\lua-logo.png">
-      <Filter>res</Filter>
-    </Image>
-  </ItemGroup>
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="res">
+    </Filter>
+    <Filter Include="src">
+    </Filter>
+    <Filter Include="res\shaders">
+      <UniqueIdentifier>{68243144-f027-4318-bbef-5f0e62ae5e82}</UniqueIdentifier>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="icon.png" />
+    <None Include="bar-descriptor.xml" />
+    <None Include="game.config" />
+    <None Include="res\ai.lua">
+      <Filter>res</Filter>
+    </None>
+    <None Include="res\game.lua">
+      <Filter>res</Filter>
+    </None>
+    <None Include="res\lua.gpb">
+      <Filter>res</Filter>
+    </None>
+    <None Include="res\lua.material">
+      <Filter>res</Filter>
+    </None>
+    <None Include="res\lua.mb">
+      <Filter>res</Filter>
+    </None>
+    <None Include="res\lua.scene">
+      <Filter>res</Filter>
+    </None>
+    <None Include="res\lua.fbx">
+      <Filter>res</Filter>
+    </None>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="src\LuaGame.h">
+      <Filter>src</Filter>
+    </ClInclude>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="src\LuaGame.cpp">
+      <Filter>src</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <Image Include="res\lua-logo.png">
+      <Filter>res</Filter>
+    </Image>
+  </ItemGroup>
 </Project>

+ 2 - 2
samples/lua/sample-lua.xcodeproj/project.pbxproj

@@ -338,7 +338,7 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
-			shellScript = "cp -rf ${SRCROOT}/../../gameplay/res/logo_powered_white.png ${SRCROOT}/res\nrsync -rau ${SRCROOT}/../../gameplay/res/shaders ${SRCROOT}/res\ntouch -cm ${SRCROOT}/res";
+			shellScript = "rsync -rau ${SRCROOT}/../../gameplay/res/shaders ${SRCROOT}/res\nrsync -rau ${SRCROOT}/../../gameplay/res/ui ${SRCROOT}/res\ncp -rf ${SRCROOT}/../../gameplay/res/logo_powered_white.png ${SRCROOT}/res\ntouch -cm ${SRCROOT}/res";
 		};
 		5B61612414CCC24C0073B857 /* ShellScript */ = {
 			isa = PBXShellScriptBuildPhase;
@@ -351,7 +351,7 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
-			shellScript = "cp -rf ${SRCROOT}/../../gameplay/res/logo_powered_white.png ${SRCROOT}/res\nrsync -rau ${SRCROOT}/../../gameplay/res/shaders ${SRCROOT}/res\ntouch -cm ${SRCROOT}/res";
+			shellScript = "rsync -rau ${SRCROOT}/../../gameplay/res/shaders ${SRCROOT}/res\nrsync -rau ${SRCROOT}/../../gameplay/res/ui ${SRCROOT}/res\ncp -rf ${SRCROOT}/../../gameplay/res/logo_powered_white.png ${SRCROOT}/res\ntouch -cm ${SRCROOT}/res";
 		};
 /* End PBXShellScriptBuildPhase section */
 

+ 3 - 2
samples/mesh/CMakeLists.txt

@@ -16,11 +16,12 @@ set_target_properties(${GAME_NAME} PROPERTIES
     CLEAN_DIRECT_OUTPUT 1
 )
 
-source_group(res FILES ${GAME_RES} ${GAMEPLAY_RES} ${GAME_RES_SHADERS} ${GAME_RES_SHADERS_LIB})
+source_group(res FILES ${GAME_RES} ${GAMEPLAY_RES} ${GAMEPLAY_RES_SHADERS} ${GAMEPLAY_RES_UI})
 source_group(src FILES ${GAME_SRC})
 
 COPY_RES( ${GAME_NAME} )
 COPY_RES_EXTRA( ${GAME_NAME} ${CMAKE_SOURCE_DIR}/gameplay
     res/logo_powered_white.png 
     res/shaders/*
-    )
+    res/ui/*
+)

+ 18 - 25
samples/mesh/sample-mesh.vcxproj

@@ -151,10 +151,6 @@
       <AdditionalDependencies>lua.lib;OpenAL32.lib;OpenGL32.lib;GLU32.lib;glew32.lib;libpng.lib;zlib.lib;gameplay.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;BulletDynamics.lib;BulletCollision.lib;LinearMath.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\external-deps\lua\lib\windows\x86;..\..\external-deps\bullet\lib\windows\x86;..\..\external-deps\openal\lib\windows\x86;..\..\external-deps\oggvorbis\lib\windows\x86;..\..\external-deps\glew\lib\windows\x86;..\..\external-deps\png\lib\windows\x86;..\..\external-deps\zlib\lib\windows\x86;..\..\gameplay\windows\x86\$(Configuration)</AdditionalLibraryDirectories>
     </Link>
-    <PostBuildEvent>
-      <Command>xcopy ..\..\gameplay\res\shaders res\shaders\* /s /y /d
-copy ..\..\gameplay\res\logo_powered_white.png res</Command>
-    </PostBuildEvent>
     <CustomBuildStep>
       <Command>
       </Command>
@@ -163,6 +159,12 @@ copy ..\..\gameplay\res\logo_powered_white.png res</Command>
       <Outputs>
       </Outputs>
     </CustomBuildStep>
+    <PreBuildEvent>
+      <Command>xcopy ..\..\gameplay\res\shaders res\shaders\* /s /y /d
+xcopy ..\..\gameplay\res\ui res\ui\* /s /y /d
+
+copy ..\..\gameplay\res\logo_powered_white.png res</Command>
+    </PreBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <ClCompile>
@@ -181,10 +183,6 @@ copy ..\..\gameplay\res\logo_powered_white.png res</Command>
       <AdditionalDependencies>lua.lib;OpenAL32.lib;OpenGL32.lib;GLU32.lib;glew32.lib;libpng.lib;zlib.lib;gameplay.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;BulletDynamics.lib;BulletCollision.lib;LinearMath.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\external-deps\lua\lib\windows\x64;..\..\external-deps\bullet\lib\windows\x64;..\..\external-deps\openal\lib\windows\x64;..\..\external-deps\oggvorbis\lib\windows\x64;..\..\external-deps\glew\lib\windows\x64;..\..\external-deps\png\lib\windows\x64;..\..\external-deps\zlib\lib\windows\x64;..\..\gameplay\windows\x64\$(Configuration)</AdditionalLibraryDirectories>
     </Link>
-    <PostBuildEvent>
-      <Command>
-      </Command>
-    </PostBuildEvent>
     <CustomBuildStep>
       <Command>
       </Command>
@@ -213,10 +211,6 @@ copy ..\..\gameplay\res\logo_powered_white.png res</Command>
       <AdditionalDependencies>lua.lib;OpenAL32.lib;OpenGL32.lib;GLU32.lib;glew32.lib;libpng.lib;zlib.lib;gameplay.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;BulletDynamics.lib;BulletCollision.lib;LinearMath.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\external-deps\lua\lib\windows\x86;..\..\external-deps\bullet\lib\windows\x86;..\..\external-deps\openal\lib\windows\x86;..\..\external-deps\oggvorbis\lib\windows\x86;..\..\external-deps\glew\lib\windows\x86;..\..\external-deps\png\lib\windows\x86;..\..\external-deps\zlib\lib\windows\x86;..\..\gameplay\windows\x86\$(Configuration)</AdditionalLibraryDirectories>
     </Link>
-    <PostBuildEvent>
-      <Command>xcopy ..\..\gameplay\res\shaders res\shaders\* /s /y /d
-copy ..\..\gameplay\res\logo_powered_white.png res</Command>
-    </PostBuildEvent>
     <CustomBuildStep>
       <Command>
       </Command>
@@ -225,6 +219,12 @@ copy ..\..\gameplay\res\logo_powered_white.png res</Command>
       <Outputs>
       </Outputs>
     </CustomBuildStep>
+    <PreBuildEvent>
+      <Command>xcopy ..\..\gameplay\res\shaders res\shaders\* /s /y /d
+xcopy ..\..\gameplay\res\ui res\ui\* /s /y /d
+
+copy ..\..\gameplay\res\logo_powered_white.png res</Command>
+    </PreBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugMem|x64'">
     <ClCompile>
@@ -245,10 +245,6 @@ copy ..\..\gameplay\res\logo_powered_white.png res</Command>
       <AdditionalDependencies>lua.lib;OpenAL32.lib;OpenGL32.lib;GLU32.lib;glew32.lib;libpng.lib;zlib.lib;gameplay.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;BulletDynamics.lib;BulletCollision.lib;LinearMath.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\external-deps\lua\lib\windows\x64;..\..\external-deps\bullet\lib\windows\x64;..\..\external-deps\openal\lib\windows\x64;..\..\external-deps\oggvorbis\lib\windows\x64;..\..\external-deps\glew\lib\windows\x64;..\..\external-deps\png\lib\windows\x64;..\..\external-deps\zlib\lib\windows\x64;..\..\gameplay\windows\x64\$(Configuration)</AdditionalLibraryDirectories>
     </Link>
-    <PostBuildEvent>
-      <Command>
-      </Command>
-    </PostBuildEvent>
     <CustomBuildStep>
       <Command>
       </Command>
@@ -277,10 +273,6 @@ copy ..\..\gameplay\res\logo_powered_white.png res</Command>
       <AdditionalDependencies>lua.lib;OpenAL32.lib;OpenGL32.lib;GLU32.lib;glew32.lib;libpng.lib;zlib.lib;gameplay.lib;BulletDynamics.lib;BulletCollision.lib;LinearMath.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\external-deps\lua\lib\windows\x86;..\..\external-deps\bullet\lib\windows\x86;..\..\external-deps\openal\lib\windows\x86;..\..\external-deps\oggvorbis\lib\windows\x86;..\..\external-deps\glew\lib\windows\x86;..\..\external-deps\png\lib\windows\x86;..\..\external-deps\zlib\lib\windows\x86;..\..\gameplay\windows\x86\$(Configuration)</AdditionalLibraryDirectories>
     </Link>
-    <PostBuildEvent>
-      <Command>xcopy ..\..\gameplay\res\shaders res\shaders\* /s /y /d
-copy ..\..\gameplay\res\logo_powered_white.png res</Command>
-    </PostBuildEvent>
     <CustomBuildStep>
       <Command>
       </Command>
@@ -289,6 +281,12 @@ copy ..\..\gameplay\res\logo_powered_white.png res</Command>
       <Outputs>
       </Outputs>
     </CustomBuildStep>
+    <PreBuildEvent>
+      <Command>xcopy ..\..\gameplay\res\shaders res\shaders\* /s /y /d
+xcopy ..\..\gameplay\res\ui res\ui\* /s /y /d
+
+copy ..\..\gameplay\res\logo_powered_white.png res</Command>
+    </PreBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <ClCompile>
@@ -309,10 +307,6 @@ copy ..\..\gameplay\res\logo_powered_white.png res</Command>
       <AdditionalDependencies>lua.lib;OpenAL32.lib;OpenGL32.lib;GLU32.lib;glew32.lib;libpng.lib;zlib.lib;gameplay.lib;BulletDynamics.lib;BulletCollision.lib;LinearMath.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\external-deps\lua\lib\windows\x64;..\..\external-deps\bullet\lib\windows\x64;..\..\external-deps\openal\lib\windows\x64;..\..\external-deps\oggvorbis\lib\windows\x64;..\..\external-deps\glew\lib\windows\x64;..\..\external-deps\png\lib\windows\x64;..\..\external-deps\zlib\lib\windows\x64;..\..\gameplay\windows\x64\$(Configuration)</AdditionalLibraryDirectories>
     </Link>
-    <PostBuildEvent>
-      <Command>
-      </Command>
-    </PostBuildEvent>
     <CustomBuildStep>
       <Command>
       </Command>
@@ -326,7 +320,6 @@ copy ..\..\gameplay\res\logo_powered_white.png res</Command>
     <None Include="bar-descriptor.xml" />
     <None Include="game.config" />
     <None Include="icon.png" />
-    <None Include="res\arial.gpb" />
     <None Include="res\mesh.fbx" />
     <None Include="res\mesh.gpb" />
     <None Include="res\mesh.material" />

+ 96 - 99
samples/mesh/sample-mesh.vcxproj.filters

@@ -1,100 +1,97 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup>
-    <Filter Include="src">
-      <UniqueIdentifier>{79160e99-141f-41bf-8592-4e3855de5cc8}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="res">
-      <UniqueIdentifier>{529d46d5-f3a6-4e0d-94f1-80461113f474}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="res\shaders">
-      <UniqueIdentifier>{7fbb53de-b9f0-4748-a142-1bd7c040565f}</UniqueIdentifier>
-    </Filter>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="icon.png" />
-    <None Include="bar-descriptor.xml" />
-    <None Include="game.config" />
-    <None Include="res\arial.gpb">
-      <Filter>res</Filter>
-    </None>
-    <None Include="res\mesh.fbx">
-      <Filter>res</Filter>
-    </None>
-    <None Include="res\mesh.gpb">
-      <Filter>res</Filter>
-    </None>
-    <None Include="res\mesh.material">
-      <Filter>res</Filter>
-    </None>
-    <None Include="res\mesh.mb">
-      <Filter>res</Filter>
-    </None>
-    <None Include="res\mesh.scene">
-      <Filter>res</Filter>
-    </None>
-    <None Include="res\shaders\colored.frag">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\colored.vert">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\font.frag">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\font.vert">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\form.frag">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\form.vert">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\lighting.frag">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\lighting.vert">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\skinning.vert">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\skinning-none.vert">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\sprite.frag">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\sprite.vert">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\terrain.frag">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\terrain.vert">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\textured.frag">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\textured.vert">
-      <Filter>res\shaders</Filter>
-    </None>
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="src\MeshGame.cpp">
-      <Filter>src</Filter>
-    </ClCompile>
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="src\MeshGame.h">
-      <Filter>src</Filter>
-    </ClInclude>
-  </ItemGroup>
-  <ItemGroup>
-    <Image Include="res\duck.png">
-      <Filter>res</Filter>
-    </Image>
-  </ItemGroup>
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="src">
+      <UniqueIdentifier>{79160e99-141f-41bf-8592-4e3855de5cc8}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="res">
+      <UniqueIdentifier>{529d46d5-f3a6-4e0d-94f1-80461113f474}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="res\shaders">
+      <UniqueIdentifier>{7fbb53de-b9f0-4748-a142-1bd7c040565f}</UniqueIdentifier>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="icon.png" />
+    <None Include="bar-descriptor.xml" />
+    <None Include="game.config" />
+    <None Include="res\mesh.fbx">
+      <Filter>res</Filter>
+    </None>
+    <None Include="res\mesh.gpb">
+      <Filter>res</Filter>
+    </None>
+    <None Include="res\mesh.material">
+      <Filter>res</Filter>
+    </None>
+    <None Include="res\mesh.mb">
+      <Filter>res</Filter>
+    </None>
+    <None Include="res\mesh.scene">
+      <Filter>res</Filter>
+    </None>
+    <None Include="res\shaders\colored.frag">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\colored.vert">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\font.frag">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\font.vert">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\form.frag">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\form.vert">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\lighting.frag">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\lighting.vert">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\skinning.vert">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\skinning-none.vert">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\sprite.frag">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\sprite.vert">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\terrain.frag">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\terrain.vert">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\textured.frag">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\textured.vert">
+      <Filter>res\shaders</Filter>
+    </None>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="src\MeshGame.cpp">
+      <Filter>src</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="src\MeshGame.h">
+      <Filter>src</Filter>
+    </ClInclude>
+  </ItemGroup>
+  <ItemGroup>
+    <Image Include="res\duck.png">
+      <Filter>res</Filter>
+    </Image>
+  </ItemGroup>
 </Project>

+ 2 - 2
samples/mesh/sample-mesh.xcodeproj/project.pbxproj

@@ -339,7 +339,7 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
-			shellScript = "cp -rf ${SRCROOT}/../../gameplay/res/logo_powered_white.png ${SRCROOT}/res\nrsync -rau ${SRCROOT}/../../gameplay/res/shaders ${SRCROOT}/res\ntouch -cm ${SRCROOT}/res";
+			shellScript = "rsync -rau ${SRCROOT}/../../gameplay/res/shaders ${SRCROOT}/res\nrsync -rau ${SRCROOT}/../../gameplay/res/ui ${SRCROOT}/res\ncp -rf ${SRCROOT}/../../gameplay/res/logo_powered_white.png ${SRCROOT}/res\ntouch -cm ${SRCROOT}/res";
 		};
 		5B04C5DF14BFE1A200EB0071 /* ShellScript */ = {
 			isa = PBXShellScriptBuildPhase;
@@ -352,7 +352,7 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
-			shellScript = "cp -rf ${SRCROOT}/../../gameplay/res/logo_powered_white.png ${SRCROOT}/res\nrsync -rau ${SRCROOT}/../../gameplay/res/shaders ${SRCROOT}/res\ntouch -cm ${SRCROOT}/res";
+			shellScript = "rsync -rau ${SRCROOT}/../../gameplay/res/shaders ${SRCROOT}/res\nrsync -rau ${SRCROOT}/../../gameplay/res/ui ${SRCROOT}/res\ncp -rf ${SRCROOT}/../../gameplay/res/logo_powered_white.png ${SRCROOT}/res\ntouch -cm ${SRCROOT}/res";
 		};
 /* End PBXShellScriptBuildPhase section */
 

+ 1 - 1
samples/mesh/src/MeshGame.cpp

@@ -18,7 +18,7 @@ void MeshGame::initialize()
     displayScreen(this, &MeshGame::drawSplash, NULL, 1000L);
 
     // Load the font
-    _font = Font::create("res/arial.gpb");
+    _font = Font::create("res/ui/arial.gpb");
 
     // Load the scene from file
     _scene = Scene::load("res/mesh.scene");

+ 2 - 1
samples/particles/CMakeLists.txt

@@ -16,11 +16,12 @@ set_target_properties(${GAME_NAME} PROPERTIES
     CLEAN_DIRECT_OUTPUT 1
 )
 
-source_group(res FILES ${GAME_RES} ${GAMEPLAY_RES} ${GAME_RES_SHADERS} ${GAME_RES_SHADERS_LIB})
+source_group(res FILES ${GAME_RES} ${GAMEPLAY_RES} ${GAMEPLAY_RES_SHADERS} ${GAMEPLAY_RES_UI})
 source_group(src FILES ${GAME_SRC})
 
 COPY_RES( ${GAME_NAME} )
 COPY_RES_EXTRA( ${GAME_NAME} ${CMAKE_SOURCE_DIR}/gameplay
     res/logo_powered_white.png 
     res/shaders/*
+    res/ui/*
 )

BIN
samples/particles/res/arial.gpb


+ 3 - 3
samples/particles/res/editor.form

@@ -110,7 +110,7 @@ form particleEditor
                     {
                         style = noBorder
                         text = Frame Count:
-                        size = 100, 25
+                        size = 100, 26
                     }
 
                     textBox frameCount
@@ -132,7 +132,7 @@ form particleEditor
                     {
                         style = noBorder
                         text = Frame Width:
-                        size = 100, 25
+                        size = 100, 26
                     }
 
                     textBox frameWidth
@@ -154,7 +154,7 @@ form particleEditor
                     {
                         style = noBorder
                         text = Frame Height:
-                        size = 100, 25
+                        size = 100, 26
                     }
 
                     textBox frameHeight

+ 20 - 20
samples/particles/res/editor.theme

@@ -137,9 +137,9 @@ theme particleEditor
             skin = mainNormal
             imageList = normalImages
 
-            font = res/arial.gpb
+            font = res/ui/arial.gpb
             textColor = #ffffffff
-            fontSize = 20
+            fontSize = 18
             textAlignment = ALIGN_VCENTER_HCENTER
         }
 
@@ -172,8 +172,8 @@ theme particleEditor
 
         stateNormal
         {
-            font = res/arial.gpb
-            fontSize = 20
+            font = res/ui/arial.gpb
+            fontSize = 18
         }
 
         stateActive
@@ -187,9 +187,9 @@ theme particleEditor
         stateNormal
         {
             imageList = normalImages
-            font = res/arial.gpb
+            font = res/ui/arial.gpb
             textColor = #ffffffff
-            fontSize = 18
+            fontSize = 14
             textAlignment = ALIGN_VCENTER_HCENTER
         }
 
@@ -209,15 +209,15 @@ theme particleEditor
     {
         stateNormal
         {
-            font = res/arial.gpb
-            fontSize = 20
+            font = res/ui/arial.gpb
+            fontSize = 16
             textAlignment = ALIGN_VCENTER_LEFT
         }
 
         stateActive
         {
-            font = res/arial.gpb
-            fontSize = 20
+            font = res/ui/arial.gpb
+            fontSize = 18
             textAlignment = ALIGN_VCENTER_LEFT
         }
     }
@@ -234,15 +234,15 @@ theme particleEditor
     {
         stateNormal
         {
-            font = res/arial.gpb
-            fontSize = 20
+            font = res/ui/arial.gpb
+            fontSize = 18
             textAlignment = ALIGN_VCENTER_LEFT
         }
 
         stateActive
         {
-            font = res/arial.gpb
-            fontSize = 20
+            font = res/ui/arial.gpb
+            fontSize = 16
             textAlignment = ALIGN_VCENTER_LEFT
         }
     }
@@ -252,16 +252,16 @@ theme particleEditor
         stateNormal
         {
             skin = formEntry
-            font = res/arial.gpb
-            fontSize = 16
+            font = res/ui/arial.gpb
+            fontSize = 14
             textAlignment = ALIGN_TOP_LEFT
         }
 
         stateFocus
         {
             skin = formFocus
-            font = res/arial.gpb
-            fontSize = 16
+            font = res/ui/arial.gpb
+            fontSize = 14
         }
     }
 
@@ -277,8 +277,8 @@ theme particleEditor
         stateNormal
         {
             textColor = #ffffffff
-            font = res/arial.gpb
-            fontSize = 24
+            font = res/ui/arial.gpb
+            fontSize = 18
             textAlignment = ALIGN_TOP_LEFT
         }
 

+ 18 - 25
samples/particles/sample-particles.vcxproj

@@ -45,7 +45,6 @@
     <None Include="game.config">
       <SubType>Designer</SubType>
     </None>
-    <None Include="res\arial.gpb" />
     <None Include="res\editor.form" />
     <None Include="res\editor.theme" />
     <None Include="res\explosion.particle" />
@@ -201,10 +200,6 @@
       <AdditionalDependencies>lua.lib;OpenAL32.lib;OpenGL32.lib;GLU32.lib;glew32.lib;libpng.lib;zlib.lib;gameplay.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;BulletDynamics.lib;BulletCollision.lib;LinearMath.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\external-deps\lua\lib\windows\x86;..\..\external-deps\bullet\lib\windows\x86;..\..\external-deps\openal\lib\windows\x86;..\..\external-deps\oggvorbis\lib\windows\x86;..\..\external-deps\glew\lib\windows\x86;..\..\external-deps\png\lib\windows\x86;..\..\external-deps\zlib\lib\windows\x86;..\..\gameplay\windows\x86\$(Configuration)</AdditionalLibraryDirectories>
     </Link>
-    <PostBuildEvent>
-      <Command>xcopy ..\..\gameplay\res\shaders res\shaders\* /s /y /d
-copy ..\..\gameplay\res\logo_powered_white.png res</Command>
-    </PostBuildEvent>
     <CustomBuildStep>
       <Command>
       </Command>
@@ -213,6 +208,12 @@ copy ..\..\gameplay\res\logo_powered_white.png res</Command>
       <Outputs>
       </Outputs>
     </CustomBuildStep>
+    <PreBuildEvent>
+      <Command>xcopy ..\..\gameplay\res\shaders res\shaders\* /s /y /d
+xcopy ..\..\gameplay\res\ui res\ui\* /s /y /d
+
+copy ..\..\gameplay\res\logo_powered_white.png res</Command>
+    </PreBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <ClCompile>
@@ -231,10 +232,6 @@ copy ..\..\gameplay\res\logo_powered_white.png res</Command>
       <AdditionalDependencies>lua.lib;OpenAL32.lib;OpenGL32.lib;GLU32.lib;glew32.lib;libpng.lib;zlib.lib;gameplay.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;BulletDynamics.lib;BulletCollision.lib;LinearMath.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\external-deps\lua\lib\windows\x64;..\..\external-deps\bullet\lib\windows\x64;..\..\external-deps\openal\lib\windows\x64;..\..\external-deps\oggvorbis\lib\windows\x64;..\..\external-deps\glew\lib\windows\x64;..\..\external-deps\png\lib\windows\x64;..\..\external-deps\zlib\lib\windows\x64;..\..\gameplay\windows\x64\$(Configuration)</AdditionalLibraryDirectories>
     </Link>
-    <PostBuildEvent>
-      <Command>
-      </Command>
-    </PostBuildEvent>
     <CustomBuildStep>
       <Command>
       </Command>
@@ -263,10 +260,6 @@ copy ..\..\gameplay\res\logo_powered_white.png res</Command>
       <AdditionalDependencies>lua.lib;OpenAL32.lib;OpenGL32.lib;GLU32.lib;glew32.lib;libpng.lib;zlib.lib;gameplay.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;BulletDynamics.lib;BulletCollision.lib;LinearMath.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\external-deps\lua\lib\windows\x86;..\..\external-deps\bullet\lib\windows\x86;..\..\external-deps\openal\lib\windows\x86;..\..\external-deps\oggvorbis\lib\windows\x86;..\..\external-deps\glew\lib\windows\x86;..\..\external-deps\png\lib\windows\x86;..\..\external-deps\zlib\lib\windows\x86;..\..\gameplay\windows\x86\$(Configuration)</AdditionalLibraryDirectories>
     </Link>
-    <PostBuildEvent>
-      <Command>xcopy ..\..\gameplay\res\shaders res\shaders\* /s /y /d
-copy ..\..\gameplay\res\logo_powered_white.png res</Command>
-    </PostBuildEvent>
     <CustomBuildStep>
       <Command>
       </Command>
@@ -275,6 +268,12 @@ copy ..\..\gameplay\res\logo_powered_white.png res</Command>
       <Outputs>
       </Outputs>
     </CustomBuildStep>
+    <PreBuildEvent>
+      <Command>xcopy ..\..\gameplay\res\shaders res\shaders\* /s /y /d
+xcopy ..\..\gameplay\res\ui res\ui\* /s /y /d
+
+copy ..\..\gameplay\res\logo_powered_white.png res</Command>
+    </PreBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugMem|x64'">
     <ClCompile>
@@ -295,10 +294,6 @@ copy ..\..\gameplay\res\logo_powered_white.png res</Command>
       <AdditionalDependencies>lua.lib;OpenAL32.lib;OpenGL32.lib;GLU32.lib;glew32.lib;libpng.lib;zlib.lib;gameplay.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;BulletDynamics.lib;BulletCollision.lib;LinearMath.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\external-deps\lua\lib\windows\x64;..\..\external-deps\bullet\lib\windows\x64;..\..\external-deps\openal\lib\windows\x64;..\..\external-deps\oggvorbis\lib\windows\x64;..\..\external-deps\glew\lib\windows\x64;..\..\external-deps\png\lib\windows\x64;..\..\external-deps\zlib\lib\windows\x64;..\..\gameplay\windows\x64\$(Configuration)</AdditionalLibraryDirectories>
     </Link>
-    <PostBuildEvent>
-      <Command>
-      </Command>
-    </PostBuildEvent>
     <CustomBuildStep>
       <Command>
       </Command>
@@ -327,10 +322,6 @@ copy ..\..\gameplay\res\logo_powered_white.png res</Command>
       <AdditionalDependencies>lua.lib;OpenAL32.lib;OpenGL32.lib;GLU32.lib;glew32.lib;libpng.lib;zlib.lib;gameplay.lib;BulletDynamics.lib;BulletCollision.lib;LinearMath.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\external-deps\lua\lib\windows\x86;..\..\external-deps\bullet\lib\windows\x86;..\..\external-deps\openal\lib\windows\x86;..\..\external-deps\oggvorbis\lib\windows\x86;..\..\external-deps\glew\lib\windows\x86;..\..\external-deps\png\lib\windows\x86;..\..\external-deps\zlib\lib\windows\x86;..\..\gameplay\windows\x86\$(Configuration)</AdditionalLibraryDirectories>
     </Link>
-    <PostBuildEvent>
-      <Command>xcopy ..\..\gameplay\res\shaders res\shaders\* /s /y /d
-copy ..\..\gameplay\res\logo_powered_white.png res</Command>
-    </PostBuildEvent>
     <CustomBuildStep>
       <Command>
       </Command>
@@ -339,6 +330,12 @@ copy ..\..\gameplay\res\logo_powered_white.png res</Command>
       <Outputs>
       </Outputs>
     </CustomBuildStep>
+    <PreBuildEvent>
+      <Command>xcopy ..\..\gameplay\res\shaders res\shaders\* /s /y /d
+xcopy ..\..\gameplay\res\ui res\ui\* /s /y /d
+
+copy ..\..\gameplay\res\logo_powered_white.png res</Command>
+    </PreBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <ClCompile>
@@ -359,10 +356,6 @@ copy ..\..\gameplay\res\logo_powered_white.png res</Command>
       <AdditionalDependencies>lua.lib;OpenAL32.lib;OpenGL32.lib;GLU32.lib;glew32.lib;libpng.lib;zlib.lib;gameplay.lib;BulletDynamics.lib;BulletCollision.lib;LinearMath.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\external-deps\lua\lib\windows\x64;..\..\external-deps\bullet\lib\windows\x64;..\..\external-deps\openal\lib\windows\x64;..\..\external-deps\oggvorbis\lib\windows\x64;..\..\external-deps\glew\lib\windows\x64;..\..\external-deps\png\lib\windows\x64;..\..\external-deps\zlib\lib\windows\x64;..\..\gameplay\windows\x64\$(Configuration)</AdditionalLibraryDirectories>
     </Link>
-    <PostBuildEvent>
-      <Command>
-      </Command>
-    </PostBuildEvent>
     <CustomBuildStep>
       <Command>
       </Command>

+ 110 - 113
samples/particles/sample-particles.vcxproj.filters

@@ -1,114 +1,111 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup>
-    <Filter Include="src">
-    </Filter>
-    <Filter Include="res">
-      <UniqueIdentifier>{439558fd-1ebd-4284-bc2b-ab333c4a13cf}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="res\shaders">
-      <UniqueIdentifier>{8a3f4b8e-5b0f-41ba-a52a-2aaa63496eb0}</UniqueIdentifier>
-    </Filter>
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="src\ParticlesGame.h">
-      <Filter>src</Filter>
-    </ClInclude>
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="src\ParticlesGame.cpp">
-      <Filter>src</Filter>
-    </ClCompile>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="icon.png" />
-    <None Include="game.config" />
-    <None Include="bar-descriptor.xml" />
-    <None Include="res\arial.gpb">
-      <Filter>res</Filter>
-    </None>
-    <None Include="res\editor.form">
-      <Filter>res</Filter>
-    </None>
-    <None Include="res\editor.theme">
-      <Filter>res</Filter>
-    </None>
-    <None Include="res\explosion.particle">
-      <Filter>res</Filter>
-    </None>
-    <None Include="res\fire.particle">
-      <Filter>res</Filter>
-    </None>
-    <None Include="res\grid.material">
-      <Filter>res</Filter>
-    </None>
-    <None Include="res\smoke.particle">
-      <Filter>res</Filter>
-    </None>
-    <None Include="res\shaders\colored.frag">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\colored.vert">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\font.frag">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\font.vert">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\form.frag">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\form.vert">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\lighting.frag">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\lighting.vert">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\skinning.vert">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\skinning-none.vert">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\sprite.frag">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\sprite.vert">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\terrain.frag">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\terrain.vert">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\textured.frag">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\textured.vert">
-      <Filter>res\shaders</Filter>
-    </None>
-  </ItemGroup>
-  <ItemGroup>
-    <Image Include="res\editor.png">
-      <Filter>res</Filter>
-    </Image>
-    <Image Include="res\explosion.png">
-      <Filter>res</Filter>
-    </Image>
-    <Image Include="res\fire.png">
-      <Filter>res</Filter>
-    </Image>
-    <Image Include="res\smoke.png">
-      <Filter>res</Filter>
-    </Image>
-    <Image Include="res\logo_powered_white.png">
-      <Filter>res</Filter>
-    </Image>
-  </ItemGroup>
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="src">
+    </Filter>
+    <Filter Include="res">
+      <UniqueIdentifier>{439558fd-1ebd-4284-bc2b-ab333c4a13cf}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="res\shaders">
+      <UniqueIdentifier>{8a3f4b8e-5b0f-41ba-a52a-2aaa63496eb0}</UniqueIdentifier>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="src\ParticlesGame.h">
+      <Filter>src</Filter>
+    </ClInclude>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="src\ParticlesGame.cpp">
+      <Filter>src</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="icon.png" />
+    <None Include="game.config" />
+    <None Include="bar-descriptor.xml" />
+    <None Include="res\editor.form">
+      <Filter>res</Filter>
+    </None>
+    <None Include="res\editor.theme">
+      <Filter>res</Filter>
+    </None>
+    <None Include="res\explosion.particle">
+      <Filter>res</Filter>
+    </None>
+    <None Include="res\fire.particle">
+      <Filter>res</Filter>
+    </None>
+    <None Include="res\grid.material">
+      <Filter>res</Filter>
+    </None>
+    <None Include="res\smoke.particle">
+      <Filter>res</Filter>
+    </None>
+    <None Include="res\shaders\colored.frag">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\colored.vert">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\font.frag">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\font.vert">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\form.frag">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\form.vert">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\lighting.frag">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\lighting.vert">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\skinning.vert">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\skinning-none.vert">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\sprite.frag">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\sprite.vert">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\terrain.frag">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\terrain.vert">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\textured.frag">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\textured.vert">
+      <Filter>res\shaders</Filter>
+    </None>
+  </ItemGroup>
+  <ItemGroup>
+    <Image Include="res\editor.png">
+      <Filter>res</Filter>
+    </Image>
+    <Image Include="res\explosion.png">
+      <Filter>res</Filter>
+    </Image>
+    <Image Include="res\fire.png">
+      <Filter>res</Filter>
+    </Image>
+    <Image Include="res\smoke.png">
+      <Filter>res</Filter>
+    </Image>
+    <Image Include="res\logo_powered_white.png">
+      <Filter>res</Filter>
+    </Image>
+  </ItemGroup>
 </Project>

+ 2 - 2
samples/particles/sample-particles.xcodeproj/project.pbxproj

@@ -338,7 +338,7 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
-			shellScript = "cp -rf ${SRCROOT}/../../gameplay/res/logo_powered_white.png ${SRCROOT}/res\nrsync -rau ${SRCROOT}/../../gameplay/res/shaders ${SRCROOT}/res\ntouch -cm ${SRCROOT}/res";
+			shellScript = "rsync -rau ${SRCROOT}/../../gameplay/res/shaders ${SRCROOT}/res\nrsync -rau ${SRCROOT}/../../gameplay/res/ui ${SRCROOT}/res\ncp -rf ${SRCROOT}/../../gameplay/res/logo_powered_white.png ${SRCROOT}/res\ntouch -cm ${SRCROOT}/res";
 		};
 		5B61612414CCC24C0073B857 /* ShellScript */ = {
 			isa = PBXShellScriptBuildPhase;
@@ -351,7 +351,7 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
-			shellScript = "cp -rf ${SRCROOT}/../../gameplay/res/logo_powered_white.png ${SRCROOT}/res\nrsync -rau ${SRCROOT}/../../gameplay/res/shaders ${SRCROOT}/res\ntouch -cm ${SRCROOT}/res";
+			shellScript = "rsync -rau ${SRCROOT}/../../gameplay/res/shaders ${SRCROOT}/res\nrsync -rau ${SRCROOT}/../../gameplay/res/ui ${SRCROOT}/res\ncp -rf ${SRCROOT}/../../gameplay/res/logo_powered_white.png ${SRCROOT}/res\ntouch -cm ${SRCROOT}/res";
 		};
 /* End PBXShellScriptBuildPhase section */
 

+ 1 - 1
samples/particles/src/ParticlesGame.cpp

@@ -131,7 +131,7 @@ void ParticlesGame::initialize()
     addGrid(61);
 
     // Create a font for drawing the framerate.
-    _font = Font::create("res/arial.gpb");
+    _font = Font::create("res/ui/arial.gpb");
 
     // Load the form for editing ParticleEmitters.
     _form = Form::create("res/editor.form");

+ 2 - 1
samples/racer/CMakeLists.txt

@@ -16,13 +16,14 @@ set_target_properties(${GAME_NAME} PROPERTIES
     CLEAN_DIRECT_OUTPUT 1
 )
 
-source_group(res FILES ${GAME_RES} ${GAMEPLAY_RES} ${GAME_RES_SHADERS} ${GAME_RES_SHADERS_LIB})
+source_group(res FILES ${GAME_RES} ${GAMEPLAY_RES} ${GAMEPLAY_RES_SHADERS} ${GAMEPLAY_RES_UI})
 source_group(src FILES ${GAME_SRC})
 
 COPY_RES( ${GAME_NAME} )
 COPY_RES_EXTRA( ${GAME_NAME} ${CMAKE_SOURCE_DIR}/gameplay
     res/logo_powered_white.png 
     res/shaders/*
+    res/ui/*
 )
 
 # Just use the PNG config file (most compatible)

BIN
samples/racer/res/common/arial.gpb


+ 6 - 6
samples/racer/res/common/menu.theme

@@ -119,7 +119,7 @@ theme menuTheme
             skin = mainNormal
             imageList = normalImages
 
-            font = res/common/arial.gpb
+            font = res/ui/arial.gpb
             textColor = #ffffffff
             fontSize = 18
             textAlignment = ALIGN_VCENTER_HCENTER
@@ -141,7 +141,7 @@ theme menuTheme
 
         stateNormal
         {
-            font = res/common/arial.gpb
+            font = res/ui/arial.gpb
             fontSize = 20
         }
 
@@ -161,7 +161,7 @@ theme menuTheme
         stateNormal
         {
             imageList = normalImages
-            font = res/common/arial.gpb
+            font = res/ui/arial.gpb
             textColor = #ffffffff
             fontSize = 14
             textAlignment = ALIGN_VCENTER_HCENTER
@@ -183,14 +183,14 @@ theme menuTheme
     {
         stateNormal
         {
-            font = res/common/arial.gpb
+            font = res/ui/arial.gpb
             fontSize = 20
             textAlignment = ALIGN_VCENTER_LEFT
         }
 
         stateActive
         {
-            font = res/common/arial.gpb
+            font = res/ui/arial.gpb
             fontSize = 20
             textAlignment = ALIGN_VCENTER_LEFT
         }
@@ -201,7 +201,7 @@ theme menuTheme
         stateNormal
         {
             textColor = #ffffffff
-            font = res/common/arial.gpb
+            font = res/ui/arial.gpb
             fontSize = 26
             textAlignment = ALIGN_TOP_HCENTER
         }

+ 27 - 28
samples/racer/sample-racer.vcxproj

@@ -157,16 +157,20 @@
       <AdditionalDependencies>lua.lib;OpenAL32.lib;OpenGL32.lib;GLU32.lib;glew32.lib;libpng.lib;zlib.lib;gameplay.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;BulletDynamics.lib;BulletCollision.lib;LinearMath.lib;XInput.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\external-deps\lua\lib\windows\x86;..\..\external-deps\bullet\lib\windows\x86;..\..\external-deps\openal\lib\windows\x86;..\..\external-deps\oggvorbis\lib\windows\x86;..\..\external-deps\glew\lib\windows\x86;..\..\external-deps\png\lib\windows\x86;..\..\external-deps\zlib\lib\windows\x86;..\..\gameplay\windows\x86\$(Configuration)</AdditionalLibraryDirectories>
     </Link>
-    <PostBuildEvent>
-      <Command>xcopy ..\..\gameplay\res\shaders res\shaders\* /s /y /d
-copy ..\..\gameplay\res\logo_powered_white.png res
-copy .\game.dxt.config .\game.config</Command>
-    </PostBuildEvent>
     <CustomBuildStep>
       <Command>copy /Y "$(ProjectDir)game.dxt.config" "$(ProjectDir)game.config"</Command>
       <Message>Copying game.config...</Message>
       <Outputs>game.config.dummy</Outputs>
     </CustomBuildStep>
+    <PreBuildEvent>
+      <Command>xcopy ..\..\gameplay\res\shaders res\shaders\* /s /y /d
+
+xcopy ..\..\gameplay\res\ui res\ui\* /s /y /d
+
+copy ..\..\gameplay\res\logo_powered_white.png res
+
+copy .\game.dxt.config .\game.config</Command>
+    </PreBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <ClCompile>
@@ -185,10 +189,6 @@ copy .\game.dxt.config .\game.config</Command>
       <AdditionalDependencies>lua.lib;OpenAL32.lib;OpenGL32.lib;GLU32.lib;glew32.lib;libpng.lib;zlib.lib;gameplay.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;BulletDynamics.lib;BulletCollision.lib;LinearMath.lib;XInput.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\external-deps\lua\lib\windows\x64;..\..\external-deps\bullet\lib\windows\x64;..\..\external-deps\openal\lib\windows\x64;..\..\external-deps\oggvorbis\lib\windows\x64;..\..\external-deps\glew\lib\windows\x64;..\..\external-deps\png\lib\windows\x64;..\..\external-deps\zlib\lib\windows\x64;..\..\gameplay\windows\x64\$(Configuration)</AdditionalLibraryDirectories>
     </Link>
-    <PostBuildEvent>
-      <Command>
-      </Command>
-    </PostBuildEvent>
     <CustomBuildStep>
       <Command>copy /Y "$(ProjectDir)game.dxt.config" "$(ProjectDir)game.config"</Command>
       <Message>Copying game.config...</Message>
@@ -214,16 +214,20 @@ copy .\game.dxt.config .\game.config</Command>
       <AdditionalDependencies>lua.lib;OpenAL32.lib;OpenGL32.lib;GLU32.lib;glew32.lib;libpng.lib;zlib.lib;gameplay.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;BulletDynamics.lib;BulletCollision.lib;LinearMath.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\external-deps\lua\lib\windows\x86;..\..\external-deps\bullet\lib\windows\x86;..\..\external-deps\openal\lib\windows\x86;..\..\external-deps\oggvorbis\lib\windows\x86;..\..\external-deps\glew\lib\windows\x86;..\..\external-deps\png\lib\windows\x86;..\..\external-deps\zlib\lib\windows\x86;..\..\gameplay\windows\x86\$(Configuration)</AdditionalLibraryDirectories>
     </Link>
-    <PostBuildEvent>
-      <Command>xcopy ..\..\gameplay\res\shaders res\shaders\* /s /y /d
-copy ..\..\gameplay\res\logo_powered_white.png res
-copy .\game.dxt.config .\game.config</Command>
-    </PostBuildEvent>
     <CustomBuildStep>
       <Command>copy /Y "$(ProjectDir)game.dxt.config" "$(ProjectDir)game.config"</Command>
       <Message>Copying game.config...</Message>
       <Outputs>game.config.dummy</Outputs>
     </CustomBuildStep>
+    <PreBuildEvent>
+      <Command>xcopy ..\..\gameplay\res\shaders res\shaders\* /s /y /d
+
+xcopy ..\..\gameplay\res\ui res\ui\* /s /y /d
+
+copy ..\..\gameplay\res\logo_powered_white.png res
+
+copy .\game.dxt.config .\game.config</Command>
+    </PreBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugMem|x64'">
     <ClCompile>
@@ -244,10 +248,6 @@ copy .\game.dxt.config .\game.config</Command>
       <AdditionalDependencies>lua.lib;OpenAL32.lib;OpenGL32.lib;GLU32.lib;glew32.lib;libpng.lib;zlib.lib;gameplay.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;BulletDynamics.lib;BulletCollision.lib;LinearMath.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\external-deps\lua\lib\windows\x64;..\..\external-deps\bullet\lib\windows\x64;..\..\external-deps\openal\lib\windows\x64;..\..\external-deps\oggvorbis\lib\windows\x64;..\..\external-deps\glew\lib\windows\x64;..\..\external-deps\png\lib\windows\x64;..\..\external-deps\zlib\lib\windows\x64;..\..\gameplay\windows\x64\$(Configuration)</AdditionalLibraryDirectories>
     </Link>
-    <PostBuildEvent>
-      <Command>
-      </Command>
-    </PostBuildEvent>
     <CustomBuildStep>
       <Command>copy /Y "$(ProjectDir)game.dxt.config" "$(ProjectDir)game.config"</Command>
       <Message>Copying game.config...</Message>
@@ -273,16 +273,20 @@ copy .\game.dxt.config .\game.config</Command>
       <AdditionalDependencies>lua.lib;OpenAL32.lib;OpenGL32.lib;GLU32.lib;glew32.lib;libpng.lib;zlib.lib;gameplay.lib;BulletDynamics.lib;BulletCollision.lib;LinearMath.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\external-deps\lua\lib\windows\x86;..\..\external-deps\bullet\lib\windows\x86;..\..\external-deps\openal\lib\windows\x86;..\..\external-deps\oggvorbis\lib\windows\x86;..\..\external-deps\glew\lib\windows\x86;..\..\external-deps\png\lib\windows\x86;..\..\external-deps\zlib\lib\windows\x86;..\..\gameplay\windows\x86\$(Configuration)</AdditionalLibraryDirectories>
     </Link>
-    <PostBuildEvent>
-      <Command>xcopy ..\..\gameplay\res\shaders res\shaders\* /s /y /d
-copy ..\..\gameplay\res\logo_powered_white.png res
-copy .\game.dxt.config .\game.config</Command>
-    </PostBuildEvent>
     <CustomBuildStep>
       <Command>copy /Y "$(ProjectDir)game.dxt.config" "$(ProjectDir)game.config"</Command>
       <Message>Copying game.config...</Message>
       <Outputs>game.config.dummy</Outputs>
     </CustomBuildStep>
+    <PreBuildEvent>
+      <Command>xcopy ..\..\gameplay\res\shaders res\shaders\* /s /y /d
+
+xcopy ..\..\gameplay\res\ui res\ui\* /s /y /d
+
+copy ..\..\gameplay\res\logo_powered_white.png res
+
+copy .\game.dxt.config .\game.config</Command>
+    </PreBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <ClCompile>
@@ -303,10 +307,6 @@ copy .\game.dxt.config .\game.config</Command>
       <AdditionalDependencies>lua.lib;OpenAL32.lib;OpenGL32.lib;GLU32.lib;glew32.lib;libpng.lib;zlib.lib;gameplay.lib;BulletDynamics.lib;BulletCollision.lib;LinearMath.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\external-deps\lua\lib\windows\x64;..\..\external-deps\bullet\lib\windows\x64;..\..\external-deps\openal\lib\windows\x64;..\..\external-deps\oggvorbis\lib\windows\x64;..\..\external-deps\glew\lib\windows\x64;..\..\external-deps\png\lib\windows\x64;..\..\external-deps\zlib\lib\windows\x64;..\..\gameplay\windows\x64\$(Configuration)</AdditionalLibraryDirectories>
     </Link>
-    <PostBuildEvent>
-      <Command>
-      </Command>
-    </PostBuildEvent>
     <CustomBuildStep>
       <Command>copy /Y "$(ProjectDir)game.dxt.config" "$(ProjectDir)game.config"</Command>
       <Message>Copying game.config...</Message>
@@ -318,7 +318,6 @@ copy .\game.dxt.config .\game.config</Command>
       <SubType>Designer</SubType>
     </None>
     <None Include="icon.png" />
-    <None Include="res\common\arial.gpb" />
     <None Include="res\common\background_track.ogg" />
     <None Include="res\common\engine_loop.ogg" />
     <None Include="res\common\gamepad.form" />

+ 0 - 3
samples/racer/sample-racer.vcxproj.filters

@@ -63,9 +63,6 @@
     <None Include="res\shaders\textured.vert">
       <Filter>res\shaders</Filter>
     </None>
-    <None Include="res\common\arial.gpb">
-      <Filter>res\common</Filter>
-    </None>
     <None Include="res\common\background_track.ogg">
       <Filter>res\common</Filter>
     </None>

+ 2 - 2
samples/racer/sample-racer.xcodeproj/project.pbxproj

@@ -346,7 +346,7 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
-			shellScript = "cp -rf ${SRCROOT}/../../gameplay/res/logo_powered_white.png ${SRCROOT}/res\nrsync -rau ${SRCROOT}/../../gameplay/res/shaders ${SRCROOT}/res\ncp -rf ${SRCROOT}/game.dxt.config ${SRCROOT}/game.config\ntouch -cm ${SRCROOT}/res";
+			shellScript = "rsync -rau ${SRCROOT}/../../gameplay/res/shaders ${SRCROOT}/res\nrsync -rau ${SRCROOT}/../../gameplay/res/ui ${SRCROOT}/res\ncp -rf ${SRCROOT}/../../gameplay/res/logo_powered_white.png ${SRCROOT}/res\ncp -rf ${SRCROOT}/game.dxt.config ${SRCROOT}/game.config\ntouch -cm ${SRCROOT}/res";
 		};
 		5B61612414CCC24C0073B857 /* ShellScript */ = {
 			isa = PBXShellScriptBuildPhase;
@@ -359,7 +359,7 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
-			shellScript = "cp -rf ${SRCROOT}/../../gameplay/res/logo_powered_white.png ${SRCROOT}/res\nrsync -rau ${SRCROOT}/../../gameplay/res/shaders ${SRCROOT}/res\ncp -rf ${SRCROOT}/game.pvr.config ${SRCROOT}/game.config\ntouch -cm ${SRCROOT}/res";
+			shellScript = "rsync -rau ${SRCROOT}/../../gameplay/res/shaders ${SRCROOT}/res\nrsync -rau ${SRCROOT}/../../gameplay/res/ui ${SRCROOT}/res\ncp -rf ${SRCROOT}/../../gameplay/res/logo_powered_white.png ${SRCROOT}/res\ncp -rf ${SRCROOT}/game.pvr.config ${SRCROOT}/game.config\ntouch -cm ${SRCROOT}/res";
 		};
 /* End PBXShellScriptBuildPhase section */
 

+ 1 - 1
samples/racer/src/RacerGame.cpp

@@ -40,7 +40,7 @@ void RacerGame::initialize()
 {
     setMultiTouch(true);
 
-    _font = Font::create("res/common/arial.gpb");
+    _font = Font::create("res/ui/arial.gpb");
 
     // Display the gameplay splash screen during loading, for at least 1 second.
     displayScreen(this, &RacerGame::drawSplash, NULL, 1000L);

+ 3 - 2
samples/spaceship/CMakeLists.txt

@@ -16,11 +16,12 @@ set_target_properties(${GAME_NAME} PROPERTIES
     CLEAN_DIRECT_OUTPUT 1
 )
 
-source_group(res FILES ${GAME_RES} ${GAMEPLAY_RES} ${GAME_RES_SHADERS} ${GAME_RES_SHADERS_LIB})
+source_group(res FILES ${GAME_RES} ${GAMEPLAY_RES} ${GAMEPLAY_RES_SHADERS} ${GAMEPLAY_RES_UI})
 source_group(src FILES ${GAME_SRC})
 
 COPY_RES( ${GAME_NAME} )
 COPY_RES_EXTRA( ${GAME_NAME} ${CMAKE_SOURCE_DIR}/gameplay
     res/logo_powered_white.png 
     res/shaders/*
-    )
+    res/ui/*
+)

BIN
samples/spaceship/res/airstrip.gpb


+ 0 - 96
samples/spaceship/res/challenge.form

@@ -1,96 +0,0 @@
-form challenge
-{
-    theme = res/menu.theme
-    style = background
-	layout = LAYOUT_FLOW
-    alignment = ALIGN_VCENTER_HCENTER
-
-    size = 1200, 600
-
-    container openchallenges
-	{
-	   	style = background
-        alignment = ALIGN_LEFT
-        layout = LAYOUT_VERTICAL
-        size = 500, 500
-		position = 0, 0
-        
-	    label historylabel
-	    {
-	    	position = 15, 0
-	        style = title
-	        textAlignment = ALIGN_TOP_LEFT
-	        autoWidth = true
-	        height = 50
-	        text = Open Challenges
-	    }
-	    
-	    button refreshChallenges
-	    {
-	        style = buttonStyle
-	        height = 100
-	        width = 400
-	        text = Refresh Challanges...
-	    }
-	    
-	    container challengeList
-	    {
-	    	consumeInputEvents = false
-			scroll = SCROLL_VERTICAL
-	    	style = noBorder
-	
-	        width = 410
-	        height = 400
-	    }
-    }
-    
-	container challengefriends
-	{
-	   	style = background
-        alignment = ALIGN_RIGHT
-        layout = LAYOUT_VERTICAL
-        size = 500, 700
-		position = 600, 0
-        
-	    label currentlabel
-	    {
-	    	position = 15, 0
-	        style = title
-	        textAlignment = ALIGN_TOP_LEFT
-	        autoWidth = true
-	        height = 50
-	        text = Create Challenge
-	    }
-	 
-	    container friendsList
-	    {
-	        style = noBorder
-	
-	        position = 0, 121
-	        width = 410
-	        height = 600
-	        consumeInputEvents = false
-			scroll = SCROLL_VERTICAL
-		
-	  	    button challengeanyone
-		    {
-		        style = buttonStyle
-		        
-		        position = 0, 0
-		        height = 100
-		        width = 400
-		        text = Anyone
-		    }
-	    }
-    }
-    
-    button back
-    {
-        style = buttonStyle
-        
-        position = 1200, 500
-        height = 100
-        width = 100
-        text = <<
-    }
-}

+ 0 - 65
samples/spaceship/res/menu.form

@@ -1,65 +0,0 @@
-form menu
-{
-    theme = res/menu.theme
-    style = background
-
-    alignment = ALIGN_VCENTER_HCENTER
-
-    size = 1000, 150
-
-    label congrats
-    {
-        style = title
-        textAlignment = ALIGN_TOP_HCENTER
-        autoWidth = true
-        height = 50
-        text = Please choose an option...
-    }
-    
-    container buttons
-    {
-        style = background
-        alignment = ALIGN_BOTTOM_HCENTER
-        size = 950, 101
-
-	    button reset
-	    {
-	        style = buttonStyle
-	        layout = LAYOUT_ABSOLUTE
-	        height = 100
-	        width = 200
-	        position = 000, 0
-	        text = Play
-	    }
-	
-	    button leaderboard
-	    {
-	        style = buttonStyle
-		layout = LAYOUT_ABSOLUTE
-	        height = 100
-	        width = 200
-	        position = 250, 0
-	        text = Leaderboard
-	    }
-		
-	    button achievements
-	    {
-	        style = buttonStyle
-	        layout = LAYOUT_ABSOLUTE
-	        height = 100
-	        width = 200
-	        position = 500, 0
-	        text = Achievements
-	    }
-	
-	    button challenges
-	    {
-	        style = buttonStyle
-	        layout = LAYOUT_ABSOLUTE
-	        height = 100
-	        width = 200
-	        position = 750, 0
-	        text = Challenges
-	    }
-    }
-}

+ 0 - 237
samples/spaceship/res/menu.theme

@@ -1,237 +0,0 @@
-theme menuTheme
-{
-    texture = res/menuAtlas.png
-
-    imageList normalImages
-    {
-        color = #4A8799ff
-
-        image unchecked
-        {
-            region = 78, 1, 46, 46
-        }
-
-        image checked
-        {
-            region = 78, 46, 46, 46
-        }
-
-        image unselected
-        {
-            region = 127, 1, 46, 46
-        }
-
-        image selected
-        {
-            region = 127, 46, 46, 46
-        }
-
-        image minCap
-        {
-            region = 3, 99, 8, 24
-        }
-
-        image maxCap
-        {
-            region = 3, 99, 8, 24
-        }
-
-        image marker
-        {
-            region = 16, 113, 18, 18
-        }
-
-        image track
-        {
-            region = 39, 119, 32, 6
-        }
-
-        image textCaret
-        {
-            region = 5, 149, 11, 25
-            color = #C3D9BFff
-        }
-        
-        image scrollBarTopCap
-        {
-            region = 0, 99, 12, 5
-        }
-
-        image verticalScrollBar
-        {
-            region = 0, 104, 12, 19
-        }
-
-        image scrollBarBottomCap
-        {
-            region = 0, 138, 12, 5
-        }
-
-        image scrollBarLeftCap
-        {
-            region = 35, 115, 5, 12
-        }
-
-        image horizontalScrollBar
-        {
-            region = 43, 115, 19, 12
-        }
-
-        image scrollBarRightCap
-        {
-            region = 65, 115, 5, 12
-        }
-        
-    }
-
-    imageList activeImages : normalImages
-    {
-        color = #C3D9BFff
-
-        image unchecked
-        {
-            region = 78, 91, 46, 46
-        }
-
-        image checked
-        {
-            region = 78, 91, 46, 46
-        }
-
-        image unselected
-        {
-            region = 127, 91, 46, 46
-        }
-
-        image selected
-        {
-            region = 127, 91, 46, 46
-        }
-    }
-
-    skin mainNormal
-    {
-        border
-        {
-            left = 10
-            right = 10
-            top = 10
-            bottom = 10
-        }
-        
-        region = 1, 1, 74, 74
-        color = #4A8799ff
-    }
-
-    skin mainActive : mainNormal
-    {
-        color = #C3D9BFff
-    }
-
-    skin empty
-    {
-        region = 0, 0, 1, 1
-    }
-
-    style background
-    {
-        stateNormal
-        {
-        }
-    }
-
-    style basic
-    {
-        stateNormal
-        {
-            skin = mainNormal
-            imageList = normalImages
-
-            font = res/airstrip.gpb
-            textColor = #ffffffff
-            fontSize = 15
-            textAlignment = ALIGN_VCENTER_HCENTER
-        }
-
-        stateActive
-        {
-            imageList = activeImages
-        }
-    }
-
-    style buttonStyle : basic
-    {
-        padding
-        {
-            top = -10
-            bottom = -10
-        }
-
-        stateNormal
-        {
-            font = res/airstrip.gpb
-            fontSize = 30
-        }
-
-        stateActive
-        {
-            skin = mainActive
-        }
-    }
-
-    style noBorder
-    {
-        stateNormal
-        {
-            imageList = normalImages
-            font = res/airstrip.gpb
-            textColor = #ffffffff
-            fontSize = 15
-            textAlignment = ALIGN_VCENTER_HCENTER
-        }
-
-        stateActive
-        {
-            imageList = activeImages
-            textAlignment = ALIGN_VCENTER_HCENTER
-        }
-    }
-
-    style iconNoBorder : noBorder
-    {
-        stateNormal
-        {
-            fontSize = 20
-            textAlignment = ALIGN_VCENTER_LEFT
-        }
-
-        stateActive
-        {
-            fontSize = 20
-            textAlignment = ALIGN_VCENTER_LEFT
-        }
-    }
-
-    style title
-    {
-        padding
-        {
-            left = -5
-            right = -5
-        }
-
-        stateNormal
-        {
-            skin = empty
-            textColor = #ffffffff
-            font = res/airstrip.gpb
-            fontSize = 25
-            textAlignment = ALIGN_TOP_HCENTER
-        }
-
-        stateActive
-        {
-            textColor = #C3D9BFff
-        }
-    }
-}

BIN
samples/spaceship/res/menuAtlas.png


+ 12 - 10
samples/spaceship/sample-spaceship.vcxproj

@@ -150,10 +150,12 @@
       <Outputs>
       </Outputs>
     </CustomBuildStep>
-    <PostBuildEvent>
+    <PreBuildEvent>
       <Command>xcopy ..\..\gameplay\res\shaders res\shaders\* /s /y /u
+xcopy ..\..\gameplay\res\ui res\ui\* /s /y /d
+
 copy ..\..\gameplay\res\logo_powered_white.png res</Command>
-    </PostBuildEvent>
+    </PreBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <ClCompile>
@@ -213,10 +215,12 @@ copy ..\..\gameplay\res\logo_powered_white.png res</Command>
       <Outputs>
       </Outputs>
     </CustomBuildStep>
-    <PostBuildEvent>
+    <PreBuildEvent>
       <Command>xcopy ..\..\gameplay\res\shaders res\shaders\* /s /y /u
+xcopy ..\..\gameplay\res\ui res\ui\* /s /y /d
+
 copy ..\..\gameplay\res\logo_powered_white.png res</Command>
-    </PostBuildEvent>
+    </PreBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugMem|x64'">
     <ClCompile>
@@ -279,10 +283,12 @@ copy ..\..\gameplay\res\logo_powered_white.png res</Command>
       <Outputs>
       </Outputs>
     </CustomBuildStep>
-    <PostBuildEvent>
+    <PreBuildEvent>
       <Command>xcopy ..\..\gameplay\res\shaders res\shaders\* /s /y /u
+xcopy ..\..\gameplay\res\ui res\ui\* /s /y /d
+
 copy ..\..\gameplay\res\logo_powered_white.png res</Command>
-    </PostBuildEvent>
+    </PreBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <ClCompile>
@@ -322,9 +328,6 @@ copy ..\..\gameplay\res\logo_powered_white.png res</Command>
     <None Include="icon.png" />
     <None Include="res\airstrip.gpb" />
     <None Include="res\background.ogg" />
-    <None Include="res\challenge.form" />
-    <None Include="res\menu.form" />
-    <None Include="res\menu.theme" />
     <None Include="res\shaders\colored.frag" />
     <None Include="res\shaders\colored.vert" />
     <None Include="res\shaders\font.frag" />
@@ -354,7 +357,6 @@ copy ..\..\gameplay\res\logo_powered_white.png res</Command>
   </ItemGroup>
   <ItemGroup>
     <Image Include="res\background.png" />
-    <Image Include="res\menuAtlas.png" />
     <Image Include="res\propulsion_glow.png" />
   </ItemGroup>
   <ItemGroup>

+ 103 - 115
samples/spaceship/sample-spaceship.vcxproj.filters

@@ -1,116 +1,104 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup>
-    <Filter Include="res">
-      <UniqueIdentifier>{174b782f-abfa-4a6e-99f3-ef7c67fb4798}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="src">
-      <UniqueIdentifier>{03dcd1a4-e2c1-4dc6-ac81-3e6538d8e747}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="res\shaders">
-      <UniqueIdentifier>{bb48b4a6-578b-4029-a7ef-8860bc4c16cb}</UniqueIdentifier>
-    </Filter>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="bar-descriptor.xml" />
-    <None Include="icon.png" />
-    <None Include="game.config" />
-    <None Include="res\airstrip.gpb">
-      <Filter>res</Filter>
-    </None>
-    <None Include="res\background.ogg">
-      <Filter>res</Filter>
-    </None>
-    <None Include="res\challenge.form">
-      <Filter>res</Filter>
-    </None>
-    <None Include="res\menu.form">
-      <Filter>res</Filter>
-    </None>
-    <None Include="res\menu.theme">
-      <Filter>res</Filter>
-    </None>
-    <None Include="res\spaceship.gpb">
-      <Filter>res</Filter>
-    </None>
-    <None Include="res\shaders\colored.frag">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\colored.vert">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\font.frag">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\font.vert">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\form.frag">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\form.vert">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\lighting.frag">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\lighting.vert">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\skinning.vert">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\skinning-none.vert">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\sprite.frag">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\sprite.vert">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\terrain.frag">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\terrain.vert">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\textured.frag">
-      <Filter>res\shaders</Filter>
-    </None>
-    <None Include="res\shaders\textured.vert">
-      <Filter>res\shaders</Filter>
-    </None>
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="src\SpaceshipGame.h">
-      <Filter>src</Filter>
-    </ClInclude>
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="src\SpaceshipGame.cpp">
-      <Filter>src</Filter>
-    </ClCompile>
-  </ItemGroup>
-  <ItemGroup>
-    <Font Include="res\airstrip.ttf">
-      <Filter>res</Filter>
-    </Font>
-  </ItemGroup>
-  <ItemGroup>
-    <Image Include="res\background.png">
-      <Filter>res</Filter>
-    </Image>
-    <Image Include="res\menuAtlas.png">
-      <Filter>res</Filter>
-    </Image>
-    <Image Include="res\propulsion_glow.png">
-      <Filter>res</Filter>
-    </Image>
-  </ItemGroup>
-  <ItemGroup>
-    <Media Include="res\spaceship.wav">
-      <Filter>res</Filter>
-    </Media>
-  </ItemGroup>
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="res">
+      <UniqueIdentifier>{174b782f-abfa-4a6e-99f3-ef7c67fb4798}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="src">
+      <UniqueIdentifier>{03dcd1a4-e2c1-4dc6-ac81-3e6538d8e747}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="res\shaders">
+      <UniqueIdentifier>{bb48b4a6-578b-4029-a7ef-8860bc4c16cb}</UniqueIdentifier>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="bar-descriptor.xml" />
+    <None Include="icon.png" />
+    <None Include="game.config" />
+    <None Include="res\airstrip.gpb">
+      <Filter>res</Filter>
+    </None>
+    <None Include="res\background.ogg">
+      <Filter>res</Filter>
+    </None>
+    <None Include="res\spaceship.gpb">
+      <Filter>res</Filter>
+    </None>
+    <None Include="res\shaders\colored.frag">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\colored.vert">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\font.frag">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\font.vert">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\form.frag">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\form.vert">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\lighting.frag">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\lighting.vert">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\skinning.vert">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\skinning-none.vert">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\sprite.frag">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\sprite.vert">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\terrain.frag">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\terrain.vert">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\textured.frag">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\textured.vert">
+      <Filter>res\shaders</Filter>
+    </None>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="src\SpaceshipGame.h">
+      <Filter>src</Filter>
+    </ClInclude>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="src\SpaceshipGame.cpp">
+      <Filter>src</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <Font Include="res\airstrip.ttf">
+      <Filter>res</Filter>
+    </Font>
+  </ItemGroup>
+  <ItemGroup>
+    <Image Include="res\background.png">
+      <Filter>res</Filter>
+    </Image>
+    <Image Include="res\propulsion_glow.png">
+      <Filter>res</Filter>
+    </Image>
+  </ItemGroup>
+  <ItemGroup>
+    <Media Include="res\spaceship.wav">
+      <Filter>res</Filter>
+    </Media>
+  </ItemGroup>
 </Project>

+ 2 - 2
samples/spaceship/sample-spaceship.xcodeproj/project.pbxproj

@@ -339,7 +339,7 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
-			shellScript = "cp -rf ${SRCROOT}/../../gameplay/res/logo_powered_white.png ${SRCROOT}/res\nrsync -rau ${SRCROOT}/../../gameplay/res/shaders ${SRCROOT}/res\ntouch -cm ${SRCROOT}/res";
+			shellScript = "rsync -rau ${SRCROOT}/../../gameplay/res/shaders ${SRCROOT}/res\nrsync -rau ${SRCROOT}/../../gameplay/res/ui ${SRCROOT}/res\ncp -rf ${SRCROOT}/../../gameplay/res/logo_powered_white.png ${SRCROOT}/res\ntouch -cm ${SRCROOT}/res";
 		};
 		5B43D1AD14C35A0E008A5D9D /* ShellScript */ = {
 			isa = PBXShellScriptBuildPhase;
@@ -352,7 +352,7 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
-			shellScript = "cp -rf ${SRCROOT}/../../gameplay/res/logo_powered_white.png ${SRCROOT}/res\nrsync -rau ${SRCROOT}/../../gameplay/res/shaders ${SRCROOT}/res\ntouch -cm ${SRCROOT}/res";
+			shellScript = "rsync -rau ${SRCROOT}/../../gameplay/res/shaders ${SRCROOT}/res\nrsync -rau ${SRCROOT}/../../gameplay/res/ui ${SRCROOT}/res\ncp -rf ${SRCROOT}/../../gameplay/res/logo_powered_white.png ${SRCROOT}/res\ntouch -cm ${SRCROOT}/res";
 		};
 /* End PBXShellScriptBuildPhase section */
 

+ 1 - 1
template/TEMPLATE_PROJECT-ios.plist

@@ -19,7 +19,7 @@
 	<key>CFBundlePackageType</key>
 	<string>APPL</string>
 	<key>CFBundleShortVersionString</key>
-	<string>2.0</string>
+	<string>1.0</string>
 	<key>CFBundleSignature</key>
 	<string>????</string>
 	<key>CFBundleVersion</key>

+ 1 - 1
template/TEMPLATE_PROJECT-macosx.plist

@@ -17,7 +17,7 @@
 	<key>CFBundlePackageType</key>
 	<string>APPL</string>
 	<key>CFBundleShortVersionString</key>
-	<string>2.0</string>
+	<string>1.0</string>
 	<key>CFBundleSignature</key>
 	<string>????</string>
 	<key>CFBundleVersion</key>

+ 342 - 350
template/template.vcxproj

@@ -1,351 +1,343 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="DebugMem|Win32">
-      <Configuration>DebugMem</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="DebugMem|x64">
-      <Configuration>DebugMem</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Debug|Win32">
-      <Configuration>Debug</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Debug|x64">
-      <Configuration>Debug</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|Win32">
-      <Configuration>Release</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|x64">
-      <Configuration>Release</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <Keyword>Win32Proj</Keyword>
-    <RootNamespace>TEMPLATE_PROJECT</RootNamespace>
-    <ProjectGuid>{30BEE126-8B04-4F96-84A1-30CBF8B3E491}</ProjectGuid>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <UseDebugLibraries>true</UseDebugLibraries>
-    <CharacterSet>Unicode</CharacterSet>
-    <PlatformToolset>v120</PlatformToolset>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <UseDebugLibraries>true</UseDebugLibraries>
-    <CharacterSet>Unicode</CharacterSet>
-    <PlatformToolset>v120</PlatformToolset>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugMem|Win32'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <UseDebugLibraries>true</UseDebugLibraries>
-    <CharacterSet>Unicode</CharacterSet>
-    <PlatformToolset>v120</PlatformToolset>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugMem|x64'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <UseDebugLibraries>true</UseDebugLibraries>
-    <CharacterSet>Unicode</CharacterSet>
-    <PlatformToolset>v120</PlatformToolset>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <UseDebugLibraries>false</UseDebugLibraries>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-    <CharacterSet>Unicode</CharacterSet>
-    <PlatformToolset>v120</PlatformToolset>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <UseDebugLibraries>false</UseDebugLibraries>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-    <CharacterSet>Unicode</CharacterSet>
-    <PlatformToolset>v120</PlatformToolset>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <ImportGroup Label="ExtensionSettings">
-  </ImportGroup>
-  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugMem|Win32'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugMem|x64'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <LinkIncremental>true</LinkIncremental>
-    <OutDir>$(Configuration)\</OutDir>
-    <ExecutablePath>$(ExecutablePath)</ExecutablePath>
-    <CustomBuildBeforeTargets>
-    </CustomBuildBeforeTargets>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <LinkIncremental>true</LinkIncremental>
-    <OutDir>$(Configuration)\</OutDir>
-    <ExecutablePath>$(ExecutablePath)</ExecutablePath>
-    <CustomBuildBeforeTargets />
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugMem|Win32'">
-    <LinkIncremental>true</LinkIncremental>
-    <OutDir>$(Configuration)\</OutDir>
-    <ExecutablePath>$(ExecutablePath)</ExecutablePath>
-    <CustomBuildBeforeTargets />
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugMem|x64'">
-    <LinkIncremental>true</LinkIncremental>
-    <OutDir>$(Configuration)\</OutDir>
-    <ExecutablePath>$(ExecutablePath)</ExecutablePath>
-    <CustomBuildBeforeTargets />
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <LinkIncremental>false</LinkIncremental>
-    <OutDir>$(Configuration)\</OutDir>
-    <CustomBuildBeforeTargets>
-    </CustomBuildBeforeTargets>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <LinkIncremental>false</LinkIncremental>
-    <OutDir>$(Configuration)\</OutDir>
-    <CustomBuildBeforeTargets />
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <ClCompile>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <Optimization>Disabled</Optimization>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_ITERATOR_DEBUG_LEVEL=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>GAMEPLAY_PATH\external-deps\lua\include;GAMEPLAY_PATH\external-deps\bullet\include;GAMEPLAY_PATH\gameplay\src;GAMEPLAY_PATH\external-deps\openal\include\AL;GAMEPLAY_PATH\external-deps\oggvorbis\include;GAMEPLAY_PATH\external-deps\png\include;GAMEPLAY_PATH\external-deps\zlib\include;GAMEPLAY_PATH\external-deps\glew\include</AdditionalIncludeDirectories>
-      <RuntimeTypeInfo>true</RuntimeTypeInfo>
-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
-    </ClCompile>
-    <Link>
-      <SubSystem>Windows</SubSystem>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <AdditionalDependencies>lua.lib;OpenAL32.lib;OpenGL32.lib;GLU32.lib;glew32.lib;libpng.lib;zlib.lib;gameplay.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;BulletDynamics.lib;BulletCollision.lib;LinearMath.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <AdditionalLibraryDirectories>GAMEPLAY_PATH\external-deps\lua\lib\windows\x86;GAMEPLAY_PATH\external-deps\bullet\lib\windows\x86;GAMEPLAY_PATH\external-deps\openal\lib\windows\x86;GAMEPLAY_PATH\external-deps\oggvorbis\lib\windows\x86;GAMEPLAY_PATH\external-deps\glew\lib\windows\x86;GAMEPLAY_PATH\external-deps\png\lib\windows\x86;GAMEPLAY_PATH\external-deps\zlib\lib\windows\x86;GAMEPLAY_PATH\gameplay\windows\x86\$(Configuration)</AdditionalLibraryDirectories>
-    </Link>
-    <PostBuildEvent>
-      <Command>xcopy GAMEPLAY_PATH\gameplay\res\shaders res\shaders\* /s /y /d</Command>
-    </PostBuildEvent>
-    <CustomBuildStep>
-      <Command>
-      </Command>
-      <Message>
-      </Message>
-      <Outputs>
-      </Outputs>
-    </CustomBuildStep>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <ClCompile>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <Optimization>Disabled</Optimization>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_ITERATOR_DEBUG_LEVEL=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>GAMEPLAY_PATH\external-deps\lua\include;GAMEPLAY_PATH\external-deps\bullet\include;GAMEPLAY_PATH\gameplay\src;GAMEPLAY_PATH\external-deps\openal\include\AL;GAMEPLAY_PATH\external-deps\oggvorbis\include;GAMEPLAY_PATH\external-deps\png\include;GAMEPLAY_PATH\external-deps\zlib\include;GAMEPLAY_PATH\external-deps\glew\include</AdditionalIncludeDirectories>
-      <RuntimeTypeInfo>true</RuntimeTypeInfo>
-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
-    </ClCompile>
-    <Link>
-      <SubSystem>Windows</SubSystem>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <AdditionalDependencies>lua.lib;OpenAL32.lib;OpenGL32.lib;GLU32.lib;glew32.lib;libpng.lib;zlib.lib;gameplay.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;BulletDynamics.lib;BulletCollision.lib;LinearMath.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <AdditionalLibraryDirectories>GAMEPLAY_PATH\external-deps\lua\lib\windows\x64;GAMEPLAY_PATH\external-deps\bullet\lib\windows\x64;GAMEPLAY_PATH\external-deps\openal\lib\windows\x64;GAMEPLAY_PATH\external-deps\oggvorbis\lib\windows\x64;GAMEPLAY_PATH\external-deps\glew\lib\windows\x64;GAMEPLAY_PATH\external-deps\png\lib\windows\x64;GAMEPLAY_PATH\external-deps\zlib\lib\windows\x64;GAMEPLAY_PATH\gameplay\windows\x64\$(Configuration)</AdditionalLibraryDirectories>
-    </Link>
-    <PostBuildEvent>
-      <Command>xcopy GAMEPLAY_PATH\gameplay\res\shaders res\shaders\* /s /y /d</Command>
-    </PostBuildEvent>
-    <CustomBuildStep>
-      <Command>
-      </Command>
-      <Message>
-      </Message>
-      <Outputs>
-      </Outputs>
-    </CustomBuildStep>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugMem|Win32'">
-    <ClCompile>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <Optimization>Disabled</Optimization>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;GP_USE_MEM_LEAK_DETECTION;_ITERATOR_DEBUG_LEVEL=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>GAMEPLAY_PATH\external-deps\lua\include;GAMEPLAY_PATH\external-deps\bullet\include;GAMEPLAY_PATH\gameplay\src;GAMEPLAY_PATH\external-deps\openal\include\AL;GAMEPLAY_PATH\external-deps\oggvorbis\include;GAMEPLAY_PATH\external-deps\png\include;GAMEPLAY_PATH\external-deps\zlib\include;GAMEPLAY_PATH\external-deps\glew\include</AdditionalIncludeDirectories>
-      <RuntimeTypeInfo>true</RuntimeTypeInfo>
-      <ShowIncludes>false</ShowIncludes>
-      <PreprocessToFile>false</PreprocessToFile>
-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
-    </ClCompile>
-    <Link>
-      <SubSystem>Windows</SubSystem>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <AdditionalDependencies>lua.lib;OpenAL32.lib;OpenGL32.lib;GLU32.lib;glew32.lib;libpng.lib;zlib.lib;gameplay.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;BulletDynamics.lib;BulletCollision.lib;LinearMath.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <AdditionalLibraryDirectories>GAMEPLAY_PATH\external-deps\lua\lib\windows\x86;GAMEPLAY_PATH\external-deps\bullet\lib\windows\x86;GAMEPLAY_PATH\external-deps\openal\lib\windows\x86;GAMEPLAY_PATH\external-deps\oggvorbis\lib\windows\x86;GAMEPLAY_PATH\external-deps\glew\lib\windows\x86;GAMEPLAY_PATH\external-deps\png\lib\windows\x86;GAMEPLAY_PATH\external-deps\zlib\lib\windows\x86;GAMEPLAY_PATH\gameplay\windows\x86\$(Configuration)</AdditionalLibraryDirectories>
-    </Link>
-    <PostBuildEvent>
-      <Command>xcopy GAMEPLAY_PATH\gameplay\res\shaders res\shaders\* /s /y /d</Command>
-    </PostBuildEvent>
-    <CustomBuildStep>
-      <Command>
-      </Command>
-      <Message>
-      </Message>
-      <Outputs>
-      </Outputs>
-    </CustomBuildStep>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugMem|x64'">
-    <ClCompile>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <Optimization>Disabled</Optimization>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;GP_USE_MEM_LEAK_DETECTION;_ITERATOR_DEBUG_LEVEL=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>GAMEPLAY_PATH\external-deps\lua\include;GAMEPLAY_PATH\external-deps\bullet\include;GAMEPLAY_PATH\gameplay\src;GAMEPLAY_PATH\external-deps\openal\include\AL;GAMEPLAY_PATH\external-deps\oggvorbis\include;GAMEPLAY_PATH\external-deps\png\include;GAMEPLAY_PATH\external-deps\zlib\include;GAMEPLAY_PATH\external-deps\glew\include</AdditionalIncludeDirectories>
-      <RuntimeTypeInfo>true</RuntimeTypeInfo>
-      <ShowIncludes>false</ShowIncludes>
-      <PreprocessToFile>false</PreprocessToFile>
-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
-    </ClCompile>
-    <Link>
-      <SubSystem>Windows</SubSystem>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <AdditionalDependencies>lua.lib;OpenAL32.lib;OpenGL32.lib;GLU32.lib;glew32.lib;libpng.lib;zlib.lib;gameplay.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;BulletDynamics.lib;BulletCollision.lib;LinearMath.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <AdditionalLibraryDirectories>GAMEPLAY_PATH\external-deps\lua\lib\windows\x64;GAMEPLAY_PATH\external-deps\bullet\lib\windows\x64;GAMEPLAY_PATH\external-deps\openal\lib\windows\x64;GAMEPLAY_PATH\external-deps\oggvorbis\lib\windows\x64;GAMEPLAY_PATH\external-deps\glew\lib\windows\x64;GAMEPLAY_PATH\external-deps\png\lib\windows\x64;GAMEPLAY_PATH\external-deps\zlib\lib\windows\x64;GAMEPLAY_PATH\gameplay\windows\x64\$(Configuration)</AdditionalLibraryDirectories>
-    </Link>
-    <PostBuildEvent>
-      <Command>
-      </Command>
-    </PostBuildEvent>
-    <CustomBuildStep>
-      <Command>
-      </Command>
-      <Message>
-      </Message>
-      <Outputs>
-      </Outputs>
-    </CustomBuildStep>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <ClCompile>
-      <WarningLevel>Level3</WarningLevel>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <Optimization>MaxSpeed</Optimization>
-      <FunctionLevelLinking>true</FunctionLevelLinking>
-      <IntrinsicFunctions>true</IntrinsicFunctions>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_ITERATOR_DEBUG_LEVEL=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>GAMEPLAY_PATH\external-deps\lua\include;GAMEPLAY_PATH\external-deps\bullet\include;GAMEPLAY_PATH\gameplay\src;GAMEPLAY_PATH\external-deps\openal\include\AL;GAMEPLAY_PATH\external-deps\oggvorbis\include;GAMEPLAY_PATH\external-deps\png\include;GAMEPLAY_PATH\external-deps\zlib\include;GAMEPLAY_PATH\external-deps\glew\include</AdditionalIncludeDirectories>
-    </ClCompile>
-    <Link>
-      <SubSystem>Windows</SubSystem>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-      <OptimizeReferences>true</OptimizeReferences>
-      <AdditionalDependencies>lua.lib;OpenAL32.lib;OpenGL32.lib;GLU32.lib;glew32.lib;libpng.lib;zlib.lib;gameplay.lib;BulletDynamics.lib;BulletCollision.lib;LinearMath.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <AdditionalLibraryDirectories>GAMEPLAY_PATH\external-deps\lua\lib\windows\x86;GAMEPLAY_PATH\external-deps\bullet\lib\windows\x86;GAMEPLAY_PATH\external-deps\openal\lib\windows\x86;GAMEPLAY_PATH\external-deps\oggvorbis\lib\windows\x86;GAMEPLAY_PATH\external-deps\glew\lib\windows\x86;GAMEPLAY_PATH\external-deps\png\lib\windows\x86;GAMEPLAY_PATH\external-deps\zlib\lib\windows\x86;GAMEPLAY_PATH\gameplay\windows\x86\$(Configuration)</AdditionalLibraryDirectories>
-    </Link>
-    <PostBuildEvent>
-      <Command>xcopy GAMEPLAY_PATH\gameplay\res\shaders res\shaders\* /s /y /d</Command>
-    </PostBuildEvent>
-    <CustomBuildStep>
-      <Command>
-      </Command>
-      <Message>
-      </Message>
-      <Outputs>
-      </Outputs>
-    </CustomBuildStep>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <ClCompile>
-      <WarningLevel>Level3</WarningLevel>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <Optimization>MaxSpeed</Optimization>
-      <FunctionLevelLinking>true</FunctionLevelLinking>
-      <IntrinsicFunctions>true</IntrinsicFunctions>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_ITERATOR_DEBUG_LEVEL=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>GAMEPLAY_PATH\external-deps\lua\include;GAMEPLAY_PATH\external-deps\bullet\include;GAMEPLAY_PATH\gameplay\src;GAMEPLAY_PATH\external-deps\openal\include\AL;GAMEPLAY_PATH\external-deps\oggvorbis\include;GAMEPLAY_PATH\external-deps\png\include;GAMEPLAY_PATH\external-deps\zlib\include;GAMEPLAY_PATH\external-deps\glew\include</AdditionalIncludeDirectories>
-    </ClCompile>
-    <Link>
-      <SubSystem>Windows</SubSystem>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-      <OptimizeReferences>true</OptimizeReferences>
-      <AdditionalDependencies>lua.lib;OpenAL32.lib;OpenGL32.lib;GLU32.lib;glew32.lib;libpng.lib;zlib.lib;gameplay.lib;BulletDynamics.lib;BulletCollision.lib;LinearMath.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <AdditionalLibraryDirectories>GAMEPLAY_PATH\external-deps\lua\lib\windows\x64;GAMEPLAY_PATH\external-deps\bullet\lib\windows\x64;GAMEPLAY_PATH\external-deps\openal\lib\windows\x64;GAMEPLAY_PATH\external-deps\oggvorbis\lib\windows\x64;GAMEPLAY_PATH\external-deps\glew\lib\windows\x64;GAMEPLAY_PATH\external-deps\png\lib\windows\x64;GAMEPLAY_PATH\external-deps\zlib\lib\windows\x64;GAMEPLAY_PATH\gameplay\windows\x64\$(Configuration)</AdditionalLibraryDirectories>
-    </Link>
-    <PostBuildEvent>
-      <Command>
-      </Command>
-    </PostBuildEvent>
-    <CustomBuildStep>
-      <Command>
-      </Command>
-      <Message>
-      </Message>
-      <Outputs>
-      </Outputs>
-    </CustomBuildStep>
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <None Include="bar-descriptor.xml">
-      <SubType>Designer</SubType>
-    </None>
-    <None Include="game.config" />
-    <None Include="icon.png" />
-    <None Include="res\demo.fbx" />
-    <None Include="res\demo.gpb" />
-    <None Include="res\demo.material" />
-    <None Include="res\demo.scene" />
-    <None Include="res\shaders\colored.frag" />
-    <None Include="res\shaders\colored.vert" />
-    <None Include="res\shaders\font.frag" />
-    <None Include="res\shaders\font.vert" />
-    <None Include="res\shaders\form.frag" />
-    <None Include="res\shaders\form.vert" />
-    <None Include="res\shaders\lighting.frag" />
-    <None Include="res\shaders\lighting.vert" />
-    <None Include="res\shaders\skinning-none.vert" />
-    <None Include="res\shaders\skinning.vert" />
-    <None Include="res\shaders\sprite.frag" />
-    <None Include="res\shaders\sprite.vert" />
-    <None Include="res\shaders\terrain.frag" />
-    <None Include="res\shaders\terrain.vert" />
-    <None Include="res\shaders\textured.frag" />
-    <None Include="res\shaders\textured.vert" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="src\TemplateGame.cpp" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="src\TemplateGame.h" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-  </ImportGroup>
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="DebugMem|Win32">
+      <Configuration>DebugMem</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="DebugMem|x64">
+      <Configuration>DebugMem</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <Keyword>Win32Proj</Keyword>
+    <RootNamespace>TEMPLATE_PROJECT</RootNamespace>
+    <ProjectGuid>{30BEE126-8B04-4F96-84A1-30CBF8B3E491}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v120</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v120</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugMem|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v120</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugMem|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v120</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v120</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v120</PlatformToolset>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugMem|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugMem|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <LinkIncremental>true</LinkIncremental>
+    <OutDir>$(Configuration)\</OutDir>
+    <ExecutablePath>$(ExecutablePath)</ExecutablePath>
+    <CustomBuildBeforeTargets>
+    </CustomBuildBeforeTargets>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <LinkIncremental>true</LinkIncremental>
+    <OutDir>$(Configuration)\</OutDir>
+    <ExecutablePath>$(ExecutablePath)</ExecutablePath>
+    <CustomBuildBeforeTargets />
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugMem|Win32'">
+    <LinkIncremental>true</LinkIncremental>
+    <OutDir>$(Configuration)\</OutDir>
+    <ExecutablePath>$(ExecutablePath)</ExecutablePath>
+    <CustomBuildBeforeTargets />
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugMem|x64'">
+    <LinkIncremental>true</LinkIncremental>
+    <OutDir>$(Configuration)\</OutDir>
+    <ExecutablePath>$(ExecutablePath)</ExecutablePath>
+    <CustomBuildBeforeTargets />
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <LinkIncremental>false</LinkIncremental>
+    <OutDir>$(Configuration)\</OutDir>
+    <CustomBuildBeforeTargets>
+    </CustomBuildBeforeTargets>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <LinkIncremental>false</LinkIncremental>
+    <OutDir>$(Configuration)\</OutDir>
+    <CustomBuildBeforeTargets />
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_ITERATOR_DEBUG_LEVEL=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>GAMEPLAY_PATH\external-deps\lua\include;GAMEPLAY_PATH\external-deps\bullet\include;GAMEPLAY_PATH\gameplay\src;GAMEPLAY_PATH\external-deps\openal\include\AL;GAMEPLAY_PATH\external-deps\oggvorbis\include;GAMEPLAY_PATH\external-deps\png\include;GAMEPLAY_PATH\external-deps\zlib\include;GAMEPLAY_PATH\external-deps\glew\include</AdditionalIncludeDirectories>
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <AdditionalDependencies>lua.lib;OpenAL32.lib;OpenGL32.lib;GLU32.lib;glew32.lib;libpng.lib;zlib.lib;gameplay.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;BulletDynamics.lib;BulletCollision.lib;LinearMath.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>GAMEPLAY_PATH\external-deps\lua\lib\windows\x86;GAMEPLAY_PATH\external-deps\bullet\lib\windows\x86;GAMEPLAY_PATH\external-deps\openal\lib\windows\x86;GAMEPLAY_PATH\external-deps\oggvorbis\lib\windows\x86;GAMEPLAY_PATH\external-deps\glew\lib\windows\x86;GAMEPLAY_PATH\external-deps\png\lib\windows\x86;GAMEPLAY_PATH\external-deps\zlib\lib\windows\x86;GAMEPLAY_PATH\gameplay\windows\x86\$(Configuration)</AdditionalLibraryDirectories>
+    </Link>
+    <CustomBuildStep>
+      <Command>
+      </Command>
+      <Message>
+      </Message>
+      <Outputs>
+      </Outputs>
+    </CustomBuildStep>
+    <PreBuildEvent>
+      <Command>xcopy GAMEPLAY_PATH\gameplay\res\shaders res\shaders\* /s /y /d
+xcopy GAMEPLAY_PATH\gameplay\res\ui res\ui\* /s /y /d</Command>
+    </PreBuildEvent>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_ITERATOR_DEBUG_LEVEL=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>GAMEPLAY_PATH\external-deps\lua\include;GAMEPLAY_PATH\external-deps\bullet\include;GAMEPLAY_PATH\gameplay\src;GAMEPLAY_PATH\external-deps\openal\include\AL;GAMEPLAY_PATH\external-deps\oggvorbis\include;GAMEPLAY_PATH\external-deps\png\include;GAMEPLAY_PATH\external-deps\zlib\include;GAMEPLAY_PATH\external-deps\glew\include</AdditionalIncludeDirectories>
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <AdditionalDependencies>lua.lib;OpenAL32.lib;OpenGL32.lib;GLU32.lib;glew32.lib;libpng.lib;zlib.lib;gameplay.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;BulletDynamics.lib;BulletCollision.lib;LinearMath.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>GAMEPLAY_PATH\external-deps\lua\lib\windows\x64;GAMEPLAY_PATH\external-deps\bullet\lib\windows\x64;GAMEPLAY_PATH\external-deps\openal\lib\windows\x64;GAMEPLAY_PATH\external-deps\oggvorbis\lib\windows\x64;GAMEPLAY_PATH\external-deps\glew\lib\windows\x64;GAMEPLAY_PATH\external-deps\png\lib\windows\x64;GAMEPLAY_PATH\external-deps\zlib\lib\windows\x64;GAMEPLAY_PATH\gameplay\windows\x64\$(Configuration)</AdditionalLibraryDirectories>
+    </Link>
+    <CustomBuildStep>
+      <Command>
+      </Command>
+      <Message>
+      </Message>
+      <Outputs>
+      </Outputs>
+    </CustomBuildStep>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugMem|Win32'">
+    <ClCompile>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;GP_USE_MEM_LEAK_DETECTION;_ITERATOR_DEBUG_LEVEL=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>GAMEPLAY_PATH\external-deps\lua\include;GAMEPLAY_PATH\external-deps\bullet\include;GAMEPLAY_PATH\gameplay\src;GAMEPLAY_PATH\external-deps\openal\include\AL;GAMEPLAY_PATH\external-deps\oggvorbis\include;GAMEPLAY_PATH\external-deps\png\include;GAMEPLAY_PATH\external-deps\zlib\include;GAMEPLAY_PATH\external-deps\glew\include</AdditionalIncludeDirectories>
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>
+      <ShowIncludes>false</ShowIncludes>
+      <PreprocessToFile>false</PreprocessToFile>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <AdditionalDependencies>lua.lib;OpenAL32.lib;OpenGL32.lib;GLU32.lib;glew32.lib;libpng.lib;zlib.lib;gameplay.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;BulletDynamics.lib;BulletCollision.lib;LinearMath.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>GAMEPLAY_PATH\external-deps\lua\lib\windows\x86;GAMEPLAY_PATH\external-deps\bullet\lib\windows\x86;GAMEPLAY_PATH\external-deps\openal\lib\windows\x86;GAMEPLAY_PATH\external-deps\oggvorbis\lib\windows\x86;GAMEPLAY_PATH\external-deps\glew\lib\windows\x86;GAMEPLAY_PATH\external-deps\png\lib\windows\x86;GAMEPLAY_PATH\external-deps\zlib\lib\windows\x86;GAMEPLAY_PATH\gameplay\windows\x86\$(Configuration)</AdditionalLibraryDirectories>
+    </Link>
+    <CustomBuildStep>
+      <Command>
+      </Command>
+      <Message>
+      </Message>
+      <Outputs>
+      </Outputs>
+    </CustomBuildStep>
+    <PreBuildEvent>
+      <Command>xcopy GAMEPLAY_PATH\gameplay\res\shaders res\shaders\* /s /y /d
+xcopy GAMEPLAY_PATH\gameplay\res\ui res\ui\* /s /y /d</Command>
+    </PreBuildEvent>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugMem|x64'">
+    <ClCompile>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;GP_USE_MEM_LEAK_DETECTION;_ITERATOR_DEBUG_LEVEL=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>GAMEPLAY_PATH\external-deps\lua\include;GAMEPLAY_PATH\external-deps\bullet\include;GAMEPLAY_PATH\gameplay\src;GAMEPLAY_PATH\external-deps\openal\include\AL;GAMEPLAY_PATH\external-deps\oggvorbis\include;GAMEPLAY_PATH\external-deps\png\include;GAMEPLAY_PATH\external-deps\zlib\include;GAMEPLAY_PATH\external-deps\glew\include</AdditionalIncludeDirectories>
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>
+      <ShowIncludes>false</ShowIncludes>
+      <PreprocessToFile>false</PreprocessToFile>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <AdditionalDependencies>lua.lib;OpenAL32.lib;OpenGL32.lib;GLU32.lib;glew32.lib;libpng.lib;zlib.lib;gameplay.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;BulletDynamics.lib;BulletCollision.lib;LinearMath.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>GAMEPLAY_PATH\external-deps\lua\lib\windows\x64;GAMEPLAY_PATH\external-deps\bullet\lib\windows\x64;GAMEPLAY_PATH\external-deps\openal\lib\windows\x64;GAMEPLAY_PATH\external-deps\oggvorbis\lib\windows\x64;GAMEPLAY_PATH\external-deps\glew\lib\windows\x64;GAMEPLAY_PATH\external-deps\png\lib\windows\x64;GAMEPLAY_PATH\external-deps\zlib\lib\windows\x64;GAMEPLAY_PATH\gameplay\windows\x64\$(Configuration)</AdditionalLibraryDirectories>
+    </Link>
+    <CustomBuildStep>
+      <Command>
+      </Command>
+      <Message>
+      </Message>
+      <Outputs>
+      </Outputs>
+    </CustomBuildStep>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_ITERATOR_DEBUG_LEVEL=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>GAMEPLAY_PATH\external-deps\lua\include;GAMEPLAY_PATH\external-deps\bullet\include;GAMEPLAY_PATH\gameplay\src;GAMEPLAY_PATH\external-deps\openal\include\AL;GAMEPLAY_PATH\external-deps\oggvorbis\include;GAMEPLAY_PATH\external-deps\png\include;GAMEPLAY_PATH\external-deps\zlib\include;GAMEPLAY_PATH\external-deps\glew\include</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <AdditionalDependencies>lua.lib;OpenAL32.lib;OpenGL32.lib;GLU32.lib;glew32.lib;libpng.lib;zlib.lib;gameplay.lib;BulletDynamics.lib;BulletCollision.lib;LinearMath.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>GAMEPLAY_PATH\external-deps\lua\lib\windows\x86;GAMEPLAY_PATH\external-deps\bullet\lib\windows\x86;GAMEPLAY_PATH\external-deps\openal\lib\windows\x86;GAMEPLAY_PATH\external-deps\oggvorbis\lib\windows\x86;GAMEPLAY_PATH\external-deps\glew\lib\windows\x86;GAMEPLAY_PATH\external-deps\png\lib\windows\x86;GAMEPLAY_PATH\external-deps\zlib\lib\windows\x86;GAMEPLAY_PATH\gameplay\windows\x86\$(Configuration)</AdditionalLibraryDirectories>
+    </Link>
+    <CustomBuildStep>
+      <Command>
+      </Command>
+      <Message>
+      </Message>
+      <Outputs>
+      </Outputs>
+    </CustomBuildStep>
+    <PreBuildEvent>
+      <Command>xcopy GAMEPLAY_PATH\gameplay\res\shaders res\shaders\* /s /y /d
+xcopy GAMEPLAY_PATH\gameplay\res\ui res\ui\* /s /y /d</Command>
+    </PreBuildEvent>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_ITERATOR_DEBUG_LEVEL=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>GAMEPLAY_PATH\external-deps\lua\include;GAMEPLAY_PATH\external-deps\bullet\include;GAMEPLAY_PATH\gameplay\src;GAMEPLAY_PATH\external-deps\openal\include\AL;GAMEPLAY_PATH\external-deps\oggvorbis\include;GAMEPLAY_PATH\external-deps\png\include;GAMEPLAY_PATH\external-deps\zlib\include;GAMEPLAY_PATH\external-deps\glew\include</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <AdditionalDependencies>lua.lib;OpenAL32.lib;OpenGL32.lib;GLU32.lib;glew32.lib;libpng.lib;zlib.lib;gameplay.lib;BulletDynamics.lib;BulletCollision.lib;LinearMath.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>GAMEPLAY_PATH\external-deps\lua\lib\windows\x64;GAMEPLAY_PATH\external-deps\bullet\lib\windows\x64;GAMEPLAY_PATH\external-deps\openal\lib\windows\x64;GAMEPLAY_PATH\external-deps\oggvorbis\lib\windows\x64;GAMEPLAY_PATH\external-deps\glew\lib\windows\x64;GAMEPLAY_PATH\external-deps\png\lib\windows\x64;GAMEPLAY_PATH\external-deps\zlib\lib\windows\x64;GAMEPLAY_PATH\gameplay\windows\x64\$(Configuration)</AdditionalLibraryDirectories>
+    </Link>
+    <CustomBuildStep>
+      <Command>
+      </Command>
+      <Message>
+      </Message>
+      <Outputs>
+      </Outputs>
+    </CustomBuildStep>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <None Include="bar-descriptor.xml">
+      <SubType>Designer</SubType>
+    </None>
+    <None Include="game.config" />
+    <None Include="icon.png" />
+    <None Include="res\demo.fbx" />
+    <None Include="res\demo.gpb" />
+    <None Include="res\demo.material" />
+    <None Include="res\demo.scene" />
+    <None Include="res\shaders\colored.frag" />
+    <None Include="res\shaders\colored.vert" />
+    <None Include="res\shaders\font.frag" />
+    <None Include="res\shaders\font.vert" />
+    <None Include="res\shaders\form.frag" />
+    <None Include="res\shaders\form.vert" />
+    <None Include="res\shaders\lighting.frag" />
+    <None Include="res\shaders\lighting.vert" />
+    <None Include="res\shaders\skinning-none.vert" />
+    <None Include="res\shaders\skinning.vert" />
+    <None Include="res\shaders\sprite.frag" />
+    <None Include="res\shaders\sprite.vert" />
+    <None Include="res\shaders\terrain.frag" />
+    <None Include="res\shaders\terrain.vert" />
+    <None Include="res\shaders\textured.frag" />
+    <None Include="res\shaders\textured.vert" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="src\TemplateGame.cpp" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="src\TemplateGame.h" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
 </Project>

+ 2 - 2
template/template.xcodeproj/project.pbxproj

@@ -348,7 +348,7 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
-			shellScript = "rsync -rau GAMEPLAY_PATH/gameplay/res/shaders ${SRCROOT}/res\ncp -rf GAMEPLAY_PATH/gameplay/res/logo_powered_white.png ${SRCROOT}/res\ntouch -cm ${SRCROOT}/res";
+			shellScript = "rsync -rau GAMEPLAY_PATH/gameplay/res/shaders ${SRCROOT}/res\nrsync -rau GAMEPLAY_PATH/gameplay/res/ui ${SRCROOT}/res\ncp -rf GAMEPLAY_PATH/gameplay/res/logo_powered_white.png ${SRCROOT}/res\ntouch -cm ${SRCROOT}/res";
 		};
 		5B61612414CCC24C0073B857 /* ShellScript */ = {
 			isa = PBXShellScriptBuildPhase;
@@ -361,7 +361,7 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
-			shellScript = "rsync -rau GAMEPLAY_PATH/gameplay/res/shaders ${SRCROOT}/res\ncp -rf GAMEPLAY_PATH/gameplay/res/logo_powered_white.png ${SRCROOT}/res\ntouch -cm ${SRCROOT}/res";
+			shellScript = "rsync -rau GAMEPLAY_PATH/gameplay/res/shaders ${SRCROOT}/res\nrsync -rau GAMEPLAY_PATH/gameplay/res/ui ${SRCROOT}/res\ncp -rf GAMEPLAY_PATH/gameplay/res/logo_powered_white.png ${SRCROOT}/res\ntouch -cm ${SRCROOT}/res";
 		};
 /* End PBXShellScriptBuildPhase section */