Ver Fonte

Merge branch 'dev' into new-render

# Conflicts:
#	examples/Demo/proj.win32/Demo.vcxproj
#	examples/Demo/proj.win32/Demo.vcxproj.filters
#	oxygine/src/oxygine/core/log.cpp
[email protected] há 8 anos atrás
pai
commit
64f9c7f91d

+ 2 - 2
CMakeLists.txt

@@ -183,7 +183,7 @@ if (OX_HAVE_LIBPNG)
 		set(LIBPNG ${libprefix}png)
 		set(LIBPNG ${libprefix}png)
 
 
 		if (MSVC)		
 		if (MSVC)		
-			if (MSVC_VERSION EQUAL "1900")
+			if(NOT (MSVC_VERSION LESS 1900))
 				set(LIBPNG ${LIBPNG}-2015)
 				set(LIBPNG ${LIBPNG}-2015)
 			endif()
 			endif()
 		endif()		
 		endif()		
@@ -201,7 +201,7 @@ if (OX_HAVE_LIBJPEG)
 	set(LIBJPEG ${libprefix}jpeg)
 	set(LIBJPEG ${libprefix}jpeg)
 	
 	
 	if (MSVC)
 	if (MSVC)
-		if (MSVC_VERSION EQUAL "1900")
+		if(NOT (MSVC_VERSION LESS 1900))
 			set(LIBJPEG ${LIBJPEG}-2015)
 			set(LIBJPEG ${LIBJPEG}-2015)
 		endif()	
 		endif()	
 	endif()
 	endif()

+ 16 - 9
examples/Demo/proj.win32/Demo.vcxproj

@@ -17,6 +17,8 @@
     <ProjectName>Demo</ProjectName>
     <ProjectName>Demo</ProjectName>
   </PropertyGroup>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+
+
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <ConfigurationType>Application</ConfigurationType>
     <UseDebugLibraries>true</UseDebugLibraries>
     <UseDebugLibraries>true</UseDebugLibraries>
@@ -28,12 +30,17 @@
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v141_xp</PlatformToolset>
   </PropertyGroup>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <ConfigurationType>Application</ConfigurationType>
     <UseDebugLibraries>false</UseDebugLibraries>
     <UseDebugLibraries>false</UseDebugLibraries>
+    
     <WholeProgramOptimization>false</WholeProgramOptimization>
     <WholeProgramOptimization>false</WholeProgramOptimization>
     <WholeProgramOptimization Condition="'$(VisualStudioVersion)' == '10.0' or '$(VisualStudioVersion)' == '14.0'">true</WholeProgramOptimization>
     <WholeProgramOptimization Condition="'$(VisualStudioVersion)' == '10.0' or '$(VisualStudioVersion)' == '14.0'">true</WholeProgramOptimization>
+    
+
     <CharacterSet>Unicode</CharacterSet>
     <CharacterSet>Unicode</CharacterSet>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '10.0'">v100</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '10.0'">v100</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '11.0'">v110</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '11.0'">v110</PlatformToolset>
@@ -42,6 +49,8 @@
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v141_xp</PlatformToolset>
   </PropertyGroup>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   <ImportGroup Label="ExtensionSettings">
@@ -53,12 +62,15 @@
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup Label="UserMacros" />
+
   <PropertyGroup>
   <PropertyGroup>
     <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)_$(PlatformToolset)\</OutDir>
     <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)_$(PlatformToolset)\</OutDir>
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)_$(PlatformToolset)\</IntDir>
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)_$(PlatformToolset)\</IntDir>
     <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)_$(PlatformToolset)\</OutDir>
     <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)_$(PlatformToolset)\</OutDir>
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)_$(PlatformToolset)\</IntDir>
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)_$(PlatformToolset)\</IntDir>
   </PropertyGroup>
   </PropertyGroup>
+
+
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <LinkIncremental>false</LinkIncremental>
     <LinkIncremental>false</LinkIncremental>
   </PropertyGroup>
   </PropertyGroup>
@@ -77,8 +89,7 @@
     <Link>
     <Link>
       <SubSystem>Windows</SubSystem>
       <SubSystem>Windows</SubSystem>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <GenerateDebugInformation>true</GenerateDebugInformation>
-      <AdditionalDependencies>
-      </AdditionalDependencies>
+      <AdditionalDependencies></AdditionalDependencies>
       <AdditionalLibraryDirectories>../../..//oxygine/third_party/win32/libraries;../../..//libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <AdditionalLibraryDirectories>../../..//oxygine/third_party/win32/libraries;../../..//libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <AdditionalOptions>/ignore:4099 %(AdditionalOptions)</AdditionalOptions>
       <AdditionalOptions>/ignore:4099 %(AdditionalOptions)</AdditionalOptions>
     </Link>
     </Link>
@@ -100,21 +111,17 @@
       <EnableCOMDATFolding>true</EnableCOMDATFolding>
       <EnableCOMDATFolding>true</EnableCOMDATFolding>
       <OptimizeReferences>true</OptimizeReferences>
       <OptimizeReferences>true</OptimizeReferences>
       <AdditionalLibraryDirectories>../../..//oxygine/third_party/win32/libraries;../../..//libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <AdditionalLibraryDirectories>../../..//oxygine/third_party/win32/libraries;../../..//libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <AdditionalDependencies>
-      </AdditionalDependencies>
+      <AdditionalDependencies></AdditionalDependencies>
       <AdditionalOptions>/ignore:4099 %(AdditionalOptions)</AdditionalOptions>
       <AdditionalOptions>/ignore:4099 %(AdditionalOptions)</AdditionalOptions>
     </Link>
     </Link>
   </ItemDefinitionGroup>
   </ItemDefinitionGroup>
-  <ItemGroup>
+  <ItemGroup>    
     <ProjectReference Include="../../../\oxygine\SDL\win32\oxygine.vcxproj">
     <ProjectReference Include="../../../\oxygine\SDL\win32\oxygine.vcxproj">
       <Project>{52411305-cfe1-4fa8-9885-5729bfc816cf}</Project>
       <Project>{52411305-cfe1-4fa8-9885-5729bfc816cf}</Project>
     </ProjectReference>
     </ProjectReference>
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
-    <ClCompile Include="../src/Counter.cpp" />
-    <ClCompile Include="../src/main.cpp" />
-    <ClCompile Include="../src/example.cpp" />
-    <ClCompile Include="../src/test.cpp" />
+    <ClCompile Include="../src/Counter.cpp" /><ClCompile Include="../src/example.cpp" /><ClCompile Include="../src/main.cpp" /><ClCompile Include="../src/test.cpp" />
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
     <ClInclude Include="../src/Counter.h" />
     <ClInclude Include="../src/Counter.h" />

+ 6 - 4
examples/DemoBox2D/proj.win32/DemoBox2D.vcxproj

@@ -28,6 +28,8 @@
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v141_xp</PlatformToolset>
   </PropertyGroup>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <ConfigurationType>Application</ConfigurationType>
@@ -45,6 +47,8 @@
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v141_xp</PlatformToolset>
   </PropertyGroup>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   <ImportGroup Label="ExtensionSettings">
@@ -80,8 +84,7 @@
     <Link>
     <Link>
       <SubSystem>Windows</SubSystem>
       <SubSystem>Windows</SubSystem>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <GenerateDebugInformation>true</GenerateDebugInformation>
-      <AdditionalDependencies>libcurl_imp.lib;libjpeg.lib;libpng.lib;libzlib.lib;opengl32.lib;pthreadVCE2.lib;SDL2.lib;SDL2main.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <AdditionalDependencies Condition="'$(VisualStudioVersion)' == '14.0'">%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies></AdditionalDependencies>
       <AdditionalLibraryDirectories>../../..//oxygine/third_party/win32/libraries;../../..//libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <AdditionalLibraryDirectories>../../..//oxygine/third_party/win32/libraries;../../..//libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <AdditionalOptions>/ignore:4099 %(AdditionalOptions)</AdditionalOptions>
       <AdditionalOptions>/ignore:4099 %(AdditionalOptions)</AdditionalOptions>
     </Link>
     </Link>
@@ -103,8 +106,7 @@
       <EnableCOMDATFolding>true</EnableCOMDATFolding>
       <EnableCOMDATFolding>true</EnableCOMDATFolding>
       <OptimizeReferences>true</OptimizeReferences>
       <OptimizeReferences>true</OptimizeReferences>
       <AdditionalLibraryDirectories>../../..//oxygine/third_party/win32/libraries;../../..//libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <AdditionalLibraryDirectories>../../..//oxygine/third_party/win32/libraries;../../..//libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <AdditionalDependencies>libcurl_imp.lib;libjpeg.lib;libpng.lib;libzlib.lib;opengl32.lib;pthreadVCE2.lib;SDL2.lib;SDL2main.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <AdditionalDependencies Condition="'$(VisualStudioVersion)' == '14.0'">%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies></AdditionalDependencies>
       <AdditionalOptions>/ignore:4099 %(AdditionalOptions)</AdditionalOptions>
       <AdditionalOptions>/ignore:4099 %(AdditionalOptions)</AdditionalOptions>
     </Link>
     </Link>
   </ItemDefinitionGroup>
   </ItemDefinitionGroup>

+ 5 - 1
examples/Game/part1/proj.win32/GamePart1.vcxproj

@@ -30,6 +30,8 @@
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v141_xp</PlatformToolset>
   </PropertyGroup>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <ConfigurationType>Application</ConfigurationType>
@@ -47,6 +49,8 @@
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v141_xp</PlatformToolset>
   </PropertyGroup>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   <ImportGroup Label="ExtensionSettings">
@@ -117,7 +121,7 @@
     </ProjectReference>
     </ProjectReference>
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
-    <ClCompile Include="../src/Game.cpp" /><ClCompile Include="../src/Joystick.cpp" /><ClCompile Include="../src/Player.cpp" /><ClCompile Include="../src/Unit.cpp" /><ClCompile Include="../src/main.cpp" /><ClCompile Include="../src/example.cpp" /><ClCompile Include="../src/res.cpp" />
+    <ClCompile Include="../src/Game.cpp" /><ClCompile Include="../src/Joystick.cpp" /><ClCompile Include="../src/Player.cpp" /><ClCompile Include="../src/Unit.cpp" /><ClCompile Include="../src/example.cpp" /><ClCompile Include="../src/main.cpp" /><ClCompile Include="../src/res.cpp" />
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
     <ClInclude Include="../src/Game.h" /><ClInclude Include="../src/Joystick.h" /><ClInclude Include="../src/Player.h" /><ClInclude Include="../src/Unit.h" /><ClInclude Include="../src/example.h" /><ClInclude Include="../src/res.h" />
     <ClInclude Include="../src/Game.h" /><ClInclude Include="../src/Joystick.h" /><ClInclude Include="../src/Player.h" /><ClInclude Include="../src/Unit.h" /><ClInclude Include="../src/example.h" /><ClInclude Include="../src/res.h" />

+ 5 - 1
examples/Game/part2/proj.win32/GamePart2.vcxproj

@@ -30,6 +30,8 @@
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v141_xp</PlatformToolset>
   </PropertyGroup>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <ConfigurationType>Application</ConfigurationType>
@@ -47,6 +49,8 @@
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v141_xp</PlatformToolset>
   </PropertyGroup>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   <ImportGroup Label="ExtensionSettings">
@@ -117,7 +121,7 @@
     </ProjectReference>
     </ProjectReference>
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
-    <ClCompile Include="../src/Enemy.cpp" /><ClCompile Include="../src/Game.cpp" /><ClCompile Include="../src/Joystick.cpp" /><ClCompile Include="../src/Player.cpp" /><ClCompile Include="../src/Rocket.cpp" /><ClCompile Include="../src/Unit.cpp" /><ClCompile Include="../src/main.cpp" /><ClCompile Include="../src/example.cpp" /><ClCompile Include="../src/res.cpp" />
+    <ClCompile Include="../src/Enemy.cpp" /><ClCompile Include="../src/Game.cpp" /><ClCompile Include="../src/Joystick.cpp" /><ClCompile Include="../src/Player.cpp" /><ClCompile Include="../src/Rocket.cpp" /><ClCompile Include="../src/Unit.cpp" /><ClCompile Include="../src/example.cpp" /><ClCompile Include="../src/main.cpp" /><ClCompile Include="../src/res.cpp" />
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
     <ClInclude Include="../src/Enemy.h" /><ClInclude Include="../src/Game.h" /><ClInclude Include="../src/Joystick.h" /><ClInclude Include="../src/Player.h" /><ClInclude Include="../src/Rocket.h" /><ClInclude Include="../src/Unit.h" /><ClInclude Include="../src/example.h" /><ClInclude Include="../src/res.h" />
     <ClInclude Include="../src/Enemy.h" /><ClInclude Include="../src/Game.h" /><ClInclude Include="../src/Joystick.h" /><ClInclude Include="../src/Player.h" /><ClInclude Include="../src/Rocket.h" /><ClInclude Include="../src/Unit.h" /><ClInclude Include="../src/example.h" /><ClInclude Include="../src/res.h" />

+ 5 - 1
examples/Game/part3/proj.win32/GamePart3.vcxproj

@@ -30,6 +30,8 @@
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v141_xp</PlatformToolset>
   </PropertyGroup>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <ConfigurationType>Application</ConfigurationType>
@@ -47,6 +49,8 @@
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v141_xp</PlatformToolset>
   </PropertyGroup>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   <ImportGroup Label="ExtensionSettings">
@@ -117,7 +121,7 @@
     </ProjectReference>
     </ProjectReference>
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
-    <ClCompile Include="../src/Enemy.cpp" /><ClCompile Include="../src/Game.cpp" /><ClCompile Include="../src/GameScene.cpp" /><ClCompile Include="../src/Joystick.cpp" /><ClCompile Include="../src/MainMenuScene.cpp" /><ClCompile Include="../src/MyButton.cpp" /><ClCompile Include="../src/Player.cpp" /><ClCompile Include="../src/Rocket.cpp" /><ClCompile Include="../src/Scene.cpp" /><ClCompile Include="../src/Unit.cpp" /><ClCompile Include="../src/main.cpp" /><ClCompile Include="../src/example.cpp" /><ClCompile Include="../src/res.cpp" />
+    <ClCompile Include="../src/Enemy.cpp" /><ClCompile Include="../src/Game.cpp" /><ClCompile Include="../src/GameScene.cpp" /><ClCompile Include="../src/Joystick.cpp" /><ClCompile Include="../src/MainMenuScene.cpp" /><ClCompile Include="../src/MyButton.cpp" /><ClCompile Include="../src/Player.cpp" /><ClCompile Include="../src/Rocket.cpp" /><ClCompile Include="../src/Scene.cpp" /><ClCompile Include="../src/Unit.cpp" /><ClCompile Include="../src/example.cpp" /><ClCompile Include="../src/main.cpp" /><ClCompile Include="../src/res.cpp" />
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
     <ClInclude Include="../src/Enemy.h" /><ClInclude Include="../src/Game.h" /><ClInclude Include="../src/GameScene.h" /><ClInclude Include="../src/Joystick.h" /><ClInclude Include="../src/MainMenuScene.h" /><ClInclude Include="../src/MyButton.h" /><ClInclude Include="../src/Player.h" /><ClInclude Include="../src/Rocket.h" /><ClInclude Include="../src/Scene.h" /><ClInclude Include="../src/Unit.h" /><ClInclude Include="../src/example.h" /><ClInclude Include="../src/res.h" />
     <ClInclude Include="../src/Enemy.h" /><ClInclude Include="../src/Game.h" /><ClInclude Include="../src/GameScene.h" /><ClInclude Include="../src/Joystick.h" /><ClInclude Include="../src/MainMenuScene.h" /><ClInclude Include="../src/MyButton.h" /><ClInclude Include="../src/Player.h" /><ClInclude Include="../src/Rocket.h" /><ClInclude Include="../src/Scene.h" /><ClInclude Include="../src/Unit.h" /><ClInclude Include="../src/example.h" /><ClInclude Include="../src/res.h" />

+ 5 - 1
examples/Game/part4/proj.win32/GamePart4.vcxproj

@@ -30,6 +30,8 @@
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v141_xp</PlatformToolset>
   </PropertyGroup>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <ConfigurationType>Application</ConfigurationType>
@@ -47,6 +49,8 @@
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v141_xp</PlatformToolset>
   </PropertyGroup>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   <ImportGroup Label="ExtensionSettings">
@@ -117,7 +121,7 @@
     </ProjectReference>
     </ProjectReference>
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
-    <ClCompile Include="../src/Enemy.cpp" /><ClCompile Include="../src/Game.cpp" /><ClCompile Include="../src/GameMenu.cpp" /><ClCompile Include="../src/GameScene.cpp" /><ClCompile Include="../src/Joystick.cpp" /><ClCompile Include="../src/MainMenuScene.cpp" /><ClCompile Include="../src/MyButton.cpp" /><ClCompile Include="../src/Player.cpp" /><ClCompile Include="../src/Rocket.cpp" /><ClCompile Include="../src/Scene.cpp" /><ClCompile Include="../src/Unit.cpp" /><ClCompile Include="../src/main.cpp" /><ClCompile Include="../src/example.cpp" /><ClCompile Include="../src/res.cpp" />
+    <ClCompile Include="../src/Enemy.cpp" /><ClCompile Include="../src/Game.cpp" /><ClCompile Include="../src/GameMenu.cpp" /><ClCompile Include="../src/GameScene.cpp" /><ClCompile Include="../src/Joystick.cpp" /><ClCompile Include="../src/MainMenuScene.cpp" /><ClCompile Include="../src/MyButton.cpp" /><ClCompile Include="../src/Player.cpp" /><ClCompile Include="../src/Rocket.cpp" /><ClCompile Include="../src/Scene.cpp" /><ClCompile Include="../src/Unit.cpp" /><ClCompile Include="../src/example.cpp" /><ClCompile Include="../src/main.cpp" /><ClCompile Include="../src/res.cpp" />
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
     <ClInclude Include="../src/Enemy.h" /><ClInclude Include="../src/Game.h" /><ClInclude Include="../src/GameMenu.h" /><ClInclude Include="../src/GameScene.h" /><ClInclude Include="../src/Joystick.h" /><ClInclude Include="../src/MainMenuScene.h" /><ClInclude Include="../src/MyButton.h" /><ClInclude Include="../src/Player.h" /><ClInclude Include="../src/Rocket.h" /><ClInclude Include="../src/Scene.h" /><ClInclude Include="../src/Unit.h" /><ClInclude Include="../src/example.h" /><ClInclude Include="../src/res.h" />
     <ClInclude Include="../src/Enemy.h" /><ClInclude Include="../src/Game.h" /><ClInclude Include="../src/GameMenu.h" /><ClInclude Include="../src/GameScene.h" /><ClInclude Include="../src/Joystick.h" /><ClInclude Include="../src/MainMenuScene.h" /><ClInclude Include="../src/MyButton.h" /><ClInclude Include="../src/Player.h" /><ClInclude Include="../src/Rocket.h" /><ClInclude Include="../src/Scene.h" /><ClInclude Include="../src/Unit.h" /><ClInclude Include="../src/example.h" /><ClInclude Include="../src/res.h" />

+ 5 - 1
examples/Game/part5/proj.win32/GamePart5.vcxproj

@@ -30,6 +30,8 @@
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v141_xp</PlatformToolset>
   </PropertyGroup>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <ConfigurationType>Application</ConfigurationType>
@@ -47,6 +49,8 @@
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v141_xp</PlatformToolset>
   </PropertyGroup>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   <ImportGroup Label="ExtensionSettings">
@@ -117,7 +121,7 @@
     </ProjectReference>
     </ProjectReference>
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
-    <ClCompile Include="../src/Enemy.cpp" /><ClCompile Include="../src/Game.cpp" /><ClCompile Include="../src/GameMenu.cpp" /><ClCompile Include="../src/GameScene.cpp" /><ClCompile Include="../src/Joystick.cpp" /><ClCompile Include="../src/MainMenuScene.cpp" /><ClCompile Include="../src/MyButton.cpp" /><ClCompile Include="../src/Player.cpp" /><ClCompile Include="../src/Rocket.cpp" /><ClCompile Include="../src/Scene.cpp" /><ClCompile Include="../src/Unit.cpp" /><ClCompile Include="../src/main.cpp" /><ClCompile Include="../src/example.cpp" /><ClCompile Include="../src/res.cpp" />
+    <ClCompile Include="../src/Enemy.cpp" /><ClCompile Include="../src/Game.cpp" /><ClCompile Include="../src/GameMenu.cpp" /><ClCompile Include="../src/GameScene.cpp" /><ClCompile Include="../src/Joystick.cpp" /><ClCompile Include="../src/MainMenuScene.cpp" /><ClCompile Include="../src/MyButton.cpp" /><ClCompile Include="../src/Player.cpp" /><ClCompile Include="../src/Rocket.cpp" /><ClCompile Include="../src/Scene.cpp" /><ClCompile Include="../src/Unit.cpp" /><ClCompile Include="../src/example.cpp" /><ClCompile Include="../src/main.cpp" /><ClCompile Include="../src/res.cpp" />
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
     <ClInclude Include="../src/Enemy.h" /><ClInclude Include="../src/Game.h" /><ClInclude Include="../src/GameMenu.h" /><ClInclude Include="../src/GameScene.h" /><ClInclude Include="../src/Joystick.h" /><ClInclude Include="../src/MainMenuScene.h" /><ClInclude Include="../src/MyButton.h" /><ClInclude Include="../src/Player.h" /><ClInclude Include="../src/Rocket.h" /><ClInclude Include="../src/Scene.h" /><ClInclude Include="../src/Unit.h" /><ClInclude Include="../src/example.h" /><ClInclude Include="../src/res.h" />
     <ClInclude Include="../src/Enemy.h" /><ClInclude Include="../src/Game.h" /><ClInclude Include="../src/GameMenu.h" /><ClInclude Include="../src/GameScene.h" /><ClInclude Include="../src/Joystick.h" /><ClInclude Include="../src/MainMenuScene.h" /><ClInclude Include="../src/MyButton.h" /><ClInclude Include="../src/Player.h" /><ClInclude Include="../src/Rocket.h" /><ClInclude Include="../src/Scene.h" /><ClInclude Include="../src/Unit.h" /><ClInclude Include="../src/example.h" /><ClInclude Include="../src/res.h" />

+ 5 - 1
examples/HelloWorld/proj.win32/HelloWorld.vcxproj

@@ -30,6 +30,8 @@
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v141_xp</PlatformToolset>
   </PropertyGroup>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <ConfigurationType>Application</ConfigurationType>
@@ -47,6 +49,8 @@
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v141_xp</PlatformToolset>
   </PropertyGroup>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   <ImportGroup Label="ExtensionSettings">
@@ -117,7 +121,7 @@
     </ProjectReference>
     </ProjectReference>
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
-    <ClCompile Include="../src/main.cpp" /><ClCompile Include="../src/example.cpp" />
+    <ClCompile Include="../src/example.cpp" /><ClCompile Include="../src/main.cpp" />
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
     <ClInclude Include="../src/example.h" />
     <ClInclude Include="../src/example.h" />

+ 5 - 1
examples/Match3/proj.win32/Match3.vcxproj

@@ -30,6 +30,8 @@
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v141_xp</PlatformToolset>
   </PropertyGroup>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <ConfigurationType>Application</ConfigurationType>
@@ -47,6 +49,8 @@
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v141_xp</PlatformToolset>
   </PropertyGroup>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   <ImportGroup Label="ExtensionSettings">
@@ -117,7 +121,7 @@
     </ProjectReference>
     </ProjectReference>
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
-    <ClCompile Include="../src/Board.cpp" /><ClCompile Include="../src/Jewel.cpp" /><ClCompile Include="../src/main.cpp" /><ClCompile Include="../src/example.cpp" /><ClCompile Include="../src/shared.cpp" />
+    <ClCompile Include="../src/Board.cpp" /><ClCompile Include="../src/Jewel.cpp" /><ClCompile Include="../src/example.cpp" /><ClCompile Include="../src/main.cpp" /><ClCompile Include="../src/shared.cpp" />
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
     <ClInclude Include="../src/Board.h" /><ClInclude Include="../src/Jewel.h" /><ClInclude Include="../src/example.h" /><ClInclude Include="../src/shared.h" />
     <ClInclude Include="../src/Board.h" /><ClInclude Include="../src/Jewel.h" /><ClInclude Include="../src/example.h" /><ClInclude Include="../src/shared.h" />

+ 1 - 1
oxygine/SDL/android/lib/src/org/oxygine/lib/HttpRequests.java

@@ -144,8 +144,8 @@ class HttpRequest extends AsyncTask<RequestDetails, Integer, String> {
             nativeHttpRequestSuccess(details.handle);
             nativeHttpRequestSuccess(details.handle);
 
 
         } catch (Exception e) {
         } catch (Exception e) {
-            nativeHttpRequestError(details.handle);
             Log.v("HttpRequest", "error: " + e.toString());
             Log.v("HttpRequest", "error: " + e.toString());
+            nativeHttpRequestError(details.handle);            
             return e.toString();
             return e.toString();
         } finally {
         } finally {
             try {
             try {

+ 6 - 2
oxygine/SDL/win32/oxygine.vcxproj

@@ -27,6 +27,8 @@
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v141_xp</PlatformToolset>
   </PropertyGroup>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>StaticLibrary</ConfigurationType>
     <ConfigurationType>StaticLibrary</ConfigurationType>
@@ -38,6 +40,8 @@
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v141_xp</PlatformToolset>
   </PropertyGroup>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   <ImportGroup Label="ExtensionSettings">
@@ -82,7 +86,7 @@
     <Lib>
     <Lib>
       <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
       <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
       <AdditionalDependencies>libcurl_imp.lib;ws2_32.lib;libjpeg.lib;libpng.lib;libzlib.lib;opengl32.lib;pthreadVCE2.lib;SDL2.lib;SDL2main.lib;</AdditionalDependencies>
       <AdditionalDependencies>libcurl_imp.lib;ws2_32.lib;libjpeg.lib;libpng.lib;libzlib.lib;opengl32.lib;pthreadVCE2.lib;SDL2.lib;SDL2main.lib;</AdditionalDependencies>
-      <AdditionalDependencies Condition="'$(VisualStudioVersion)' == '14.0'">libcurl_imp.lib;ws2_32.lib;libjpeg-2015.lib;libpng-2015.lib;libzlib.lib;opengl32.lib;pthreadVCE2.lib;SDL2.lib;SDL2main.lib;</AdditionalDependencies>
+      <AdditionalDependencies Condition="'$(VisualStudioVersion)' == '14.0' or '$(VisualStudioVersion)' == '15.0'">libcurl_imp.lib;ws2_32.lib;libjpeg-2015.lib;libpng-2015.lib;libzlib.lib;opengl32.lib;pthreadVCE2.lib;SDL2.lib;SDL2main.lib;</AdditionalDependencies>
       <AdditionalLibraryDirectories>../../third_party/win32/libraries;../../..//libs;</AdditionalLibraryDirectories>
       <AdditionalLibraryDirectories>../../third_party/win32/libraries;../../..//libs;</AdditionalLibraryDirectories>
     </Lib>
     </Lib>
     <PostBuildEvent>
     <PostBuildEvent>
@@ -104,7 +108,7 @@
     </ClCompile>
     </ClCompile>
     <Lib>
     <Lib>
       <AdditionalDependencies>libcurl_imp.lib;ws2_32.lib;libjpeg.lib;libpng.lib;libzlib.lib;opengl32.lib;pthreadVCE2.lib;SDL2.lib;SDL2main.lib;</AdditionalDependencies>
       <AdditionalDependencies>libcurl_imp.lib;ws2_32.lib;libjpeg.lib;libpng.lib;libzlib.lib;opengl32.lib;pthreadVCE2.lib;SDL2.lib;SDL2main.lib;</AdditionalDependencies>
-      <AdditionalDependencies Condition="'$(VisualStudioVersion)' == '14.0'">libcurl_imp.lib;ws2_32.lib;libjpeg-2015.lib;libpng-2015.lib;libzlib.lib;opengl32.lib;pthreadVCE2.lib;SDL2.lib;SDL2main.lib;</AdditionalDependencies>
+      <AdditionalDependencies Condition="'$(VisualStudioVersion)' == '14.0' or '$(VisualStudioVersion)' == '15.0'">libcurl_imp.lib;ws2_32.lib;libjpeg-2015.lib;libpng-2015.lib;libzlib.lib;opengl32.lib;pthreadVCE2.lib;SDL2.lib;SDL2main.lib;</AdditionalDependencies>
       <AdditionalLibraryDirectories>../../third_party/win32/libraries;../../..//libs;</AdditionalLibraryDirectories>
       <AdditionalLibraryDirectories>../../third_party/win32/libraries;../../..//libs;</AdditionalLibraryDirectories>
     </Lib>
     </Lib>
     <PostBuildEvent>
     <PostBuildEvent>

+ 14 - 6
oxygine/src/oxygine/AsyncTask.h

@@ -69,16 +69,24 @@ namespace oxygine
 
 
 
 
         template <class F>
         template <class F>
-        void sync(const F& f)
+        void sync(const F& f, bool addref = true)
         {
         {
             if (_mainThreadSync)
             if (_mainThreadSync)
             {
             {
-                addRef();
-                core::getMainThreadDispatcher().postCallback([ = ]()
+                if (addref)
                 {
                 {
-                    f();
-                    releaseRef();
-                });
+                    addRef();
+                    core::getMainThreadDispatcher().postCallback([ = ]()
+                    {
+                        f();
+                        releaseRef();
+                    });
+                }
+                else
+                {
+                    core::getMainThreadDispatcher().postCallback(f);
+                }
+
                 return;
                 return;
             }
             }
             f();
             f();

+ 1 - 3
oxygine/src/oxygine/Clock.cpp

@@ -179,8 +179,6 @@ namespace oxygine
         int64 t = tm.dwLowDateTime + (int64(tm.dwHighDateTime) << 32);
         int64 t = tm.dwLowDateTime + (int64(tm.dwHighDateTime) << 32);
         int64 utc = (t - 116444736000000000LL) / 10000;
         int64 utc = (t - 116444736000000000LL) / 10000;
         return utc;
         return utc;
-#elif __ANDROID__
-        return jniGetTimeUTCMS();
 #elif EMSCRIPTEN
 #elif EMSCRIPTEN
         struct timeval tv;
         struct timeval tv;
         gettimeofday(&tv, NULL);
         gettimeofday(&tv, NULL);
@@ -188,7 +186,7 @@ namespace oxygine
             (unsigned long long)(tv.tv_sec) * 1000 +
             (unsigned long long)(tv.tv_sec) * 1000 +
             (unsigned long long)(tv.tv_usec) / 1000;
             (unsigned long long)(tv.tv_usec) / 1000;
         return tm;
         return tm;
-#elif __APPLE__
+#elif __APPLE__ || __ANDROID__
         struct timeval tv;
         struct timeval tv;
         gettimeofday(&tv, NULL);
         gettimeofday(&tv, NULL);
         int64 tm =
         int64 tm =

+ 29 - 5
oxygine/src/oxygine/HttpRequestTask.cpp

@@ -118,11 +118,14 @@ namespace oxygine
 
 
     bool HttpRequestTask::_prerun()
     bool HttpRequestTask::_prerun()
     {
     {
+        _progressDeltaDelayed = 0;
+        _progressDispatched = false;
         _suitableResponse = false;
         _suitableResponse = false;
         _receivedContentSize = 0;
         _receivedContentSize = 0;
         _expectedContentSize = 0;
         _expectedContentSize = 0;
         _responseCode = 0;
         _responseCode = 0;
         _response.clear();
         _response.clear();
+        _writeFileError = false;
         if (_fhandle)
         if (_fhandle)
             file::close(_fhandle);
             file::close(_fhandle);
         _fhandle = 0;
         _fhandle = 0;
@@ -130,7 +133,7 @@ namespace oxygine
         if (!_fname.empty())
         if (!_fname.empty())
         {
         {
             const char* mode = _continueDownload ? "ab" : "wb";
             const char* mode = _continueDownload ? "ab" : "wb";
-            _fhandle = file::open(_fname, mode, ep_ignore_error);
+            _fhandle = file::open(_fname, mode);
             OX_ASSERT(_fhandle);
             OX_ASSERT(_fhandle);
 
 
             if (!_fhandle)
             if (!_fhandle)
@@ -161,10 +164,19 @@ namespace oxygine
 
 
     void HttpRequestTask::asyncProgress(int delta, int loaded, int total)
     void HttpRequestTask::asyncProgress(int delta, int loaded, int total)
     {
     {
+        if (_progressDispatched && loaded != total)//dispatch progress only once per frame
+        {
+            _progressDeltaDelayed += delta;
+            return;
+        }
+
+        _progressDispatched = true;
         sync([ = ]()
         sync([ = ]()
         {
         {
-            dispatchProgress(delta, loaded, total);
-        });
+            _progressDispatched = false;
+            dispatchProgress(delta + _progressDeltaDelayed, loaded, total);
+            _progressDeltaDelayed = 0;
+        }, false);
     }
     }
 
 
     void HttpRequestTask::_onError()
     void HttpRequestTask::_onError()
@@ -179,7 +191,10 @@ namespace oxygine
 
 
     void HttpRequestTask::_dispatchComplete()
     void HttpRequestTask::_dispatchComplete()
     {
     {
-        Event ev(_suitableResponse ? COMPLETE : ERROR);
+        unsigned int id = _suitableResponse ? COMPLETE : ERROR;
+        if (_writeFileError)
+            id = ERROR;
+        Event ev(id);
         dispatchEvent(&ev);
         dispatchEvent(&ev);
     }
     }
 
 
@@ -209,8 +224,17 @@ namespace oxygine
         if (!_suitableResponse)
         if (!_suitableResponse)
             return;
             return;
 
 
+
         if (_fhandle)
         if (_fhandle)
-            file::write(_fhandle, data, size);
+        {
+            unsigned int written = file::write(_fhandle, data, size);
+            if (written != size)
+            {
+                log::messageln("WRITE FILE ERROR %d %d", written, size);
+                _writeFileError = true;
+                return;
+            }
+        }
         else
         else
         {
         {
             const char* p = (const char*)data;
             const char* p = (const char*)data;

+ 5 - 0
oxygine/src/oxygine/HttpRequestTask.h

@@ -85,7 +85,12 @@ namespace oxygine
         std::string _url;
         std::string _url;
         std::string _fname;
         std::string _fname;
         file::handle _fhandle;
         file::handle _fhandle;
+        bool _writeFileError;
         bool _cacheEnabled;
         bool _cacheEnabled;
+
+        bool _progressDispatched;
+        unsigned int _progressDeltaDelayed;
+
         std::vector<unsigned char> _response;
         std::vector<unsigned char> _response;
         std::vector<unsigned char> _postData;
         std::vector<unsigned char> _postData;
 
 

+ 3 - 3
oxygine/src/oxygine/core/android/HttpRequestJavaTask.cpp

@@ -48,12 +48,12 @@ namespace oxygine
 
 
     HttpRequestJavaTask::HttpRequestJavaTask(): _handle(0)
     HttpRequestJavaTask::HttpRequestJavaTask(): _handle(0)
     {
     {
-
+        log::messageln("HttpRequestJavaTask %x", this);
     }
     }
 
 
     HttpRequestJavaTask::~HttpRequestJavaTask()
     HttpRequestJavaTask::~HttpRequestJavaTask()
     {
     {
-        log::messageln("~HttpRequestJavaTask");
+        log::messageln("~HttpRequestJavaTask %x", this);
     }
     }
 
 
     void HttpRequestJavaTask::_run()
     void HttpRequestJavaTask::_run()
@@ -108,7 +108,7 @@ namespace oxygine
 
 
         write(data, size);
         write(data, size);
 
 
-        env->ReleaseByteArrayElements(jdata, data, 0);
+        env->ReleaseByteArrayElements(jdata, data, JNI_ABORT);
     }
     }
 
 
     void HttpRequestJavaTask::complete_()
     void HttpRequestJavaTask::complete_()

+ 10 - 1
oxygine/src/oxygine/core/curl/HttpRequestCurlTask.cpp

@@ -3,6 +3,7 @@
 #include "core/ThreadDispatcher.h"
 #include "core/ThreadDispatcher.h"
 #include "SDL.h"
 #include "SDL.h"
 #include "pthread.h"
 #include "pthread.h"
+#include "key.h"
 
 
 namespace oxygine
 namespace oxygine
 {
 {
@@ -84,6 +85,14 @@ namespace oxygine
                     /* get file descriptors from the transfers */
                     /* get file descriptors from the transfers */
                     curl_multi_fdset(multi_handle, &fdread, &fdwrite, &fdexcep, &maxfd);
                     curl_multi_fdset(multi_handle, &fdread, &fdwrite, &fdexcep, &maxfd);
 
 
+#ifdef OX_DEBUG___
+                    if (fdread.fd_count > 0)
+                    {
+                        if (key::isPressed(SDL_SCANCODE_P))
+                            closesocket(fdread.fd_array[0]);
+                    }
+#endif
+
                     if (maxfd == -1)
                     if (maxfd == -1)
                     {
                     {
                         sleep(100);
                         sleep(100);
@@ -194,7 +203,7 @@ namespace oxygine
 
 
     HttpRequestTaskCURL::~HttpRequestTaskCURL()
     HttpRequestTaskCURL::~HttpRequestTaskCURL()
     {
     {
-
+        log::messageln("~HttpRequestTaskCURL");
         if (_easy)
         if (_easy)
             curl_easy_cleanup(_easy);
             curl_easy_cleanup(_easy);
         _easy = 0;
         _easy = 0;

+ 7 - 7
oxygine/src/oxygine/core/file.cpp

@@ -206,23 +206,23 @@ namespace oxygine
             return t;
             return t;
         }
         }
 
 
-        void write(handle fh_, const void* data, unsigned int size)
+        unsigned int  write(handle fh_, const void* data, unsigned int size)
         {
         {
             fileHandle* fh = (fileHandle*)fh_;
             fileHandle* fh = (fileHandle*)fh_;
-            fh->write(data, size);
+            return fh->write(data, size);
         }
         }
 
 
-        void write(const std::string& file, const buffer& data, error_policy ep)
+        unsigned int write(const std::string& file, const buffer& data, error_policy ep)
         {
         {
-            write(file, data.getData(), data.getSize(), ep);
+            return write(file, data.getData(), data.getSize(), ep);
         }
         }
 
 
-        void write(const std::string& file, const void* data, unsigned int size, error_policy ep)
+        unsigned int write(const std::string& file, const void* data, unsigned int size, error_policy ep)
         {
         {
             autoClose ac(open(file, "wb", ep));
             autoClose ac(open(file, "wb", ep));
             if (!ac.getHandle())
             if (!ac.getHandle())
-                return;
-            write(ac.getHandle(), data, size);
+                return 0;
+            return write(ac.getHandle(), data, size);
         }
         }
 
 
         unsigned int size(handle fh_)
         unsigned int size(handle fh_)

+ 3 - 3
oxygine/src/oxygine/core/file.h

@@ -72,11 +72,11 @@ namespace oxygine
         unsigned int read(handle, buffer& dest);
         unsigned int read(handle, buffer& dest);
 
 
         /**Writes bytes to file*/
         /**Writes bytes to file*/
-        void write(handle, const void* data, unsigned int size);
+        unsigned int write(handle, const void* data, unsigned int size);
 
 
         /**Writes bytes to file*/
         /**Writes bytes to file*/
-        void write(const std::string& file, const buffer& data, error_policy ep = ep_show_error);
-        void write(const std::string& file, const void* data, unsigned int size, error_policy ep = ep_show_error);
+        unsigned int write(const std::string& file, const buffer& data, error_policy ep = ep_show_error);
+        unsigned int write(const std::string& file, const void* data, unsigned int size, error_policy ep = ep_show_error);
 
 
         /**Is file exists?*/
         /**Is file exists?*/
         bool exists(const std::string& file);
         bool exists(const std::string& file);

+ 11 - 6
oxygine/src/oxygine/core/log.cpp

@@ -4,8 +4,7 @@
 #include <stdarg.h>
 #include <stdarg.h>
 #include <string.h>
 #include <string.h>
 #include "../utils/stringUtils.h"
 #include "../utils/stringUtils.h"
-
-
+#include "../core/oxygine.h"
 
 
 
 
 #if defined(ANDROID)
 #if defined(ANDROID)
@@ -41,6 +40,12 @@ namespace oxygine
 
 
     namespace log
     namespace log
     {
     {
+        int getTime()
+        {
+            static int64 startTime = getTimeUTCMS();
+            return getTimeUTCMS() - startTime;
+        }
+
         void enable()
         void enable()
         {
         {
             _enabled = true;
             _enabled = true;
@@ -133,7 +138,7 @@ namespace oxygine
         void message_va(const char* format, va_list args)
         void message_va(const char* format, va_list args)
         {
         {
             char tm[16];
             char tm[16];
-            safe_sprintf(tm, "%03d", getTimeMS());
+            safe_sprintf(tm, "%03d", getTime());
             out_prefix(0, tm, format, args);
             out_prefix(0, tm, format, args);
         }
         }
 
 
@@ -148,7 +153,7 @@ namespace oxygine
         void warning_va(const char* format, va_list args)
         void warning_va(const char* format, va_list args)
         {
         {
             char tm[32];
             char tm[32];
-            safe_sprintf(tm, "%03d warning: ", getTimeMS());
+            safe_sprintf(tm, "%03d warning: ", getTime());
 
 
             out_line_prefix(0, tm, format, args);
             out_line_prefix(0, tm, format, args);
         }
         }
@@ -164,7 +169,7 @@ namespace oxygine
         void error_va(const char* format, va_list args)
         void error_va(const char* format, va_list args)
         {
         {
             char tm[32];
             char tm[32];
-            safe_sprintf(tm, "%03d error: ", getTimeMS());
+            safe_sprintf(tm, "%03d error: ", getTime());
             out_line_prefix(_eh, tm, format, args);
             out_line_prefix(_eh, tm, format, args);
         }
         }
 
 
@@ -179,7 +184,7 @@ namespace oxygine
         void messageln_va(const char* format, va_list args)
         void messageln_va(const char* format, va_list args)
         {
         {
             char tm[16];
             char tm[16];
-            safe_sprintf(tm, "%03d ", getTimeMS());
+            safe_sprintf(tm, "%03d ", getTime());
             out_line_prefix(0, tm, format, args);
             out_line_prefix(0, tm, format, args);
         }
         }
     }
     }

+ 5 - 3
oxygine/src/oxygine/res/ResFontBM.cpp

@@ -485,15 +485,17 @@ namespace oxygine
         if (fb.empty())
         if (fb.empty())
             return;
             return;
 
 
-        if (!(fb[0] == '<' && fb[1] == '?' && fb[2] == 'x'))
+        pugi::xml_document doc;
+        bool isXml = doc.load_buffer_inplace(&fb.data[0], fb.data.size());
+
+        if (!isXml)
         {
         {
             _createFontFromTxt(context, reinterpret_cast<char*>(fb.getData()), path, downsample);
             _createFontFromTxt(context, reinterpret_cast<char*>(fb.getData()), path, downsample);
             return;
             return;
         }
         }
         /////////////////////////////////////////////////
         /////////////////////////////////////////////////
 
 
-        pugi::xml_document doc;
-        doc.load_buffer_inplace(&fb.data[0], fb.data.size());
+
 
 
 
 
         pugi::xml_node root = doc.first_child();
         pugi::xml_node root = doc.first_child();

+ 1 - 0
tools/others/gen_templates.py

@@ -16,6 +16,7 @@ def gen(path, project=""):
     #projs = ("win32", )
     #projs = ("win32", )
     projs = ("cmake", )
     projs = ("cmake", )
     projs = ("android", )
     projs = ("android", )
+    projs = ("win32", )
     #projs = ("ios", )
     #projs = ("ios", )
     # projs = ("emscripten", )
     # projs = ("emscripten", )
 
 

+ 4 - 0
tools/templates/proj.win32/${PROJECT}.vcxproj

@@ -30,6 +30,8 @@
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v141_xp</PlatformToolset>
   </PropertyGroup>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <ConfigurationType>Application</ConfigurationType>
@@ -47,6 +49,8 @@
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '12.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v120_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
     <PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v140_xp</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset>
+    <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0' and exists('$(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A')">v141_xp</PlatformToolset>
   </PropertyGroup>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   <ImportGroup Label="ExtensionSettings">