Merge pull request #11452 from MSOpenTech/v3-remove-wp8
V3 remove WP8 project files
12
README.md
|
@ -89,11 +89,15 @@ Run
|
||||||
|
|
||||||
### Build and run new project for Windows 8.1 and Windows Phone 8.1 ###
|
### Build and run new project for Windows 8.1 and Windows Phone 8.1 ###
|
||||||
|
|
||||||
$ cocos new MyGame -p com.bar.foo -l cpp -d projects
|
$ cocos new MyGame -p com.your_company.mygame -l cpp -d projects
|
||||||
|
|
||||||
With the Cocos2d-x v3.3, you can create Universal App (Two projects at the same time: Windows(Tablet) and Windows Phone 8.1 )
|
Visual Studio 2013 Update 4 or later is required.
|
||||||
|
|
||||||
|
Starting with Cocos2d-x v3.3, you can create Windows 8.1 Universal Apps (Windows Store and Windows Phone 8.1)
|
||||||
See more info on How to install and Create games on Windows RT (Windows and Windows Phone 8.1) at http://msopentech.github.io/cocos2d-x/
|
See more info on How to install and Create games on Windows RT (Windows and Windows Phone 8.1) at http://msopentech.github.io/cocos2d-x/
|
||||||
|
|
||||||
|
Starting with Cocos2d-x v3.6 there will no longer be support for Windows Phone 8.0
|
||||||
|
|
||||||
Main features
|
Main features
|
||||||
-------------
|
-------------
|
||||||
* Scene management (workflow)
|
* Scene management (workflow)
|
||||||
|
@ -184,6 +188,10 @@ $ bin/lua-empty-test/lua-empty-test
|
||||||
|
|
||||||
Open the `cocos2d-x/build/cocos2d-win32.vc2012.sln`
|
Open the `cocos2d-x/build/cocos2d-win32.vc2012.sln`
|
||||||
|
|
||||||
|
* For Windows 8.1 Universal Apps (Phone and Store)
|
||||||
|
|
||||||
|
Open the `cocos2d-x/build/cocos2d-win8.1-universal.sln`
|
||||||
|
|
||||||
* For Android
|
* For Android
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -1,247 +0,0 @@
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
|
||||||
# Visual Studio 2013
|
|
||||||
VisualStudioVersion = 12.0.30723.0
|
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libSpine", "..\cocos\editor-support\spine\proj.wp8\libSpine.vcxproj", "{7D4FC6EB-9497-4804-98F3-3EAEDC896154}"
|
|
||||||
EndProject
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Box2D", "..\external\Box2D\proj.wp8\Box2D.vcxproj", "{C55734A3-702C-4FA1-B950-32C8E169302F}"
|
|
||||||
EndProject
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "cpp-tests-wp8-xaml", "cpp-tests-wp8-xaml", "{671E147E-1DBD-41FC-99B3-2119CA828C8A}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "cpp-tests", "..\tests\cpp-tests\proj.wp8-xaml\cpp-tests\cpp-tests.csproj", "{60D53713-1675-4466-81DC-D67A031C3D21}"
|
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
|
||||||
{86B2C23C-3A6C-4C4E-AB0E-16A8CC1523E9} = {86B2C23C-3A6C-4C4E-AB0E-16A8CC1523E9}
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cpp-testsComponent", "..\tests\cpp-tests\proj.wp8-xaml\cpp-testsComponent\cpp-testsComponent.vcxproj", "{86B2C23C-3A6C-4C4E-AB0E-16A8CC1523E9}"
|
|
||||||
EndProject
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "cpp-empty-test-wp8-xaml", "cpp-empty-test-wp8-xaml", "{2C306303-EB4F-4058-8CA0-1F28A4FECE39}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "cpp-empty-test", "..\tests\cpp-empty-test\proj-wp8-xaml\cpp-empty-test\cpp-empty-test.csproj", "{5921FE12-7EF3-4847-8453-42EF286DDBE7}"
|
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
|
||||||
{F5D665F8-AE19-4F3F-99A7-230A1E8305D2} = {F5D665F8-AE19-4F3F-99A7-230A1E8305D2}
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cpp-empty-testComponent", "..\tests\cpp-empty-test\proj-wp8-xaml\cpp-empty-testComponent\cpp-empty-testComponent.vcxproj", "{F5D665F8-AE19-4F3F-99A7-230A1E8305D2}"
|
|
||||||
EndProject
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CopyTemplateFiles", "..\cocos\platform\wp8-xaml\CopyTemplateFiles.vcxproj", "{271FEE84-9198-4C26-8567-4247C563B0B1}"
|
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
|
||||||
{5921FE12-7EF3-4847-8453-42EF286DDBE7} = {5921FE12-7EF3-4847-8453-42EF286DDBE7}
|
|
||||||
{60D53713-1675-4466-81DC-D67A031C3D21} = {60D53713-1675-4466-81DC-D67A031C3D21}
|
|
||||||
{86B2C23C-3A6C-4C4E-AB0E-16A8CC1523E9} = {86B2C23C-3A6C-4C4E-AB0E-16A8CC1523E9}
|
|
||||||
{F5D665F8-AE19-4F3F-99A7-230A1E8305D2} = {F5D665F8-AE19-4F3F-99A7-230A1E8305D2}
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcocos2d_wp8", "..\cocos\2d\libcocos2d_wp8.vcxproj", "{7C5DBC42-27F6-4978-AABC-02BA77E2A7F0}"
|
|
||||||
EndProject
|
|
||||||
Global
|
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
||||||
Debug|Any CPU = Debug|Any CPU
|
|
||||||
Debug|ARM = Debug|ARM
|
|
||||||
Debug|Mixed Platforms = Debug|Mixed Platforms
|
|
||||||
Debug|Win32 = Debug|Win32
|
|
||||||
Debug|x64 = Debug|x64
|
|
||||||
Debug|x86 = Debug|x86
|
|
||||||
Release|Any CPU = Release|Any CPU
|
|
||||||
Release|ARM = Release|ARM
|
|
||||||
Release|Mixed Platforms = Release|Mixed Platforms
|
|
||||||
Release|Win32 = Release|Win32
|
|
||||||
Release|x64 = Release|x64
|
|
||||||
Release|x86 = Release|x86
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
||||||
{7D4FC6EB-9497-4804-98F3-3EAEDC896154}.Debug|Any CPU.ActiveCfg = Debug|Win32
|
|
||||||
{7D4FC6EB-9497-4804-98F3-3EAEDC896154}.Debug|ARM.ActiveCfg = Debug|ARM
|
|
||||||
{7D4FC6EB-9497-4804-98F3-3EAEDC896154}.Debug|ARM.Build.0 = Debug|ARM
|
|
||||||
{7D4FC6EB-9497-4804-98F3-3EAEDC896154}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
|
||||||
{7D4FC6EB-9497-4804-98F3-3EAEDC896154}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
|
||||||
{7D4FC6EB-9497-4804-98F3-3EAEDC896154}.Debug|Win32.ActiveCfg = Debug|Win32
|
|
||||||
{7D4FC6EB-9497-4804-98F3-3EAEDC896154}.Debug|Win32.Build.0 = Debug|Win32
|
|
||||||
{7D4FC6EB-9497-4804-98F3-3EAEDC896154}.Debug|x64.ActiveCfg = Debug|Win32
|
|
||||||
{7D4FC6EB-9497-4804-98F3-3EAEDC896154}.Debug|x86.ActiveCfg = Debug|Win32
|
|
||||||
{7D4FC6EB-9497-4804-98F3-3EAEDC896154}.Debug|x86.Build.0 = Debug|Win32
|
|
||||||
{7D4FC6EB-9497-4804-98F3-3EAEDC896154}.Release|Any CPU.ActiveCfg = Release|Win32
|
|
||||||
{7D4FC6EB-9497-4804-98F3-3EAEDC896154}.Release|ARM.ActiveCfg = Release|ARM
|
|
||||||
{7D4FC6EB-9497-4804-98F3-3EAEDC896154}.Release|ARM.Build.0 = Release|ARM
|
|
||||||
{7D4FC6EB-9497-4804-98F3-3EAEDC896154}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
|
||||||
{7D4FC6EB-9497-4804-98F3-3EAEDC896154}.Release|Mixed Platforms.Build.0 = Release|Win32
|
|
||||||
{7D4FC6EB-9497-4804-98F3-3EAEDC896154}.Release|Win32.ActiveCfg = Release|Win32
|
|
||||||
{7D4FC6EB-9497-4804-98F3-3EAEDC896154}.Release|Win32.Build.0 = Release|Win32
|
|
||||||
{7D4FC6EB-9497-4804-98F3-3EAEDC896154}.Release|x64.ActiveCfg = Release|Win32
|
|
||||||
{7D4FC6EB-9497-4804-98F3-3EAEDC896154}.Release|x86.ActiveCfg = Release|Win32
|
|
||||||
{7D4FC6EB-9497-4804-98F3-3EAEDC896154}.Release|x86.Build.0 = Release|Win32
|
|
||||||
{C55734A3-702C-4FA1-B950-32C8E169302F}.Debug|Any CPU.ActiveCfg = Debug|Win32
|
|
||||||
{C55734A3-702C-4FA1-B950-32C8E169302F}.Debug|ARM.ActiveCfg = Debug|ARM
|
|
||||||
{C55734A3-702C-4FA1-B950-32C8E169302F}.Debug|ARM.Build.0 = Debug|ARM
|
|
||||||
{C55734A3-702C-4FA1-B950-32C8E169302F}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
|
||||||
{C55734A3-702C-4FA1-B950-32C8E169302F}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
|
||||||
{C55734A3-702C-4FA1-B950-32C8E169302F}.Debug|Win32.ActiveCfg = Debug|Win32
|
|
||||||
{C55734A3-702C-4FA1-B950-32C8E169302F}.Debug|Win32.Build.0 = Debug|Win32
|
|
||||||
{C55734A3-702C-4FA1-B950-32C8E169302F}.Debug|x64.ActiveCfg = Debug|Win32
|
|
||||||
{C55734A3-702C-4FA1-B950-32C8E169302F}.Debug|x86.ActiveCfg = Debug|Win32
|
|
||||||
{C55734A3-702C-4FA1-B950-32C8E169302F}.Debug|x86.Build.0 = Debug|Win32
|
|
||||||
{C55734A3-702C-4FA1-B950-32C8E169302F}.Release|Any CPU.ActiveCfg = Release|Win32
|
|
||||||
{C55734A3-702C-4FA1-B950-32C8E169302F}.Release|ARM.ActiveCfg = Release|ARM
|
|
||||||
{C55734A3-702C-4FA1-B950-32C8E169302F}.Release|ARM.Build.0 = Release|ARM
|
|
||||||
{C55734A3-702C-4FA1-B950-32C8E169302F}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
|
||||||
{C55734A3-702C-4FA1-B950-32C8E169302F}.Release|Mixed Platforms.Build.0 = Release|Win32
|
|
||||||
{C55734A3-702C-4FA1-B950-32C8E169302F}.Release|Win32.ActiveCfg = Release|Win32
|
|
||||||
{C55734A3-702C-4FA1-B950-32C8E169302F}.Release|Win32.Build.0 = Release|Win32
|
|
||||||
{C55734A3-702C-4FA1-B950-32C8E169302F}.Release|x64.ActiveCfg = Release|Win32
|
|
||||||
{C55734A3-702C-4FA1-B950-32C8E169302F}.Release|x86.ActiveCfg = Release|Win32
|
|
||||||
{C55734A3-702C-4FA1-B950-32C8E169302F}.Release|x86.Build.0 = Release|Win32
|
|
||||||
{60D53713-1675-4466-81DC-D67A031C3D21}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{60D53713-1675-4466-81DC-D67A031C3D21}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{60D53713-1675-4466-81DC-D67A031C3D21}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
|
|
||||||
{60D53713-1675-4466-81DC-D67A031C3D21}.Debug|ARM.ActiveCfg = Debug|ARM
|
|
||||||
{60D53713-1675-4466-81DC-D67A031C3D21}.Debug|ARM.Build.0 = Debug|ARM
|
|
||||||
{60D53713-1675-4466-81DC-D67A031C3D21}.Debug|ARM.Deploy.0 = Debug|ARM
|
|
||||||
{60D53713-1675-4466-81DC-D67A031C3D21}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
|
|
||||||
{60D53713-1675-4466-81DC-D67A031C3D21}.Debug|Mixed Platforms.Build.0 = Debug|x86
|
|
||||||
{60D53713-1675-4466-81DC-D67A031C3D21}.Debug|Mixed Platforms.Deploy.0 = Debug|x86
|
|
||||||
{60D53713-1675-4466-81DC-D67A031C3D21}.Debug|Win32.ActiveCfg = Debug|x86
|
|
||||||
{60D53713-1675-4466-81DC-D67A031C3D21}.Debug|Win32.Build.0 = Debug|x86
|
|
||||||
{60D53713-1675-4466-81DC-D67A031C3D21}.Debug|Win32.Deploy.0 = Debug|x86
|
|
||||||
{60D53713-1675-4466-81DC-D67A031C3D21}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{60D53713-1675-4466-81DC-D67A031C3D21}.Debug|x86.ActiveCfg = Debug|x86
|
|
||||||
{60D53713-1675-4466-81DC-D67A031C3D21}.Debug|x86.Build.0 = Debug|x86
|
|
||||||
{60D53713-1675-4466-81DC-D67A031C3D21}.Debug|x86.Deploy.0 = Debug|x86
|
|
||||||
{60D53713-1675-4466-81DC-D67A031C3D21}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{60D53713-1675-4466-81DC-D67A031C3D21}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{60D53713-1675-4466-81DC-D67A031C3D21}.Release|Any CPU.Deploy.0 = Release|Any CPU
|
|
||||||
{60D53713-1675-4466-81DC-D67A031C3D21}.Release|ARM.ActiveCfg = Release|ARM
|
|
||||||
{60D53713-1675-4466-81DC-D67A031C3D21}.Release|ARM.Build.0 = Release|ARM
|
|
||||||
{60D53713-1675-4466-81DC-D67A031C3D21}.Release|ARM.Deploy.0 = Release|ARM
|
|
||||||
{60D53713-1675-4466-81DC-D67A031C3D21}.Release|Mixed Platforms.ActiveCfg = Release|x86
|
|
||||||
{60D53713-1675-4466-81DC-D67A031C3D21}.Release|Mixed Platforms.Build.0 = Release|x86
|
|
||||||
{60D53713-1675-4466-81DC-D67A031C3D21}.Release|Mixed Platforms.Deploy.0 = Release|x86
|
|
||||||
{60D53713-1675-4466-81DC-D67A031C3D21}.Release|Win32.ActiveCfg = Release|x86
|
|
||||||
{60D53713-1675-4466-81DC-D67A031C3D21}.Release|Win32.Build.0 = Release|x86
|
|
||||||
{60D53713-1675-4466-81DC-D67A031C3D21}.Release|Win32.Deploy.0 = Release|x86
|
|
||||||
{60D53713-1675-4466-81DC-D67A031C3D21}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{60D53713-1675-4466-81DC-D67A031C3D21}.Release|x86.ActiveCfg = Release|x86
|
|
||||||
{60D53713-1675-4466-81DC-D67A031C3D21}.Release|x86.Build.0 = Release|x86
|
|
||||||
{60D53713-1675-4466-81DC-D67A031C3D21}.Release|x86.Deploy.0 = Release|x86
|
|
||||||
{86B2C23C-3A6C-4C4E-AB0E-16A8CC1523E9}.Debug|Any CPU.ActiveCfg = Debug|Win32
|
|
||||||
{86B2C23C-3A6C-4C4E-AB0E-16A8CC1523E9}.Debug|ARM.ActiveCfg = Debug|ARM
|
|
||||||
{86B2C23C-3A6C-4C4E-AB0E-16A8CC1523E9}.Debug|ARM.Build.0 = Debug|ARM
|
|
||||||
{86B2C23C-3A6C-4C4E-AB0E-16A8CC1523E9}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
|
||||||
{86B2C23C-3A6C-4C4E-AB0E-16A8CC1523E9}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
|
||||||
{86B2C23C-3A6C-4C4E-AB0E-16A8CC1523E9}.Debug|Win32.ActiveCfg = Debug|Win32
|
|
||||||
{86B2C23C-3A6C-4C4E-AB0E-16A8CC1523E9}.Debug|Win32.Build.0 = Debug|Win32
|
|
||||||
{86B2C23C-3A6C-4C4E-AB0E-16A8CC1523E9}.Debug|x64.ActiveCfg = Debug|Win32
|
|
||||||
{86B2C23C-3A6C-4C4E-AB0E-16A8CC1523E9}.Debug|x86.ActiveCfg = Debug|Win32
|
|
||||||
{86B2C23C-3A6C-4C4E-AB0E-16A8CC1523E9}.Debug|x86.Build.0 = Debug|Win32
|
|
||||||
{86B2C23C-3A6C-4C4E-AB0E-16A8CC1523E9}.Release|Any CPU.ActiveCfg = Release|Win32
|
|
||||||
{86B2C23C-3A6C-4C4E-AB0E-16A8CC1523E9}.Release|ARM.ActiveCfg = Release|ARM
|
|
||||||
{86B2C23C-3A6C-4C4E-AB0E-16A8CC1523E9}.Release|ARM.Build.0 = Release|ARM
|
|
||||||
{86B2C23C-3A6C-4C4E-AB0E-16A8CC1523E9}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
|
||||||
{86B2C23C-3A6C-4C4E-AB0E-16A8CC1523E9}.Release|Mixed Platforms.Build.0 = Release|Win32
|
|
||||||
{86B2C23C-3A6C-4C4E-AB0E-16A8CC1523E9}.Release|Win32.ActiveCfg = Release|Win32
|
|
||||||
{86B2C23C-3A6C-4C4E-AB0E-16A8CC1523E9}.Release|Win32.Build.0 = Release|Win32
|
|
||||||
{86B2C23C-3A6C-4C4E-AB0E-16A8CC1523E9}.Release|x64.ActiveCfg = Release|Win32
|
|
||||||
{86B2C23C-3A6C-4C4E-AB0E-16A8CC1523E9}.Release|x86.ActiveCfg = Release|Win32
|
|
||||||
{86B2C23C-3A6C-4C4E-AB0E-16A8CC1523E9}.Release|x86.Build.0 = Release|Win32
|
|
||||||
{5921FE12-7EF3-4847-8453-42EF286DDBE7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{5921FE12-7EF3-4847-8453-42EF286DDBE7}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{5921FE12-7EF3-4847-8453-42EF286DDBE7}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
|
|
||||||
{5921FE12-7EF3-4847-8453-42EF286DDBE7}.Debug|ARM.ActiveCfg = Debug|ARM
|
|
||||||
{5921FE12-7EF3-4847-8453-42EF286DDBE7}.Debug|ARM.Build.0 = Debug|ARM
|
|
||||||
{5921FE12-7EF3-4847-8453-42EF286DDBE7}.Debug|ARM.Deploy.0 = Debug|ARM
|
|
||||||
{5921FE12-7EF3-4847-8453-42EF286DDBE7}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
|
|
||||||
{5921FE12-7EF3-4847-8453-42EF286DDBE7}.Debug|Mixed Platforms.Build.0 = Debug|x86
|
|
||||||
{5921FE12-7EF3-4847-8453-42EF286DDBE7}.Debug|Mixed Platforms.Deploy.0 = Debug|x86
|
|
||||||
{5921FE12-7EF3-4847-8453-42EF286DDBE7}.Debug|Win32.ActiveCfg = Debug|x86
|
|
||||||
{5921FE12-7EF3-4847-8453-42EF286DDBE7}.Debug|Win32.Build.0 = Debug|x86
|
|
||||||
{5921FE12-7EF3-4847-8453-42EF286DDBE7}.Debug|Win32.Deploy.0 = Debug|x86
|
|
||||||
{5921FE12-7EF3-4847-8453-42EF286DDBE7}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{5921FE12-7EF3-4847-8453-42EF286DDBE7}.Debug|x86.ActiveCfg = Debug|x86
|
|
||||||
{5921FE12-7EF3-4847-8453-42EF286DDBE7}.Debug|x86.Build.0 = Debug|x86
|
|
||||||
{5921FE12-7EF3-4847-8453-42EF286DDBE7}.Debug|x86.Deploy.0 = Debug|x86
|
|
||||||
{5921FE12-7EF3-4847-8453-42EF286DDBE7}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{5921FE12-7EF3-4847-8453-42EF286DDBE7}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{5921FE12-7EF3-4847-8453-42EF286DDBE7}.Release|Any CPU.Deploy.0 = Release|Any CPU
|
|
||||||
{5921FE12-7EF3-4847-8453-42EF286DDBE7}.Release|ARM.ActiveCfg = Release|ARM
|
|
||||||
{5921FE12-7EF3-4847-8453-42EF286DDBE7}.Release|ARM.Build.0 = Release|ARM
|
|
||||||
{5921FE12-7EF3-4847-8453-42EF286DDBE7}.Release|ARM.Deploy.0 = Release|ARM
|
|
||||||
{5921FE12-7EF3-4847-8453-42EF286DDBE7}.Release|Mixed Platforms.ActiveCfg = Release|x86
|
|
||||||
{5921FE12-7EF3-4847-8453-42EF286DDBE7}.Release|Mixed Platforms.Build.0 = Release|x86
|
|
||||||
{5921FE12-7EF3-4847-8453-42EF286DDBE7}.Release|Mixed Platforms.Deploy.0 = Release|x86
|
|
||||||
{5921FE12-7EF3-4847-8453-42EF286DDBE7}.Release|Win32.ActiveCfg = Release|x86
|
|
||||||
{5921FE12-7EF3-4847-8453-42EF286DDBE7}.Release|Win32.Build.0 = Release|x86
|
|
||||||
{5921FE12-7EF3-4847-8453-42EF286DDBE7}.Release|Win32.Deploy.0 = Release|x86
|
|
||||||
{5921FE12-7EF3-4847-8453-42EF286DDBE7}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{5921FE12-7EF3-4847-8453-42EF286DDBE7}.Release|x86.ActiveCfg = Release|x86
|
|
||||||
{5921FE12-7EF3-4847-8453-42EF286DDBE7}.Release|x86.Build.0 = Release|x86
|
|
||||||
{5921FE12-7EF3-4847-8453-42EF286DDBE7}.Release|x86.Deploy.0 = Release|x86
|
|
||||||
{F5D665F8-AE19-4F3F-99A7-230A1E8305D2}.Debug|Any CPU.ActiveCfg = Debug|Win32
|
|
||||||
{F5D665F8-AE19-4F3F-99A7-230A1E8305D2}.Debug|ARM.ActiveCfg = Debug|ARM
|
|
||||||
{F5D665F8-AE19-4F3F-99A7-230A1E8305D2}.Debug|ARM.Build.0 = Debug|ARM
|
|
||||||
{F5D665F8-AE19-4F3F-99A7-230A1E8305D2}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
|
||||||
{F5D665F8-AE19-4F3F-99A7-230A1E8305D2}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
|
||||||
{F5D665F8-AE19-4F3F-99A7-230A1E8305D2}.Debug|Win32.ActiveCfg = Debug|Win32
|
|
||||||
{F5D665F8-AE19-4F3F-99A7-230A1E8305D2}.Debug|Win32.Build.0 = Debug|Win32
|
|
||||||
{F5D665F8-AE19-4F3F-99A7-230A1E8305D2}.Debug|x64.ActiveCfg = Debug|Win32
|
|
||||||
{F5D665F8-AE19-4F3F-99A7-230A1E8305D2}.Debug|x86.ActiveCfg = Debug|Win32
|
|
||||||
{F5D665F8-AE19-4F3F-99A7-230A1E8305D2}.Debug|x86.Build.0 = Debug|Win32
|
|
||||||
{F5D665F8-AE19-4F3F-99A7-230A1E8305D2}.Release|Any CPU.ActiveCfg = Release|Win32
|
|
||||||
{F5D665F8-AE19-4F3F-99A7-230A1E8305D2}.Release|ARM.ActiveCfg = Release|ARM
|
|
||||||
{F5D665F8-AE19-4F3F-99A7-230A1E8305D2}.Release|ARM.Build.0 = Release|ARM
|
|
||||||
{F5D665F8-AE19-4F3F-99A7-230A1E8305D2}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
|
||||||
{F5D665F8-AE19-4F3F-99A7-230A1E8305D2}.Release|Mixed Platforms.Build.0 = Release|Win32
|
|
||||||
{F5D665F8-AE19-4F3F-99A7-230A1E8305D2}.Release|Win32.ActiveCfg = Release|Win32
|
|
||||||
{F5D665F8-AE19-4F3F-99A7-230A1E8305D2}.Release|Win32.Build.0 = Release|Win32
|
|
||||||
{F5D665F8-AE19-4F3F-99A7-230A1E8305D2}.Release|x64.ActiveCfg = Release|Win32
|
|
||||||
{F5D665F8-AE19-4F3F-99A7-230A1E8305D2}.Release|x86.ActiveCfg = Release|Win32
|
|
||||||
{F5D665F8-AE19-4F3F-99A7-230A1E8305D2}.Release|x86.Build.0 = Release|Win32
|
|
||||||
{271FEE84-9198-4C26-8567-4247C563B0B1}.Debug|Any CPU.ActiveCfg = Debug|Win32
|
|
||||||
{271FEE84-9198-4C26-8567-4247C563B0B1}.Debug|ARM.ActiveCfg = Debug|ARM
|
|
||||||
{271FEE84-9198-4C26-8567-4247C563B0B1}.Debug|ARM.Build.0 = Debug|ARM
|
|
||||||
{271FEE84-9198-4C26-8567-4247C563B0B1}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
|
||||||
{271FEE84-9198-4C26-8567-4247C563B0B1}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
|
||||||
{271FEE84-9198-4C26-8567-4247C563B0B1}.Debug|Win32.ActiveCfg = Debug|Win32
|
|
||||||
{271FEE84-9198-4C26-8567-4247C563B0B1}.Debug|Win32.Build.0 = Debug|Win32
|
|
||||||
{271FEE84-9198-4C26-8567-4247C563B0B1}.Debug|x64.ActiveCfg = Debug|Win32
|
|
||||||
{271FEE84-9198-4C26-8567-4247C563B0B1}.Debug|x86.ActiveCfg = Debug|Win32
|
|
||||||
{271FEE84-9198-4C26-8567-4247C563B0B1}.Debug|x86.Build.0 = Debug|Win32
|
|
||||||
{271FEE84-9198-4C26-8567-4247C563B0B1}.Release|Any CPU.ActiveCfg = Release|Win32
|
|
||||||
{271FEE84-9198-4C26-8567-4247C563B0B1}.Release|ARM.ActiveCfg = Release|ARM
|
|
||||||
{271FEE84-9198-4C26-8567-4247C563B0B1}.Release|ARM.Build.0 = Release|ARM
|
|
||||||
{271FEE84-9198-4C26-8567-4247C563B0B1}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
|
||||||
{271FEE84-9198-4C26-8567-4247C563B0B1}.Release|Mixed Platforms.Build.0 = Release|Win32
|
|
||||||
{271FEE84-9198-4C26-8567-4247C563B0B1}.Release|Win32.ActiveCfg = Release|Win32
|
|
||||||
{271FEE84-9198-4C26-8567-4247C563B0B1}.Release|Win32.Build.0 = Release|Win32
|
|
||||||
{271FEE84-9198-4C26-8567-4247C563B0B1}.Release|x64.ActiveCfg = Release|Win32
|
|
||||||
{271FEE84-9198-4C26-8567-4247C563B0B1}.Release|x86.ActiveCfg = Release|Win32
|
|
||||||
{271FEE84-9198-4C26-8567-4247C563B0B1}.Release|x86.Build.0 = Release|Win32
|
|
||||||
{7C5DBC42-27F6-4978-AABC-02BA77E2A7F0}.Debug|Any CPU.ActiveCfg = Debug|Win32
|
|
||||||
{7C5DBC42-27F6-4978-AABC-02BA77E2A7F0}.Debug|ARM.ActiveCfg = Debug|ARM
|
|
||||||
{7C5DBC42-27F6-4978-AABC-02BA77E2A7F0}.Debug|ARM.Build.0 = Debug|ARM
|
|
||||||
{7C5DBC42-27F6-4978-AABC-02BA77E2A7F0}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
|
||||||
{7C5DBC42-27F6-4978-AABC-02BA77E2A7F0}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
|
||||||
{7C5DBC42-27F6-4978-AABC-02BA77E2A7F0}.Debug|Win32.ActiveCfg = Debug|Win32
|
|
||||||
{7C5DBC42-27F6-4978-AABC-02BA77E2A7F0}.Debug|Win32.Build.0 = Debug|Win32
|
|
||||||
{7C5DBC42-27F6-4978-AABC-02BA77E2A7F0}.Debug|x64.ActiveCfg = Debug|Win32
|
|
||||||
{7C5DBC42-27F6-4978-AABC-02BA77E2A7F0}.Debug|x86.ActiveCfg = Debug|Win32
|
|
||||||
{7C5DBC42-27F6-4978-AABC-02BA77E2A7F0}.Debug|x86.Build.0 = Debug|Win32
|
|
||||||
{7C5DBC42-27F6-4978-AABC-02BA77E2A7F0}.Release|Any CPU.ActiveCfg = Release|Win32
|
|
||||||
{7C5DBC42-27F6-4978-AABC-02BA77E2A7F0}.Release|ARM.ActiveCfg = Release|ARM
|
|
||||||
{7C5DBC42-27F6-4978-AABC-02BA77E2A7F0}.Release|ARM.Build.0 = Release|ARM
|
|
||||||
{7C5DBC42-27F6-4978-AABC-02BA77E2A7F0}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
|
||||||
{7C5DBC42-27F6-4978-AABC-02BA77E2A7F0}.Release|Mixed Platforms.Build.0 = Release|Win32
|
|
||||||
{7C5DBC42-27F6-4978-AABC-02BA77E2A7F0}.Release|Win32.ActiveCfg = Release|Win32
|
|
||||||
{7C5DBC42-27F6-4978-AABC-02BA77E2A7F0}.Release|Win32.Build.0 = Release|Win32
|
|
||||||
{7C5DBC42-27F6-4978-AABC-02BA77E2A7F0}.Release|x64.ActiveCfg = Release|Win32
|
|
||||||
{7C5DBC42-27F6-4978-AABC-02BA77E2A7F0}.Release|x86.ActiveCfg = Release|Win32
|
|
||||||
{7C5DBC42-27F6-4978-AABC-02BA77E2A7F0}.Release|x86.Build.0 = Release|Win32
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
|
||||||
HideSolutionNode = FALSE
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(NestedProjects) = preSolution
|
|
||||||
{60D53713-1675-4466-81DC-D67A031C3D21} = {671E147E-1DBD-41FC-99B3-2119CA828C8A}
|
|
||||||
{86B2C23C-3A6C-4C4E-AB0E-16A8CC1523E9} = {671E147E-1DBD-41FC-99B3-2119CA828C8A}
|
|
||||||
{5921FE12-7EF3-4847-8453-42EF286DDBE7} = {2C306303-EB4F-4058-8CA0-1F28A4FECE39}
|
|
||||||
{F5D665F8-AE19-4F3F-99A7-230A1E8305D2} = {2C306303-EB4F-4058-8CA0-1F28A4FECE39}
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
|
@ -1,63 +0,0 @@
|
||||||
set IN_DIR=.\..\..\..\angle\src\WP8\redist\vs2012\ARM\Release
|
|
||||||
|
|
||||||
set OUT_DIR=.\..\..\external\wp8-specific\angle\prebuilt\ARM\
|
|
||||||
xcopy "%IN_DIR%\libGLESv2_phone\libGLESv2_phone.dll" "%OUT_DIR%" /iycq
|
|
||||||
|
|
||||||
xcopy "%IN_DIR%\libGLESv2_phone\libGLESv2_phone.lib" "%OUT_DIR%" /iycq
|
|
||||||
|
|
||||||
xcopy "%IN_DIR%\libEGL_phone\libEGL_phone.dll" "%OUT_DIR%" /iycq
|
|
||||||
|
|
||||||
xcopy "%IN_DIR%\libEGL_phone\libEGL_phone.lib" "%OUT_DIR%" /iycq
|
|
||||||
|
|
||||||
xcopy "%IN_DIR%\esUtil_phone\esUtil_phone.lib" "%OUT_DIR%" /iycq
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
set IN_DIR=.\..\..\..\angle\src\WP8\redist\vs2012\Win32\Release
|
|
||||||
|
|
||||||
set OUT_DIR=.\..\..\external\wp8-specific\angle\prebuilt\Win32\
|
|
||||||
|
|
||||||
|
|
||||||
xcopy "%IN_DIR%\libGLESv2_phone\libGLESv2_phone.dll" "%OUT_DIR%" /iycq
|
|
||||||
|
|
||||||
xcopy "%IN_DIR%\libGLESv2_phone\libGLESv2_phone.lib" "%OUT_DIR%" /iycq
|
|
||||||
|
|
||||||
xcopy "%IN_DIR%\libEGL_phone\libEGL_phone.dll" "%OUT_DIR%" /iycq
|
|
||||||
|
|
||||||
xcopy "%IN_DIR%\libEGL_phone\libEGL_phone.lib" "%OUT_DIR%" /iycq
|
|
||||||
|
|
||||||
xcopy "%IN_DIR%\esUtil_phone\esUtil_phone.lib" "%OUT_DIR%" /iycq
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
set IN_DIR=.\..\..\..\angle\src\WinRT\redist\vs2013\ARM\Release\
|
|
||||||
set OUT_DIR=.\..\..\external\winrt-specific\angle\prebuilt\ARM\
|
|
||||||
xcopy "%IN_DIR%\libGLESv2_winrt_2013\libGLESv2.dll" "%OUT_DIR%" /iycq
|
|
||||||
|
|
||||||
xcopy "%IN_DIR%\libGLESv2_winrt_2013\libGLESv2.lib" "%OUT_DIR%" /iycq
|
|
||||||
|
|
||||||
xcopy "%IN_DIR%\libEGL_winrt_2013\libEGL.dll" "%OUT_DIR%" /iycq
|
|
||||||
|
|
||||||
xcopy "%IN_DIR%\libEGL_winrt_2013\libEGL.lib" "%OUT_DIR%" /iycq
|
|
||||||
|
|
||||||
xcopy "%IN_DIR%\esUtil_winrt_2013\esUtil.lib" "%OUT_DIR%" /iycq
|
|
||||||
|
|
||||||
|
|
||||||
set IN_DIR=.\..\..\..\angle\src\WinRT\redist\vs2013\Win32\Release\
|
|
||||||
set OUT_DIR=.\..\..\external\winrt-specific\angle\prebuilt\Win32\
|
|
||||||
xcopy "%IN_DIR%\libGLESv2_winrt_2013\libGLESv2.dll" "%OUT_DIR%" /iycq
|
|
||||||
|
|
||||||
xcopy "%IN_DIR%\libGLESv2_winrt_2013\libGLESv2.lib" "%OUT_DIR%" /iycq
|
|
||||||
|
|
||||||
xcopy "%IN_DIR%\libEGL_winrt_2013\libEGL.dll" "%OUT_DIR%" /iycq
|
|
||||||
|
|
||||||
xcopy "%IN_DIR%\libEGL_winrt_2013\libEGL.lib" "%OUT_DIR%" /iycq
|
|
||||||
|
|
||||||
xcopy "%IN_DIR%\esUtil_winrt_2013\esUtil.lib" "%OUT_DIR%" /iycq
|
|
||||||
|
|
||||||
|
|
||||||
set OUT_DIR=.\..\..\external\winrt-specific\angle\include
|
|
||||||
xcopy ".\..\..\..\angle\include" "%OUT_DIR%" /eiycq
|
|
||||||
xcopy ".\..\..\..\angle\src\common\winrtangle.h" "%OUT_DIR%" /iycq
|
|
||||||
xcopy ".\..\..\..\angle\samples\gles2_book\Common\esUtil.h" "%OUT_DIR%" /iycq
|
|
||||||
|
|
|
@ -1,83 +0,0 @@
|
||||||
. ".\scripts\createsln.ps1"
|
|
||||||
. ".\scripts\converterutils.ps1"
|
|
||||||
. ".\scripts\winrtconverter.ps1"
|
|
||||||
|
|
||||||
|
|
||||||
$workingDir = $PSScriptRoot
|
|
||||||
|
|
||||||
|
|
||||||
$cocosDir = join-path $workingDir "..\..\cocos" -Resolve
|
|
||||||
$libGUI = join-path $cocosDir "\gui\proj.wp8\libGUI.vcxproj"
|
|
||||||
$in = join-path $cocosDir "\gui\proj.win32\libGUI.vcxproj"
|
|
||||||
#WinrtConverter $in $libGUI "wp8" >> $null
|
|
||||||
|
|
||||||
$c2dLib = join-path $cocosDir "\2d\cocos2d_wp8.vcxproj"
|
|
||||||
$in = join-path $cocosDir "\2d\cocos2d.vcxproj"
|
|
||||||
#WinrtConverter $in $c2dLib "wp8" >> $null
|
|
||||||
|
|
||||||
$c2dLib = join-path $cocosDir "\2d\cocos2d_winrt.vcxproj"
|
|
||||||
$in = join-path $cocosDir "\2d\cocos2d.vcxproj"
|
|
||||||
#WinrtConverter $in $c2dLib "winrt" >> $null
|
|
||||||
|
|
||||||
$libNetwork = join-path $cocosDir "\network\proj.wp8\libNetwork.vcxproj"
|
|
||||||
$in = join-path $cocosDir "\network\proj.win32\libNetwork.vcxproj"
|
|
||||||
#WinrtConverter $in $libNetwork "wp8" >> $null
|
|
||||||
|
|
||||||
$libLocalStorage = join-path $cocosDir "\storage\local-storage\proj.wp8\libLocalStorage.vcxproj"
|
|
||||||
$in = join-path $cocosDir "\storage\local-storage\proj.win32\libLocalStorage.vcxproj"
|
|
||||||
#WinrtConverter $in $libLocalStorage "wp8" >> $null
|
|
||||||
|
|
||||||
$libAudio = join-path $cocosDir "\audio\proj.wp8\CocosDenshion.vcxproj"
|
|
||||||
$in = join-path $cocosDir "\audio\proj.win32\CocosDenshion.vcxproj"
|
|
||||||
#WinrtConverter $in $libAudio "wp8" >> $null
|
|
||||||
|
|
||||||
$libSpine = join-path $cocosDir "\editor-support\spine\proj.wp8\libSpine.vcxproj"
|
|
||||||
$in = join-path $cocosDir "\editor-support\spine\proj.win32\libSpine.vcxproj"
|
|
||||||
#WinrtConverter $in $libSpine "wp8" >> $null
|
|
||||||
|
|
||||||
$libCocosStudio = join-path $cocosDir "\editor-support\cocostudio\proj.wp8\libCocosStudio.vcxproj"
|
|
||||||
$in = join-path $cocosDir "\editor-support\cocostudio\proj.win32\libCocosStudio.vcxproj"
|
|
||||||
#WinrtConverter $in $libCocosStudio "wp8" >> $null
|
|
||||||
|
|
||||||
$libCocosBuilder = join-path $cocosDir "\editor-support\cocosbuilder\proj.wp8\libCocosBuilder.vcxproj"
|
|
||||||
$in = join-path $cocosDir "\editor-support\cocosbuilder\proj.win32\libCocosBuilder.vcxproj"
|
|
||||||
#WinrtConverter $in $libCocosBuilder "wp8" >> $null
|
|
||||||
|
|
||||||
$extensionsDir = join-path $workingDir "..\..\extensions" -Resolve
|
|
||||||
$libExtensions = join-path $extensionsDir "\proj.wp8\libExtensions.vcxproj"
|
|
||||||
#$in = join-path $extensionsDir "\proj.win32\libExtensions.vcxproj"
|
|
||||||
#WinrtConverter $in $libExtensions "wp8" >> $null
|
|
||||||
|
|
||||||
$externalDir = join-path $workingDir "..\..\external" -Resolve
|
|
||||||
$box2dDir = join-path $workingDir "..\..\external\Box2D" -Resolve
|
|
||||||
$libBox2d = join-path $box2dDir "\proj.wp8\Box2D.vcxproj"
|
|
||||||
$in = join-path $box2dDir "\proj.win32\Box2D.vcxproj"
|
|
||||||
#WinrtConverter $in $libBox2d "wp8" >> $null
|
|
||||||
|
|
||||||
$freetypeDir = join-path $workingDir "..\..\external\freetype2\include\wp8" -Resolve
|
|
||||||
$libFreetype = join-path $freetypeDir "\freetype-2.5.3\builds\windows\vc2010\freetype_wp8.vcxproj"
|
|
||||||
$in = join-path $freetypeDir "\freetype-2.5.3\builds\windows\vc2010\freetype.vcxproj"
|
|
||||||
#WinrtConverter $in $libFreetype "wp8" >> $null
|
|
||||||
|
|
||||||
|
|
||||||
$chipmunkDir = join-path $workingDir "..\..\external\chipmunk" -Resolve
|
|
||||||
$libChipmunk = join-path $chipmunkDir "\proj.wp8\chipmunk.vcxproj"
|
|
||||||
$in = join-path $chipmunkDir "\proj.win32\chipmunk.vcxproj"
|
|
||||||
#WinrtConverter $in $libChipmunk "wp8" >> $null
|
|
||||||
|
|
||||||
$chipmunkDir = join-path $workingDir "..\..\external\chipmunk" -Resolve
|
|
||||||
$libChipmunk = join-path $chipmunkDir "\proj.winrt\chipmunk.vcxproj"
|
|
||||||
$in = join-path $chipmunkDir "\proj.win32\chipmunk.vcxproj"
|
|
||||||
#WinrtConverter $in $libChipmunk "winrt" >> $null
|
|
||||||
|
|
||||||
|
|
||||||
$testDir = join-path $workingDir "..\..\tests" -Resolve
|
|
||||||
$testApp = join-path $testDir "\proj.wp8\TestCpp.vcxproj"
|
|
||||||
$in = join-path $testDir "\proj.win32\TestCpp.vcxproj"
|
|
||||||
#WinrtConverter $in $testApp "wp8" >> $null
|
|
||||||
|
|
||||||
#create opencv sln
|
|
||||||
$solutionDir = join-path $workingDir "..\" -Resolve
|
|
||||||
$solution = join-path $solutionDir "cocos2d-wp8.vc2012.sln"
|
|
||||||
#CreateSolutionFile $solution "wp8" ($c2dLib, $libGUI, $libSpine, $libCocosStudio, $libCocosBuilder, $libExtensions, $libBox2d, $libChipmunk, $libLocalStorage, $libAudio, $testApp)
|
|
||||||
|
|
|
@ -1,157 +0,0 @@
|
||||||
. ".\scripts\createsln.ps1"
|
|
||||||
|
|
||||||
#use MSBuild namespace
|
|
||||||
$ms = 'http://schemas.microsoft.com/developer/msbuild/2003'
|
|
||||||
$ns = @{ ms = $ms }
|
|
||||||
|
|
||||||
Function GetDirectoryName($path)
|
|
||||||
{
|
|
||||||
return [System.IO.Path]::GetFileName($path)
|
|
||||||
}
|
|
||||||
|
|
||||||
Function GetFileName($path)
|
|
||||||
{
|
|
||||||
return [System.IO.Path]::GetFileName($path)
|
|
||||||
}
|
|
||||||
|
|
||||||
Function Get-RelativePath($Folder, $FilePath)
|
|
||||||
{
|
|
||||||
Write-Verbose "Resolving paths relative to '$Folder'"
|
|
||||||
$from = $Folder = split-path $Folder -NoQualifier -Resolve:$Resolve
|
|
||||||
$to = $filePath = split-path $filePath -NoQualifier -Resolve:$Resolve
|
|
||||||
|
|
||||||
while($from -and $to -and ($from -ne $to)) {
|
|
||||||
if($from.Length -gt $to.Length) {
|
|
||||||
$from = split-path $from
|
|
||||||
} else {
|
|
||||||
$to = split-path $to
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$filepath = $filepath -replace "^"+[regex]::Escape($to)+"\\"
|
|
||||||
$from = $Folder
|
|
||||||
while($from -and $to -and $from -gt $to ) {
|
|
||||||
$from = split-path $from
|
|
||||||
$filepath = join-path ".." $filepath
|
|
||||||
}
|
|
||||||
return $filepath
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
Function ReplaceText($path, $text, $replace)
|
|
||||||
{
|
|
||||||
(Get-Content $path) |
|
|
||||||
Foreach-Object {$_ -replace $text, $replace} |
|
|
||||||
Set-Content $path
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Function LoadXmlFile($path)
|
|
||||||
{
|
|
||||||
$xml = New-Object -TypeName XML
|
|
||||||
$xml.Load($path)
|
|
||||||
return $xml
|
|
||||||
}
|
|
||||||
|
|
||||||
Function AddElement($xml, $root, $name, $value, $namespace)
|
|
||||||
{
|
|
||||||
$newEl = $xml.CreateElement($name, $namespace)
|
|
||||||
$xmlText = $xml.CreateTextNode($value)
|
|
||||||
$newEl.AppendChild($xmlText)
|
|
||||||
$root.AppendChild($newEl)
|
|
||||||
return $newEl
|
|
||||||
}
|
|
||||||
|
|
||||||
Function GetProjectGlobals($path, $namespace)
|
|
||||||
{
|
|
||||||
$xml = LoadXmlFile($path)
|
|
||||||
$globals = Select-XML -Xml $xml -XPath '//ms:PropertyGroup[@Label="Globals"]' -Namespace $namespace
|
|
||||||
return $globals
|
|
||||||
}
|
|
||||||
|
|
||||||
Function AddProjectReference($toProject, $projects)
|
|
||||||
{
|
|
||||||
$xml = LoadXmlFile($toProject)
|
|
||||||
$xdNS = $xml.DocumentElement.NamespaceURI
|
|
||||||
|
|
||||||
foreach($fromProject in $projects)
|
|
||||||
{
|
|
||||||
$globals = GetProjectGlobals $fromProject $ns
|
|
||||||
$itemGroup = $xml.CreateElement("ItemGroup", $xdNS)
|
|
||||||
$projectReference = $xml.CreateElement("ProjectReference", $xdNS)
|
|
||||||
$project = $xml.CreateElement("Project", $xdNS)
|
|
||||||
$xmlText = $xml.CreateTextNode($globals.Node.ProjectGuid)
|
|
||||||
$project.AppendChild($xmlText)
|
|
||||||
$projectReference.AppendChild($project)
|
|
||||||
|
|
||||||
$include = $xml.CreateAttribute("Include")
|
|
||||||
|
|
||||||
$dir = Split-Path -parent $toProject
|
|
||||||
$include.Value = Get-RelativePath $dir $fromProject
|
|
||||||
$projectReference.Attributes.Append($include)
|
|
||||||
|
|
||||||
|
|
||||||
$itemGroup.AppendChild($projectReference)
|
|
||||||
|
|
||||||
$root = Select-XML -Xml $xml -XPath '//ms:Project[@DefaultTargets="Build"]' -Namespace $ns
|
|
||||||
$root.Node.AppendChild($itemGroup)
|
|
||||||
}
|
|
||||||
$xml.Save($toProject)
|
|
||||||
}
|
|
||||||
|
|
||||||
Function AddPreprocessorDefine($xml, $define)
|
|
||||||
{
|
|
||||||
foreach($item in (Select-XML -Xml $xml -XPath '//ms:ItemDefinitionGroup' -Namespace $ns))
|
|
||||||
{
|
|
||||||
if(!($item.Node.ClCompile.PreprocessorDefinitions -match ($define + ';')))
|
|
||||||
{
|
|
||||||
$item.Node.ClCompile.PreprocessorDefinitions = $define + ";" + $item.Node.ClCompile.PreprocessorDefinitions
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
<#
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\..\3rdparty\zlib\zlib.vcxproj">
|
|
||||||
<Project>{c38fab57-9dec-4546-bd9a-6c1dbba6c077}</Project>
|
|
||||||
</ProjectReference>
|
|
||||||
</ItemGroup>
|
|
||||||
#>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Function RemoveNode($xml, $xpath)
|
|
||||||
{
|
|
||||||
$item = Select-XML -Xml $xml -XPath $xpath -Namespace $ns
|
|
||||||
if($item)
|
|
||||||
{
|
|
||||||
$item.Node.ParentNode.RemoveChild($item.node)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Function RemoveProjectFile($path, $filename)
|
|
||||||
{
|
|
||||||
$xml = LoadXmlFile($path)
|
|
||||||
$xpath = '//ms:ClCompile [@Include="' + $filename + '"]'
|
|
||||||
RemoveNode $xml $xpath
|
|
||||||
$xml.Save($path)
|
|
||||||
$xml = LoadXmlFile($path + ".filters")
|
|
||||||
RemoveNode $xml $xpath
|
|
||||||
$xml.Save($path + ".filters")
|
|
||||||
}
|
|
||||||
|
|
||||||
Function CreateSolutionFile($path, $platform, $projects)
|
|
||||||
{
|
|
||||||
$solution = CreateSolution
|
|
||||||
$solution.solutionDir = Split-Path -parent $path
|
|
||||||
foreach($project in $projects)
|
|
||||||
{
|
|
||||||
$solution.AddProject($project)
|
|
||||||
}
|
|
||||||
$solution.Save($path, $platform)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,98 +0,0 @@
|
||||||
Function CreateSolution()
|
|
||||||
{
|
|
||||||
$solution = New-Module -AsCustomObject -ScriptBlock {
|
|
||||||
. ".\scripts\converterutils.ps1"
|
|
||||||
|
|
||||||
#use MSBuild namespace
|
|
||||||
$ms = 'http://schemas.microsoft.com/developer/msbuild/2003'
|
|
||||||
$ns = @{ ms = $ms }
|
|
||||||
|
|
||||||
$projects = @()
|
|
||||||
$solutionDir = ""
|
|
||||||
|
|
||||||
|
|
||||||
Function AddProject($path) {
|
|
||||||
$globals = GetProjectGlobals $path $ns
|
|
||||||
$guid = $globals.Node.ProjectGuid
|
|
||||||
$relativePath = Get-RelativePath $this.solutionDir $path
|
|
||||||
$project = New-Object –TypeName PSObject
|
|
||||||
$project | Add-Member –MemberType NoteProperty –Name guid –Value $globals.Node.ProjectGuid
|
|
||||||
$project | Add-Member –MemberType NoteProperty –Name path –Value $relativePath
|
|
||||||
if($globals.Node.ProjectName)
|
|
||||||
{
|
|
||||||
$project | Add-Member –MemberType NoteProperty –Name name –Value $globals.Node.ProjectName
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$project | Add-Member –MemberType NoteProperty –Name name –Value $globals.Node.RootNamespace
|
|
||||||
}
|
|
||||||
|
|
||||||
$this.projects += $project
|
|
||||||
}
|
|
||||||
|
|
||||||
Function Save($path, $platform) {
|
|
||||||
$output = New-Item $path -type file -force
|
|
||||||
|
|
||||||
if($platform -eq "winrt")
|
|
||||||
{
|
|
||||||
$template = join-path $PSScriptRoot "templates\winrt_sln_header_template.txt"
|
|
||||||
}
|
|
||||||
elseif($platform -eq "wp8")
|
|
||||||
{
|
|
||||||
$template = join-path $PSScriptRoot "templates\wp8_sln_header_template.txt"
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
throw "Unknown platform argument (winrt or wp8)"
|
|
||||||
}
|
|
||||||
|
|
||||||
(Get-Content $template) |
|
|
||||||
Add-Content $path
|
|
||||||
|
|
||||||
foreach($project in $this.projects)
|
|
||||||
{
|
|
||||||
$line = 'Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "' + $project.name + '", "' + $project.path + '", "' + $project.guid + '"'
|
|
||||||
#Add-Content $path 'Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "opencv_core", "opencv_core.vcxproj", "{8F928FE0-8A06-4F93-99FE-53B9C7A006CA}"'
|
|
||||||
Add-Content $path $line
|
|
||||||
Add-Content $path 'EndProject'
|
|
||||||
}
|
|
||||||
|
|
||||||
$template = join-path $PSScriptRoot "templates\global_start_template.txt"
|
|
||||||
(Get-Content $template) |
|
|
||||||
Add-Content $path
|
|
||||||
|
|
||||||
$template = join-path $PSScriptRoot "templates\globalsection_template.txt"
|
|
||||||
foreach($project in $this.projects)
|
|
||||||
{
|
|
||||||
(Get-Content $template) |
|
|
||||||
Foreach-Object {$_ -replace "REPLACE_GUID", $project.guid} |
|
|
||||||
Add-Content $path
|
|
||||||
}
|
|
||||||
|
|
||||||
$template = join-path $PSScriptRoot "templates\global_end_template.txt"
|
|
||||||
(Get-Content $template) |
|
|
||||||
Add-Content $path
|
|
||||||
}
|
|
||||||
|
|
||||||
Export-ModuleMember -Variable * -Function *
|
|
||||||
}
|
|
||||||
return $solution
|
|
||||||
}
|
|
||||||
|
|
||||||
<#
|
|
||||||
$solutionDir = join-path $WorkingDir ".\modules\core"
|
|
||||||
$path = join-path $solutionDir "opencv_core.vcxproj"
|
|
||||||
$output = join-path $solutionDir "opencv_core2.sln"
|
|
||||||
|
|
||||||
|
|
||||||
$solution = CreateSolution
|
|
||||||
$solution.solutionDir = $solutionDir
|
|
||||||
$solution.AddProject($path)
|
|
||||||
|
|
||||||
$path = join-path $WorkingDir ".\3rdparty\zlib\zlib.vcxproj"
|
|
||||||
$solution.AddProject($path)
|
|
||||||
|
|
||||||
$solution.Save($output)
|
|
||||||
notepad $output
|
|
||||||
#>
|
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
|
||||||
HideSolutionNode = FALSE
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
|
@ -1,10 +0,0 @@
|
||||||
Global
|
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
||||||
Debug|ARM = Debug|ARM
|
|
||||||
Debug|Win32 = Debug|Win32
|
|
||||||
Debug|x64 = Debug|x64
|
|
||||||
Release|ARM = Release|ARM
|
|
||||||
Release|Win32 = Release|Win32
|
|
||||||
Release|x64 = Release|x64
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
|
@ -1,12 +0,0 @@
|
||||||
REPLACE_GUID.Debug|ARM.ActiveCfg = Debug|ARM
|
|
||||||
REPLACE_GUID.Debug|ARM.Build.0 = Debug|ARM
|
|
||||||
REPLACE_GUID.Debug|Win32.ActiveCfg = Debug|Win32
|
|
||||||
REPLACE_GUID.Debug|Win32.Build.0 = Debug|Win32
|
|
||||||
REPLACE_GUID.Debug|x64.ActiveCfg = Debug|x64
|
|
||||||
REPLACE_GUID.Debug|x64.Build.0 = Debug|x64
|
|
||||||
REPLACE_GUID.Release|ARM.ActiveCfg = Release|ARM
|
|
||||||
REPLACE_GUID.Release|ARM.Build.0 = Release|ARM
|
|
||||||
REPLACE_GUID.Release|Win32.ActiveCfg = Release|Win32
|
|
||||||
REPLACE_GUID.Release|Win32.Build.0 = Release|Win32
|
|
||||||
REPLACE_GUID.Release|x64.ActiveCfg = Release|x64
|
|
||||||
REPLACE_GUID.Release|x64.Build.0 = Release|x64
|
|
|
@ -1,188 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
|
||||||
<ProjectConfiguration Include="Debug|ARM">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>ARM</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Debug|x64">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|ARM">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>ARM</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|x64">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
</ItemGroup>
|
|
||||||
<PropertyGroup Label="Globals">
|
|
||||||
<ProjectGuid>{9c7946f4-84fe-4b1c-b715-50083798b41c}</ProjectGuid>
|
|
||||||
<Keyword>Win32Proj</Keyword>
|
|
||||||
<ProjectName>Dll1</ProjectName>
|
|
||||||
<RootNamespace>Dll1</RootNamespace>
|
|
||||||
<DefaultLanguage>en-US</DefaultLanguage>
|
|
||||||
<MinimumVisualStudioVersion>12.0</MinimumVisualStudioVersion>
|
|
||||||
<AppContainerApplication>true</AppContainerApplication>
|
|
||||||
<ApplicationType>Windows Store</ApplicationType>
|
|
||||||
<ApplicationTypeRevision>8.1</ApplicationTypeRevision>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v120</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
|
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v120</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v120</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<PlatformToolset>v120</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
|
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<PlatformToolset>v120</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<PlatformToolset>v120</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
|
||||||
<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 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 Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
|
|
||||||
<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|ARM'">
|
|
||||||
<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)'=='Debug|x64'">
|
|
||||||
<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|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<GenerateManifest>false</GenerateManifest>
|
|
||||||
<IgnoreImportLibrary>false</IgnoreImportLibrary>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<GenerateManifest>false</GenerateManifest>
|
|
||||||
<IgnoreImportLibrary>false</IgnoreImportLibrary>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
|
|
||||||
<GenerateManifest>false</GenerateManifest>
|
|
||||||
<IgnoreImportLibrary>false</IgnoreImportLibrary>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
|
|
||||||
<GenerateManifest>false</GenerateManifest>
|
|
||||||
<IgnoreImportLibrary>false</IgnoreImportLibrary>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<GenerateManifest>false</GenerateManifest>
|
|
||||||
<IgnoreImportLibrary>false</IgnoreImportLibrary>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<GenerateManifest>false</GenerateManifest>
|
|
||||||
<IgnoreImportLibrary>false</IgnoreImportLibrary>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
||||||
<CompileAsWinRT>false</CompileAsWinRT>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
|
||||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
||||||
<CompileAsWinRT>false</CompileAsWinRT>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
|
||||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|arm'">
|
|
||||||
<ClCompile>
|
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
||||||
<CompileAsWinRT>false</CompileAsWinRT>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
|
||||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|arm'">
|
|
||||||
<ClCompile>
|
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
||||||
<CompileAsWinRT>false</CompileAsWinRT>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
|
||||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<ClCompile>
|
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
||||||
<CompileAsWinRT>false</CompileAsWinRT>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
|
||||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<ClCompile>
|
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
||||||
<CompileAsWinRT>false</CompileAsWinRT>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
|
||||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
|
||||||
<ImportGroup Label="ExtensionTargets">
|
|
||||||
</ImportGroup>
|
|
||||||
</Project>
|
|
|
@ -1,188 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
|
||||||
<ProjectConfiguration Include="Debug|ARM">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>ARM</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Debug|x64">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|ARM">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>ARM</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|x64">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
</ItemGroup>
|
|
||||||
<PropertyGroup Label="Globals">
|
|
||||||
<ProjectGuid>{8597d6ff-2d26-4f86-a7d4-72d102a7a8b6}</ProjectGuid>
|
|
||||||
<Keyword>Win32Proj</Keyword>
|
|
||||||
<ProjectName>WinRTStatic</ProjectName>
|
|
||||||
<RootNamespace>WinRTStatic</RootNamespace>
|
|
||||||
<DefaultLanguage>en-US</DefaultLanguage>
|
|
||||||
<MinimumVisualStudioVersion>12.0</MinimumVisualStudioVersion>
|
|
||||||
<AppContainerApplication>true</AppContainerApplication>
|
|
||||||
<ApplicationType>Windows Store</ApplicationType>
|
|
||||||
<ApplicationTypeRevision>8.1</ApplicationTypeRevision>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v120</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v120</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v120</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<PlatformToolset>v120</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<PlatformToolset>v120</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<PlatformToolset>v120</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
|
||||||
<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 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 Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
|
|
||||||
<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|ARM'">
|
|
||||||
<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)'=='Debug|x64'">
|
|
||||||
<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|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<GenerateManifest>false</GenerateManifest>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<GenerateManifest>false</GenerateManifest>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
|
|
||||||
<GenerateManifest>false</GenerateManifest>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
|
|
||||||
<GenerateManifest>false</GenerateManifest>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<GenerateManifest>false</GenerateManifest>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<GenerateManifest>false</GenerateManifest>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
||||||
<CompileAsWinRT>false</CompileAsWinRT>
|
|
||||||
<SDLCheck>true</SDLCheck>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
|
||||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
||||||
<CompileAsWinRT>false</CompileAsWinRT>
|
|
||||||
<SDLCheck>true</SDLCheck>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
|
||||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|arm'">
|
|
||||||
<ClCompile>
|
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
||||||
<CompileAsWinRT>false</CompileAsWinRT>
|
|
||||||
<SDLCheck>true</SDLCheck>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
|
||||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|arm'">
|
|
||||||
<ClCompile>
|
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
||||||
<CompileAsWinRT>false</CompileAsWinRT>
|
|
||||||
<SDLCheck>true</SDLCheck>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
|
||||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<ClCompile>
|
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
||||||
<CompileAsWinRT>false</CompileAsWinRT>
|
|
||||||
<SDLCheck>true</SDLCheck>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
|
||||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<ClCompile>
|
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
||||||
<CompileAsWinRT>false</CompileAsWinRT>
|
|
||||||
<SDLCheck>true</SDLCheck>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
|
||||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
|
||||||
<ImportGroup Label="ExtensionTargets">
|
|
||||||
</ImportGroup>
|
|
||||||
</Project>
|
|
|
@ -1,4 +0,0 @@
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
|
||||||
# Visual Studio 2013
|
|
||||||
VisualStudioVersion = 12.0.21005.1
|
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
|
|
@ -1,135 +0,0 @@
|
||||||
<?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="Debug|Win32">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Debug|ARM">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>ARM</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|ARM">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>ARM</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
</ItemGroup>
|
|
||||||
<PropertyGroup Label="Globals">
|
|
||||||
<ProjectGuid>{03008f82-0317-416a-88d1-068f2c3158e4}</ProjectGuid>
|
|
||||||
<RootNamespace>PhoneDLL1</RootNamespace>
|
|
||||||
<DefaultLanguage>en-US</DefaultLanguage>
|
|
||||||
<MinimumVisualStudioVersion>11.0</MinimumVisualStudioVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v110_wp80</PlatformToolset>
|
|
||||||
<IgnoreImportLibrary>false</IgnoreImportLibrary>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
|
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v110_wp80</PlatformToolset>
|
|
||||||
<IgnoreImportLibrary>false</IgnoreImportLibrary>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<PlatformToolset>v110_wp80</PlatformToolset>
|
|
||||||
<IgnoreImportLibrary>false</IgnoreImportLibrary>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
|
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<PlatformToolset>v110_wp80</PlatformToolset>
|
|
||||||
<IgnoreImportLibrary>false</IgnoreImportLibrary>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
|
||||||
<ImportGroup 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>
|
|
||||||
<GenerateManifest>false</GenerateManifest>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<PreprocessorDefinitions>_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
||||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
|
||||||
<CompileAsWinRT>false</CompileAsWinRT>
|
|
||||||
<AdditionalUsingDirectories>$(WindowsSDK_MetadataPath);$(AdditionalUsingDirectories)</AdditionalUsingDirectories>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
|
||||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<PreprocessorDefinitions>_USRDLL;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
||||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
|
||||||
<CompileAsWinRT>false</CompileAsWinRT>
|
|
||||||
<AdditionalUsingDirectories>$(WindowsSDK_MetadataPath);$(AdditionalUsingDirectories)</AdditionalUsingDirectories>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
|
||||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
|
|
||||||
<ClCompile>
|
|
||||||
<PreprocessorDefinitions>_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
||||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
|
||||||
<CompileAsWinRT>false</CompileAsWinRT>
|
|
||||||
<AdditionalUsingDirectories>$(WindowsSDK_MetadataPath);$(AdditionalUsingDirectories)</AdditionalUsingDirectories>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
|
||||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
|
|
||||||
<ClCompile>
|
|
||||||
<PreprocessorDefinitions>_USRDLL;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
||||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
|
||||||
<CompileAsWinRT>false</CompileAsWinRT>
|
|
||||||
<AdditionalUsingDirectories>$(WindowsSDK_MetadataPath);$(AdditionalUsingDirectories)</AdditionalUsingDirectories>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
|
||||||
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Reference Include="Windows">
|
|
||||||
<IsWinMDFile>true</IsWinMDFile>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="platform.winmd">
|
|
||||||
<IsWinMDFile>true</IsWinMDFile>
|
|
||||||
<Private>false</Private>
|
|
||||||
</Reference>
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
|
||||||
<Import Project="$(MSBuildExtensionsPath)\Microsoft\WindowsPhone\v$(TargetPlatformVersion)\Microsoft.Cpp.WindowsPhone.$(TargetPlatformVersion).targets" />
|
|
||||||
<ImportGroup Label="ExtensionTargets">
|
|
||||||
</ImportGroup>
|
|
||||||
</Project>
|
|
|
@ -1,119 +0,0 @@
|
||||||
<?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="Debug|Win32">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Debug|ARM">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>ARM</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|ARM">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>ARM</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
</ItemGroup>
|
|
||||||
<PropertyGroup Label="Globals">
|
|
||||||
<ProjectGuid>{5c48b0d3-dcad-4bfd-a77f-0dac7316f57a}</ProjectGuid>
|
|
||||||
<RootNamespace>PhoneLib1</RootNamespace>
|
|
||||||
<DefaultLanguage>en-US</DefaultLanguage>
|
|
||||||
<MinimumVisualStudioVersion>11.0</MinimumVisualStudioVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v110_wp80</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v110_wp80</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<PlatformToolset>v110_wp80</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<PlatformToolset>v110_wp80</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
|
||||||
<ImportGroup 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>
|
|
||||||
<GenerateManifest>false</GenerateManifest>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<PreprocessorDefinitions>_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
||||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
|
||||||
<AdditionalUsingDirectories>$(WindowsSDK_MetadataPath);$(AdditionalUsingDirectories)</AdditionalUsingDirectories>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<PreprocessorDefinitions>_LIB;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
||||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
|
||||||
<AdditionalUsingDirectories>$(WindowsSDK_MetadataPath);$(AdditionalUsingDirectories)</AdditionalUsingDirectories>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
|
|
||||||
<ClCompile>
|
|
||||||
<PreprocessorDefinitions>_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
||||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
|
||||||
<AdditionalUsingDirectories>$(WindowsSDK_MetadataPath);$(AdditionalUsingDirectories)</AdditionalUsingDirectories>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
|
|
||||||
<ClCompile>
|
|
||||||
<PreprocessorDefinitions>_LIB;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
||||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
|
||||||
<AdditionalUsingDirectories>$(WindowsSDK_MetadataPath);$(AdditionalUsingDirectories)</AdditionalUsingDirectories>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Reference Include="Windows">
|
|
||||||
<IsWinMDFile>true</IsWinMDFile>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="platform.winmd">
|
|
||||||
<IsWinMDFile>true</IsWinMDFile>
|
|
||||||
<Private>false</Private>
|
|
||||||
</Reference>
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
|
||||||
<Import Project="$(MSBuildExtensionsPath)\Microsoft\WindowsPhone\v$(TargetPlatformVersion)\Microsoft.Cpp.WindowsPhone.$(TargetPlatformVersion).targets" />
|
|
||||||
<ImportGroup Label="ExtensionTargets">
|
|
||||||
</ImportGroup>
|
|
||||||
</Project>
|
|
|
@ -1,2 +0,0 @@
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
|
||||||
# Visual Studio 2012
|
|
|
@ -1,259 +0,0 @@
|
||||||
. ".\scripts\converterutils.ps1"
|
|
||||||
|
|
||||||
#use MSBuild namespace
|
|
||||||
$ms = 'http://schemas.microsoft.com/developer/msbuild/2003'
|
|
||||||
$ns = @{ ms = $ms }
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Function ConvertAdditionalIncludesToRelativePaths($paths, $folder)
|
|
||||||
{
|
|
||||||
$result = ""
|
|
||||||
$tokens = $paths.replace(' ','').split(';')
|
|
||||||
foreach($token in $tokens)
|
|
||||||
{
|
|
||||||
if($token -ne "%(AdditionalIncludeDirectories)")
|
|
||||||
{
|
|
||||||
$result += (Get-RelativePath $folder $token) + ';'
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$result += "%(AdditionalIncludeDirectories);"
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
return $result
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Function WinrtConverter($inFile, $outFile, $platform)
|
|
||||||
{
|
|
||||||
$InputDirPath = Split-Path -parent $inFile
|
|
||||||
$InputDir = [System.IO.Path]::GetFileNameWithoutExtension($InputDirPath)
|
|
||||||
$fileName = [System.IO.Path]::GetFileNameWithoutExtension($inFile)
|
|
||||||
$OutDir = Split-Path -parent $outFile
|
|
||||||
|
|
||||||
#create output dir
|
|
||||||
New-Item -ItemType Directory -Force -Path $OutDir
|
|
||||||
|
|
||||||
<#
|
|
||||||
Try to load the output file.
|
|
||||||
If successful, copy the guid out of the globals section
|
|
||||||
#>
|
|
||||||
|
|
||||||
$guid =$null
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
$xml = New-Object -TypeName XML
|
|
||||||
$xml.Load($outFile)
|
|
||||||
$globals = Select-XML -Xml $xml -XPath '//ms:PropertyGroup[@Label="Globals"]' -Namespace $ns
|
|
||||||
$guid = $globals.Node.ProjectGuid
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
$guid = '{' + [guid]::NewGuid().toString().ToUpper() + '}'
|
|
||||||
}
|
|
||||||
|
|
||||||
# load input file into an XML object:
|
|
||||||
$xml_win32 = New-Object -TypeName XML
|
|
||||||
$xml_win32.Load($inFile)
|
|
||||||
|
|
||||||
$configs = Select-XML -Xml $xml_win32 -XPath '//ms:PropertyGroup[@Label="Configuration"]' -Namespace $ns
|
|
||||||
|
|
||||||
$Template = $null
|
|
||||||
|
|
||||||
if($platform -eq "winrt")
|
|
||||||
{
|
|
||||||
if($configs[0].Node.ConfigurationType -eq "DynamicLibrary")
|
|
||||||
{
|
|
||||||
$Template = join-path $PSScriptRoot "templates\winrt_dll_template.vcxproj"
|
|
||||||
}
|
|
||||||
elseif($configs[0].Node.ConfigurationType -eq "StaticLibrary")
|
|
||||||
{
|
|
||||||
$Template = join-path $PSScriptRoot "templates\winrt_lib_template.vcxproj"
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
throw "Unknown vcxproj type"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
elseif($platform -eq "wp8")
|
|
||||||
{
|
|
||||||
if($configs[0].Node.ConfigurationType -eq "DynamicLibrary")
|
|
||||||
{
|
|
||||||
$Template = join-path $PSScriptRoot "templates\wp8_dll_template.vcxproj"
|
|
||||||
}
|
|
||||||
elseif($configs[0].Node.ConfigurationType -eq "StaticLibrary")
|
|
||||||
{
|
|
||||||
$Template = join-path $PSScriptRoot "templates\wp8_lib_template.vcxproj"
|
|
||||||
}
|
|
||||||
elseif($configs[0].Node.ConfigurationType -eq "Application")
|
|
||||||
{
|
|
||||||
$Template = join-path $PSScriptRoot "templates\wp8_lib_template.vcxproj"
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
throw "Unknown vcxproj type"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
throw "Unknown platform argument -p (winrt or wp8)"
|
|
||||||
}
|
|
||||||
|
|
||||||
$xml_template = New-Object -TypeName XML
|
|
||||||
$xml_template.Load($Template)
|
|
||||||
|
|
||||||
|
|
||||||
#Update Project Guid and Name
|
|
||||||
$win32_globals = Select-XML -Xml $xml_win32 -XPath '//ms:PropertyGroup[@Label="Globals"]' -Namespace $ns
|
|
||||||
|
|
||||||
$winrt_globals = Select-XML -Xml $xml_template -XPath '//ms:PropertyGroup[@Label="Globals"]' -Namespace $ns
|
|
||||||
$winrt_globals.Node.ProjectGuid = $guid
|
|
||||||
|
|
||||||
|
|
||||||
if($win32_globals.Node.ProjectName)
|
|
||||||
{
|
|
||||||
$winrt_globals.Node.RootNamespace = $win32_globals.Node.ProjectName
|
|
||||||
|
|
||||||
if($winrt_globals.Node.ProjectName)
|
|
||||||
{
|
|
||||||
$winrt_globals.Node.ProjectName = $win32_globals.Node.ProjectName
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if($win32_globals.Node.RootNamespace)
|
|
||||||
{
|
|
||||||
$winrt_globals.Node.RootNamespace = $win32_globals.Node.RootNamespace
|
|
||||||
}
|
|
||||||
|
|
||||||
$project = Select-XML -Xml $xml_template -XPath '//ms:Project' -Namespace $ns
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
foreach($item in (Select-XML -Xml $xml_win32 -XPath '//ms:ItemGroup' -Namespace $ns))
|
|
||||||
{
|
|
||||||
if ($item.node.ClInclude -or $item.node.ClCompile)
|
|
||||||
{
|
|
||||||
$newNode = $xml_template.ImportNode($item.Node, $true)
|
|
||||||
$project.Node.AppendChild($newNode)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#Copy ItemDefinitionGroup properties
|
|
||||||
$debug_properties = $null
|
|
||||||
$release_properties = $null
|
|
||||||
|
|
||||||
|
|
||||||
foreach($item in (Select-XML -Xml $xml_win32 -XPath '//ms:ItemDefinitionGroup' -Namespace $ns))
|
|
||||||
{
|
|
||||||
if($item.node.Condition -match "debug")
|
|
||||||
{
|
|
||||||
$debug_properties = $item
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$release_properties = $item
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$debug_includes = $debug_properties.Node.ClCompile.AdditionalIncludeDirectories
|
|
||||||
$release_includes = $release_properties.Node.ClCompile.AdditionalIncludeDirectories
|
|
||||||
|
|
||||||
|
|
||||||
foreach($item in (Select-XML -Xml $xml_template -XPath '//ms:ItemDefinitionGroup' -Namespace $ns))
|
|
||||||
{
|
|
||||||
$includes = $release_includes;
|
|
||||||
$properties = $release_properties
|
|
||||||
|
|
||||||
if($item.node.Condition -match "debug")
|
|
||||||
{
|
|
||||||
$includes = $debug_includes;
|
|
||||||
$properties = $debug_properties
|
|
||||||
}
|
|
||||||
|
|
||||||
AddElement $xml_template $item.Node.ClCompile 'AdditionalIncludeDirectories' $includes $ms
|
|
||||||
AddElement $xml_template $item.Node.ClCompile 'PreprocessorDefinitions' $properties.Node.ClCompile.PreprocessorDefinitions $ms
|
|
||||||
if($properties.Node.ClCompile.PrecompiledHeader)
|
|
||||||
{
|
|
||||||
$item.Node.ClCompile.PrecompiledHeader = $properties.Node.ClCompile.PrecompiledHeader
|
|
||||||
}
|
|
||||||
|
|
||||||
if($properties.Node.ClCompile.PrecompiledHeaderFile)
|
|
||||||
{
|
|
||||||
AddElement $xml_template $item.Node.ClCompile 'PrecompiledHeaderFile' "precomp.hpp" $ms
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if($properties.Node.ClCompile.ForcedIncludeFiles)
|
|
||||||
{
|
|
||||||
AddElement $xml_template $item.Node.ClCompile 'ForcedIncludeFiles' "precomp.hpp" $ms
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if($properties.Node.ClCompile.DisableSpecificWarnings)
|
|
||||||
{
|
|
||||||
AddElement $xml_template $item.Node.ClCompile 'DisableSpecificWarnings' $properties.Node.ClCompile.DisableSpecificWarnings $ms
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#save output file
|
|
||||||
$xml_template.Save($outFile)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
foreach($item in (Select-XML -Xml $xml_template -XPath '//ms:Project//ms:ItemGroup//ms:ClCompile//ms:PrecompiledHeader' -Namespace $ns))
|
|
||||||
{
|
|
||||||
$newNode = $xml_template.ImportNode($item.Node, $true)
|
|
||||||
$newNode.Condition = $newNode.Condition.replace("Win32", "ARM")
|
|
||||||
$item.Node.parentNode.AppendChild($newNode)
|
|
||||||
$newNode = $xml_template.ImportNode($item.Node, $true)
|
|
||||||
$newNode.Condition = $newNode.Condition.replace("Win32", "x64")
|
|
||||||
$item.Node.parentNode.AppendChild($newNode)
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach($item in (Select-XML -Xml $xml_template -XPath '//ms:Project//ms:ItemGroup//ms:ClCompile//ms:PrecompiledHeaderFile' -Namespace $ns))
|
|
||||||
{
|
|
||||||
$item.Node."#text" = "precomp.hpp"
|
|
||||||
$newNode = $xml_template.ImportNode($item.Node, $true)
|
|
||||||
$newNode.Condition = $newNode.Condition.replace("Win32", "ARM")
|
|
||||||
$item.Node.parentNode.AppendChild($newNode)
|
|
||||||
$newNode = $xml_template.ImportNode($item.Node, $true)
|
|
||||||
$newNode.Condition = $newNode.Condition.replace("Win32", "x64")
|
|
||||||
$item.Node.parentNode.AppendChild($newNode)
|
|
||||||
}
|
|
||||||
|
|
||||||
$xml_template.selectNodes('//data/value[contains(.,"precomp.hpp")]')|
|
|
||||||
ForEach-Object{
|
|
||||||
$_.'#text' = 'precomp.hpp'
|
|
||||||
}
|
|
||||||
|
|
||||||
$xml_template.Save($outFile)
|
|
||||||
|
|
||||||
|
|
||||||
#copy .filters file
|
|
||||||
try
|
|
||||||
{
|
|
||||||
$filters = $inFile + ".filters"
|
|
||||||
$xml_filters = New-Object -TypeName XML
|
|
||||||
$xml_filters.Load($filters)
|
|
||||||
$xml_filters.Save($outFile + ".filters")
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
Write-Host "No .filters file"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
How to compile precompiled shaders for Windows Phone 8.0 (WP8)
|
|
||||||
|
|
||||||
1. Open the VS project Cocos2dShaderCompiler\Cocos2dShaderCompiler.sln
|
|
||||||
2. Build and run the project
|
|
||||||
3. Click the Compile button
|
|
||||||
4. Select the file cocos\platform\wp8\shaders\precompiledshaders.h in the file dialog box
|
|
||||||
5. Program will precompile all of the cached cocos2d-x shaders.
|
|
|
@ -1,7 +0,0 @@
|
||||||
<Application
|
|
||||||
x:Class="Cocos2dShaderCompiler.App"
|
|
||||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
||||||
xmlns:local="using:Cocos2dShaderCompiler">
|
|
||||||
|
|
||||||
</Application>
|
|
|
@ -1,89 +0,0 @@
|
||||||
//
|
|
||||||
// App.xaml.cpp
|
|
||||||
// Implementation of the App class.
|
|
||||||
//
|
|
||||||
|
|
||||||
#include "pch.h"
|
|
||||||
#include "DirectXPage.xaml.h"
|
|
||||||
|
|
||||||
using namespace Cocos2dShaderCompiler;
|
|
||||||
|
|
||||||
using namespace Platform;
|
|
||||||
using namespace Windows::ApplicationModel;
|
|
||||||
using namespace Windows::ApplicationModel::Activation;
|
|
||||||
using namespace Windows::Foundation;
|
|
||||||
using namespace Windows::Foundation::Collections;
|
|
||||||
using namespace Windows::Storage;
|
|
||||||
using namespace Windows::UI::Xaml;
|
|
||||||
using namespace Windows::UI::Xaml::Controls;
|
|
||||||
using namespace Windows::UI::Xaml::Controls::Primitives;
|
|
||||||
using namespace Windows::UI::Xaml::Data;
|
|
||||||
using namespace Windows::UI::Xaml::Input;
|
|
||||||
using namespace Windows::UI::Xaml::Interop;
|
|
||||||
using namespace Windows::UI::Xaml::Media;
|
|
||||||
using namespace Windows::UI::Xaml::Navigation;
|
|
||||||
/// <summary>
|
|
||||||
/// Initializes the singleton application object. This is the first line of authored code
|
|
||||||
/// executed, and as such is the logical equivalent of main() or WinMain().
|
|
||||||
/// </summary>
|
|
||||||
App::App()
|
|
||||||
{
|
|
||||||
InitializeComponent();
|
|
||||||
Suspending += ref new SuspendingEventHandler(this, &App::OnSuspending);
|
|
||||||
Resuming += ref new EventHandler<Object^>(this, &App::OnResuming);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Invoked when the application is launched normally by the end user. Other entry points
|
|
||||||
/// will be used when the application is launched to open a specific file, to display
|
|
||||||
/// search results, and so forth.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="e">Details about the launch request and process.</param>
|
|
||||||
void App::OnLaunched(Windows::ApplicationModel::Activation::LaunchActivatedEventArgs^ e)
|
|
||||||
{
|
|
||||||
#if _DEBUG
|
|
||||||
if (IsDebuggerPresent())
|
|
||||||
{
|
|
||||||
DebugSettings->EnableFrameRateCounter = true;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
m_directXPage = ref new DirectXPage();
|
|
||||||
|
|
||||||
if (e->PreviousExecutionState == ApplicationExecutionState::Terminated)
|
|
||||||
{
|
|
||||||
m_directXPage->LoadInternalState(ApplicationData::Current->LocalSettings->Values);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Place the page in the current window and ensure that it is active.
|
|
||||||
Window::Current->Content = m_directXPage;
|
|
||||||
Window::Current->Activate();
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Invoked when application execution is being suspended. Application state is saved
|
|
||||||
/// without knowing whether the application will be terminated or resumed with the contents
|
|
||||||
/// of memory still intact.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="sender">The source of the suspend request.</param>
|
|
||||||
/// <param name="e">Details about the suspend request.</param>
|
|
||||||
void App::OnSuspending(Object^ sender, SuspendingEventArgs^ e)
|
|
||||||
{
|
|
||||||
(void) sender; // Unused parameter
|
|
||||||
(void) e; // Unused parameter
|
|
||||||
|
|
||||||
m_directXPage->SaveInternalState(ApplicationData::Current->LocalSettings->Values);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Invoked when application execution is being resumed.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="sender">The source of the resume request.</param>
|
|
||||||
/// <param name="args">Details about the resume request.</param>
|
|
||||||
void App::OnResuming(Object ^sender, Object ^args)
|
|
||||||
{
|
|
||||||
(void) sender; // Unused parameter
|
|
||||||
(void) args; // Unused parameter
|
|
||||||
|
|
||||||
m_directXPage->LoadInternalState(ApplicationData::Current->LocalSettings->Values);
|
|
||||||
}
|
|
|
@ -1,27 +0,0 @@
|
||||||
//
|
|
||||||
// App.xaml.h
|
|
||||||
// Declaration of the App class.
|
|
||||||
//
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "App.g.h"
|
|
||||||
#include "DirectXPage.xaml.h"
|
|
||||||
|
|
||||||
namespace Cocos2dShaderCompiler
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Provides application-specific behavior to supplement the default Application class.
|
|
||||||
/// </summary>
|
|
||||||
ref class App sealed
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
App();
|
|
||||||
virtual void OnLaunched(Windows::ApplicationModel::Activation::LaunchActivatedEventArgs^ e) override;
|
|
||||||
|
|
||||||
private:
|
|
||||||
void OnSuspending(Platform::Object^ sender, Windows::ApplicationModel::SuspendingEventArgs^ e);
|
|
||||||
void OnResuming(Platform::Object ^sender, Platform::Object ^args);
|
|
||||||
DirectXPage^ m_directXPage;
|
|
||||||
};
|
|
||||||
}
|
|
Before Width: | Height: | Size: 801 B |
Before Width: | Height: | Size: 329 B |
Before Width: | Height: | Size: 103 KiB |
Before Width: | Height: | Size: 429 B |
|
@ -1,92 +0,0 @@
|
||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
|
||||||
# Visual Studio 2013
|
|
||||||
VisualStudioVersion = 12.0.31101.0
|
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Cocos2dShaderCompiler", "Cocos2dShaderCompiler.vcxproj", "{4F6DEF20-AC4C-487F-85B8-5993519E3911}"
|
|
||||||
EndProject
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "External", "External", "{ECA7A2AA-8501-4177-8360-322A569B6C3E}"
|
|
||||||
EndProject
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Box2D", "Box2D", "{7CA66464-6A5E-493B-82EF-DBD84F91766F}"
|
|
||||||
EndProject
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "libSpine", "libSpine", "{8F8A69D6-BD64-4BAD-AE20-2D07E7BD57BA}"
|
|
||||||
EndProject
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libbox2d.Shared", "..\..\..\external\Box2D\proj.win8.1-universal\libbox2d.Shared\libbox2d.Shared.vcxitems", "{4A3C6BA8-C227-498B-AA21-40BDA27B461F}"
|
|
||||||
EndProject
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libbox2d.Windows", "..\..\..\external\Box2D\proj.win8.1-universal\libbox2d.Windows\libbox2d.Windows.vcxproj", "{3B26A12D-3A44-47EA-82D2-282660FC844D}"
|
|
||||||
EndProject
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libSpine.Shared", "..\..\..\cocos\editor-support\spine\proj.win8.1-universal\libSpine.Shared\libSpine.Shared.vcxitems", "{ADAFD00D-A0D6-46EF-9F0B-EA2880BFE1DE}"
|
|
||||||
EndProject
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libSpine.Windows", "..\..\..\cocos\editor-support\spine\proj.win8.1-universal\libSpine.Windows\libSpine.Windows.vcxproj", "{F3550FE0-C795-44F6-8FEB-093EB68143AE}"
|
|
||||||
EndProject
|
|
||||||
Global
|
|
||||||
GlobalSection(SharedMSBuildProjectFiles) = preSolution
|
|
||||||
..\..\..\external\Box2D\proj.win8.1-universal\libbox2d.Shared\libbox2d.Shared.vcxitems*{4a3c6ba8-c227-498b-aa21-40bda27b461f}*SharedItemsImports = 9
|
|
||||||
..\..\..\cocos\editor-support\spine\proj.win8.1-universal\libSpine.Shared\libSpine.Shared.vcxitems*{adafd00d-a0d6-46ef-9f0b-ea2880bfe1de}*SharedItemsImports = 9
|
|
||||||
..\..\..\external\Box2D\proj.win8.1-universal\libbox2d.Shared\libbox2d.Shared.vcxitems*{3b26a12d-3a44-47ea-82d2-282660fc844d}*SharedItemsImports = 4
|
|
||||||
..\..\..\cocos\editor-support\spine\proj.win8.1-universal\libSpine.Shared\libSpine.Shared.vcxitems*{f3550fe0-c795-44f6-8feb-093eb68143ae}*SharedItemsImports = 4
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
||||||
Debug|ARM = Debug|ARM
|
|
||||||
Debug|Win32 = Debug|Win32
|
|
||||||
Debug|x64 = Debug|x64
|
|
||||||
Release|ARM = Release|ARM
|
|
||||||
Release|Win32 = Release|Win32
|
|
||||||
Release|x64 = Release|x64
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
||||||
{4F6DEF20-AC4C-487F-85B8-5993519E3911}.Debug|ARM.ActiveCfg = Debug|ARM
|
|
||||||
{4F6DEF20-AC4C-487F-85B8-5993519E3911}.Debug|ARM.Build.0 = Debug|ARM
|
|
||||||
{4F6DEF20-AC4C-487F-85B8-5993519E3911}.Debug|ARM.Deploy.0 = Debug|ARM
|
|
||||||
{4F6DEF20-AC4C-487F-85B8-5993519E3911}.Debug|Win32.ActiveCfg = Debug|Win32
|
|
||||||
{4F6DEF20-AC4C-487F-85B8-5993519E3911}.Debug|Win32.Build.0 = Debug|Win32
|
|
||||||
{4F6DEF20-AC4C-487F-85B8-5993519E3911}.Debug|Win32.Deploy.0 = Debug|Win32
|
|
||||||
{4F6DEF20-AC4C-487F-85B8-5993519E3911}.Debug|x64.ActiveCfg = Debug|x64
|
|
||||||
{4F6DEF20-AC4C-487F-85B8-5993519E3911}.Debug|x64.Build.0 = Debug|x64
|
|
||||||
{4F6DEF20-AC4C-487F-85B8-5993519E3911}.Debug|x64.Deploy.0 = Debug|x64
|
|
||||||
{4F6DEF20-AC4C-487F-85B8-5993519E3911}.Release|ARM.ActiveCfg = Release|ARM
|
|
||||||
{4F6DEF20-AC4C-487F-85B8-5993519E3911}.Release|ARM.Build.0 = Release|ARM
|
|
||||||
{4F6DEF20-AC4C-487F-85B8-5993519E3911}.Release|ARM.Deploy.0 = Release|ARM
|
|
||||||
{4F6DEF20-AC4C-487F-85B8-5993519E3911}.Release|Win32.ActiveCfg = Release|Win32
|
|
||||||
{4F6DEF20-AC4C-487F-85B8-5993519E3911}.Release|Win32.Build.0 = Release|Win32
|
|
||||||
{4F6DEF20-AC4C-487F-85B8-5993519E3911}.Release|Win32.Deploy.0 = Release|Win32
|
|
||||||
{4F6DEF20-AC4C-487F-85B8-5993519E3911}.Release|x64.ActiveCfg = Release|x64
|
|
||||||
{4F6DEF20-AC4C-487F-85B8-5993519E3911}.Release|x64.Build.0 = Release|x64
|
|
||||||
{4F6DEF20-AC4C-487F-85B8-5993519E3911}.Release|x64.Deploy.0 = Release|x64
|
|
||||||
{3B26A12D-3A44-47EA-82D2-282660FC844D}.Debug|ARM.ActiveCfg = Debug|ARM
|
|
||||||
{3B26A12D-3A44-47EA-82D2-282660FC844D}.Debug|ARM.Build.0 = Debug|ARM
|
|
||||||
{3B26A12D-3A44-47EA-82D2-282660FC844D}.Debug|Win32.ActiveCfg = Debug|Win32
|
|
||||||
{3B26A12D-3A44-47EA-82D2-282660FC844D}.Debug|Win32.Build.0 = Debug|Win32
|
|
||||||
{3B26A12D-3A44-47EA-82D2-282660FC844D}.Debug|x64.ActiveCfg = Debug|x64
|
|
||||||
{3B26A12D-3A44-47EA-82D2-282660FC844D}.Debug|x64.Build.0 = Debug|x64
|
|
||||||
{3B26A12D-3A44-47EA-82D2-282660FC844D}.Release|ARM.ActiveCfg = Release|ARM
|
|
||||||
{3B26A12D-3A44-47EA-82D2-282660FC844D}.Release|ARM.Build.0 = Release|ARM
|
|
||||||
{3B26A12D-3A44-47EA-82D2-282660FC844D}.Release|Win32.ActiveCfg = Release|Win32
|
|
||||||
{3B26A12D-3A44-47EA-82D2-282660FC844D}.Release|Win32.Build.0 = Release|Win32
|
|
||||||
{3B26A12D-3A44-47EA-82D2-282660FC844D}.Release|x64.ActiveCfg = Release|x64
|
|
||||||
{3B26A12D-3A44-47EA-82D2-282660FC844D}.Release|x64.Build.0 = Release|x64
|
|
||||||
{F3550FE0-C795-44F6-8FEB-093EB68143AE}.Debug|ARM.ActiveCfg = Debug|ARM
|
|
||||||
{F3550FE0-C795-44F6-8FEB-093EB68143AE}.Debug|ARM.Build.0 = Debug|ARM
|
|
||||||
{F3550FE0-C795-44F6-8FEB-093EB68143AE}.Debug|Win32.ActiveCfg = Debug|Win32
|
|
||||||
{F3550FE0-C795-44F6-8FEB-093EB68143AE}.Debug|Win32.Build.0 = Debug|Win32
|
|
||||||
{F3550FE0-C795-44F6-8FEB-093EB68143AE}.Debug|x64.ActiveCfg = Debug|x64
|
|
||||||
{F3550FE0-C795-44F6-8FEB-093EB68143AE}.Debug|x64.Build.0 = Debug|x64
|
|
||||||
{F3550FE0-C795-44F6-8FEB-093EB68143AE}.Release|ARM.ActiveCfg = Release|ARM
|
|
||||||
{F3550FE0-C795-44F6-8FEB-093EB68143AE}.Release|ARM.Build.0 = Release|ARM
|
|
||||||
{F3550FE0-C795-44F6-8FEB-093EB68143AE}.Release|Win32.ActiveCfg = Release|Win32
|
|
||||||
{F3550FE0-C795-44F6-8FEB-093EB68143AE}.Release|Win32.Build.0 = Release|Win32
|
|
||||||
{F3550FE0-C795-44F6-8FEB-093EB68143AE}.Release|x64.ActiveCfg = Release|x64
|
|
||||||
{F3550FE0-C795-44F6-8FEB-093EB68143AE}.Release|x64.Build.0 = Release|x64
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
|
||||||
HideSolutionNode = FALSE
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(NestedProjects) = preSolution
|
|
||||||
{7CA66464-6A5E-493B-82EF-DBD84F91766F} = {ECA7A2AA-8501-4177-8360-322A569B6C3E}
|
|
||||||
{8F8A69D6-BD64-4BAD-AE20-2D07E7BD57BA} = {ECA7A2AA-8501-4177-8360-322A569B6C3E}
|
|
||||||
{4A3C6BA8-C227-498B-AA21-40BDA27B461F} = {7CA66464-6A5E-493B-82EF-DBD84F91766F}
|
|
||||||
{3B26A12D-3A44-47EA-82D2-282660FC844D} = {7CA66464-6A5E-493B-82EF-DBD84F91766F}
|
|
||||||
{ADAFD00D-A0D6-46EF-9F0B-EA2880BFE1DE} = {8F8A69D6-BD64-4BAD-AE20-2D07E7BD57BA}
|
|
||||||
{F3550FE0-C795-44F6-8FEB-093EB68143AE} = {8F8A69D6-BD64-4BAD-AE20-2D07E7BD57BA}
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
|
@ -1,698 +0,0 @@
|
||||||
<?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="Debug|Win32">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Debug|x64">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|x64">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Debug|ARM">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>ARM</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|ARM">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>ARM</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
</ItemGroup>
|
|
||||||
<PropertyGroup Label="Globals">
|
|
||||||
<ProjectGuid>{4f6def20-ac4c-487f-85b8-5993519e3911}</ProjectGuid>
|
|
||||||
<RootNamespace>Cocos2dShaderCompiler</RootNamespace>
|
|
||||||
<DefaultLanguage>en-US</DefaultLanguage>
|
|
||||||
<MinimumVisualStudioVersion>12.0</MinimumVisualStudioVersion>
|
|
||||||
<AppContainerApplication>true</AppContainerApplication>
|
|
||||||
<ApplicationType>Windows Store</ApplicationType>
|
|
||||||
<ApplicationTypeRevision>8.1</ApplicationTypeRevision>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v120</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
|
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v120</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v120</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<PlatformToolset>v120</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
|
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<PlatformToolset>v120</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<PlatformToolset>v120</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
|
||||||
<ImportGroup Label="ExtensionSettings">
|
|
||||||
<Import Project="$(VSINSTALLDIR)\Common7\IDE\Extensions\Microsoft\VsGraphics\ImageContentTask.props" />
|
|
||||||
<Import Project="$(VSINSTALLDIR)\Common7\IDE\Extensions\Microsoft\VsGraphics\MeshContentTask.props" />
|
|
||||||
<Import Project="$(VSINSTALLDIR)\Common7\IDE\Extensions\Microsoft\VsGraphics\ShaderGraphContentTask.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
<Import Project="..\..\..\cocos\2d\winrt_props\cocos2d_winrt.props" />
|
|
||||||
<Import Project="..\..\..\cocos\2d\winrt_props\cocos2d_winrt_app.props" />
|
|
||||||
<Import Project="..\..\..\cocos\2d\winrt_props\cocos2d_winrt_platform.props" />
|
|
||||||
</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" />
|
|
||||||
<Import Project="..\..\..\cocos\2d\winrt_props\cocos2d_winrt.props" />
|
|
||||||
<Import Project="..\..\..\cocos\2d\winrt_props\cocos2d_winrt_app.props" />
|
|
||||||
<Import Project="..\..\..\cocos\2d\winrt_props\cocos2d_winrt_platform.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
<Import Project="..\..\..\cocos\2d\winrt_props\cocos2d_winrt.props" />
|
|
||||||
<Import Project="..\..\..\cocos\2d\winrt_props\cocos2d_winrt_app.props" />
|
|
||||||
<Import Project="..\..\..\cocos\2d\winrt_props\cocos2d_winrt_platform.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
<Import Project="..\..\..\cocos\2d\winrt_props\cocos2d_winrt.props" />
|
|
||||||
<Import Project="..\..\..\cocos\2d\winrt_props\cocos2d_winrt_app.props" />
|
|
||||||
<Import Project="..\..\..\cocos\2d\winrt_props\cocos2d_winrt_platform.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
<Import Project="..\..\..\cocos\2d\winrt_props\cocos2d_winrt.props" />
|
|
||||||
<Import Project="..\..\..\cocos\2d\winrt_props\cocos2d_winrt_app.props" />
|
|
||||||
<Import Project="..\..\..\cocos\2d\winrt_props\cocos2d_winrt_platform.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
<Import Project="..\..\..\cocos\2d\winrt_props\cocos2d_winrt.props" />
|
|
||||||
<Import Project="..\..\..\cocos\2d\winrt_props\cocos2d_winrt_app.props" />
|
|
||||||
<Import Project="..\..\..\cocos\2d\winrt_props\cocos2d_winrt_platform.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup>
|
|
||||||
<PackageCertificateKeyFile>Cocos2dShaderCompiler_TemporaryKey.pfx</PackageCertificateKeyFile>
|
|
||||||
<PackageCertificateThumbprint>2371BAA26A4995D58B8E87430D9BE585C3507553</PackageCertificateThumbprint>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
|
|
||||||
<Link>
|
|
||||||
<AdditionalDependencies>d2d1.lib;d3d11.lib;dwrite.lib;dxguid.lib;dxgi.lib;ole32.lib;windowscodecs.lib;libGLESv2.lib;libEGL.lib;zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
<AdditionalLibraryDirectories>$(ProjectDir)..\..\..\external\winrt-specific\zlib\prebuilt\$(Platform);$(ProjectDir)..\..\..\external\winrt-specific\angle\prebuilt\$(Platform);%(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\arm; $(VCInstallDir)\lib\arm</AdditionalLibraryDirectories>
|
|
||||||
</Link>
|
|
||||||
<ClCompile>
|
|
||||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
|
||||||
<PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile>
|
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir);$(EngineRoot)external\sqlite3\include;$(EngineRoot)external\unzip;$(EngineRoot)external\edtaa3func;$(EngineRoot)external\tinyxml2;$(EngineRoot)external\png\include\wp8;$(EngineRoot)external\jpeg\include\wp8;$(EngineRoot)external\tiff\include\wp8;$(EngineRoot)external\freetype2\include\wp8\freetype;$(EngineRoot)external\wp8-specific\zlib\include;$(EngineRoot)external\chipmunk\include\chipmunk;$(IntermediateOutputPath);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
|
|
||||||
<PreprocessorDefinitions>WP8_SHADER_COMPILER;CC_USE_PHYSICS=0;CC_STATIC;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
||||||
<ForcedIncludeFiles>
|
|
||||||
</ForcedIncludeFiles>
|
|
||||||
</ClCompile>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
|
|
||||||
<Link>
|
|
||||||
<AdditionalDependencies>d2d1.lib;d3d11.lib;dwrite.lib;dxguid.lib;dxgi.lib;ole32.lib;windowscodecs.lib;libGLESv2.lib;libEGL.lib;zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
<AdditionalLibraryDirectories>$(ProjectDir)..\..\..\external\winrt-specific\zlib\prebuilt\$(Platform);$(ProjectDir)..\..\..\external\winrt-specific\angle\prebuilt\$(Platform);%(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\arm; $(VCInstallDir)\lib\arm</AdditionalLibraryDirectories>
|
|
||||||
</Link>
|
|
||||||
<ClCompile>
|
|
||||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
|
||||||
<PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile>
|
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir);$(EngineRoot)external\sqlite3\include;$(EngineRoot)external\unzip;$(EngineRoot)external\edtaa3func;$(EngineRoot)external\tinyxml2;$(EngineRoot)external\png\include\wp8;$(EngineRoot)external\jpeg\include\wp8;$(EngineRoot)external\tiff\include\wp8;$(EngineRoot)external\freetype2\include\wp8\freetype;$(EngineRoot)external\wp8-specific\zlib\include;$(EngineRoot)external\chipmunk\include\chipmunk;$(IntermediateOutputPath);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
|
|
||||||
<PreprocessorDefinitions>WP8_SHADER_COMPILER;CC_USE_PHYSICS=0;CC_STATIC;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
||||||
<ForcedIncludeFiles>
|
|
||||||
</ForcedIncludeFiles>
|
|
||||||
</ClCompile>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<Link>
|
|
||||||
<AdditionalDependencies>d2d1.lib;d3d11.lib;dwrite.lib;dxguid.lib;dxgi.lib;ole32.lib;windowscodecs.lib;libGLESv2.lib;libEGL.lib;zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
<AdditionalLibraryDirectories>$(ProjectDir)..\..\..\external\winrt-specific\zlib\prebuilt\$(Platform);$(ProjectDir)..\..\..\external\winrt-specific\angle\prebuilt\$(Platform);%(AdditionalLibraryDirectories);$(VCInstallDir)\lib\store;$(VCInstallDir)\lib</AdditionalLibraryDirectories>
|
|
||||||
</Link>
|
|
||||||
<ClCompile>
|
|
||||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
|
||||||
<PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile>
|
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir);$(EngineRoot)external\sqlite3\include;$(EngineRoot)external\unzip;$(EngineRoot)external\edtaa3func;$(EngineRoot)external\tinyxml2;$(EngineRoot)external\png\include\wp8;$(EngineRoot)external\jpeg\include\wp8;$(EngineRoot)external\tiff\include\wp8;$(EngineRoot)external\freetype2\include\wp8\freetype;$(EngineRoot)external\wp8-specific\zlib\include;$(EngineRoot)external\chipmunk\include\chipmunk;$(IntermediateOutputPath);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
|
|
||||||
<PreprocessorDefinitions>WP8_SHADER_COMPILER;CC_USE_PHYSICS=0;CC_STATIC;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
||||||
<ForcedIncludeFiles>
|
|
||||||
</ForcedIncludeFiles>
|
|
||||||
</ClCompile>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<Link>
|
|
||||||
<AdditionalDependencies>d2d1.lib;d3d11.lib;dwrite.lib;dxguid.lib;dxgi.lib;ole32.lib;windowscodecs.lib;libGLESv2.lib;libEGL.lib;zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
<AdditionalLibraryDirectories>$(ProjectDir)..\..\..\external\winrt-specific\zlib\prebuilt\$(Platform);$(ProjectDir)..\..\..\external\winrt-specific\angle\prebuilt\$(Platform);%(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store; $(VCInstallDir)\lib</AdditionalLibraryDirectories>
|
|
||||||
</Link>
|
|
||||||
<ClCompile>
|
|
||||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
|
||||||
<PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile>
|
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir);$(EngineRoot)external\sqlite3\include;$(EngineRoot)external\unzip;$(EngineRoot)external\edtaa3func;$(EngineRoot)external\tinyxml2;$(EngineRoot)external\png\include\wp8;$(EngineRoot)external\jpeg\include\wp8;$(EngineRoot)external\tiff\include\wp8;$(EngineRoot)external\freetype2\include\wp8\freetype;$(EngineRoot)external\wp8-specific\zlib\include;$(EngineRoot)external\chipmunk\include\chipmunk;$(IntermediateOutputPath);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
|
|
||||||
<PreprocessorDefinitions>WP8_SHADER_COMPILER;CC_USE_PHYSICS=0;CC_STATIC;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
||||||
<ForcedIncludeFiles>
|
|
||||||
</ForcedIncludeFiles>
|
|
||||||
</ClCompile>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<Link>
|
|
||||||
<AdditionalDependencies>d2d1.lib;d3d11.lib;dwrite.lib;dxguid.lib;dxgi.lib;ole32.lib;windowscodecs.lib;libGLESv2.lib;libEGL.lib;zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
<AdditionalLibraryDirectories>$(ProjectDir)..\..\..\external\winrt-specific\zlib\prebuilt\$(Platform);$(ProjectDir)..\..\..\external\winrt-specific\angle\prebuilt\$(Platform);%(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\amd64; $(VCInstallDir)\lib\amd64</AdditionalLibraryDirectories>
|
|
||||||
</Link>
|
|
||||||
<ClCompile>
|
|
||||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
|
||||||
<PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile>
|
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir);$(EngineRoot)external\sqlite3\include;$(EngineRoot)external\unzip;$(EngineRoot)external\edtaa3func;$(EngineRoot)external\tinyxml2;$(EngineRoot)external\png\include\wp8;$(EngineRoot)external\jpeg\include\wp8;$(EngineRoot)external\tiff\include\wp8;$(EngineRoot)external\freetype2\include\wp8\freetype;$(EngineRoot)external\wp8-specific\zlib\include;$(EngineRoot)external\chipmunk\include\chipmunk;$(IntermediateOutputPath);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
|
|
||||||
<PreprocessorDefinitions>WP8_SHADER_COMPILER;CC_USE_PHYSICS=0;CC_STATIC;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
||||||
<ForcedIncludeFiles>
|
|
||||||
</ForcedIncludeFiles>
|
|
||||||
</ClCompile>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<Link>
|
|
||||||
<AdditionalDependencies>d2d1.lib;d3d11.lib;dwrite.lib;dxguid.lib;dxgi.lib;ole32.lib;windowscodecs.lib;libGLESv2.lib;libEGL.lib;zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
<AdditionalLibraryDirectories>$(ProjectDir)..\..\..\external\winrt-specific\zlib\prebuilt\$(Platform);$(ProjectDir)..\..\..\external\winrt-specific\angle\prebuilt\$(Platform);%(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\amd64; $(VCInstallDir)\lib\amd64</AdditionalLibraryDirectories>
|
|
||||||
</Link>
|
|
||||||
<ClCompile>
|
|
||||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
|
||||||
<PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile>
|
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir);$(EngineRoot)external\sqlite3\include;$(EngineRoot)external\unzip;$(EngineRoot)external\edtaa3func;$(EngineRoot)external\tinyxml2;$(EngineRoot)external\png\include\wp8;$(EngineRoot)external\jpeg\include\wp8;$(EngineRoot)external\tiff\include\wp8;$(EngineRoot)external\freetype2\include\wp8\freetype;$(EngineRoot)external\wp8-specific\zlib\include;$(EngineRoot)external\chipmunk\include\chipmunk;$(IntermediateOutputPath);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
|
|
||||||
<PreprocessorDefinitions>WP8_SHADER_COMPILER;CC_USE_PHYSICS=0;CC_STATIC;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
||||||
<ForcedIncludeFiles>
|
|
||||||
</ForcedIncludeFiles>
|
|
||||||
</ClCompile>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Image Include="Assets\Logo.png" />
|
|
||||||
<Image Include="Assets\SmallLogo.png" />
|
|
||||||
<Image Include="Assets\StoreLogo.png" />
|
|
||||||
<Image Include="Assets\SplashScreen.png" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCAction.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCActionCamera.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCActionCatmullRom.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCActionEase.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCActionGrid.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCActionGrid3D.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCActionInstant.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCActionInterval.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCActionManager.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCActionPageTurn3D.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCActionProgressTimer.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCActionTiledGrid.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCActionTween.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCAnimation.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCAnimationCache.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCAtlasNode.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCCamera.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCClippingNode.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCComponent.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCComponentContainer.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCDrawingPrimitives.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCDrawNode.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCFastTMXLayer.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCFastTMXTiledMap.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCFont.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCFontAtlas.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCFontAtlasCache.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCFontCharMap.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCFontFNT.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCFontFreeType.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCGLBufferedNode.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCGrabber.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCGrid.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCLabel.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCLabelAtlas.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCLabelBMFont.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCLabelTextFormatter.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCLabelTTF.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCLayer.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCLight.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCMenu.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCMenuItem.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCMotionStreak.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCNode.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCNodeGrid.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCParallaxNode.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCParticleBatchNode.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCParticleExamples.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCParticleSystem.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCParticleSystemQuad.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCProgressTimer.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCProtectedNode.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCRenderTexture.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCScene.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCSprite.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCSpriteBatchNode.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCSpriteFrame.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCSpriteFrameCache.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCTextFieldTTF.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCTileMapAtlas.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCTMXLayer.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCTMXObjectGroup.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCTMXTiledMap.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCTMXXMLParser.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCTransition.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCTransitionPageTurn.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCTransitionProgress.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\2d\CCTweenFunction.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\3d\CCAABB.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\3d\CCAnimate3D.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\3d\CCAnimation3D.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\3d\CCAnimationCurve.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\3d\CCAttachNode.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\3d\CCBillBoard.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\3d\CCBundle3D.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\3d\CCBundle3DData.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\3d\CCBundleReader.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\3d\CCFrustum.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\3d\CCMesh.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\3d\CCMeshSkin.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\3d\CCMeshVertexIndexData.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\3d\CCOBB.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\3d\CCObjLoader.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\3d\CCPlane.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\3d\CCRay.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\3d\CCSkeleton3D.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\3d\CCSprite3D.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\3d\CCSprite3DMaterial.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\3d\cocos3d.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\allocator\CCAllocatorBase.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\allocator\CCAllocatorDiagnostics.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\allocator\CCAllocatorGlobal.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\allocator\CCAllocatorMacros.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\allocator\CCAllocatorMutex.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\allocator\CCAllocatorStrategyDefault.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\allocator\CCAllocatorStrategyFixedBlock.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\allocator\CCAllocatorStrategyGlobalSmallBlock.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\allocator\CCAllocatorStrategyPool.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\atitc.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\base64.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\CCAsyncTaskPool.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\CCAutoreleasePool.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\ccCArray.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\ccConfig.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\CCConfiguration.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\CCConsole.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\CCController.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\CCData.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\CCDataVisitor.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\CCDirector.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\CCEvent.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\CCEventAcceleration.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\CCEventController.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\CCEventCustom.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\CCEventDispatcher.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\CCEventFocus.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\CCEventKeyboard.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\CCEventListener.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\CCEventListenerAcceleration.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\CCEventListenerController.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\CCEventListenerCustom.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\CCEventListenerFocus.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\CCEventListenerKeyboard.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\CCEventListenerMouse.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\CCEventListenerTouch.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\CCEventMouse.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\CCEventTouch.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\CCEventType.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\ccFPSImages.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\CCGameController.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\CCIMEDelegate.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\CCIMEDispatcher.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\ccMacros.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\CCMap.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\CCNS.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\CCProfiling.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\CCProtocols.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\ccRandom.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\CCRef.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\CCRefPtr.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\CCScheduler.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\CCScriptSupport.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\CCTouch.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\ccTypes.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\CCUserDefault.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\ccUTF8.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\ccUtils.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\CCValue.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\CCVector.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\etc1.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\firePngData.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\ObjectFactory.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\pvr.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\s3tc.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\TGAlib.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\uthash.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\utlist.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\base\ZipUtils.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\deprecated\CCArray.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\deprecated\CCBool.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\deprecated\CCDeprecated.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\deprecated\CCDictionary.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\deprecated\CCDouble.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\deprecated\CCFloat.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\deprecated\CCInteger.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\deprecated\CCNotificationCenter.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\deprecated\CCSet.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\deprecated\CCString.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\math\CCAffineTransform.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\math\CCGeometry.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\math\CCMath.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\math\CCMathBase.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\math\CCVertex.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\math\Mat4.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\math\MathUtil.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\math\Quaternion.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\math\TransformUtils.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\math\Vec2.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\math\Vec3.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\math\Vec4.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\platform\CCFileUtils.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\platform\CCImage.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\platform\CCSAXParser.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\platform\winrt\CCFileUtilsWinRT.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\platform\winrt\CCFreeTypeFont.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\platform\winrt\CCGL.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\platform\winrt\CCGL_Angle.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\platform\winrt\CCPrecompiledShaders.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\platform\winrt\CCStdC.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\platform\winrt\CCWinRTUtils.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\platform\winrt\sha1.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\renderer\CCBatchCommand.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\renderer\CCCustomCommand.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\renderer\CCGLProgram.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\renderer\CCGLProgramCache.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\renderer\CCGLProgramState.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\renderer\CCGLProgramStateCache.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\renderer\ccGLStateCache.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\renderer\CCGroupCommand.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\renderer\CCMeshCommand.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\renderer\CCPrimitive.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\renderer\CCPrimitiveCommand.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\renderer\CCQuadCommand.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\renderer\CCRenderCommand.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\renderer\CCRenderCommandPool.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\renderer\CCRenderer.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\renderer\ccShaders.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\renderer\CCTexture2D.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\renderer\CCTextureAtlas.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\renderer\CCTextureCache.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\renderer\CCTrianglesCommand.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\renderer\CCVertexIndexBuffer.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\renderer\CCVertexIndexData.h" />
|
|
||||||
<ClInclude Include="..\..\..\cocos\ui\shaders\UIShaders.h" />
|
|
||||||
<ClInclude Include="..\..\..\external\ConvertUTF\ConvertUTF.h" />
|
|
||||||
<ClInclude Include="..\..\..\external\edtaa3func\edtaa3func.h" />
|
|
||||||
<ClInclude Include="..\..\..\external\tinyxml2\tinyxml2.h" />
|
|
||||||
<ClInclude Include="..\..\..\external\unzip\ioapi.h" />
|
|
||||||
<ClInclude Include="..\..\..\external\unzip\ioapi_mem.h" />
|
|
||||||
<ClInclude Include="..\..\..\external\unzip\unzip.h" />
|
|
||||||
<ClInclude Include="..\..\..\external\xxhash\xxhash.h" />
|
|
||||||
<ClInclude Include="App.xaml.h">
|
|
||||||
<DependentUpon>App.xaml</DependentUpon>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="DirectXPage.xaml.h">
|
|
||||||
<DependentUpon>DirectXPage.xaml</DependentUpon>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="ShaderCompiler.h" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCAction.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCActionCamera.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCActionCatmullRom.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCActionEase.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCActionGrid.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCActionGrid3D.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCActionInstant.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCActionInterval.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCActionManager.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCActionPageTurn3D.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCActionProgressTimer.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCActionTiledGrid.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCActionTween.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCAnimation.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCAnimationCache.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCAtlasNode.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCCamera.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCClippingNode.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCComponent.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCComponentContainer.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCDrawingPrimitives.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCDrawNode.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCFastTMXLayer.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCFastTMXTiledMap.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCFont.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCFontAtlas.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCFontAtlasCache.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCFontCharMap.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCFontFNT.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCFontFreeType.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCGLBufferedNode.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCGrabber.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCGrid.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCLabel.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCLabelAtlas.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCLabelBMFont.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCLabelTextFormatter.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCLabelTTF.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCLayer.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCLight.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCMenu.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCMenuItem.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCMotionStreak.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCNode.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCNodeGrid.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCParallaxNode.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCParticleBatchNode.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCParticleExamples.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCParticleSystem.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCParticleSystemQuad.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCProgressTimer.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCProtectedNode.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCRenderTexture.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCScene.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCSprite.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCSpriteBatchNode.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCSpriteFrame.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCSpriteFrameCache.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCTextFieldTTF.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCTileMapAtlas.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCTMXLayer.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCTMXObjectGroup.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCTMXTiledMap.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCTMXXMLParser.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCTransition.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCTransitionPageTurn.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCTransitionProgress.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\2d\CCTweenFunction.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\3d\CCAABB.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\3d\CCAnimate3D.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\3d\CCAnimation3D.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\3d\CCAttachNode.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\3d\CCBillBoard.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\3d\CCBundle3D.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\3d\CCBundleReader.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\3d\CCFrustum.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\3d\CCMesh.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\3d\CCMeshSkin.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\3d\CCMeshVertexIndexData.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\3d\CCOBB.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\3d\CCObjLoader.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\3d\CCPlane.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\3d\CCRay.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\3d\CCSkeleton3D.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\3d\CCSprite3D.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\3d\CCSprite3DMaterial.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\allocator\CCAllocatorDiagnostics.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\allocator\CCAllocatorGlobal.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\allocator\CCAllocatorGlobalNewDelete.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\atitc.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\base64.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\CCAsyncTaskPool.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\CCAutoreleasePool.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\ccCArray.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\CCConfiguration.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\CCConsole.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\CCController.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\CCData.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\CCDataVisitor.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\CCDirector.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\CCEvent.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\CCEventAcceleration.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\CCEventController.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\CCEventCustom.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\CCEventDispatcher.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\CCEventFocus.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\CCEventKeyboard.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\CCEventListener.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\CCEventListenerAcceleration.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\CCEventListenerController.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\CCEventListenerCustom.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\CCEventListenerFocus.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\CCEventListenerKeyboard.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\CCEventListenerMouse.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\CCEventListenerTouch.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\CCEventMouse.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\CCEventTouch.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\ccFPSImages.c">
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</CompileAsWinRT>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\CCIMEDispatcher.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\CCNS.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\CCProfiling.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\ccRandom.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\CCRef.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\CCScheduler.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\CCScriptSupport.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\CCTouch.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\ccTypes.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\CCUserDefault.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\ccUTF8.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\ccUtils.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\CCValue.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\etc1.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\ObjectFactory.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\pvr.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\s3tc.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\TGAlib.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\base\ZipUtils.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\cocos2d.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\deprecated\CCArray.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\deprecated\CCDeprecated.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\deprecated\CCDictionary.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\deprecated\CCNotificationCenter.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\deprecated\CCSet.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\deprecated\CCString.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\math\CCAffineTransform.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\math\CCGeometry.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\math\CCVertex.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\math\Mat4.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\math\MathUtil.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\math\Quaternion.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\math\TransformUtils.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\math\Vec2.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\math\Vec3.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\math\Vec4.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\platform\CCFileUtils.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\platform\CCImage.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\platform\CCSAXParser.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\platform\winrt\CCCommon.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\platform\winrt\CCDevice.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\platform\winrt\CCFileUtilsWinRT.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\platform\winrt\CCFreeTypeFont.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\platform\winrt\CCPrecompiledShaders.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\platform\winrt\CCStdC.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\platform\winrt\CCWinRTUtils.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\platform\winrt\sha1.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\renderer\CCBatchCommand.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\renderer\CCCustomCommand.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\renderer\CCGLProgram.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\renderer\CCGLProgramCache.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\renderer\CCGLProgramState.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\renderer\CCGLProgramStateCache.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\renderer\ccGLStateCache.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\renderer\CCGroupCommand.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\renderer\CCMeshCommand.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\renderer\CCPrimitive.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\renderer\CCPrimitiveCommand.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\renderer\CCQuadCommand.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\renderer\CCRenderCommand.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\renderer\CCRenderer.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\renderer\ccShaders.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\renderer\CCTexture2D.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\renderer\CCTextureAtlas.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\renderer\CCTextureCache.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\renderer\CCTrianglesCommand.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\renderer\CCVertexIndexBuffer.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\renderer\CCVertexIndexData.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\cocos\ui\shaders\UIShaders.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\external\ConvertUTF\ConvertUTF.c">
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</CompileAsWinRT>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\..\external\ConvertUTF\ConvertUTFWrapper.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\external\edtaa3func\edtaa3func.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\external\tinyxml2\tinyxml2.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\external\unzip\ioapi.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\external\unzip\ioapi_mem.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\external\unzip\unzip.cpp" />
|
|
||||||
<ClCompile Include="..\..\..\external\xxhash\xxhash.c">
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</CompileAsWinRT>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="App.xaml.cpp">
|
|
||||||
<DependentUpon>App.xaml</DependentUpon>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="DirectXPage.xaml.cpp">
|
|
||||||
<DependentUpon>DirectXPage.xaml</DependentUpon>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="ShaderCompiler.cpp" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<AppxManifest Include="Package.appxmanifest">
|
|
||||||
<SubType>Designer</SubType>
|
|
||||||
</AppxManifest>
|
|
||||||
<None Include="..\..\..\cocos\3d\CCAnimationCurve.inl" />
|
|
||||||
<None Include="..\..\..\cocos\math\MathUtil.inl" />
|
|
||||||
<None Include="Cocos2dShaderCompiler_TemporaryKey.pfx" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ApplicationDefinition Include="App.xaml">
|
|
||||||
<SubType>Designer</SubType>
|
|
||||||
</ApplicationDefinition>
|
|
||||||
<Page Include="DirectXPage.xaml">
|
|
||||||
<SubType>Designer</SubType>
|
|
||||||
</Page>
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
|
||||||
<ImportGroup Label="ExtensionTargets">
|
|
||||||
<Import Project="$(VSINSTALLDIR)\Common7\IDE\Extensions\Microsoft\VsGraphics\ImageContentTask.targets" />
|
|
||||||
<Import Project="$(VSINSTALLDIR)\Common7\IDE\Extensions\Microsoft\VsGraphics\MeshContentTask.targets" />
|
|
||||||
<Import Project="$(VSINSTALLDIR)\Common7\IDE\Extensions\Microsoft\VsGraphics\ShaderGraphContentTask.targets" />
|
|
||||||
</ImportGroup>
|
|
||||||
</Project>
|
|
|
@ -1,23 +0,0 @@
|
||||||
<Page
|
|
||||||
x:Class="Cocos2dShaderCompiler.DirectXPage"
|
|
||||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
||||||
xmlns:local="using:Cocos2dShaderCompiler"
|
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
||||||
mc:Ignorable="d">
|
|
||||||
|
|
||||||
<!--LayoutRoot is the root grid where all page content is placed-->
|
|
||||||
<Grid x:Name="LayoutRoot" Background="Transparent">
|
|
||||||
<StackPanel Orientation="Vertical">
|
|
||||||
<StackPanel Orientation="Horizontal" Margin="40,100,0,0" Height="50" VerticalAlignment="Top">
|
|
||||||
<TextBlock Text="Save file to cocos\platform\wp8\shaders\precompiledshaders.h" FontSize="36"/>
|
|
||||||
</StackPanel>
|
|
||||||
<StackPanel Orientation="Horizontal" Margin="40,100,0,0" Height="50" VerticalAlignment="Top">
|
|
||||||
<TextBlock Text="Result: " FontSize="36"/>
|
|
||||||
<TextBlock Text="" FontSize="36" x:Name="ResultText" />
|
|
||||||
</StackPanel>
|
|
||||||
<Button Margin="40,100,0,0" x:Name="compileButton" Content="Compile" Width="150" Click="OnCompile" />
|
|
||||||
</StackPanel>
|
|
||||||
</Grid>
|
|
||||||
</Page>
|
|
|
@ -1,126 +0,0 @@
|
||||||
//
|
|
||||||
// DirectXPage.xaml.cpp
|
|
||||||
// Implementation of the DirectXPage class.
|
|
||||||
//
|
|
||||||
|
|
||||||
#include "pch.h"
|
|
||||||
#include "DirectXPage.xaml.h"
|
|
||||||
|
|
||||||
using namespace Cocos2dShaderCompiler;
|
|
||||||
|
|
||||||
using namespace Platform;
|
|
||||||
using namespace Windows::Foundation;
|
|
||||||
using namespace Windows::Foundation::Collections;
|
|
||||||
using namespace Windows::Graphics::Display;
|
|
||||||
using namespace Windows::System::Threading;
|
|
||||||
using namespace Windows::UI::Core;
|
|
||||||
using namespace Windows::UI::Input;
|
|
||||||
using namespace Windows::UI::Xaml;
|
|
||||||
using namespace Windows::UI::Xaml::Controls;
|
|
||||||
using namespace Windows::UI::Xaml::Controls::Primitives;
|
|
||||||
using namespace Windows::UI::Xaml::Data;
|
|
||||||
using namespace Windows::UI::Xaml::Input;
|
|
||||||
using namespace Windows::UI::Xaml::Media;
|
|
||||||
using namespace Windows::UI::Xaml::Navigation;
|
|
||||||
using namespace concurrency;
|
|
||||||
|
|
||||||
DirectXPage::DirectXPage():
|
|
||||||
m_windowVisible(true),
|
|
||||||
m_coreInput(nullptr)
|
|
||||||
{
|
|
||||||
InitializeComponent();
|
|
||||||
|
|
||||||
// Register event handlers for page lifecycle.
|
|
||||||
CoreWindow^ window = Window::Current->CoreWindow;
|
|
||||||
|
|
||||||
window->VisibilityChanged +=
|
|
||||||
ref new TypedEventHandler<CoreWindow^, VisibilityChangedEventArgs^>(this, &DirectXPage::OnVisibilityChanged);
|
|
||||||
|
|
||||||
DisplayInformation^ currentDisplayInformation = DisplayInformation::GetForCurrentView();
|
|
||||||
|
|
||||||
currentDisplayInformation->DpiChanged +=
|
|
||||||
ref new TypedEventHandler<DisplayInformation^, Object^>(this, &DirectXPage::OnDpiChanged);
|
|
||||||
|
|
||||||
currentDisplayInformation->OrientationChanged +=
|
|
||||||
ref new TypedEventHandler<DisplayInformation^, Object^>(this, &DirectXPage::OnOrientationChanged);
|
|
||||||
|
|
||||||
DisplayInformation::DisplayContentsInvalidated +=
|
|
||||||
ref new TypedEventHandler<DisplayInformation^, Object^>(this, &DirectXPage::OnDisplayContentsInvalidated);
|
|
||||||
|
|
||||||
|
|
||||||
// Disable all pointer visual feedback for better performance when touching.
|
|
||||||
auto pointerVisualizationSettings = PointerVisualizationSettings::GetForCurrentView();
|
|
||||||
pointerVisualizationSettings->IsContactFeedbackEnabled = false;
|
|
||||||
pointerVisualizationSettings->IsBarrelButtonFeedbackEnabled = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
DirectXPage::~DirectXPage()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void DirectXPage::OnCompile(Object^ sender, RoutedEventArgs^ args)
|
|
||||||
{
|
|
||||||
compiler.Compile(ResultText);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Saves the current state of the app for suspend and terminate events.
|
|
||||||
void DirectXPage::SaveInternalState(IPropertySet^ state)
|
|
||||||
{
|
|
||||||
//m_deviceResources->Trim();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Loads the current state of the app for resume events.
|
|
||||||
void DirectXPage::LoadInternalState(IPropertySet^ state)
|
|
||||||
{
|
|
||||||
// Put code to load app state here.
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Window event handlers.
|
|
||||||
|
|
||||||
void DirectXPage::OnVisibilityChanged(CoreWindow^ sender, VisibilityChangedEventArgs^ args)
|
|
||||||
{
|
|
||||||
m_windowVisible = args->Visible;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// DisplayInformation event handlers.
|
|
||||||
|
|
||||||
void DirectXPage::OnDpiChanged(DisplayInformation^ sender, Object^ args)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void DirectXPage::OnOrientationChanged(DisplayInformation^ sender, Object^ args)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void DirectXPage::OnDisplayContentsInvalidated(DisplayInformation^ sender, Object^ args)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void DirectXPage::OnPointerPressed(Object^ sender, PointerEventArgs^ e)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void DirectXPage::OnPointerMoved(Object^ sender, PointerEventArgs^ e)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void DirectXPage::OnPointerReleased(Object^ sender, PointerEventArgs^ e)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void DirectXPage::OnCompositionScaleChanged(SwapChainPanel^ sender, Object^ args)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,56 +0,0 @@
|
||||||
//
|
|
||||||
// DirectXPage.xaml.h
|
|
||||||
// Declaration of the DirectXPage class.
|
|
||||||
//
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "DirectXPage.g.h"
|
|
||||||
#include "ShaderCompiler.h"
|
|
||||||
|
|
||||||
|
|
||||||
namespace Cocos2dShaderCompiler
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// A page that hosts a DirectX SwapChainPanel.
|
|
||||||
/// </summary>
|
|
||||||
public ref class DirectXPage sealed
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
DirectXPage();
|
|
||||||
virtual ~DirectXPage();
|
|
||||||
|
|
||||||
void SaveInternalState(Windows::Foundation::Collections::IPropertySet^ state);
|
|
||||||
void LoadInternalState(Windows::Foundation::Collections::IPropertySet^ state);
|
|
||||||
|
|
||||||
private:
|
|
||||||
// XAML low-level rendering event handler.
|
|
||||||
void OnRendering(Platform::Object^ sender, Platform::Object^ args);
|
|
||||||
|
|
||||||
// Window event handlers.
|
|
||||||
void OnVisibilityChanged(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::VisibilityChangedEventArgs^ args);
|
|
||||||
|
|
||||||
// DisplayInformation event handlers.
|
|
||||||
void OnDpiChanged(Windows::Graphics::Display::DisplayInformation^ sender, Platform::Object^ args);
|
|
||||||
void OnOrientationChanged(Windows::Graphics::Display::DisplayInformation^ sender, Platform::Object^ args);
|
|
||||||
void OnDisplayContentsInvalidated(Windows::Graphics::Display::DisplayInformation^ sender, Platform::Object^ args);
|
|
||||||
|
|
||||||
// Other event handlers.
|
|
||||||
void OnCompositionScaleChanged(Windows::UI::Xaml::Controls::SwapChainPanel^ sender, Object^ args);
|
|
||||||
void OnCompile(Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
|
|
||||||
|
|
||||||
// Track our independent input on a background worker thread.
|
|
||||||
Windows::Foundation::IAsyncAction^ m_inputLoopWorker;
|
|
||||||
Windows::UI::Core::CoreIndependentInputSource^ m_coreInput;
|
|
||||||
|
|
||||||
// Independent input handling functions.
|
|
||||||
void OnPointerPressed(Platform::Object^ sender, Windows::UI::Core::PointerEventArgs^ e);
|
|
||||||
void OnPointerMoved(Platform::Object^ sender, Windows::UI::Core::PointerEventArgs^ e);
|
|
||||||
void OnPointerReleased(Platform::Object^ sender, Windows::UI::Core::PointerEventArgs^ e);
|
|
||||||
|
|
||||||
ShaderCompiler compiler;
|
|
||||||
|
|
||||||
bool m_windowVisible;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,31 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Package xmlns="http://schemas.microsoft.com/appx/2010/manifest" xmlns:m2="http://schemas.microsoft.com/appx/2013/manifest">
|
|
||||||
<Identity Name="648a721b-11b5-48d7-816b-4d7fa8b140c0" Publisher="CN=msopentech" Version="1.0.0.0" />
|
|
||||||
<Properties>
|
|
||||||
<DisplayName>Cocos2dShaderCompiler</DisplayName>
|
|
||||||
<PublisherDisplayName>msopentech</PublisherDisplayName>
|
|
||||||
<Logo>Assets\StoreLogo.png</Logo>
|
|
||||||
</Properties>
|
|
||||||
<Prerequisites>
|
|
||||||
<OSMinVersion>6.3.0</OSMinVersion>
|
|
||||||
<OSMaxVersionTested>6.3.0</OSMaxVersionTested>
|
|
||||||
</Prerequisites>
|
|
||||||
<Resources>
|
|
||||||
<Resource Language="x-generate" />
|
|
||||||
</Resources>
|
|
||||||
<Applications>
|
|
||||||
<Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="Cocos2dShaderCompiler.App">
|
|
||||||
<m2:VisualElements DisplayName="Cocos2dShaderCompiler" Description="Cocos2dShaderCompiler" BackgroundColor="#464646" ForegroundText="light" Square150x150Logo="Assets\Logo.png" Square30x30Logo="Assets\SmallLogo.png">
|
|
||||||
<m2:DefaultTile>
|
|
||||||
<m2:ShowNameOnTiles>
|
|
||||||
<m2:ShowOn Tile="square150x150Logo" />
|
|
||||||
</m2:ShowNameOnTiles>
|
|
||||||
</m2:DefaultTile>
|
|
||||||
<m2:SplashScreen Image="Assets\SplashScreen.png" />
|
|
||||||
</m2:VisualElements>
|
|
||||||
</Application>
|
|
||||||
</Applications>
|
|
||||||
<Capabilities>
|
|
||||||
<Capability Name="internetClient" />
|
|
||||||
</Capabilities>
|
|
||||||
</Package>
|
|
|
@ -1,168 +0,0 @@
|
||||||
/****************************************************************************
|
|
||||||
Copyright (c) 2013 cocos2d-x.org
|
|
||||||
Copyright (c) Microsoft Open Technologies, Inc.
|
|
||||||
|
|
||||||
http://www.cocos2d-x.org
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
#include "ShaderCompiler.h"
|
|
||||||
#include "cocos2d.h"
|
|
||||||
#include "CCPrecompiledShaders.h"
|
|
||||||
|
|
||||||
using namespace Concurrency;
|
|
||||||
using namespace Microsoft::WRL;
|
|
||||||
using namespace Windows::Foundation;
|
|
||||||
using namespace Windows::UI::Core;
|
|
||||||
|
|
||||||
USING_NS_CC;
|
|
||||||
|
|
||||||
ShaderCompiler::ShaderCompiler()
|
|
||||||
: m_display(nullptr),
|
|
||||||
m_context(nullptr),
|
|
||||||
m_initialized(false),
|
|
||||||
m_resultText(nullptr)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
ShaderCompiler::~ShaderCompiler()
|
|
||||||
{
|
|
||||||
|
|
||||||
CloseAngle();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
bool ShaderCompiler::Compile(Windows::UI::Xaml::Controls::TextBlock^ resultText)
|
|
||||||
{
|
|
||||||
m_resultText = resultText;
|
|
||||||
resultText->Text = "Compiling shaders...";
|
|
||||||
|
|
||||||
if (!InitializeAngle(ANGLE_D3D_FEATURE_LEVEL::ANGLE_D3D_FEATURE_LEVEL_9_3))
|
|
||||||
{
|
|
||||||
resultText->Text = "Unable to initialize Angle";
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
auto director = cocos2d::Director::getInstance();
|
|
||||||
|
|
||||||
//Director::getInstance()->setAnimationInterval(1.0 / 60.0);
|
|
||||||
CCShaderCache::getInstance()->loadDefaultShaders();
|
|
||||||
CCPrecompiledShaders::getInstance()->savePrecompiledShaders();
|
|
||||||
resultText->Text = "Complete";
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Creates and restores Cocos2d-x after DirectX and Angle contexts are created or updated
|
|
||||||
void ShaderCompiler::InitializeCocos2d()
|
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void ShaderCompiler::CloseAngle()
|
|
||||||
{
|
|
||||||
eglMakeCurrent(NULL, NULL, NULL, NULL);
|
|
||||||
|
|
||||||
if (m_display && m_context)
|
|
||||||
{
|
|
||||||
eglDestroyContext(m_context, m_context);
|
|
||||||
}
|
|
||||||
if (m_display)
|
|
||||||
{
|
|
||||||
eglTerminate(m_display);
|
|
||||||
}
|
|
||||||
|
|
||||||
m_eglWindow = nullptr;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ShaderCompiler::InitializeAngle(ANGLE_D3D_FEATURE_LEVEL featureLevel)
|
|
||||||
{
|
|
||||||
// setup EGL
|
|
||||||
EGLint configAttribList[] = {
|
|
||||||
EGL_RED_SIZE, 8,
|
|
||||||
EGL_GREEN_SIZE, 8,
|
|
||||||
EGL_BLUE_SIZE, 8,
|
|
||||||
EGL_ALPHA_SIZE, 8,
|
|
||||||
EGL_DEPTH_SIZE, 8,
|
|
||||||
EGL_STENCIL_SIZE, 8,
|
|
||||||
EGL_SAMPLE_BUFFERS, 0,
|
|
||||||
EGL_NONE
|
|
||||||
};
|
|
||||||
|
|
||||||
EGLint surfaceAttribList[] = {
|
|
||||||
EGL_NONE, EGL_NONE
|
|
||||||
};
|
|
||||||
|
|
||||||
EGLint numConfigs;
|
|
||||||
EGLint majorVersion;
|
|
||||||
EGLint minorVersion;
|
|
||||||
EGLConfig config;
|
|
||||||
EGLint contextAttribs[] = { EGL_CONTEXT_CLIENT_VERSION, 2, EGL_NONE, EGL_NONE };
|
|
||||||
|
|
||||||
IUnknown* dummy = nullptr;
|
|
||||||
HRESULT result = CreateWinrtEglWindow(WINRT_EGL_IUNKNOWN(dummy), featureLevel, m_eglWindow.GetAddressOf());
|
|
||||||
if (!SUCCEEDED(result))
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
m_display = eglGetDisplay(m_eglWindow);
|
|
||||||
if (m_display == EGL_NO_DISPLAY){
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!eglInitialize(m_display, &majorVersion, &minorVersion)){
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get configs
|
|
||||||
if (!eglGetConfigs(m_display, NULL, 0, &numConfigs)){
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Choose config
|
|
||||||
if (!eglChooseConfig(m_display, configAttribList, &config, 1, &numConfigs)){
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create a GL context
|
|
||||||
m_context = eglCreateContext(m_display, config, EGL_NO_CONTEXT, contextAttribs);
|
|
||||||
if (m_context == EGL_NO_CONTEXT){
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Make the context current
|
|
||||||
// Note: we are not using a surface
|
|
||||||
if (!eglMakeCurrent(m_display, NULL, NULL, m_context)){
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,52 +0,0 @@
|
||||||
/****************************************************************************
|
|
||||||
Copyright (c) 2013 cocos2d-x.org
|
|
||||||
Copyright (c) Microsoft Open Technologies, Inc.
|
|
||||||
|
|
||||||
http://www.cocos2d-x.org
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
****************************************************************************/
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
|
|
||||||
#include "CCGL.h"
|
|
||||||
|
|
||||||
class ShaderCompiler
|
|
||||||
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
ShaderCompiler();
|
|
||||||
~ShaderCompiler();
|
|
||||||
bool Compile(Windows::UI::Xaml::Controls::TextBlock^ resultText);
|
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
Windows::UI::Xaml::Controls::TextBlock^ m_resultText;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void InitializeCocos2d();
|
|
||||||
bool InitializeAngle(ANGLE_D3D_FEATURE_LEVEL featureLevel);
|
|
||||||
void CloseAngle();
|
|
||||||
|
|
||||||
Microsoft::WRL::ComPtr<IWinrtEglWindow> m_eglWindow;
|
|
||||||
EGLDisplay m_display;
|
|
||||||
EGLContext m_context;
|
|
||||||
bool m_initialized;
|
|
||||||
};
|
|
|
@ -1 +0,0 @@
|
||||||
#include "pch.h"
|
|
|
@ -1,16 +0,0 @@
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include <wrl.h>
|
|
||||||
#include <wrl/client.h>
|
|
||||||
#include <d3d11_2.h>
|
|
||||||
#include <d2d1_2.h>
|
|
||||||
#include <d2d1effects_1.h>
|
|
||||||
#include <dwrite_2.h>
|
|
||||||
#include <wincodec.h>
|
|
||||||
#include <DirectXColors.h>
|
|
||||||
#include <DirectXMath.h>
|
|
||||||
#include <memory>
|
|
||||||
#include <agile.h>
|
|
||||||
#include <concrt.h>
|
|
||||||
#include <collection.h>
|
|
||||||
#include "App.xaml.h"
|
|
|
@ -1,8 +0,0 @@
|
||||||
How to compile precompiled shaders for Windows Phone 8.0 (WP8)
|
|
||||||
You need to use VS2013 with update 3.
|
|
||||||
|
|
||||||
1. Open the VS project Cocos2dShaderCompiler\Cocos2dShaderCompiler.sln
|
|
||||||
2. Build and run the project
|
|
||||||
3. Click the Compile button
|
|
||||||
4. Select the file cocos\platform\wp8\shaders\precompiledshaders.h in the file dialog box
|
|
||||||
5. Program will precompile all of the cached cocos2d-x shaders.
|
|
|
@ -472,6 +472,7 @@
|
||||||
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\platform\winrt\Keyboard-winrt.h" />
|
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\platform\winrt\Keyboard-winrt.h" />
|
||||||
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\platform\winrt\pch.h" />
|
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\platform\winrt\pch.h" />
|
||||||
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\platform\winrt\sha1.h" />
|
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\platform\winrt\sha1.h" />
|
||||||
|
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\platform\winrt\WICImageLoader-win.h" />
|
||||||
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\renderer\CCBatchCommand.h" />
|
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\renderer\CCBatchCommand.h" />
|
||||||
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\renderer\CCCustomCommand.h" />
|
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\renderer\CCCustomCommand.h" />
|
||||||
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\renderer\CCGLProgram.h" />
|
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\renderer\CCGLProgram.h" />
|
||||||
|
@ -1027,6 +1028,7 @@
|
||||||
</ForcedIncludeFiles>
|
</ForcedIncludeFiles>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\platform\winrt\sha1.cpp" />
|
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\platform\winrt\sha1.cpp" />
|
||||||
|
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\platform\winrt\WICImageLoader-win.cpp" />
|
||||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\renderer\CCBatchCommand.cpp" />
|
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\renderer\CCBatchCommand.cpp" />
|
||||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\renderer\CCCustomCommand.cpp" />
|
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\renderer\CCCustomCommand.cpp" />
|
||||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\renderer\CCGLProgram.cpp" />
|
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\renderer\CCGLProgram.cpp" />
|
||||||
|
|
|
@ -1743,6 +1743,9 @@
|
||||||
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\3d\CCTerrain.h">
|
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\3d\CCTerrain.h">
|
||||||
<Filter>3d</Filter>
|
<Filter>3d</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\platform\winrt\WICImageLoader-win.h">
|
||||||
|
<Filter>platform\winrt</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\cocos2d.cpp" />
|
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\cocos2d.cpp" />
|
||||||
|
@ -3315,6 +3318,9 @@
|
||||||
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\editor-support\cocostudio\CocoStudio.cpp">
|
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\editor-support\cocostudio\CocoStudio.cpp">
|
||||||
<Filter>cocostudio\json</Filter>
|
<Filter>cocostudio\json</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\platform\winrt\WICImageLoader-win.cpp">
|
||||||
|
<Filter>platform\winrt</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Filter Include="2d">
|
<Filter Include="2d">
|
||||||
|
|
|
@ -146,7 +146,7 @@
|
||||||
<CompileAsWinRT>true</CompileAsWinRT>
|
<CompileAsWinRT>true</CompileAsWinRT>
|
||||||
<AdditionalOptions>/Zm384 /bigobj %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions>/Zm384 /bigobj %(AdditionalOptions)</AdditionalOptions>
|
||||||
<ForcedIncludeFiles>pch.h</ForcedIncludeFiles>
|
<ForcedIncludeFiles>pch.h</ForcedIncludeFiles>
|
||||||
<AdditionalIncludeDirectories>$(EngineRoot)external\winrt_8.1-specific\zlib\include;$(EngineRoot)external\freetype2\include\winrt_8.1;$(EngineRoot)external\websockets\include\winrt_8.1;$(EngineRoot)external\curl\include\winrt_8.1;$(EngineRoot)external\tiff\include\winrt_8.1;$(EngineRoot)external\jpeg\include\winrt_8.1;$(EngineRoot)external\png\include\winrt_8.1;$(EngineRoot)external\protobuf-lite\src;$(EngineRoot)external\protobuf-lite\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(EngineRoot)external\winrt_8.1-specific\zlib\include;$(EngineRoot)external\freetype2\include\winrt_8.1\freetype2;$(EngineRoot)external\websockets\include\winrt_8.1;$(EngineRoot)external\curl\include\winrt_8.1;$(EngineRoot)external\tiff\include\winrt_8.1;$(EngineRoot)external\jpeg\include\winrt_8.1;$(EngineRoot)external\png\include\winrt_8.1;$(EngineRoot)external\protobuf-lite\src;$(EngineRoot)external\protobuf-lite\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>_USRDLL;_LIB;COCOS2DXWIN32_EXPORTS;_USE3DDLL;_EXPORT_DLL_;_USRSTUDIODLL;_USREXDLL;_USEGUIDLL;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_DEBUG;COCOS2D_DEBUG=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_USRDLL;_LIB;COCOS2DXWIN32_EXPORTS;_USE3DDLL;_EXPORT_DLL_;_USRSTUDIODLL;_USREXDLL;_USEGUIDLL;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_DEBUG;COCOS2D_DEBUG=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<SDLCheck>false</SDLCheck>
|
<SDLCheck>false</SDLCheck>
|
||||||
<DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
<DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||||
|
@ -166,7 +166,7 @@
|
||||||
<CompileAsWinRT>true</CompileAsWinRT>
|
<CompileAsWinRT>true</CompileAsWinRT>
|
||||||
<AdditionalOptions>/Zm384 /bigobj %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions>/Zm384 /bigobj %(AdditionalOptions)</AdditionalOptions>
|
||||||
<ForcedIncludeFiles>pch.h</ForcedIncludeFiles>
|
<ForcedIncludeFiles>pch.h</ForcedIncludeFiles>
|
||||||
<AdditionalIncludeDirectories>$(EngineRoot)external\winrt_8.1-specific\zlib\include;$(EngineRoot)external\freetype2\include\winrt_8.1;$(EngineRoot)external\websockets\include\winrt_8.1;$(EngineRoot)external\curl\include\winrt_8.1;$(EngineRoot)external\tiff\include\winrt_8.1;$(EngineRoot)external\jpeg\include\winrt_8.1;$(EngineRoot)external\png\include\winrt_8.1;$(EngineRoot)external\protobuf-lite\src;$(EngineRoot)external\protobuf-lite\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(EngineRoot)external\winrt_8.1-specific\zlib\include;$(EngineRoot)external\freetype2\include\winrt_8.1\freetype2;$(EngineRoot)external\websockets\include\winrt_8.1;$(EngineRoot)external\curl\include\winrt_8.1;$(EngineRoot)external\tiff\include\winrt_8.1;$(EngineRoot)external\jpeg\include\winrt_8.1;$(EngineRoot)external\png\include\winrt_8.1;$(EngineRoot)external\protobuf-lite\src;$(EngineRoot)external\protobuf-lite\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>_USRDLL;_LIB;COCOS2DXWIN32_EXPORTS;_USE3DDLL;_EXPORT_DLL_;_USRSTUDIODLL;_USREXDLL;_USEGUIDLL;CC_ENABLE_CHIPMUNK_INTEGRATION=1;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_USRDLL;_LIB;COCOS2DXWIN32_EXPORTS;_USE3DDLL;_EXPORT_DLL_;_USRSTUDIODLL;_USREXDLL;_USEGUIDLL;CC_ENABLE_CHIPMUNK_INTEGRATION=1;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<SDLCheck>false</SDLCheck>
|
<SDLCheck>false</SDLCheck>
|
||||||
<DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
<DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||||
|
@ -186,7 +186,7 @@
|
||||||
<CompileAsWinRT>true</CompileAsWinRT>
|
<CompileAsWinRT>true</CompileAsWinRT>
|
||||||
<AdditionalOptions>/Zm384 /bigobj %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions>/Zm384 /bigobj %(AdditionalOptions)</AdditionalOptions>
|
||||||
<ForcedIncludeFiles>pch.h</ForcedIncludeFiles>
|
<ForcedIncludeFiles>pch.h</ForcedIncludeFiles>
|
||||||
<AdditionalIncludeDirectories>$(EngineRoot)external\winrt_8.1-specific\zlib\include;$(EngineRoot)external\freetype2\include\winrt_8.1;$(EngineRoot)external\websockets\include\winrt_8.1;$(EngineRoot)external\curl\include\winrt_8.1;$(EngineRoot)external\tiff\include\winrt_8.1;$(EngineRoot)external\jpeg\include\winrt_8.1;$(EngineRoot)external\png\include\winrt_8.1;$(EngineRoot)external\protobuf-lite\src;$(EngineRoot)external\protobuf-lite\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(EngineRoot)external\winrt_8.1-specific\zlib\include;$(EngineRoot)external\freetype2\include\winrt_8.1\freetype2;$(EngineRoot)external\websockets\include\winrt_8.1;$(EngineRoot)external\curl\include\winrt_8.1;$(EngineRoot)external\tiff\include\winrt_8.1;$(EngineRoot)external\jpeg\include\winrt_8.1;$(EngineRoot)external\png\include\winrt_8.1;$(EngineRoot)external\protobuf-lite\src;$(EngineRoot)external\protobuf-lite\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>_USRDLL;_LIB;COCOS2DXWIN32_EXPORTS;_USE3DDLL;_EXPORT_DLL_;_USRSTUDIODLL;_USREXDLL;_USEGUIDLL;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_DEBUG;COCOS2D_DEBUG=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_USRDLL;_LIB;COCOS2DXWIN32_EXPORTS;_USE3DDLL;_EXPORT_DLL_;_USRSTUDIODLL;_USREXDLL;_USEGUIDLL;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_DEBUG;COCOS2D_DEBUG=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<SDLCheck>false</SDLCheck>
|
<SDLCheck>false</SDLCheck>
|
||||||
<DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
<DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||||
|
@ -206,7 +206,7 @@
|
||||||
<CompileAsWinRT>true</CompileAsWinRT>
|
<CompileAsWinRT>true</CompileAsWinRT>
|
||||||
<AdditionalOptions>/Zm384 /bigobj %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions>/Zm384 /bigobj %(AdditionalOptions)</AdditionalOptions>
|
||||||
<ForcedIncludeFiles>pch.h</ForcedIncludeFiles>
|
<ForcedIncludeFiles>pch.h</ForcedIncludeFiles>
|
||||||
<AdditionalIncludeDirectories>$(EngineRoot)external\winrt_8.1-specific\zlib\include;$(EngineRoot)external\freetype2\include\winrt_8.1;$(EngineRoot)external\websockets\include\winrt_8.1;$(EngineRoot)external\curl\include\winrt_8.1;$(EngineRoot)external\tiff\include\winrt_8.1;$(EngineRoot)external\jpeg\include\winrt_8.1;$(EngineRoot)external\png\include\winrt_8.1;$(EngineRoot)external\protobuf-lite\src;$(EngineRoot)external\protobuf-lite\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(EngineRoot)external\winrt_8.1-specific\zlib\include;$(EngineRoot)external\freetype2\include\winrt_8.1\freetype2;$(EngineRoot)external\websockets\include\winrt_8.1;$(EngineRoot)external\curl\include\winrt_8.1;$(EngineRoot)external\tiff\include\winrt_8.1;$(EngineRoot)external\jpeg\include\winrt_8.1;$(EngineRoot)external\png\include\winrt_8.1;$(EngineRoot)external\protobuf-lite\src;$(EngineRoot)external\protobuf-lite\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>_USRDLL;_LIB;COCOS2DXWIN32_EXPORTS;_USE3DDLL;_EXPORT_DLL_;_USRSTUDIODLL;_USREXDLL;_USEGUIDLL;CC_ENABLE_CHIPMUNK_INTEGRATION=1;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_USRDLL;_LIB;COCOS2DXWIN32_EXPORTS;_USE3DDLL;_EXPORT_DLL_;_USRSTUDIODLL;_USREXDLL;_USEGUIDLL;CC_ENABLE_CHIPMUNK_INTEGRATION=1;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<SDLCheck>false</SDLCheck>
|
<SDLCheck>false</SDLCheck>
|
||||||
<DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
<DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||||
|
@ -226,7 +226,7 @@
|
||||||
<CompileAsWinRT>true</CompileAsWinRT>
|
<CompileAsWinRT>true</CompileAsWinRT>
|
||||||
<AdditionalOptions>/Zm384 /bigobj %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions>/Zm384 /bigobj %(AdditionalOptions)</AdditionalOptions>
|
||||||
<ForcedIncludeFiles>pch.h</ForcedIncludeFiles>
|
<ForcedIncludeFiles>pch.h</ForcedIncludeFiles>
|
||||||
<AdditionalIncludeDirectories>$(EngineRoot)external\winrt_8.1-specific\zlib\include;$(EngineRoot)external\freetype2\include\winrt_8.1;$(EngineRoot)external\websockets\include\winrt_8.1;$(EngineRoot)external\curl\include\winrt_8.1;$(EngineRoot)external\tiff\include\winrt_8.1;$(EngineRoot)external\jpeg\include\winrt_8.1;$(EngineRoot)external\png\include\winrt_8.1;$(EngineRoot)external\protobuf-lite\src;$(EngineRoot)external\protobuf-lite\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(EngineRoot)external\winrt_8.1-specific\zlib\include;$(EngineRoot)external\freetype2\include\winrt_8.1\freetype2;$(EngineRoot)external\websockets\include\winrt_8.1;$(EngineRoot)external\curl\include\winrt_8.1;$(EngineRoot)external\tiff\include\winrt_8.1;$(EngineRoot)external\jpeg\include\winrt_8.1;$(EngineRoot)external\png\include\winrt_8.1;$(EngineRoot)external\protobuf-lite\src;$(EngineRoot)external\protobuf-lite\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>_USRDLL;_LIB;COCOS2DXWIN32_EXPORTS;_USE3DDLL;_EXPORT_DLL_;_USRSTUDIODLL;_USREXDLL;_USEGUIDLL;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_DEBUG;COCOS2D_DEBUG=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_USRDLL;_LIB;COCOS2DXWIN32_EXPORTS;_USE3DDLL;_EXPORT_DLL_;_USRSTUDIODLL;_USREXDLL;_USEGUIDLL;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_DEBUG;COCOS2D_DEBUG=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<SDLCheck>false</SDLCheck>
|
<SDLCheck>false</SDLCheck>
|
||||||
<DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
<DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||||
|
@ -246,7 +246,7 @@
|
||||||
<CompileAsWinRT>true</CompileAsWinRT>
|
<CompileAsWinRT>true</CompileAsWinRT>
|
||||||
<AdditionalOptions>/Zm384 /bigobj %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions>/Zm384 /bigobj %(AdditionalOptions)</AdditionalOptions>
|
||||||
<ForcedIncludeFiles>pch.h</ForcedIncludeFiles>
|
<ForcedIncludeFiles>pch.h</ForcedIncludeFiles>
|
||||||
<AdditionalIncludeDirectories>$(EngineRoot)external\winrt_8.1-specific\zlib\include;$(EngineRoot)external\freetype2\include\winrt_8.1;$(EngineRoot)external\websockets\include\winrt_8.1;$(EngineRoot)external\curl\include\winrt_8.1;$(EngineRoot)external\tiff\include\winrt_8.1;$(EngineRoot)external\jpeg\include\winrt_8.1;$(EngineRoot)external\png\include\winrt_8.1;$(EngineRoot)external\protobuf-lite\src;$(EngineRoot)external\protobuf-lite\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(EngineRoot)external\winrt_8.1-specific\zlib\include;$(EngineRoot)external\freetype2\include\winrt_8.1\freetype2;$(EngineRoot)external\websockets\include\winrt_8.1;$(EngineRoot)external\curl\include\winrt_8.1;$(EngineRoot)external\tiff\include\winrt_8.1;$(EngineRoot)external\jpeg\include\winrt_8.1;$(EngineRoot)external\png\include\winrt_8.1;$(EngineRoot)external\protobuf-lite\src;$(EngineRoot)external\protobuf-lite\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>_USRDLL;_LIB;COCOS2DXWIN32_EXPORTS;_USE3DDLL;_EXPORT_DLL_;_USRSTUDIODLL;_USREXDLL;_USEGUIDLL;CC_ENABLE_CHIPMUNK_INTEGRATION=1;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_USRDLL;_LIB;COCOS2DXWIN32_EXPORTS;_USE3DDLL;_EXPORT_DLL_;_USRSTUDIODLL;_USREXDLL;_USEGUIDLL;CC_ENABLE_CHIPMUNK_INTEGRATION=1;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<SDLCheck>false</SDLCheck>
|
<SDLCheck>false</SDLCheck>
|
||||||
<DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
<DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||||
|
|
|
@ -108,7 +108,7 @@
|
||||||
<CompileAsWinRT>true</CompileAsWinRT>
|
<CompileAsWinRT>true</CompileAsWinRT>
|
||||||
<AdditionalOptions>/Zm384 /bigobj %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions>/Zm384 /bigobj %(AdditionalOptions)</AdditionalOptions>
|
||||||
<ForcedIncludeFiles>pch.h</ForcedIncludeFiles>
|
<ForcedIncludeFiles>pch.h</ForcedIncludeFiles>
|
||||||
<AdditionalIncludeDirectories>$(EngineRoot)external\wp_8.1-specific\zlib\include;$(EngineRoot)external\freetype2\include\wp_8.1;$(EngineRoot)external\websockets\include\wp_8.1;$(EngineRoot)external\curl\include\wp_8.1;$(EngineRoot)external\tiff\include\wp_8.1;$(EngineRoot)external\jpeg\include\wp_8.1;$(EngineRoot)external\png\include\wp_8.1;$(EngineRoot)external\protobuf-lite\src;$(EngineRoot)external\protobuf-lite\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(EngineRoot)external\wp_8.1-specific\zlib\include;$(EngineRoot)external\freetype2\include\wp_8.1\freetype2;$(EngineRoot)external\websockets\include\wp_8.1;$(EngineRoot)external\curl\include\wp_8.1;$(EngineRoot)external\tiff\include\wp_8.1;$(EngineRoot)external\jpeg\include\wp_8.1;$(EngineRoot)external\png\include\wp_8.1;$(EngineRoot)external\protobuf-lite\src;$(EngineRoot)external\protobuf-lite\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>_USRDLL;_LIB;COCOS2DXWIN32_EXPORTS;_USE3DDLL;_EXPORT_DLL_;_USRSTUDIODLL;_USREXDLL;_USEGUIDLL;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_DEBUG;COCOS2D_DEBUG=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_USRDLL;_LIB;COCOS2DXWIN32_EXPORTS;_USE3DDLL;_EXPORT_DLL_;_USRSTUDIODLL;_USREXDLL;_USEGUIDLL;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_DEBUG;COCOS2D_DEBUG=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<SDLCheck>false</SDLCheck>
|
<SDLCheck>false</SDLCheck>
|
||||||
<DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
<DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||||
|
@ -128,7 +128,7 @@
|
||||||
<CompileAsWinRT>true</CompileAsWinRT>
|
<CompileAsWinRT>true</CompileAsWinRT>
|
||||||
<AdditionalOptions>/Zm384 /bigobj %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions>/Zm384 /bigobj %(AdditionalOptions)</AdditionalOptions>
|
||||||
<ForcedIncludeFiles>pch.h</ForcedIncludeFiles>
|
<ForcedIncludeFiles>pch.h</ForcedIncludeFiles>
|
||||||
<AdditionalIncludeDirectories>$(EngineRoot)external\wp_8.1-specific\zlib\include;$(EngineRoot)external\freetype2\include\wp_8.1;$(EngineRoot)external\websockets\include\wp_8.1;$(EngineRoot)external\curl\include\wp_8.1;$(EngineRoot)external\tiff\include\wp_8.1;$(EngineRoot)external\jpeg\include\wp_8.1;$(EngineRoot)external\png\include\wp_8.1;$(EngineRoot)external\protobuf-lite\src;$(EngineRoot)external\protobuf-lite\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(EngineRoot)external\wp_8.1-specific\zlib\include;$(EngineRoot)external\freetype2\include\wp_8.1\freetype2;$(EngineRoot)external\websockets\include\wp_8.1;$(EngineRoot)external\curl\include\wp_8.1;$(EngineRoot)external\tiff\include\wp_8.1;$(EngineRoot)external\jpeg\include\wp_8.1;$(EngineRoot)external\png\include\wp_8.1;$(EngineRoot)external\protobuf-lite\src;$(EngineRoot)external\protobuf-lite\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>_USRDLL;_LIB;COCOS2DXWIN32_EXPORTS;_USE3DDLL;_EXPORT_DLL_;_USRSTUDIODLL;_USREXDLL;_USEGUIDLL;CC_ENABLE_CHIPMUNK_INTEGRATION=1;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_USRDLL;_LIB;COCOS2DXWIN32_EXPORTS;_USE3DDLL;_EXPORT_DLL_;_USRSTUDIODLL;_USREXDLL;_USEGUIDLL;CC_ENABLE_CHIPMUNK_INTEGRATION=1;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<SDLCheck>false</SDLCheck>
|
<SDLCheck>false</SDLCheck>
|
||||||
<DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
<DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||||
|
@ -148,7 +148,7 @@
|
||||||
<CompileAsWinRT>true</CompileAsWinRT>
|
<CompileAsWinRT>true</CompileAsWinRT>
|
||||||
<AdditionalOptions>/Zm384 /bigobj %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions>/Zm384 /bigobj %(AdditionalOptions)</AdditionalOptions>
|
||||||
<ForcedIncludeFiles>pch.h</ForcedIncludeFiles>
|
<ForcedIncludeFiles>pch.h</ForcedIncludeFiles>
|
||||||
<AdditionalIncludeDirectories>$(EngineRoot)external\wp_8.1-specific\zlib\include;$(EngineRoot)external\freetype2\include\wp_8.1;$(EngineRoot)external\websockets\include\wp_8.1;$(EngineRoot)external\curl\include\wp_8.1;$(EngineRoot)external\tiff\include\wp_8.1;$(EngineRoot)external\jpeg\include\wp_8.1;$(EngineRoot)external\png\include\wp_8.1;$(EngineRoot)external\protobuf-lite\src;$(EngineRoot)external\protobuf-lite\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(EngineRoot)external\wp_8.1-specific\zlib\include;$(EngineRoot)external\freetype2\include\wp_8.1\freetype2;$(EngineRoot)external\websockets\include\wp_8.1;$(EngineRoot)external\curl\include\wp_8.1;$(EngineRoot)external\tiff\include\wp_8.1;$(EngineRoot)external\jpeg\include\wp_8.1;$(EngineRoot)external\png\include\wp_8.1;$(EngineRoot)external\protobuf-lite\src;$(EngineRoot)external\protobuf-lite\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>_USRDLL;_LIB;COCOS2DXWIN32_EXPORTS;_USE3DDLL;_EXPORT_DLL_;_USRSTUDIODLL;_USREXDLL;_USEGUIDLL;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_DEBUG;COCOS2D_DEBUG=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_USRDLL;_LIB;COCOS2DXWIN32_EXPORTS;_USE3DDLL;_EXPORT_DLL_;_USRSTUDIODLL;_USREXDLL;_USEGUIDLL;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_DEBUG;COCOS2D_DEBUG=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<SDLCheck>false</SDLCheck>
|
<SDLCheck>false</SDLCheck>
|
||||||
<DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
<DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||||
|
@ -168,7 +168,7 @@
|
||||||
<CompileAsWinRT>true</CompileAsWinRT>
|
<CompileAsWinRT>true</CompileAsWinRT>
|
||||||
<AdditionalOptions>/Zm384 /bigobj %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions>/Zm384 /bigobj %(AdditionalOptions)</AdditionalOptions>
|
||||||
<ForcedIncludeFiles>pch.h</ForcedIncludeFiles>
|
<ForcedIncludeFiles>pch.h</ForcedIncludeFiles>
|
||||||
<AdditionalIncludeDirectories>$(EngineRoot)external\wp_8.1-specific\zlib\include;$(EngineRoot)external\freetype2\include\wp_8.1;$(EngineRoot)external\websockets\include\wp_8.1;$(EngineRoot)external\curl\include\wp_8.1;$(EngineRoot)external\tiff\include\wp_8.1;$(EngineRoot)external\jpeg\include\wp_8.1;$(EngineRoot)external\png\include\wp_8.1;$(EngineRoot)external\protobuf-lite\src;$(EngineRoot)external\protobuf-lite\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(EngineRoot)external\wp_8.1-specific\zlib\include;$(EngineRoot)external\freetype2\include\wp_8.1\freetype2;$(EngineRoot)external\websockets\include\wp_8.1;$(EngineRoot)external\curl\include\wp_8.1;$(EngineRoot)external\tiff\include\wp_8.1;$(EngineRoot)external\jpeg\include\wp_8.1;$(EngineRoot)external\png\include\wp_8.1;$(EngineRoot)external\protobuf-lite\src;$(EngineRoot)external\protobuf-lite\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>_USRDLL;_LIB;COCOS2DXWIN32_EXPORTS;_USE3DDLL;_EXPORT_DLL_;_USRSTUDIODLL;_USREXDLL;_USEGUIDLL;CC_ENABLE_CHIPMUNK_INTEGRATION=1;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_USRDLL;_LIB;COCOS2DXWIN32_EXPORTS;_USE3DDLL;_EXPORT_DLL_;_USRSTUDIODLL;_USREXDLL;_USEGUIDLL;CC_ENABLE_CHIPMUNK_INTEGRATION=1;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<SDLCheck>false</SDLCheck>
|
<SDLCheck>false</SDLCheck>
|
||||||
<DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
<DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||||
|
|
|
@ -18,8 +18,8 @@
|
||||||
<DisableSpecificWarnings>4056;4244;4251;4756;4453;28204;</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4056;4244;4251;4756;4453;28204;</DisableSpecificWarnings>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>libGLESv2.lib;libEGL.lib;ws2_32.lib;libwebsockets.lib;libcurl.lib;libchipmunk.lib;zlib.lib;libpng.lib;libjpeg.lib;libtiff.lib;freetype250.lib;sqlite3.lib;d2d1.lib;d3d11.lib;dxgi.lib;windowscodecs.lib;dwrite.lib;dxguid.lib;xaudio2.lib;mfcore.lib;mfplat.lib;mfreadwrite.lib;mfuuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>libGLESv2.lib;libEGL.lib;ws2_32.lib;libwebsockets.lib;libcurl.lib;chipmunk.lib;zlib.lib;freetype.lib;sqlite3.lib;d2d1.lib;d3d11.lib;dxgi.lib;windowscodecs.lib;dwrite.lib;dxguid.lib;xaudio2.lib;mfcore.lib;mfplat.lib;mfreadwrite.lib;mfuuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<AdditionalLibraryDirectories>$(EngineRoot)external\$(COCOS2D_PLATFORM)-specific\angle\prebuilt\$(Platform);$(EngineRoot)external\curl\prebuilt\$(COCOS2D_PLATFORM)\$(Platform);$(EngineRoot)external\websockets\prebuilt\$(COCOS2D_PLATFORM)\$(Platform);$(EngineRoot)external\chipmunk\prebuilt\$(COCOS2D_PLATFORM)\$(Platform);$(EngineRoot)external\$(COCOS2D_PLATFORM)-specific\zlib\prebuilt\$(Platform);$(EngineRoot)external\png\prebuilt\$(COCOS2D_PLATFORM)\$(Platform);$(EngineRoot)external\tiff\prebuilt\$(COCOS2D_PLATFORM)\$(Platform);$(EngineRoot)external\jpeg\prebuilt\$(COCOS2D_PLATFORM)\$(Platform);$(EngineRoot)external\sqlite3\libraries\$(COCOS2D_PLATFORM)\$(Platform);$(EngineRoot)external\freetype2\prebuilt\$(COCOS2D_PLATFORM)\$(Platform);%(AdditionalLibraryDirectories);</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(EngineRoot)external\$(COCOS2D_PLATFORM)-specific\angle\prebuilt\$(Platform);$(EngineRoot)external\curl\prebuilt\$(COCOS2D_PLATFORM)\$(Platform);$(EngineRoot)external\websockets\prebuilt\$(COCOS2D_PLATFORM)\$(Platform);$(EngineRoot)external\chipmunk\prebuilt\$(COCOS2D_PLATFORM)\$(Platform);$(EngineRoot)external\$(COCOS2D_PLATFORM)-specific\zlib\prebuilt\$(Platform);$(EngineRoot)external\sqlite3\libraries\$(COCOS2D_PLATFORM)\$(Platform);$(EngineRoot)external\freetype2\prebuilt\$(COCOS2D_PLATFORM)\$(Platform);%(AdditionalLibraryDirectories);</AdditionalLibraryDirectories>
|
||||||
<AdditionalOptions>/IGNORE:4264 %(AdditionalOptions)</AdditionalOptions>
|
<AdditionalOptions>/IGNORE:4264 %(AdditionalOptions)</AdditionalOptions>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
|
|
|
@ -1,35 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ImportGroup Label="PropertySheets" />
|
|
||||||
<PropertyGroup Label="COCOS2">
|
|
||||||
<COCOS2D_PLATFORM Condition=" '$(COCOS2_PLATFORM)' == '' ">wp8</COCOS2D_PLATFORM>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Label="UserMacros">
|
|
||||||
<EngineRoot>$(MSBuildThisFileDirectory)..\..\..\</EngineRoot>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup />
|
|
||||||
<ItemDefinitionGroup>
|
|
||||||
<ClCompile>
|
|
||||||
<AdditionalIncludeDirectories>$(EngineRoot)external\$(COCOS2D_PLATFORM)-specific\angle\include;$(EngineRoot)external\$(COCOS2D_PLATFORM)-specific\zlib\include;$(EngineRoot)external\freetype2\include\$(COCOS2D_PLATFORM)\freetype;$(EngineRoot)external\curl\include\$(COCOS2D_PLATFORM);$(EngineRoot)external\websockets\include\$(COCOS2D_PLATFORM);$(EngineRoot)cocos\platform\wp8;$(EngineRoot)cocos\platform\winrt;$(EngineRoot)cocos\platform;$(EngineRoot)cocos\editor-support;$(EngineRoot)external\chipmunk\include\chipmunk;$(EngineRoot)external\sqlite3\include;$(EngineRoot)cocos\audio\include;$(EngineRoot)cocos;$(EngineRoot)extensions;$(EngineRoot)external;$(EngineRoot)external\edtaa3func;$(EngineRoot)external\unzip;$(EngineRoot)external\tinyxml2;$(EngineRoot);$(EngineRoot)external\ConvertUTF;$(EngineRoot)external\xxhash;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile>
|
|
||||||
<PreprocessorDefinitions>WP8;_VARIADIC_MAX=10;NOMINMAX;GL_GLEXT_PROTOTYPES;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<CompileAsWinRT>true</CompileAsWinRT>
|
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
|
||||||
<MinimalRebuild>false</MinimalRebuild>
|
|
||||||
<DebugInformationFormat>OldStyle</DebugInformationFormat>
|
|
||||||
<DisableSpecificWarnings>4056;4244;4251;4756;4453;28204;</DisableSpecificWarnings>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<AdditionalDependencies>libGLESv2_phone.lib;libEGL_phone.lib;ws2_32.lib;libwebsockets.lib;libcurl.lib;libchipmunk.lib;zlib.lib;libpng.lib;libjpeg.lib;libtiff.lib;freetype.lib;sqlite3.lib;d3d11.lib;dxgi.lib;dxguid.lib;xaudio2.lib;mfplat.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
<AdditionalLibraryDirectories>$(EngineRoot)external\$(COCOS2D_PLATFORM)-specific\angle\prebuilt\$(Platform);$(EngineRoot)cocos\platform\wp8;$(EngineRoot)external\curl\prebuilt\$(COCOS2D_PLATFORM)\$(Platform);$(EngineRoot)external\websockets\prebuilt\$(COCOS2D_PLATFORM)\$(Platform);$(EngineRoot)external\chipmunk\prebuilt\$(COCOS2D_PLATFORM)\$(Platform);$(EngineRoot)external\$(COCOS2D_PLATFORM)-specific\zlib\prebuilt\$(Platform);$(EngineRoot)external\png\prebuilt\$(COCOS2D_PLATFORM)\$(Platform);$(EngineRoot)external\tiff\prebuilt\$(COCOS2D_PLATFORM)\$(Platform);$(EngineRoot)external\jpeg\prebuilt\$(COCOS2D_PLATFORM)\$(Platform);$(EngineRoot)external\sqlite3\libraries\$(COCOS2D_PLATFORM)\$(Platform);$(EngineRoot)external\freetype2\prebuilt\$(COCOS2D_PLATFORM)\$(Platform);%(AdditionalLibraryDirectories);</AdditionalLibraryDirectories>
|
|
||||||
<AdditionalOptions>/IGNORE:4264 %(AdditionalOptions)</AdditionalOptions>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<BuildMacro Include="EngineRoot">
|
|
||||||
<Value>$(EngineRoot)</Value>
|
|
||||||
<EnvironmentVariable>true</EnvironmentVariable>
|
|
||||||
</BuildMacro>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
|
@ -1,34 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ImportGroup Label="PropertySheets" />
|
|
||||||
<PropertyGroup Label="APP_DLLS">
|
|
||||||
<AngleBinPath Condition=" '$(AngleBinPath)' == '' ">$(EngineRoot)external\$(COCOS2D_PLATFORM)-specific\angle\prebuilt\$(Platform)\</AngleBinPath>
|
|
||||||
<CurlBinPath Condition=" '$(CurlBinPath)' == '' ">$(EngineRoot)external\curl\prebuilt\$(COCOS2D_PLATFORM)\$(Platform)\</CurlBinPath>
|
|
||||||
<WebsocketsBinPath Condition=" '$(WebsocketsBinPath)' == '' ">$(EngineRoot)external\websockets\prebuilt\$(COCOS2D_PLATFORM)\$(Platform)\</WebsocketsBinPath>
|
|
||||||
<SQLiteBinPath Condition=" '$(SQLiteBinPath)' == '' ">$(EngineRoot)external\sqlite3\libraries\$(COCOS2D_PLATFORM)\$(Platform)\</SQLiteBinPath>
|
|
||||||
<CurlBinPath Condition=" '$(CurlBinPath)' == '' ">$(EngineRoot)external\curl\prebuilt\$(COCOS2D_PLATFORM)\$(Platform)\</CurlBinPath>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemGroup Label="ANGLE">
|
|
||||||
<None Include="$(AngleBinPath)libEGL_phone.dll">
|
|
||||||
<DeploymentContent>true</DeploymentContent>
|
|
||||||
</None>
|
|
||||||
<None Include="$(AngleBinPath)libGLESv2_phone.dll">
|
|
||||||
<DeploymentContent>true</DeploymentContent>
|
|
||||||
</None>
|
|
||||||
<None Include="$(WebsocketsBinPath)libwebsockets.dll">
|
|
||||||
<DeploymentContent>true</DeploymentContent>
|
|
||||||
</None>
|
|
||||||
<None Include="$(SQLiteBinPath)sqlite3.dll">
|
|
||||||
<DeploymentContent>true</DeploymentContent>
|
|
||||||
</None>
|
|
||||||
<None Include="$(CurlBinPath)libcurl.dll">
|
|
||||||
<DeploymentContent>true</DeploymentContent>
|
|
||||||
</None>
|
|
||||||
<None Include="$(CurlBinPath)libeay32.dll">
|
|
||||||
<DeploymentContent>true</DeploymentContent>
|
|
||||||
</None>
|
|
||||||
<None Include="$(CurlBinPath)ssleay32.dll">
|
|
||||||
<DeploymentContent>true</DeploymentContent>
|
|
||||||
</None>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
|
@ -1,9 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ImportGroup Label="PropertySheets" />
|
|
||||||
<ItemDefinitionGroup>
|
|
||||||
<ClCompile>
|
|
||||||
<PreprocessorDefinitions>_WINRT_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
</ClCompile>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
</Project>
|
|
|
@ -1,611 +0,0 @@
|
||||||
/*
|
|
||||||
* cocos2d-x http://www.cocos2d-x.org
|
|
||||||
*
|
|
||||||
* Copyright (c) 2010-2011 - cocos2d-x community
|
|
||||||
*
|
|
||||||
* Portions Copyright (c) Microsoft Open Technologies, Inc.
|
|
||||||
* All Rights Reserved
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
|
|
||||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "Audio.h"
|
|
||||||
#include "MediaStreamer.h"
|
|
||||||
//#include "CCCommon.h"
|
|
||||||
|
|
||||||
inline void ThrowIfFailed(HRESULT hr)
|
|
||||||
{
|
|
||||||
if (FAILED(hr))
|
|
||||||
{
|
|
||||||
// Set a breakpoint on this line to catch DX API errors.
|
|
||||||
throw Platform::Exception::CreateException(hr);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void AudioEngineCallbacks::Initialize(Audio *audio)
|
|
||||||
{
|
|
||||||
m_audio = audio;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Called in the event of a critical system error which requires XAudio2
|
|
||||||
// to be closed down and restarted. The error code is given in error.
|
|
||||||
void _stdcall AudioEngineCallbacks::OnCriticalError(HRESULT Error)
|
|
||||||
{
|
|
||||||
UNUSED_PARAM(Error);
|
|
||||||
m_audio->SetEngineExperiencedCriticalError();
|
|
||||||
};
|
|
||||||
|
|
||||||
Audio::Audio() :
|
|
||||||
m_backgroundID(0),
|
|
||||||
m_soundEffctVolume(1.0f),
|
|
||||||
m_backgroundMusicVolume(1.0f)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void Audio::Initialize()
|
|
||||||
{
|
|
||||||
m_engineExperiencedCriticalError = false;
|
|
||||||
|
|
||||||
m_musicEngine = nullptr;
|
|
||||||
m_soundEffectEngine = nullptr;
|
|
||||||
m_musicMasteringVoice = nullptr;
|
|
||||||
m_soundEffectMasteringVoice = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Audio::CreateResources()
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
ThrowIfFailed(
|
|
||||||
XAudio2Create(&m_musicEngine)
|
|
||||||
);
|
|
||||||
|
|
||||||
#if defined(_DEBUG)
|
|
||||||
XAUDIO2_DEBUG_CONFIGURATION debugConfig = {0};
|
|
||||||
debugConfig.BreakMask = XAUDIO2_LOG_ERRORS;
|
|
||||||
debugConfig.TraceMask = XAUDIO2_LOG_ERRORS;
|
|
||||||
m_musicEngine->SetDebugConfiguration(&debugConfig);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
m_musicEngineCallback.Initialize(this);
|
|
||||||
m_musicEngine->RegisterForCallbacks(&m_musicEngineCallback);
|
|
||||||
|
|
||||||
// This sample plays the equivalent of background music, which we tag on the mastering voice as AudioCategory_GameMedia.
|
|
||||||
// In ordinary usage, if we were playing the music track with no effects, we could route it entirely through
|
|
||||||
// Media Foundation. Here we are using XAudio2 to apply a reverb effect to the music, so we use Media Foundation to
|
|
||||||
// decode the data then we feed it through the XAudio2 pipeline as a separate Mastering Voice, so that we can tag it
|
|
||||||
// as Game Media.
|
|
||||||
// We default the mastering voice to 2 channels to simplify the reverb logic.
|
|
||||||
ThrowIfFailed(
|
|
||||||
m_musicEngine->CreateMasteringVoice(&m_musicMasteringVoice, XAUDIO2_DEFAULT_CHANNELS, XAUDIO2_DEFAULT_SAMPLERATE, 0, nullptr, nullptr, AudioCategory_GameMedia)
|
|
||||||
);
|
|
||||||
|
|
||||||
// Create a separate engine and mastering voice for sound effects in the sample
|
|
||||||
// Games will use many voices in a complex graph for audio, mixing all effects down to a
|
|
||||||
// single mastering voice.
|
|
||||||
// We are creating an entirely new engine instance and mastering voice in order to tag
|
|
||||||
// our sound effects with the audio category AudioCategory_GameEffects.
|
|
||||||
ThrowIfFailed(
|
|
||||||
XAudio2Create(&m_soundEffectEngine)
|
|
||||||
);
|
|
||||||
|
|
||||||
m_soundEffectEngineCallback.Initialize(this);
|
|
||||||
m_soundEffectEngine->RegisterForCallbacks(&m_soundEffectEngineCallback);
|
|
||||||
|
|
||||||
// We default the mastering voice to 2 channels to simplify the reverb logic.
|
|
||||||
ThrowIfFailed(
|
|
||||||
m_soundEffectEngine->CreateMasteringVoice(&m_soundEffectMasteringVoice, XAUDIO2_DEFAULT_CHANNELS, XAUDIO2_DEFAULT_SAMPLERATE, 0, nullptr, nullptr, AudioCategory_GameEffects)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
catch (...)
|
|
||||||
{
|
|
||||||
m_engineExperiencedCriticalError = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
unsigned int Audio::Hash(const char *key)
|
|
||||||
{
|
|
||||||
unsigned int len = strlen(key);
|
|
||||||
const char *end=key+len;
|
|
||||||
unsigned int hash;
|
|
||||||
|
|
||||||
for (hash = 0; key < end; key++)
|
|
||||||
{
|
|
||||||
hash *= 16777619;
|
|
||||||
hash ^= (unsigned int) (unsigned char) toupper(*key);
|
|
||||||
}
|
|
||||||
return (hash);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Audio::ReleaseResources()
|
|
||||||
{
|
|
||||||
if (m_musicMasteringVoice != nullptr)
|
|
||||||
{
|
|
||||||
m_musicMasteringVoice->DestroyVoice();
|
|
||||||
m_musicMasteringVoice = nullptr;
|
|
||||||
}
|
|
||||||
if (m_soundEffectMasteringVoice != nullptr)
|
|
||||||
{
|
|
||||||
m_soundEffectMasteringVoice->DestroyVoice();
|
|
||||||
m_soundEffectMasteringVoice = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
EffectList::iterator EffectIter = m_soundEffects.begin();
|
|
||||||
for (; EffectIter != m_soundEffects.end(); EffectIter++)
|
|
||||||
{
|
|
||||||
if (EffectIter->second.m_soundEffectSourceVoice != nullptr)
|
|
||||||
{
|
|
||||||
EffectIter->second.m_soundEffectSourceVoice->DestroyVoice();
|
|
||||||
EffectIter->second.m_soundEffectSourceVoice = nullptr;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
m_soundEffects.clear();
|
|
||||||
|
|
||||||
m_musicEngine = nullptr;
|
|
||||||
m_soundEffectEngine = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Audio::Start()
|
|
||||||
{
|
|
||||||
if (m_engineExperiencedCriticalError)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (! m_backgroundFile.empty())
|
|
||||||
PlayBackgroundMusic(m_backgroundFile.c_str(), m_backgroundLoop);
|
|
||||||
}
|
|
||||||
|
|
||||||
// This sample processes audio buffers during the render cycle of the application.
|
|
||||||
// As long as the sample maintains a high-enough frame rate, this approach should
|
|
||||||
// not glitch audio. In game code, it is best for audio buffers to be processed
|
|
||||||
// on a separate thread that is not synced to the main render loop of the game.
|
|
||||||
void Audio::Render()
|
|
||||||
{
|
|
||||||
if (m_engineExperiencedCriticalError)
|
|
||||||
{
|
|
||||||
ReleaseResources();
|
|
||||||
Initialize();
|
|
||||||
CreateResources();
|
|
||||||
Start();
|
|
||||||
if (m_engineExperiencedCriticalError)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void Audio::PlayBackgroundMusic(const char* pszFilePath, bool bLoop)
|
|
||||||
{
|
|
||||||
m_backgroundFile = pszFilePath;
|
|
||||||
m_backgroundLoop = bLoop;
|
|
||||||
|
|
||||||
if (m_engineExperiencedCriticalError) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
StopBackgroundMusic(true);
|
|
||||||
PlaySoundEffect(pszFilePath, bLoop, m_backgroundID, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Audio::StopBackgroundMusic(bool bReleaseData)
|
|
||||||
{
|
|
||||||
if (m_engineExperiencedCriticalError) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
StopSoundEffect(m_backgroundID);
|
|
||||||
|
|
||||||
if (bReleaseData){
|
|
||||||
UnloadSoundEffect(m_backgroundID);
|
|
||||||
RemoveFromList(m_backgroundID);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void Audio::PauseBackgroundMusic()
|
|
||||||
{
|
|
||||||
if (m_engineExperiencedCriticalError) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
PauseSoundEffect(m_backgroundID);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Audio::ResumeBackgroundMusic()
|
|
||||||
{
|
|
||||||
if (m_engineExperiencedCriticalError) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
ResumeSoundEffect(m_backgroundID);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Audio::RewindBackgroundMusic()
|
|
||||||
{
|
|
||||||
if (m_engineExperiencedCriticalError) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
RewindSoundEffect(m_backgroundID);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Audio::IsBackgroundMusicPlaying()
|
|
||||||
{
|
|
||||||
return IsSoundEffectStarted(m_backgroundID);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Audio::SetBackgroundVolume(float volume)
|
|
||||||
{
|
|
||||||
m_backgroundMusicVolume = volume;
|
|
||||||
|
|
||||||
if (m_engineExperiencedCriticalError) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (m_soundEffects.end() != m_soundEffects.find(m_backgroundID))
|
|
||||||
{
|
|
||||||
m_soundEffects[m_backgroundID].m_soundEffectSourceVoice->SetVolume(volume);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
float Audio::GetBackgroundVolume()
|
|
||||||
{
|
|
||||||
return m_backgroundMusicVolume;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Audio::SetSoundEffectVolume(float volume)
|
|
||||||
{
|
|
||||||
m_soundEffctVolume = volume;
|
|
||||||
|
|
||||||
if (m_engineExperiencedCriticalError) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
EffectList::iterator iter;
|
|
||||||
for (iter = m_soundEffects.begin(); iter != m_soundEffects.end(); iter++)
|
|
||||||
{
|
|
||||||
if (iter->first != m_backgroundID)
|
|
||||||
iter->second.m_soundEffectSourceVoice->SetVolume(m_soundEffctVolume);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
float Audio::GetSoundEffectVolume()
|
|
||||||
{
|
|
||||||
return m_soundEffctVolume;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Audio::PlaySoundEffect(const char* pszFilePath, bool bLoop, unsigned int& sound, bool isMusic)
|
|
||||||
{
|
|
||||||
sound = Hash(pszFilePath);
|
|
||||||
|
|
||||||
if (m_soundEffects.end() == m_soundEffects.find(sound))
|
|
||||||
{
|
|
||||||
PreloadSoundEffect(pszFilePath, isMusic);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (m_soundEffects.end() == m_soundEffects.find(sound))
|
|
||||||
return;
|
|
||||||
|
|
||||||
m_soundEffects[sound].m_audioBuffer.LoopCount = bLoop ? XAUDIO2_LOOP_INFINITE : 0;
|
|
||||||
|
|
||||||
PlaySoundEffect(sound);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Audio::PlaySoundEffect(unsigned int sound)
|
|
||||||
{
|
|
||||||
if (m_engineExperiencedCriticalError) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (m_soundEffects.end() == m_soundEffects.find(sound))
|
|
||||||
return;
|
|
||||||
|
|
||||||
StopSoundEffect(sound);
|
|
||||||
|
|
||||||
ThrowIfFailed(
|
|
||||||
m_soundEffects[sound].m_soundEffectSourceVoice->SubmitSourceBuffer(&m_soundEffects[sound].m_audioBuffer)
|
|
||||||
);
|
|
||||||
|
|
||||||
if (m_engineExperiencedCriticalError) {
|
|
||||||
// If there's an error, then we'll recreate the engine on the next render pass
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
SoundEffectData* soundEffect = &m_soundEffects[sound];
|
|
||||||
HRESULT hr = soundEffect->m_soundEffectSourceVoice->Start();
|
|
||||||
if FAILED(hr)
|
|
||||||
{
|
|
||||||
m_engineExperiencedCriticalError = true;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
m_soundEffects[sound].m_soundEffectStarted = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Audio::StopSoundEffect(unsigned int sound)
|
|
||||||
{
|
|
||||||
if (m_engineExperiencedCriticalError) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (m_soundEffects.end() == m_soundEffects.find(sound))
|
|
||||||
return;
|
|
||||||
|
|
||||||
HRESULT hr = m_soundEffects[sound].m_soundEffectSourceVoice->Stop();
|
|
||||||
HRESULT hr1 = m_soundEffects[sound].m_soundEffectSourceVoice->FlushSourceBuffers();
|
|
||||||
if (FAILED(hr) || FAILED(hr1))
|
|
||||||
{
|
|
||||||
// If there's an error, then we'll recreate the engine on the next render pass
|
|
||||||
m_engineExperiencedCriticalError = true;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
m_soundEffects[sound].m_soundEffectStarted = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Audio::PauseSoundEffect(unsigned int sound)
|
|
||||||
{
|
|
||||||
if (m_engineExperiencedCriticalError) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (m_soundEffects.end() == m_soundEffects.find(sound))
|
|
||||||
return;
|
|
||||||
|
|
||||||
HRESULT hr = m_soundEffects[sound].m_soundEffectSourceVoice->Stop();
|
|
||||||
if FAILED(hr)
|
|
||||||
{
|
|
||||||
// If there's an error, then we'll recreate the engine on the next render pass
|
|
||||||
m_engineExperiencedCriticalError = true;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void Audio::ResumeSoundEffect(unsigned int sound)
|
|
||||||
{
|
|
||||||
if (m_engineExperiencedCriticalError) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (m_soundEffects.end() == m_soundEffects.find(sound))
|
|
||||||
return;
|
|
||||||
|
|
||||||
HRESULT hr = m_soundEffects[sound].m_soundEffectSourceVoice->Start();
|
|
||||||
if FAILED(hr)
|
|
||||||
{
|
|
||||||
// If there's an error, then we'll recreate the engine on the next render pass
|
|
||||||
m_engineExperiencedCriticalError = true;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void Audio::RewindSoundEffect(unsigned int sound)
|
|
||||||
{
|
|
||||||
if (m_engineExperiencedCriticalError) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (m_soundEffects.end() == m_soundEffects.find(sound))
|
|
||||||
return;
|
|
||||||
|
|
||||||
StopSoundEffect(sound);
|
|
||||||
PlaySoundEffect(sound);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Audio::PauseAllSoundEffects()
|
|
||||||
{
|
|
||||||
if (m_engineExperiencedCriticalError) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
EffectList::iterator iter;
|
|
||||||
for (iter = m_soundEffects.begin(); iter != m_soundEffects.end(); iter++)
|
|
||||||
{
|
|
||||||
if (iter->first != m_backgroundID)
|
|
||||||
PauseSoundEffect(iter->first);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void Audio::ResumeAllSoundEffects()
|
|
||||||
{
|
|
||||||
if (m_engineExperiencedCriticalError) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
EffectList::iterator iter;
|
|
||||||
for (iter = m_soundEffects.begin(); iter != m_soundEffects.end(); iter++)
|
|
||||||
{
|
|
||||||
if (iter->first != m_backgroundID)
|
|
||||||
ResumeSoundEffect(iter->first);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void Audio::StopAllSoundEffects(bool bReleaseData)
|
|
||||||
{
|
|
||||||
if (m_engineExperiencedCriticalError) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
EffectList::iterator iter;
|
|
||||||
for (iter = m_soundEffects.begin(); iter != m_soundEffects.end(); iter++)
|
|
||||||
{
|
|
||||||
if (iter->first != m_backgroundID){
|
|
||||||
StopSoundEffect(iter->first);
|
|
||||||
if (bReleaseData)
|
|
||||||
{
|
|
||||||
UnloadSoundEffect(iter->first);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (bReleaseData)
|
|
||||||
{
|
|
||||||
for (iter = m_soundEffects.begin(); iter != m_soundEffects.end();)
|
|
||||||
{
|
|
||||||
if (iter->first != m_backgroundID){
|
|
||||||
m_soundEffects.erase(iter++);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
iter++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Audio::IsSoundEffectStarted(unsigned int sound)
|
|
||||||
{
|
|
||||||
if (m_soundEffects.end() == m_soundEffects.find(sound))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
return m_soundEffects[sound].m_soundEffectStarted;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::wstring CCUtf8ToUnicode(const char * pszUtf8Str)
|
|
||||||
{
|
|
||||||
std::wstring ret;
|
|
||||||
do
|
|
||||||
{
|
|
||||||
if (! pszUtf8Str) break;
|
|
||||||
size_t len = strlen(pszUtf8Str);
|
|
||||||
if (len <= 0) break;
|
|
||||||
++len;
|
|
||||||
wchar_t * pwszStr = new wchar_t[len];
|
|
||||||
if (! pwszStr) break;
|
|
||||||
pwszStr[len - 1] = 0;
|
|
||||||
MultiByteToWideChar(CP_UTF8, 0, pszUtf8Str, len, pwszStr, len);
|
|
||||||
ret = pwszStr;
|
|
||||||
|
|
||||||
if(pwszStr) {
|
|
||||||
delete[] (pwszStr);
|
|
||||||
(pwszStr) = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
} while (0);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string CCUnicodeToUtf8(const wchar_t* pwszStr)
|
|
||||||
{
|
|
||||||
std::string ret;
|
|
||||||
do
|
|
||||||
{
|
|
||||||
if(! pwszStr) break;
|
|
||||||
size_t len = wcslen(pwszStr);
|
|
||||||
if (len <= 0) break;
|
|
||||||
|
|
||||||
char * pszUtf8Str = new char[len*3 + 1];
|
|
||||||
WideCharToMultiByte(CP_UTF8, 0, pwszStr, len+1, pszUtf8Str, len*3 + 1, 0, 0);
|
|
||||||
ret = pszUtf8Str;
|
|
||||||
|
|
||||||
if(pszUtf8Str) {
|
|
||||||
delete[] (pszUtf8Str);
|
|
||||||
(pszUtf8Str) = 0;
|
|
||||||
}
|
|
||||||
}while(0);
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Audio::PreloadSoundEffect(const char* pszFilePath, bool isMusic)
|
|
||||||
{
|
|
||||||
if (m_engineExperiencedCriticalError) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
int sound = Hash(pszFilePath);
|
|
||||||
|
|
||||||
MediaStreamer mediaStreamer;
|
|
||||||
mediaStreamer.Initialize(CCUtf8ToUnicode(pszFilePath).c_str());
|
|
||||||
m_soundEffects[sound].m_soundID = sound;
|
|
||||||
|
|
||||||
uint32 bufferLength = mediaStreamer.GetMaxStreamLengthInBytes();
|
|
||||||
m_soundEffects[sound].m_soundEffectBufferData = new byte[bufferLength];
|
|
||||||
mediaStreamer.ReadAll(m_soundEffects[sound].m_soundEffectBufferData, bufferLength, &m_soundEffects[sound].m_soundEffectBufferLength);
|
|
||||||
|
|
||||||
if (isMusic)
|
|
||||||
{
|
|
||||||
XAUDIO2_SEND_DESCRIPTOR descriptors[1];
|
|
||||||
descriptors[0].pOutputVoice = m_musicMasteringVoice;
|
|
||||||
descriptors[0].Flags = 0;
|
|
||||||
XAUDIO2_VOICE_SENDS sends = {0};
|
|
||||||
sends.SendCount = 1;
|
|
||||||
sends.pSends = descriptors;
|
|
||||||
|
|
||||||
ThrowIfFailed(
|
|
||||||
m_musicEngine->CreateSourceVoice(&m_soundEffects[sound].m_soundEffectSourceVoice,
|
|
||||||
&(mediaStreamer.GetOutputWaveFormatEx()), 0, 1.0f, &m_voiceContext, &sends)
|
|
||||||
);
|
|
||||||
//fix bug: set a initial volume
|
|
||||||
m_soundEffects[sound].m_soundEffectSourceVoice->SetVolume(m_backgroundMusicVolume);
|
|
||||||
} else
|
|
||||||
{
|
|
||||||
XAUDIO2_SEND_DESCRIPTOR descriptors[1];
|
|
||||||
descriptors[0].pOutputVoice = m_soundEffectMasteringVoice;
|
|
||||||
descriptors[0].Flags = 0;
|
|
||||||
XAUDIO2_VOICE_SENDS sends = {0};
|
|
||||||
sends.SendCount = 1;
|
|
||||||
sends.pSends = descriptors;
|
|
||||||
|
|
||||||
ThrowIfFailed(
|
|
||||||
m_soundEffectEngine->CreateSourceVoice(&m_soundEffects[sound].m_soundEffectSourceVoice,
|
|
||||||
&(mediaStreamer.GetOutputWaveFormatEx()), 0, 1.0f, &m_voiceContext, &sends, nullptr)
|
|
||||||
);
|
|
||||||
//fix bug: set a initial volume
|
|
||||||
m_soundEffects[sound].m_soundEffectSourceVoice->SetVolume(m_soundEffctVolume);
|
|
||||||
}
|
|
||||||
|
|
||||||
m_soundEffects[sound].m_soundEffectSampleRate = mediaStreamer.GetOutputWaveFormatEx().nSamplesPerSec;
|
|
||||||
|
|
||||||
// Queue in-memory buffer for playback
|
|
||||||
ZeroMemory(&m_soundEffects[sound].m_audioBuffer, sizeof(m_soundEffects[sound].m_audioBuffer));
|
|
||||||
|
|
||||||
m_soundEffects[sound].m_audioBuffer.AudioBytes = m_soundEffects[sound].m_soundEffectBufferLength;
|
|
||||||
m_soundEffects[sound].m_audioBuffer.pAudioData = m_soundEffects[sound].m_soundEffectBufferData;
|
|
||||||
m_soundEffects[sound].m_audioBuffer.pContext = &m_soundEffects[sound];
|
|
||||||
m_soundEffects[sound].m_audioBuffer.Flags = XAUDIO2_END_OF_STREAM;
|
|
||||||
m_soundEffects[sound].m_audioBuffer.LoopCount = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Audio::UnloadSoundEffect(const char* pszFilePath)
|
|
||||||
{
|
|
||||||
int sound = Hash(pszFilePath);
|
|
||||||
|
|
||||||
UnloadSoundEffect(sound);
|
|
||||||
|
|
||||||
RemoveFromList(sound);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Audio::UnloadSoundEffect(unsigned int sound)
|
|
||||||
{
|
|
||||||
if (m_engineExperiencedCriticalError) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (m_soundEffects.end() == m_soundEffects.find(sound))
|
|
||||||
return;
|
|
||||||
|
|
||||||
m_soundEffects[sound].m_soundEffectSourceVoice->DestroyVoice();
|
|
||||||
|
|
||||||
if(m_soundEffects[sound].m_soundEffectBufferData)
|
|
||||||
delete [] m_soundEffects[sound].m_soundEffectBufferData;
|
|
||||||
|
|
||||||
m_soundEffects[sound].m_soundEffectBufferData = nullptr;
|
|
||||||
m_soundEffects[sound].m_soundEffectSourceVoice = nullptr;
|
|
||||||
m_soundEffects[sound].m_soundEffectStarted = false;
|
|
||||||
ZeroMemory(&m_soundEffects[sound].m_audioBuffer, sizeof(m_soundEffects[sound].m_audioBuffer));
|
|
||||||
}
|
|
||||||
|
|
||||||
void Audio::RemoveFromList( unsigned int sound )
|
|
||||||
{
|
|
||||||
m_soundEffects.erase(sound);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
|
@ -1,167 +0,0 @@
|
||||||
//// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
|
|
||||||
//// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
|
||||||
//// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
|
|
||||||
//// PARTICULAR PURPOSE.
|
|
||||||
////
|
|
||||||
//// Copyright (c) Microsoft Corporation. All rights reserved
|
|
||||||
|
|
||||||
// For licensing information relating to this distribution please see Third Party Notices file.
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include <wrl.h>
|
|
||||||
#include <d3d11_1.h>
|
|
||||||
#include <agile.h>
|
|
||||||
#include <DirectXMath.h>
|
|
||||||
#include <memory>
|
|
||||||
|
|
||||||
#define XAUDIO2_HELPER_FUNCTIONS 1
|
|
||||||
#include <xaudio2.h>
|
|
||||||
#include <map>
|
|
||||||
|
|
||||||
static const int STREAMING_BUFFER_SIZE = 65536;
|
|
||||||
static const int MAX_BUFFER_COUNT = 3;
|
|
||||||
|
|
||||||
#define UNUSED_PARAM(unusedparam) (void)unusedparam
|
|
||||||
|
|
||||||
struct SoundEffectData
|
|
||||||
{
|
|
||||||
unsigned int m_soundID;
|
|
||||||
IXAudio2SourceVoice* m_soundEffectSourceVoice;
|
|
||||||
XAUDIO2_BUFFER m_audioBuffer;
|
|
||||||
byte* m_soundEffectBufferData;
|
|
||||||
uint32 m_soundEffectBufferLength;
|
|
||||||
uint32 m_soundEffectSampleRate;
|
|
||||||
bool m_soundEffectStarted;
|
|
||||||
};
|
|
||||||
|
|
||||||
class Audio;
|
|
||||||
class AudioEngineCallbacks: public IXAudio2EngineCallback
|
|
||||||
{
|
|
||||||
private:
|
|
||||||
Audio *m_audio;
|
|
||||||
|
|
||||||
public :
|
|
||||||
AudioEngineCallbacks(){};
|
|
||||||
void Initialize(Audio* audio);
|
|
||||||
|
|
||||||
// Called by XAudio2 just before an audio processing pass begins.
|
|
||||||
void _stdcall OnProcessingPassStart(){};
|
|
||||||
|
|
||||||
// Called just after an audio processing pass ends.
|
|
||||||
void _stdcall OnProcessingPassEnd(){};
|
|
||||||
|
|
||||||
// Called in the event of a critical system error which requires XAudio2
|
|
||||||
// to be closed down and restarted. The error code is given in Error.
|
|
||||||
void _stdcall OnCriticalError(HRESULT Error);
|
|
||||||
};
|
|
||||||
|
|
||||||
struct StreamingVoiceContext : public IXAudio2VoiceCallback
|
|
||||||
{
|
|
||||||
STDMETHOD_(void, OnVoiceProcessingPassStart)(UINT32){}
|
|
||||||
STDMETHOD_(void, OnVoiceProcessingPassEnd)(){}
|
|
||||||
STDMETHOD_(void, OnStreamEnd)(){}
|
|
||||||
STDMETHOD_(void, OnBufferStart)(void*)
|
|
||||||
{
|
|
||||||
ResetEvent(hBufferEndEvent);
|
|
||||||
}
|
|
||||||
STDMETHOD_(void, OnBufferEnd)(void* pContext)
|
|
||||||
{
|
|
||||||
//Trigger the event for the music stream.
|
|
||||||
if (pContext == 0) {
|
|
||||||
SetEvent(hBufferEndEvent);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
STDMETHOD_(void, OnLoopEnd)(void*){}
|
|
||||||
STDMETHOD_(void, OnVoiceError)(void*, HRESULT){}
|
|
||||||
|
|
||||||
HANDLE hBufferEndEvent;
|
|
||||||
StreamingVoiceContext() : hBufferEndEvent(CreateEventEx(NULL, FALSE, FALSE, NULL))
|
|
||||||
{
|
|
||||||
}
|
|
||||||
virtual ~StreamingVoiceContext()
|
|
||||||
{
|
|
||||||
CloseHandle(hBufferEndEvent);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
class Audio
|
|
||||||
{
|
|
||||||
private:
|
|
||||||
IXAudio2* m_musicEngine;
|
|
||||||
IXAudio2* m_soundEffectEngine;
|
|
||||||
IXAudio2MasteringVoice* m_musicMasteringVoice;
|
|
||||||
IXAudio2MasteringVoice* m_soundEffectMasteringVoice;
|
|
||||||
|
|
||||||
StreamingVoiceContext m_voiceContext;
|
|
||||||
|
|
||||||
typedef std::map<unsigned int, SoundEffectData> EffectList;
|
|
||||||
typedef std::pair<unsigned int, SoundEffectData> Effect;
|
|
||||||
EffectList m_soundEffects;
|
|
||||||
|
|
||||||
unsigned int m_backgroundID;
|
|
||||||
std::string m_backgroundFile;
|
|
||||||
bool m_backgroundLoop;
|
|
||||||
|
|
||||||
float m_soundEffctVolume;
|
|
||||||
float m_backgroundMusicVolume;
|
|
||||||
|
|
||||||
bool m_engineExperiencedCriticalError;
|
|
||||||
AudioEngineCallbacks m_musicEngineCallback;
|
|
||||||
AudioEngineCallbacks m_soundEffectEngineCallback;
|
|
||||||
|
|
||||||
unsigned int Hash(const char* key);
|
|
||||||
|
|
||||||
public:
|
|
||||||
Audio();
|
|
||||||
|
|
||||||
void Initialize();
|
|
||||||
void CreateResources();
|
|
||||||
void ReleaseResources();
|
|
||||||
void Start();
|
|
||||||
void Render();
|
|
||||||
|
|
||||||
// This flag can be used to tell when the audio system is experiencing critial errors.
|
|
||||||
// XAudio2 gives a critical error when the user unplugs their headphones, and a new
|
|
||||||
// speaker configuration is generated.
|
|
||||||
void SetEngineExperiencedCriticalError()
|
|
||||||
{
|
|
||||||
m_engineExperiencedCriticalError = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool HasEngineExperiencedCriticalError()
|
|
||||||
{
|
|
||||||
return m_engineExperiencedCriticalError;
|
|
||||||
}
|
|
||||||
|
|
||||||
void PlayBackgroundMusic(const char* pszFilePath, bool bLoop);
|
|
||||||
void StopBackgroundMusic(bool bReleaseData);
|
|
||||||
void PauseBackgroundMusic();
|
|
||||||
void ResumeBackgroundMusic();
|
|
||||||
void RewindBackgroundMusic();
|
|
||||||
bool IsBackgroundMusicPlaying();
|
|
||||||
|
|
||||||
void SetBackgroundVolume(float volume);
|
|
||||||
float GetBackgroundVolume();
|
|
||||||
void SetSoundEffectVolume(float volume);
|
|
||||||
float GetSoundEffectVolume();
|
|
||||||
|
|
||||||
void PlaySoundEffect(const char* pszFilePath, bool bLoop, unsigned int& sound, bool isMusic = false);
|
|
||||||
void PlaySoundEffect(unsigned int sound);
|
|
||||||
bool IsSoundEffectStarted(unsigned int sound);
|
|
||||||
void StopSoundEffect(unsigned int sound);
|
|
||||||
void PauseSoundEffect(unsigned int sound);
|
|
||||||
void ResumeSoundEffect(unsigned int sound);
|
|
||||||
void RewindSoundEffect(unsigned int sound);
|
|
||||||
|
|
||||||
void PauseAllSoundEffects();
|
|
||||||
void ResumeAllSoundEffects();
|
|
||||||
void StopAllSoundEffects(bool bReleaseData);
|
|
||||||
|
|
||||||
void PreloadSoundEffect(const char* pszFilePath, bool isMusic = false);
|
|
||||||
void UnloadSoundEffect(const char* pszFilePath);
|
|
||||||
void UnloadSoundEffect(unsigned int sound);
|
|
||||||
|
|
||||||
private:
|
|
||||||
void RemoveFromList(unsigned int sound);
|
|
||||||
};
|
|
|
@ -1,216 +0,0 @@
|
||||||
/*
|
|
||||||
* cocos2d-x http://www.cocos2d-x.org
|
|
||||||
*
|
|
||||||
* Copyright (c) 2010-2011 - cocos2d-x community
|
|
||||||
*
|
|
||||||
* Portions Copyright (c) Microsoft Open Technologies, Inc.
|
|
||||||
* All Rights Reserved
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
|
|
||||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "MediaStreamer.h"
|
|
||||||
#include <wrl\wrappers\corewrappers.h>
|
|
||||||
#include <ppltasks.h>
|
|
||||||
|
|
||||||
using namespace Microsoft::WRL;
|
|
||||||
using namespace Windows::Storage;
|
|
||||||
using namespace Windows::Storage::FileProperties;
|
|
||||||
using namespace Windows::Storage::Streams;
|
|
||||||
using namespace Windows::Foundation;
|
|
||||||
using namespace Windows::ApplicationModel;
|
|
||||||
using namespace Concurrency;
|
|
||||||
|
|
||||||
#ifndef MAKEFOURCC
|
|
||||||
#define MAKEFOURCC(ch0, ch1, ch2, ch3) \
|
|
||||||
((uint32)(byte)(ch0) | ((uint32)(byte)(ch1) << 8) | \
|
|
||||||
((uint32)(byte)(ch2) << 16) | ((uint32)(byte)(ch3) << 24 ))
|
|
||||||
#endif /* defined(MAKEFOURCC) */
|
|
||||||
|
|
||||||
inline void ThrowIfFailed(HRESULT hr)
|
|
||||||
{
|
|
||||||
if (FAILED(hr))
|
|
||||||
{
|
|
||||||
// Set a breakpoint on this line to catch DX API errors.
|
|
||||||
throw Platform::Exception::CreateException(hr);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
MediaStreamer::MediaStreamer() :
|
|
||||||
m_offset(0)
|
|
||||||
{
|
|
||||||
ZeroMemory(&m_waveFormat, sizeof(m_waveFormat));
|
|
||||||
m_location = Package::Current->InstalledLocation;
|
|
||||||
m_locationPath = Platform::String::Concat(m_location->Path, "\\Assets\\Resources\\");
|
|
||||||
}
|
|
||||||
|
|
||||||
MediaStreamer::~MediaStreamer()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
Platform::Array<byte>^ MediaStreamer::ReadData(
|
|
||||||
_In_ Platform::String^ filename
|
|
||||||
)
|
|
||||||
{
|
|
||||||
CREATEFILE2_EXTENDED_PARAMETERS extendedParams = {0};
|
|
||||||
extendedParams.dwSize = sizeof(CREATEFILE2_EXTENDED_PARAMETERS);
|
|
||||||
extendedParams.dwFileAttributes = FILE_ATTRIBUTE_NORMAL;
|
|
||||||
extendedParams.dwFileFlags = FILE_FLAG_SEQUENTIAL_SCAN;
|
|
||||||
extendedParams.dwSecurityQosFlags = SECURITY_ANONYMOUS;
|
|
||||||
extendedParams.lpSecurityAttributes = nullptr;
|
|
||||||
extendedParams.hTemplateFile = nullptr;
|
|
||||||
|
|
||||||
Wrappers::FileHandle file(
|
|
||||||
CreateFile2(
|
|
||||||
filename->Data(),
|
|
||||||
GENERIC_READ,
|
|
||||||
FILE_SHARE_READ,
|
|
||||||
OPEN_EXISTING,
|
|
||||||
&extendedParams
|
|
||||||
)
|
|
||||||
);
|
|
||||||
if (file.Get()==INVALID_HANDLE_VALUE)
|
|
||||||
{
|
|
||||||
throw ref new Platform::FailureException();
|
|
||||||
}
|
|
||||||
|
|
||||||
FILE_STANDARD_INFO fileInfo = {0};
|
|
||||||
if (!GetFileInformationByHandleEx(
|
|
||||||
file.Get(),
|
|
||||||
FileStandardInfo,
|
|
||||||
&fileInfo,
|
|
||||||
sizeof(fileInfo)
|
|
||||||
))
|
|
||||||
{
|
|
||||||
throw ref new Platform::FailureException();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (fileInfo.EndOfFile.HighPart != 0)
|
|
||||||
{
|
|
||||||
throw ref new Platform::OutOfMemoryException();
|
|
||||||
}
|
|
||||||
|
|
||||||
Platform::Array<byte>^ fileData = ref new Platform::Array<byte>(fileInfo.EndOfFile.LowPart);
|
|
||||||
|
|
||||||
if (!ReadFile(
|
|
||||||
file.Get(),
|
|
||||||
fileData->Data,
|
|
||||||
fileData->Length,
|
|
||||||
nullptr,
|
|
||||||
nullptr
|
|
||||||
) )
|
|
||||||
{
|
|
||||||
throw ref new Platform::FailureException();
|
|
||||||
}
|
|
||||||
|
|
||||||
return fileData;
|
|
||||||
}
|
|
||||||
|
|
||||||
void MediaStreamer::Initialize(__in const WCHAR* url)
|
|
||||||
{
|
|
||||||
|
|
||||||
WCHAR filePath[MAX_PATH] = {0};
|
|
||||||
if ((wcslen(url) > 1 && url[1] == ':'))
|
|
||||||
{
|
|
||||||
// path start with "x:", is absolute path
|
|
||||||
wcscat_s(filePath, url);
|
|
||||||
}
|
|
||||||
else if (wcslen(url) > 0
|
|
||||||
&& (L'/' == url[0] || L'\\' == url[0]))
|
|
||||||
{
|
|
||||||
// path start with '/' or '\', is absolute path without driver name
|
|
||||||
wcscat_s(filePath, m_locationPath->Data());
|
|
||||||
// remove '/' or '\\'
|
|
||||||
wcscat_s(filePath, (const WCHAR*)url[1]);
|
|
||||||
}else
|
|
||||||
{
|
|
||||||
wcscat_s(filePath, m_locationPath->Data());
|
|
||||||
wcscat_s(filePath, url);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
Platform::Array<byte>^ data = ReadData(ref new Platform::String(filePath));
|
|
||||||
UINT32 length = data->Length;
|
|
||||||
const byte * dataPtr = data->Data;
|
|
||||||
UINT32 offset = 0;
|
|
||||||
|
|
||||||
DWORD riffDataSize = 0;
|
|
||||||
|
|
||||||
auto ReadChunk = [&length, &offset, &dataPtr, &riffDataSize](DWORD fourcc, DWORD& outChunkSize, DWORD& outChunkPos) -> HRESULT
|
|
||||||
{
|
|
||||||
while (true)
|
|
||||||
{
|
|
||||||
if (offset + sizeof(DWORD) * 2 >= length)
|
|
||||||
{
|
|
||||||
return E_FAIL;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Read two DWORDs.
|
|
||||||
DWORD chunkType = *reinterpret_cast<const DWORD *>(&dataPtr[offset]);
|
|
||||||
DWORD chunkSize = *reinterpret_cast<const DWORD *>(&dataPtr[offset + sizeof(DWORD)]);
|
|
||||||
offset += sizeof(DWORD) * 2;
|
|
||||||
|
|
||||||
if (chunkType == MAKEFOURCC('R', 'I', 'F', 'F'))
|
|
||||||
{
|
|
||||||
riffDataSize = chunkSize;
|
|
||||||
chunkSize = sizeof(DWORD);
|
|
||||||
outChunkSize = sizeof(DWORD);
|
|
||||||
outChunkPos = offset;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
outChunkSize = chunkSize;
|
|
||||||
outChunkPos = offset;
|
|
||||||
}
|
|
||||||
|
|
||||||
offset += chunkSize;
|
|
||||||
|
|
||||||
if (chunkType == fourcc)
|
|
||||||
{
|
|
||||||
return S_OK;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// Locate riff chunk, check the file type.
|
|
||||||
DWORD chunkSize = 0;
|
|
||||||
DWORD chunkPos = 0;
|
|
||||||
|
|
||||||
ThrowIfFailed(ReadChunk(MAKEFOURCC('R', 'I', 'F', 'F'), chunkSize, chunkPos));
|
|
||||||
if (*reinterpret_cast<const DWORD *>(&dataPtr[chunkPos]) != MAKEFOURCC('W', 'A', 'V', 'E')) ThrowIfFailed(E_FAIL);
|
|
||||||
|
|
||||||
// Locate 'fmt ' chunk, copy to WAVEFORMATEXTENSIBLE.
|
|
||||||
ThrowIfFailed(ReadChunk(MAKEFOURCC('f', 'm', 't', ' '), chunkSize, chunkPos));
|
|
||||||
ThrowIfFailed((chunkSize <= sizeof(m_waveFormat)) ? S_OK : E_FAIL);
|
|
||||||
CopyMemory(&m_waveFormat, &dataPtr[chunkPos], chunkSize);
|
|
||||||
|
|
||||||
// Locate the 'data' chunk and copy its contents to a buffer.
|
|
||||||
ThrowIfFailed(ReadChunk(MAKEFOURCC('d', 'a', 't', 'a'), chunkSize, chunkPos));
|
|
||||||
m_data.resize(chunkSize);
|
|
||||||
CopyMemory(m_data.data(), &dataPtr[chunkPos], chunkSize);
|
|
||||||
|
|
||||||
m_offset = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void MediaStreamer::ReadAll(uint8* buffer, uint32 maxBufferSize, uint32* bufferLength)
|
|
||||||
{
|
|
||||||
UINT32 toCopy = m_data.size() - m_offset;
|
|
||||||
if (toCopy > maxBufferSize) toCopy = maxBufferSize;
|
|
||||||
|
|
||||||
CopyMemory(buffer, m_data.data(), toCopy);
|
|
||||||
*bufferLength = toCopy;
|
|
||||||
|
|
||||||
m_offset += toCopy;
|
|
||||||
if (m_offset > m_data.size()) m_offset = m_data.size();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MediaStreamer::Restart()
|
|
||||||
{
|
|
||||||
m_offset = 0;
|
|
||||||
}
|
|
|
@ -1,58 +0,0 @@
|
||||||
/*
|
|
||||||
* cocos2d-x http://www.cocos2d-x.org
|
|
||||||
*
|
|
||||||
* Copyright (c) 2010-2011 - cocos2d-x community
|
|
||||||
*
|
|
||||||
* Portions Copyright (c) Microsoft Open Technologies, Inc.
|
|
||||||
* All Rights Reserved
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
|
|
||||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
|
|
||||||
#include <vector>
|
|
||||||
#include <xaudio2.h>
|
|
||||||
|
|
||||||
ref class MediaStreamer
|
|
||||||
{
|
|
||||||
private:
|
|
||||||
WAVEFORMATEX m_waveFormat;
|
|
||||||
uint32 m_maxStreamLengthInBytes;
|
|
||||||
std::vector<byte> m_data;
|
|
||||||
UINT32 m_offset;
|
|
||||||
Platform::Array<byte>^ ReadData(
|
|
||||||
_In_ Platform::String^ filename
|
|
||||||
);
|
|
||||||
internal:
|
|
||||||
Windows::Storage::StorageFolder^ m_location;
|
|
||||||
Platform::String^ m_locationPath;
|
|
||||||
|
|
||||||
public:
|
|
||||||
virtual ~MediaStreamer();
|
|
||||||
|
|
||||||
internal:
|
|
||||||
MediaStreamer();
|
|
||||||
|
|
||||||
WAVEFORMATEX& GetOutputWaveFormatEx()
|
|
||||||
{
|
|
||||||
return m_waveFormat;
|
|
||||||
}
|
|
||||||
|
|
||||||
UINT32 GetMaxStreamLengthInBytes()
|
|
||||||
{
|
|
||||||
return m_data.size();
|
|
||||||
}
|
|
||||||
|
|
||||||
void Initialize(_In_ const WCHAR* url);
|
|
||||||
void ReadAll(uint8* buffer, uint32 maxBufferSize, uint32* bufferLength);
|
|
||||||
void Restart();
|
|
||||||
};
|
|
|
@ -1,198 +0,0 @@
|
||||||
/*
|
|
||||||
* cocos2d-x http://www.cocos2d-x.org
|
|
||||||
*
|
|
||||||
* Copyright (c) 2010-2011 - cocos2d-x community
|
|
||||||
*
|
|
||||||
* Portions Copyright (c) Microsoft Open Technologies, Inc.
|
|
||||||
* All Rights Reserved
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
|
|
||||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "SimpleAudioEngine.h"
|
|
||||||
#include "Audio.h"
|
|
||||||
|
|
||||||
#include <map>
|
|
||||||
//#include "CCCommon.h"
|
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
namespace CocosDenshion {
|
|
||||||
|
|
||||||
Audio* s_audioController = NULL;
|
|
||||||
bool s_initialized = false;
|
|
||||||
|
|
||||||
SimpleAudioEngine* SimpleAudioEngine::getInstance()
|
|
||||||
{
|
|
||||||
static SimpleAudioEngine s_SharedEngine;
|
|
||||||
return &s_SharedEngine;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static Audio* sharedAudioController()
|
|
||||||
{
|
|
||||||
if (! s_audioController || !s_initialized)
|
|
||||||
{
|
|
||||||
if(s_audioController == NULL)
|
|
||||||
{
|
|
||||||
s_audioController = new Audio;
|
|
||||||
}
|
|
||||||
s_audioController->Initialize();
|
|
||||||
s_audioController->CreateResources();
|
|
||||||
s_initialized = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return s_audioController;
|
|
||||||
}
|
|
||||||
|
|
||||||
SimpleAudioEngine::SimpleAudioEngine()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
SimpleAudioEngine::~SimpleAudioEngine()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void SimpleAudioEngine::end()
|
|
||||||
{
|
|
||||||
sharedAudioController()->StopBackgroundMusic(true);
|
|
||||||
sharedAudioController()->StopAllSoundEffects(true);
|
|
||||||
sharedAudioController()->ReleaseResources();
|
|
||||||
s_initialized = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
|
||||||
// BackgroundMusic
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
void SimpleAudioEngine::playBackgroundMusic(const char* pszFilePath, bool bLoop)
|
|
||||||
{
|
|
||||||
if (! pszFilePath)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
sharedAudioController()->PlayBackgroundMusic(pszFilePath, bLoop);
|
|
||||||
}
|
|
||||||
|
|
||||||
void SimpleAudioEngine::stopBackgroundMusic(bool bReleaseData)
|
|
||||||
{
|
|
||||||
sharedAudioController()->StopBackgroundMusic(bReleaseData);
|
|
||||||
}
|
|
||||||
|
|
||||||
void SimpleAudioEngine::pauseBackgroundMusic()
|
|
||||||
{
|
|
||||||
sharedAudioController()->PauseBackgroundMusic();
|
|
||||||
}
|
|
||||||
|
|
||||||
void SimpleAudioEngine::resumeBackgroundMusic()
|
|
||||||
{
|
|
||||||
sharedAudioController()->ResumeBackgroundMusic();
|
|
||||||
}
|
|
||||||
|
|
||||||
void SimpleAudioEngine::rewindBackgroundMusic()
|
|
||||||
{
|
|
||||||
sharedAudioController()->RewindBackgroundMusic();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool SimpleAudioEngine::willPlayBackgroundMusic()
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool SimpleAudioEngine::isBackgroundMusicPlaying()
|
|
||||||
{
|
|
||||||
return sharedAudioController()->IsBackgroundMusicPlaying();
|
|
||||||
}
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
|
||||||
// effect function
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
unsigned int SimpleAudioEngine::playEffect(const char* pszFilePath, bool bLoop,float pitch, float pan, float gain)
|
|
||||||
{
|
|
||||||
unsigned int sound;
|
|
||||||
sharedAudioController()->PlaySoundEffect(pszFilePath, bLoop, sound);
|
|
||||||
// TODO: need to support playEffect parameters
|
|
||||||
return sound;
|
|
||||||
}
|
|
||||||
|
|
||||||
void SimpleAudioEngine::stopEffect(unsigned int nSoundId)
|
|
||||||
{
|
|
||||||
sharedAudioController()->StopSoundEffect(nSoundId);
|
|
||||||
}
|
|
||||||
|
|
||||||
void SimpleAudioEngine::preloadEffect(const char* pszFilePath)
|
|
||||||
{
|
|
||||||
sharedAudioController()->PreloadSoundEffect(pszFilePath);
|
|
||||||
}
|
|
||||||
|
|
||||||
void SimpleAudioEngine::pauseEffect(unsigned int nSoundId)
|
|
||||||
{
|
|
||||||
sharedAudioController()->PauseSoundEffect(nSoundId);
|
|
||||||
}
|
|
||||||
|
|
||||||
void SimpleAudioEngine::resumeEffect(unsigned int nSoundId)
|
|
||||||
{
|
|
||||||
sharedAudioController()->ResumeSoundEffect(nSoundId);
|
|
||||||
}
|
|
||||||
|
|
||||||
void SimpleAudioEngine::pauseAllEffects()
|
|
||||||
{
|
|
||||||
sharedAudioController()->PauseAllSoundEffects();
|
|
||||||
}
|
|
||||||
|
|
||||||
void SimpleAudioEngine::resumeAllEffects()
|
|
||||||
{
|
|
||||||
sharedAudioController()->ResumeAllSoundEffects();
|
|
||||||
}
|
|
||||||
|
|
||||||
void SimpleAudioEngine::stopAllEffects()
|
|
||||||
{
|
|
||||||
sharedAudioController()->StopAllSoundEffects(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
void SimpleAudioEngine::preloadBackgroundMusic(const char* pszFilePath)
|
|
||||||
{
|
|
||||||
UNUSED_PARAM(pszFilePath);
|
|
||||||
}
|
|
||||||
|
|
||||||
void SimpleAudioEngine::unloadEffect(const char* pszFilePath)
|
|
||||||
{
|
|
||||||
sharedAudioController()->UnloadSoundEffect(pszFilePath);
|
|
||||||
}
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
|
||||||
// volume interface
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
float SimpleAudioEngine::getBackgroundMusicVolume()
|
|
||||||
{
|
|
||||||
return sharedAudioController()->GetBackgroundVolume();
|
|
||||||
}
|
|
||||||
|
|
||||||
void SimpleAudioEngine::setBackgroundMusicVolume(float volume)
|
|
||||||
{
|
|
||||||
sharedAudioController()->SetBackgroundVolume((volume<=0.0f)? 0.0f : volume);
|
|
||||||
}
|
|
||||||
|
|
||||||
float SimpleAudioEngine::getEffectsVolume()
|
|
||||||
{
|
|
||||||
return sharedAudioController()->GetSoundEffectVolume();
|
|
||||||
}
|
|
||||||
|
|
||||||
void SimpleAudioEngine::setEffectsVolume(float volume)
|
|
||||||
{
|
|
||||||
sharedAudioController()->SetSoundEffectVolume((volume<=0.0f)? 0.0f : volume);
|
|
||||||
}
|
|
||||||
|
|
||||||
} // end of namespace CocosDenshion
|
|
|
@ -257,6 +257,12 @@ THE SOFTWARE.
|
||||||
#define CC_USE_CULLING 1
|
#define CC_USE_CULLING 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/** Support PNG or not. If your application don't use png format picture, you can undefine this macro to save package size.
|
||||||
|
*/
|
||||||
|
#ifndef CC_USE_PNG
|
||||||
|
#define CC_USE_PNG 1
|
||||||
|
#endif // CC_USE_PNG
|
||||||
|
|
||||||
/** Support JPEG or not. If your application don't use jpeg format picture, you can undefine this macro to save package size.
|
/** Support JPEG or not. If your application don't use jpeg format picture, you can undefine this macro to save package size.
|
||||||
*/
|
*/
|
||||||
#ifndef CC_USE_JPEG
|
#ifndef CC_USE_JPEG
|
||||||
|
@ -277,6 +283,17 @@ THE SOFTWARE.
|
||||||
#endif
|
#endif
|
||||||
#endif // CC_USE_WEBP
|
#endif // CC_USE_WEBP
|
||||||
|
|
||||||
|
/** Support WIC (Windows Image Component) or not. Replaces PNG, TIFF and JPEG
|
||||||
|
*/
|
||||||
|
#ifndef CC_USE_WIC
|
||||||
|
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WINRT)
|
||||||
|
#define CC_USE_WIC 1
|
||||||
|
#undef CC_USE_TIFF
|
||||||
|
#undef CC_USE_JPEG
|
||||||
|
#undef CC_USE_PNG
|
||||||
|
#endif
|
||||||
|
#endif // CC_USE_WIC
|
||||||
|
|
||||||
/** Enable Script binding. */
|
/** Enable Script binding. */
|
||||||
#ifndef CC_ENABLE_SCRIPT_BINDING
|
#ifndef CC_ENABLE_SCRIPT_BINDING
|
||||||
#define CC_ENABLE_SCRIPT_BINDING 1
|
#define CC_ENABLE_SCRIPT_BINDING 1
|
||||||
|
|
|
@ -1,372 +0,0 @@
|
||||||
<?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="Debug|Win32">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Debug|ARM">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>ARM</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|ARM">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>ARM</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
</ItemGroup>
|
|
||||||
<PropertyGroup Label="Globals">
|
|
||||||
<ProjectGuid>{7D4FC6EB-9497-4804-98F3-3EAEDC896154}</ProjectGuid>
|
|
||||||
<RootNamespace>libSpine</RootNamespace>
|
|
||||||
<DefaultLanguage>en-US</DefaultLanguage>
|
|
||||||
<MinimumVisualStudioVersion>11.0</MinimumVisualStudioVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v110_wp80</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v110_wp80</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<PlatformToolset>v110_wp80</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<PlatformToolset>v110_wp80</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
|
||||||
<ImportGroup 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)'=='Debug|Win32'">
|
|
||||||
<Import Project="..\..\..\2d\wp8_props\cocos2d_wp8.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
|
|
||||||
<Import Project="..\..\..\2d\wp8_props\cocos2d_wp8.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<Import Project="..\..\..\2d\wp8_props\cocos2d_wp8.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
|
|
||||||
<Import Project="..\..\..\2d\wp8_props\cocos2d_wp8.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup>
|
|
||||||
<GenerateManifest>false</GenerateManifest>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<PreprocessorDefinitions>_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
||||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
|
||||||
<AdditionalUsingDirectories>$(WindowsSDK_MetadataPath);$(AdditionalUsingDirectories)</AdditionalUsingDirectories>
|
|
||||||
<AdditionalIncludeDirectories>$(EngineRoot);$(EngineRoot)cocos\audio\include;$(EngineRoot)cocos\editor-support;$(EngineRoot)extensions;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<PreprocessorDefinitions>WP8;_DEBUG;_LIB;COCOS2DXWIN32_EXPORTS;GL_GLEXT_PROTOTYPES;COCOS2D_DEBUG=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<DisableSpecificWarnings>4267;4251;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
|
||||||
<ForcedIncludeFiles>
|
|
||||||
</ForcedIncludeFiles>
|
|
||||||
<AdditionalOptions>/Zm200 %(AdditionalOptions)</AdditionalOptions>
|
|
||||||
<SDLCheck>false</SDLCheck>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
|
||||||
</Link>
|
|
||||||
<Lib>
|
|
||||||
<AdditionalOptions>/IGNORE:4264 %(AdditionalOptions)</AdditionalOptions>
|
|
||||||
</Lib>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<PreprocessorDefinitions>_LIB;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
||||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
|
||||||
<AdditionalUsingDirectories>$(WindowsSDK_MetadataPath);$(AdditionalUsingDirectories)</AdditionalUsingDirectories>
|
|
||||||
<AdditionalIncludeDirectories>$(EngineRoot);$(EngineRoot)cocos\audio\include;$(EngineRoot)cocos\editor-support;$(EngineRoot)extensions;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<PreprocessorDefinitions>WP8;_LIB;COCOS2DXWIN32_EXPORTS;GL_GLEXT_PROTOTYPES;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<ForcedIncludeFiles>
|
|
||||||
</ForcedIncludeFiles>
|
|
||||||
<AdditionalOptions>/Zm200 %(AdditionalOptions)</AdditionalOptions>
|
|
||||||
<SDLCheck>false</SDLCheck>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
|
||||||
</Link>
|
|
||||||
<Lib>
|
|
||||||
<AdditionalOptions>/IGNORE:4264 %(AdditionalOptions)</AdditionalOptions>
|
|
||||||
<LinkTimeCodeGeneration>false</LinkTimeCodeGeneration>
|
|
||||||
</Lib>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
|
|
||||||
<ClCompile>
|
|
||||||
<PreprocessorDefinitions>_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
||||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
|
||||||
<AdditionalUsingDirectories>$(WindowsSDK_MetadataPath);$(AdditionalUsingDirectories)</AdditionalUsingDirectories>
|
|
||||||
<AdditionalIncludeDirectories>$(EngineRoot);$(EngineRoot)cocos\audio\include;$(EngineRoot)cocos\editor-support;$(EngineRoot)extensions;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<PreprocessorDefinitions>WP8;_DEBUG;_LIB;COCOS2DXWIN32_EXPORTS;GL_GLEXT_PROTOTYPES;COCOS2D_DEBUG=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<DisableSpecificWarnings>4267;4251;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
|
||||||
<ForcedIncludeFiles>
|
|
||||||
</ForcedIncludeFiles>
|
|
||||||
<AdditionalOptions>/Zm200 %(AdditionalOptions)</AdditionalOptions>
|
|
||||||
<SDLCheck>false</SDLCheck>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
|
||||||
</Link>
|
|
||||||
<Lib>
|
|
||||||
<AdditionalOptions>/IGNORE:4264 %(AdditionalOptions)</AdditionalOptions>
|
|
||||||
</Lib>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
|
|
||||||
<ClCompile>
|
|
||||||
<PreprocessorDefinitions>_LIB;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
||||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
|
||||||
<AdditionalUsingDirectories>$(WindowsSDK_MetadataPath);$(AdditionalUsingDirectories)</AdditionalUsingDirectories>
|
|
||||||
<AdditionalIncludeDirectories>$(EngineRoot);$(EngineRoot)cocos\audio\include;$(EngineRoot)cocos\editor-support;$(EngineRoot)extensions;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<PreprocessorDefinitions>WP8;_LIB;COCOS2DXWIN32_EXPORTS;GL_GLEXT_PROTOTYPES;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<ForcedIncludeFiles>
|
|
||||||
</ForcedIncludeFiles>
|
|
||||||
<AdditionalOptions>/Zm200 %(AdditionalOptions)</AdditionalOptions>
|
|
||||||
<SDLCheck>false</SDLCheck>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
|
||||||
</Link>
|
|
||||||
<Lib>
|
|
||||||
<AdditionalOptions>/IGNORE:4264 %(AdditionalOptions)</AdditionalOptions>
|
|
||||||
<LinkTimeCodeGeneration>false</LinkTimeCodeGeneration>
|
|
||||||
</Lib>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Reference Include="Windows">
|
|
||||||
<IsWinMDFile>true</IsWinMDFile>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="platform.winmd">
|
|
||||||
<IsWinMDFile>true</IsWinMDFile>
|
|
||||||
<Private>false</Private>
|
|
||||||
</Reference>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="..\Animation.h" />
|
|
||||||
<ClInclude Include="..\AnimationState.h" />
|
|
||||||
<ClInclude Include="..\AnimationStateData.h" />
|
|
||||||
<ClInclude Include="..\Atlas.h" />
|
|
||||||
<ClInclude Include="..\AtlasAttachmentLoader.h" />
|
|
||||||
<ClInclude Include="..\Attachment.h" />
|
|
||||||
<ClInclude Include="..\AttachmentLoader.h" />
|
|
||||||
<ClInclude Include="..\Bone.h" />
|
|
||||||
<ClInclude Include="..\BoneData.h" />
|
|
||||||
<ClInclude Include="..\BoundingBoxAttachment.h" />
|
|
||||||
<ClInclude Include="..\Event.h" />
|
|
||||||
<ClInclude Include="..\EventData.h" />
|
|
||||||
<ClInclude Include="..\extension.h" />
|
|
||||||
<ClInclude Include="..\IkConstraint.h" />
|
|
||||||
<ClInclude Include="..\IkConstraintData.h" />
|
|
||||||
<ClInclude Include="..\Json.h" />
|
|
||||||
<ClInclude Include="..\MeshAttachment.h" />
|
|
||||||
<ClInclude Include="..\PolygonBatch.h" />
|
|
||||||
<ClInclude Include="..\RegionAttachment.h" />
|
|
||||||
<ClInclude Include="..\Skeleton.h" />
|
|
||||||
<ClInclude Include="..\SkeletonAnimation.h" />
|
|
||||||
<ClInclude Include="..\SkeletonBounds.h" />
|
|
||||||
<ClInclude Include="..\SkeletonData.h" />
|
|
||||||
<ClInclude Include="..\SkeletonJson.h" />
|
|
||||||
<ClInclude Include="..\SkeletonRenderer.h" />
|
|
||||||
<ClInclude Include="..\Skin.h" />
|
|
||||||
<ClInclude Include="..\SkinnedMeshAttachment.h" />
|
|
||||||
<ClInclude Include="..\Slot.h" />
|
|
||||||
<ClInclude Include="..\SlotData.h" />
|
|
||||||
<ClInclude Include="..\spine-cocos2dx.h" />
|
|
||||||
<ClInclude Include="..\spine.h" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="..\Animation.c">
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</CompileAsWinRT>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\AnimationState.c">
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</CompileAsWinRT>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\AnimationStateData.c">
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</CompileAsWinRT>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\Atlas.c">
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</CompileAsWinRT>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\AtlasAttachmentLoader.c">
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</CompileAsWinRT>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\Attachment.c">
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</CompileAsWinRT>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\AttachmentLoader.c">
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</CompileAsWinRT>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\Bone.c">
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</CompileAsWinRT>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\BoneData.c">
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</CompileAsWinRT>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\BoundingBoxAttachment.c">
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</CompileAsWinRT>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\Event.c">
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</CompileAsWinRT>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\EventData.c">
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</CompileAsWinRT>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\extension.c">
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</CompileAsWinRT>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\IkConstraint.c">
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</CompileAsWinRT>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\IkConstraintData.c">
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</CompileAsWinRT>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\Json.c">
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</CompileAsWinRT>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\MeshAttachment.c">
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</CompileAsWinRT>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\PolygonBatch.cpp" />
|
|
||||||
<ClCompile Include="..\RegionAttachment.c">
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</CompileAsWinRT>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\Skeleton.c">
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</CompileAsWinRT>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\SkeletonAnimation.cpp" />
|
|
||||||
<ClCompile Include="..\SkeletonBounds.c">
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</CompileAsWinRT>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\SkeletonData.c">
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</CompileAsWinRT>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\SkeletonJson.c">
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</CompileAsWinRT>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\SkeletonRenderer.cpp" />
|
|
||||||
<ClCompile Include="..\Skin.c">
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</CompileAsWinRT>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\SkinnedMeshAttachment.c">
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</CompileAsWinRT>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\Slot.c">
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</CompileAsWinRT>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\SlotData.c">
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">false</CompileAsWinRT>
|
|
||||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">false</CompileAsWinRT>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\spine-cocos2dx.cpp" />
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
|
||||||
<Import Project="$(MSBuildExtensionsPath)\Microsoft\WindowsPhone\v$(TargetPlatformVersion)\Microsoft.Cpp.WindowsPhone.$(TargetPlatformVersion).targets" />
|
|
||||||
<ImportGroup Label="ExtensionTargets">
|
|
||||||
</ImportGroup>
|
|
||||||
</Project>
|
|
|
@ -1,200 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup>
|
|
||||||
<Filter Include="Header Files">
|
|
||||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
|
||||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Source Files">
|
|
||||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
|
||||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
|
||||||
</Filter>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="..\Animation.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\AnimationState.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\AnimationStateData.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\Atlas.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\AtlasAttachmentLoader.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\Attachment.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\AttachmentLoader.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\Bone.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\BoneData.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\BoundingBoxAttachment.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\Event.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\EventData.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\extension.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\IkConstraint.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\IkConstraintData.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\Json.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\MeshAttachment.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\PolygonBatch.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\RegionAttachment.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\Skeleton.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\SkeletonAnimation.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\SkeletonBounds.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\SkeletonData.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\SkeletonJson.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\SkeletonRenderer.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\Skin.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\SkinnedMeshAttachment.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\Slot.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\SlotData.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\spine.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\spine-cocos2dx.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="..\Animation.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\AnimationState.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\AnimationStateData.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\Atlas.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\AtlasAttachmentLoader.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\Attachment.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\AttachmentLoader.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\Bone.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\BoneData.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\BoundingBoxAttachment.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\Event.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\EventData.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\extension.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\IkConstraint.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\IkConstraintData.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\Json.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\MeshAttachment.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\PolygonBatch.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\RegionAttachment.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\Skeleton.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\SkeletonAnimation.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\SkeletonBounds.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\SkeletonData.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\SkeletonJson.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\SkeletonRenderer.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\Skin.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\SkinnedMeshAttachment.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\Slot.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\SlotData.c">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\spine-cocos2dx.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
|
@ -1,6 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<PropertyGroup>
|
|
||||||
<FullDeploy>true</FullDeploy>
|
|
||||||
</PropertyGroup>
|
|
||||||
</Project>
|
|
|
@ -54,8 +54,11 @@ extern "C"
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if CC_USE_PNG
|
||||||
#include "png.h"
|
#include "png.h"
|
||||||
|
#endif //CC_USE_PNG
|
||||||
|
|
||||||
#if CC_USE_TIFF
|
#if CC_USE_TIFF
|
||||||
#include "tiffio.h"
|
#include "tiffio.h"
|
||||||
#endif //CC_USE_TIFF
|
#endif //CC_USE_TIFF
|
||||||
|
@ -409,7 +412,8 @@ namespace
|
||||||
ssize_t size;
|
ssize_t size;
|
||||||
int offset;
|
int offset;
|
||||||
}tImageSource;
|
}tImageSource;
|
||||||
|
|
||||||
|
#ifdef CC_USE_PNG
|
||||||
static void pngReadCallback(png_structp png_ptr, png_bytep data, png_size_t length)
|
static void pngReadCallback(png_structp png_ptr, png_bytep data, png_size_t length)
|
||||||
{
|
{
|
||||||
tImageSource* isource = (tImageSource*)png_get_io_ptr(png_ptr);
|
tImageSource* isource = (tImageSource*)png_get_io_ptr(png_ptr);
|
||||||
|
@ -424,6 +428,7 @@ namespace
|
||||||
png_error(png_ptr, "pngReaderCallback failed");
|
png_error(png_ptr, "pngReaderCallback failed");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif //CC_USE_PNG
|
||||||
}
|
}
|
||||||
|
|
||||||
Texture2D::PixelFormat getDevicePixelFormat(Texture2D::PixelFormat format)
|
Texture2D::PixelFormat getDevicePixelFormat(Texture2D::PixelFormat format)
|
||||||
|
@ -819,9 +824,75 @@ namespace
|
||||||
#endif // CC_USE_JPEG
|
#endif // CC_USE_JPEG
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CC_USE_WIC
|
||||||
|
bool Image::decodeWithWIC(const unsigned char *data, ssize_t dataLen)
|
||||||
|
{
|
||||||
|
bool bRet = false;
|
||||||
|
WICImageLoader img;
|
||||||
|
|
||||||
|
if (img.decodeImageData(data, dataLen))
|
||||||
|
{
|
||||||
|
_width = img.getWidth();
|
||||||
|
_height = img.getHeight();
|
||||||
|
_hasPremultipliedAlpha = false;
|
||||||
|
|
||||||
|
WICPixelFormatGUID format = img.getPixelFormat();
|
||||||
|
|
||||||
|
if (memcmp(&format, &GUID_WICPixelFormat8bppGray, sizeof(WICPixelFormatGUID)) == 0)
|
||||||
|
{
|
||||||
|
_renderFormat = Texture2D::PixelFormat::I8;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (memcmp(&format, &GUID_WICPixelFormat8bppAlpha, sizeof(WICPixelFormatGUID)) == 0)
|
||||||
|
{
|
||||||
|
_renderFormat = Texture2D::PixelFormat::AI88;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (memcmp(&format, &GUID_WICPixelFormat24bppRGB, sizeof(WICPixelFormatGUID)) == 0)
|
||||||
|
{
|
||||||
|
_renderFormat = Texture2D::PixelFormat::RGB888;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (memcmp(&format, &GUID_WICPixelFormat32bppRGBA, sizeof(WICPixelFormatGUID)) == 0)
|
||||||
|
{
|
||||||
|
_renderFormat = Texture2D::PixelFormat::RGBA8888;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (memcmp(&format, &GUID_WICPixelFormat32bppBGRA, sizeof(WICPixelFormatGUID)) == 0)
|
||||||
|
{
|
||||||
|
_renderFormat = Texture2D::PixelFormat::BGRA8888;
|
||||||
|
}
|
||||||
|
|
||||||
|
_dataLen = img.getImageDataSize();
|
||||||
|
|
||||||
|
CCAssert(_dataLen > 0, "Image: Decompressed data length is invalid");
|
||||||
|
|
||||||
|
_data = new (std::nothrow) unsigned char[_dataLen];
|
||||||
|
bRet = (img.getImageData(_data, _dataLen) > 0);
|
||||||
|
|
||||||
|
if (_renderFormat == Texture2D::PixelFormat::RGBA8888) {
|
||||||
|
premultipliedAlpha();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return bRet;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Image::encodeWithWIC(const std::string& filePath, bool isToRGB, GUID containerFormat)
|
||||||
|
{
|
||||||
|
WICPixelFormatGUID format = isToRGB ? GUID_WICPixelFormat24bppRGB : GUID_WICPixelFormat32bppRGBA;
|
||||||
|
|
||||||
|
WICImageLoader img;
|
||||||
|
return img.encodeImageData(filePath, _data, _dataLen, format, _width, _height, containerFormat);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif //CC_USE_WIC
|
||||||
|
|
||||||
bool Image::initWithJpgData(const unsigned char * data, ssize_t dataLen)
|
bool Image::initWithJpgData(const unsigned char * data, ssize_t dataLen)
|
||||||
{
|
{
|
||||||
#if CC_USE_JPEG
|
#if defined(CC_USE_WIC)
|
||||||
|
return decodeWithWIC(data, dataLen);
|
||||||
|
#elif defined(CC_USE_JPEG)
|
||||||
/* these are standard libjpeg structures for reading(decompression) */
|
/* these are standard libjpeg structures for reading(decompression) */
|
||||||
struct jpeg_decompress_struct cinfo;
|
struct jpeg_decompress_struct cinfo;
|
||||||
/* We use our private extension JPEG error handler.
|
/* We use our private extension JPEG error handler.
|
||||||
|
@ -908,12 +979,16 @@ bool Image::initWithJpgData(const unsigned char * data, ssize_t dataLen)
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
#else
|
#else
|
||||||
|
CCLOG("jpeg is not enabled, please enable it in ccConfig.h");
|
||||||
return false;
|
return false;
|
||||||
#endif // CC_USE_JPEG
|
#endif // CC_USE_JPEG
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Image::initWithPngData(const unsigned char * data, ssize_t dataLen)
|
bool Image::initWithPngData(const unsigned char * data, ssize_t dataLen)
|
||||||
{
|
{
|
||||||
|
#if defined(CC_USE_WIC)
|
||||||
|
return decodeWithWIC(data, dataLen);
|
||||||
|
#elif defined(CC_USE_PNG)
|
||||||
// length of bytes to check if it is a valid png file
|
// length of bytes to check if it is a valid png file
|
||||||
#define PNGSIGSIZE 8
|
#define PNGSIGSIZE 8
|
||||||
bool ret = false;
|
bool ret = false;
|
||||||
|
@ -1060,6 +1135,10 @@ bool Image::initWithPngData(const unsigned char * data, ssize_t dataLen)
|
||||||
png_destroy_read_struct(&png_ptr, (info_ptr) ? &info_ptr : 0, 0);
|
png_destroy_read_struct(&png_ptr, (info_ptr) ? &info_ptr : 0, 0);
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
|
#else
|
||||||
|
CCLOG("png is not enabled, please enable it in ccConfig.h");
|
||||||
|
return false;
|
||||||
|
#endif //CC_USE_PNG
|
||||||
}
|
}
|
||||||
|
|
||||||
#if CC_USE_TIFF
|
#if CC_USE_TIFF
|
||||||
|
@ -1176,7 +1255,9 @@ namespace
|
||||||
|
|
||||||
bool Image::initWithTiffData(const unsigned char * data, ssize_t dataLen)
|
bool Image::initWithTiffData(const unsigned char * data, ssize_t dataLen)
|
||||||
{
|
{
|
||||||
#if CC_USE_TIFF
|
#if defined(CC_USE_WIC)
|
||||||
|
return decodeWithWIC(data, dataLen);
|
||||||
|
#elif defined(CC_USE_TIFF)
|
||||||
bool ret = false;
|
bool ret = false;
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
|
@ -1235,9 +1316,9 @@ bool Image::initWithTiffData(const unsigned char * data, ssize_t dataLen)
|
||||||
} while (0);
|
} while (0);
|
||||||
return ret;
|
return ret;
|
||||||
#else
|
#else
|
||||||
CCLOG("tiff is not enabled, please enalbe it in ccConfig.h");
|
CCLOG("tiff is not enabled, please enable it in ccConfig.h");
|
||||||
return false;
|
return false;
|
||||||
#endif
|
#endif //CC_USE_TIFF
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace
|
namespace
|
||||||
|
@ -2139,8 +2220,11 @@ bool Image::saveToFile(const std::string& filename, bool isToRGB)
|
||||||
|
|
||||||
bool Image::saveImageToPNG(const std::string& filePath, bool isToRGB)
|
bool Image::saveImageToPNG(const std::string& filePath, bool isToRGB)
|
||||||
{
|
{
|
||||||
|
#if defined(CC_USE_WIC)
|
||||||
|
return encodeWithWIC(filePath, isToRGB, GUID_ContainerFormatPng);
|
||||||
|
#elif defined(CC_USE_PNG)
|
||||||
bool ret = false;
|
bool ret = false;
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
png_structp png_ptr;
|
png_structp png_ptr;
|
||||||
|
@ -2280,10 +2364,17 @@ bool Image::saveImageToPNG(const std::string& filePath, bool isToRGB)
|
||||||
ret = true;
|
ret = true;
|
||||||
} while (0);
|
} while (0);
|
||||||
return ret;
|
return ret;
|
||||||
|
#else
|
||||||
|
CCLOG("png is not enabled, please enable it in ccConfig.h");
|
||||||
|
return false;
|
||||||
|
#endif // CC_USE_PNG
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Image::saveImageToJPG(const std::string& filePath)
|
bool Image::saveImageToJPG(const std::string& filePath)
|
||||||
{
|
{
|
||||||
#if CC_USE_JPEG
|
#if defined(CC_USE_WIC)
|
||||||
|
return encodeWithWIC(filePath, false, GUID_ContainerFormatJpeg);
|
||||||
|
#elif defined(CC_USE_JPEG)
|
||||||
bool ret = false;
|
bool ret = false;
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
|
|
|
@ -30,6 +30,10 @@ THE SOFTWARE.
|
||||||
#include "base/CCRef.h"
|
#include "base/CCRef.h"
|
||||||
#include "renderer/CCTexture2D.h"
|
#include "renderer/CCTexture2D.h"
|
||||||
|
|
||||||
|
#if defined(CC_USE_WIC)
|
||||||
|
#include "WICImageLoader-win.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
// premultiply alpha, or the effect will wrong when want to use other pixel format in Texture2D,
|
// premultiply alpha, or the effect will wrong when want to use other pixel format in Texture2D,
|
||||||
// such as RGB888, RGB5A1
|
// such as RGB888, RGB5A1
|
||||||
#define CC_RGB_PREMULTIPLY_ALPHA(vr, vg, vb, va) \
|
#define CC_RGB_PREMULTIPLY_ALPHA(vr, vg, vb, va) \
|
||||||
|
@ -150,6 +154,10 @@ public:
|
||||||
static void setPVRImagesHavePremultipliedAlpha(bool haveAlphaPremultiplied);
|
static void setPVRImagesHavePremultipliedAlpha(bool haveAlphaPremultiplied);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
#if defined(CC_USE_WIC)
|
||||||
|
bool encodeWithWIC(const std::string& filePath, bool isToRGB, GUID containerFormat);
|
||||||
|
bool decodeWithWIC(const unsigned char *data, ssize_t dataLen);
|
||||||
|
#endif
|
||||||
bool initWithJpgData(const unsigned char * data, ssize_t dataLen);
|
bool initWithJpgData(const unsigned char * data, ssize_t dataLen);
|
||||||
bool initWithPngData(const unsigned char * data, ssize_t dataLen);
|
bool initWithPngData(const unsigned char * data, ssize_t dataLen);
|
||||||
bool initWithTiffData(const unsigned char * data, ssize_t dataLen);
|
bool initWithTiffData(const unsigned char * data, ssize_t dataLen);
|
||||||
|
|
|
@ -0,0 +1,432 @@
|
||||||
|
/****************************************************************************
|
||||||
|
Copyright (c) Microsoft Open Technologies, Inc. All rights reserved.
|
||||||
|
|
||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
|
|
||||||
|
Based upon code from the DirectX Tool Kit by Microsoft Corporation,
|
||||||
|
obtained from https://directxtk.codeplex.com
|
||||||
|
****************************************************************************/
|
||||||
|
#include "WICImageLoader-win.h"
|
||||||
|
|
||||||
|
NS_CC_BEGIN
|
||||||
|
|
||||||
|
#if defined(CC_USE_WIC)
|
||||||
|
|
||||||
|
IWICImagingFactory* WICImageLoader::_wicFactory = NULL;
|
||||||
|
|
||||||
|
static WICConvert g_WICConvert[] =
|
||||||
|
{
|
||||||
|
// Note target GUID in this conversion table must be one of those directly supported formats (above).
|
||||||
|
|
||||||
|
{ GUID_WICPixelFormatBlackWhite, GUID_WICPixelFormat8bppGray }, // DXGI_FORMAT_R8_UNORM
|
||||||
|
|
||||||
|
{ GUID_WICPixelFormat1bppIndexed, GUID_WICPixelFormat32bppRGBA }, // DXGI_FORMAT_R8G8B8A8_UNORM
|
||||||
|
{ GUID_WICPixelFormat2bppIndexed, GUID_WICPixelFormat32bppRGBA }, // DXGI_FORMAT_R8G8B8A8_UNORM
|
||||||
|
{ GUID_WICPixelFormat4bppIndexed, GUID_WICPixelFormat32bppRGBA }, // DXGI_FORMAT_R8G8B8A8_UNORM
|
||||||
|
{ GUID_WICPixelFormat8bppIndexed, GUID_WICPixelFormat32bppRGBA }, // DXGI_FORMAT_R8G8B8A8_UNORM
|
||||||
|
|
||||||
|
{ GUID_WICPixelFormat2bppGray, GUID_WICPixelFormat8bppGray }, // DXGI_FORMAT_R8_UNORM
|
||||||
|
{ GUID_WICPixelFormat4bppGray, GUID_WICPixelFormat8bppGray }, // DXGI_FORMAT_R8_UNORM
|
||||||
|
|
||||||
|
{ GUID_WICPixelFormat16bppGrayFixedPoint, GUID_WICPixelFormat16bppGrayHalf }, // DXGI_FORMAT_R16_FLOAT
|
||||||
|
{ GUID_WICPixelFormat32bppGrayFixedPoint, GUID_WICPixelFormat32bppGrayFloat }, // DXGI_FORMAT_R32_FLOAT
|
||||||
|
|
||||||
|
{ GUID_WICPixelFormat16bppBGR555, GUID_WICPixelFormat16bppBGRA5551 }, // DXGI_FORMAT_B5G5R5A1_UNORM
|
||||||
|
|
||||||
|
{ GUID_WICPixelFormat32bppBGR101010, GUID_WICPixelFormat32bppRGBA1010102 }, // DXGI_FORMAT_R10G10B10A2_UNORM
|
||||||
|
|
||||||
|
{ GUID_WICPixelFormat24bppBGR, GUID_WICPixelFormat32bppRGBA }, // DXGI_FORMAT_R8G8B8A8_UNORM
|
||||||
|
{ GUID_WICPixelFormat24bppRGB, GUID_WICPixelFormat32bppRGBA }, // DXGI_FORMAT_R8G8B8A8_UNORM
|
||||||
|
{ GUID_WICPixelFormat32bppPBGRA, GUID_WICPixelFormat32bppRGBA }, // DXGI_FORMAT_R8G8B8A8_UNORM
|
||||||
|
{ GUID_WICPixelFormat32bppPRGBA, GUID_WICPixelFormat32bppRGBA }, // DXGI_FORMAT_R8G8B8A8_UNORM
|
||||||
|
|
||||||
|
{ GUID_WICPixelFormat48bppRGB, GUID_WICPixelFormat64bppRGBA }, // DXGI_FORMAT_R16G16B16A16_UNORM
|
||||||
|
{ GUID_WICPixelFormat48bppBGR, GUID_WICPixelFormat64bppRGBA }, // DXGI_FORMAT_R16G16B16A16_UNORM
|
||||||
|
{ GUID_WICPixelFormat64bppBGRA, GUID_WICPixelFormat64bppRGBA }, // DXGI_FORMAT_R16G16B16A16_UNORM
|
||||||
|
{ GUID_WICPixelFormat64bppPRGBA, GUID_WICPixelFormat64bppRGBA }, // DXGI_FORMAT_R16G16B16A16_UNORM
|
||||||
|
{ GUID_WICPixelFormat64bppPBGRA, GUID_WICPixelFormat64bppRGBA }, // DXGI_FORMAT_R16G16B16A16_UNORM
|
||||||
|
|
||||||
|
{ GUID_WICPixelFormat48bppRGBFixedPoint, GUID_WICPixelFormat64bppRGBAHalf }, // DXGI_FORMAT_R16G16B16A16_FLOAT
|
||||||
|
{ GUID_WICPixelFormat48bppBGRFixedPoint, GUID_WICPixelFormat64bppRGBAHalf }, // DXGI_FORMAT_R16G16B16A16_FLOAT
|
||||||
|
{ GUID_WICPixelFormat64bppRGBAFixedPoint, GUID_WICPixelFormat64bppRGBAHalf }, // DXGI_FORMAT_R16G16B16A16_FLOAT
|
||||||
|
{ GUID_WICPixelFormat64bppBGRAFixedPoint, GUID_WICPixelFormat64bppRGBAHalf }, // DXGI_FORMAT_R16G16B16A16_FLOAT
|
||||||
|
{ GUID_WICPixelFormat64bppRGBFixedPoint, GUID_WICPixelFormat64bppRGBAHalf }, // DXGI_FORMAT_R16G16B16A16_FLOAT
|
||||||
|
{ GUID_WICPixelFormat64bppRGBHalf, GUID_WICPixelFormat64bppRGBAHalf }, // DXGI_FORMAT_R16G16B16A16_FLOAT
|
||||||
|
{ GUID_WICPixelFormat48bppRGBHalf, GUID_WICPixelFormat64bppRGBAHalf }, // DXGI_FORMAT_R16G16B16A16_FLOAT
|
||||||
|
|
||||||
|
{ GUID_WICPixelFormat128bppPRGBAFloat, GUID_WICPixelFormat128bppRGBAFloat }, // DXGI_FORMAT_R32G32B32A32_FLOAT
|
||||||
|
{ GUID_WICPixelFormat128bppRGBFloat, GUID_WICPixelFormat128bppRGBAFloat }, // DXGI_FORMAT_R32G32B32A32_FLOAT
|
||||||
|
{ GUID_WICPixelFormat128bppRGBAFixedPoint, GUID_WICPixelFormat128bppRGBAFloat }, // DXGI_FORMAT_R32G32B32A32_FLOAT
|
||||||
|
{ GUID_WICPixelFormat128bppRGBFixedPoint, GUID_WICPixelFormat128bppRGBAFloat }, // DXGI_FORMAT_R32G32B32A32_FLOAT
|
||||||
|
{ GUID_WICPixelFormat32bppRGBE, GUID_WICPixelFormat128bppRGBAFloat }, // DXGI_FORMAT_R32G32B32A32_FLOAT
|
||||||
|
|
||||||
|
{ GUID_WICPixelFormat32bppCMYK, GUID_WICPixelFormat32bppRGBA }, // DXGI_FORMAT_R8G8B8A8_UNORM
|
||||||
|
{ GUID_WICPixelFormat64bppCMYK, GUID_WICPixelFormat64bppRGBA }, // DXGI_FORMAT_R16G16B16A16_UNORM
|
||||||
|
{ GUID_WICPixelFormat40bppCMYKAlpha, GUID_WICPixelFormat64bppRGBA }, // DXGI_FORMAT_R16G16B16A16_UNORM
|
||||||
|
{ GUID_WICPixelFormat80bppCMYKAlpha, GUID_WICPixelFormat64bppRGBA }, // DXGI_FORMAT_R16G16B16A16_UNORM
|
||||||
|
|
||||||
|
//#if (_WIN32_WINNT >= _WIN32_WINNT_WIN8) || defined(_WIN7_PLATFORM_UPDATE)
|
||||||
|
// { GUID_WICPixelFormat32bppRGB, GUID_WICPixelFormat32bppRGBA }, // DXGI_FORMAT_R8G8B8A8_UNORM
|
||||||
|
// { GUID_WICPixelFormat64bppRGB, GUID_WICPixelFormat64bppRGBA }, // DXGI_FORMAT_R16G16B16A16_UNORM
|
||||||
|
// { GUID_WICPixelFormat64bppPRGBAHalf, GUID_WICPixelFormat64bppRGBAHalf }, // DXGI_FORMAT_R16G16B16A16_FLOAT
|
||||||
|
//#endif
|
||||||
|
|
||||||
|
// We don't support n-channel formats
|
||||||
|
};
|
||||||
|
|
||||||
|
WICImageLoader::WICImageLoader() :
|
||||||
|
_width(0),
|
||||||
|
_height(0),
|
||||||
|
_dataLen(0),
|
||||||
|
_bpp(0),
|
||||||
|
_data(0)
|
||||||
|
{
|
||||||
|
memset((void*)&_format, 0, sizeof(_format));
|
||||||
|
}
|
||||||
|
|
||||||
|
WICImageLoader::~WICImageLoader()
|
||||||
|
{
|
||||||
|
if(_data != NULL && _dataLen > 0) {
|
||||||
|
delete[] _data;
|
||||||
|
_data = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool WICImageLoader::decodeImageData(ImageBlob blob, size_t size)
|
||||||
|
{
|
||||||
|
bool bRet = false;
|
||||||
|
HRESULT hr = S_FALSE;
|
||||||
|
|
||||||
|
IWICStream* pWicStream = NULL;
|
||||||
|
IWICImagingFactory* pWicFactory = getWICFactory();
|
||||||
|
|
||||||
|
if(NULL != pWicFactory)
|
||||||
|
{
|
||||||
|
hr = pWicFactory->CreateStream(&pWicStream);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(SUCCEEDED(hr))
|
||||||
|
{
|
||||||
|
hr = pWicStream->InitializeFromMemory((BYTE*)blob, size);
|
||||||
|
}
|
||||||
|
|
||||||
|
IWICBitmapDecoder* pDecoder = NULL;
|
||||||
|
|
||||||
|
if(SUCCEEDED(hr))
|
||||||
|
{
|
||||||
|
hr = pWicFactory->CreateDecoderFromStream(pWicStream, NULL, WICDecodeMetadataCacheOnLoad, &pDecoder);
|
||||||
|
}
|
||||||
|
|
||||||
|
bRet = processImage(pDecoder);
|
||||||
|
|
||||||
|
SafeRelease(&pWicStream);
|
||||||
|
SafeRelease(&pDecoder);
|
||||||
|
|
||||||
|
return bRet;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool WICImageLoader::processImage(IWICBitmapDecoder* pDecoder)
|
||||||
|
{
|
||||||
|
HRESULT hr = S_FALSE;
|
||||||
|
IWICBitmapFrameDecode* pFrame = NULL;
|
||||||
|
|
||||||
|
if(NULL != pDecoder)
|
||||||
|
{
|
||||||
|
hr = pDecoder->GetFrame(0, &pFrame);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(SUCCEEDED(hr))
|
||||||
|
{
|
||||||
|
hr = pFrame->GetPixelFormat(&_format);
|
||||||
|
}
|
||||||
|
|
||||||
|
IWICFormatConverter* pConv = NULL;
|
||||||
|
|
||||||
|
if(SUCCEEDED(hr))
|
||||||
|
{
|
||||||
|
hr = convertFormatIfRequired(pFrame, &pConv);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(SUCCEEDED(hr))
|
||||||
|
{
|
||||||
|
_bpp = getBitsPerPixel(_format);
|
||||||
|
|
||||||
|
if(NULL != pConv)
|
||||||
|
{
|
||||||
|
hr = pConv->GetSize((UINT*)&_width, (UINT*)&_height);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
hr = pFrame->GetSize((UINT*)&_width, (UINT*)&_height);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
assert(_bpp > 0);
|
||||||
|
assert(_width > 0 && _height > 0);
|
||||||
|
|
||||||
|
if(SUCCEEDED(hr))
|
||||||
|
{
|
||||||
|
size_t rowPitch = (_width * _bpp + 7) / 8;
|
||||||
|
_dataLen = rowPitch * _height;
|
||||||
|
_data = new (std::nothrow) BYTE[_dataLen];
|
||||||
|
|
||||||
|
if(NULL != pConv)
|
||||||
|
{
|
||||||
|
hr = pConv->CopyPixels(NULL, rowPitch, _dataLen, _data);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
hr = pFrame->CopyPixels(NULL, rowPitch, _dataLen, _data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SafeRelease(&pFrame);
|
||||||
|
SafeRelease(&pConv);
|
||||||
|
return SUCCEEDED(hr);
|
||||||
|
}
|
||||||
|
|
||||||
|
HRESULT WICImageLoader::convertFormatIfRequired(IWICBitmapFrameDecode* pFrame, IWICFormatConverter** ppConv)
|
||||||
|
{
|
||||||
|
*ppConv = NULL;
|
||||||
|
|
||||||
|
if( (memcmp(&_format, &GUID_WICPixelFormat8bppGray, sizeof(WICPixelFormatGUID)) == 0) ||
|
||||||
|
(memcmp(&_format, &GUID_WICPixelFormat8bppAlpha, sizeof(WICPixelFormatGUID)) == 0) ||
|
||||||
|
(memcmp(&_format, &GUID_WICPixelFormat24bppRGB, sizeof(WICPixelFormatGUID)) == 0) ||
|
||||||
|
(memcmp(&_format, &GUID_WICPixelFormat32bppRGBA, sizeof(WICPixelFormatGUID)) == 0))
|
||||||
|
{
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
HRESULT hr = E_FAIL;
|
||||||
|
IWICImagingFactory* pFactory = getWICFactory();
|
||||||
|
IWICFormatConverter* pConv = NULL;
|
||||||
|
|
||||||
|
if(NULL != pFactory)
|
||||||
|
{
|
||||||
|
hr = pFactory->CreateFormatConverter(&pConv);
|
||||||
|
}
|
||||||
|
|
||||||
|
WICPixelFormatGUID destFormat = GUID_WICPixelFormat32bppRGBA; // Fallback to RGBA 32-bit format which is supported by all devices
|
||||||
|
|
||||||
|
for( size_t i=0; i < _countof(g_WICConvert); ++i )
|
||||||
|
{
|
||||||
|
if ( memcmp( &g_WICConvert[i].source, &_format, sizeof(WICPixelFormatGUID) ) == 0 )
|
||||||
|
{
|
||||||
|
memcpy( &destFormat, &g_WICConvert[i].target, sizeof(WICPixelFormatGUID) );
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL bCanConv = FALSE;
|
||||||
|
|
||||||
|
if(SUCCEEDED(hr))
|
||||||
|
{
|
||||||
|
hr = pConv->CanConvert(_format, destFormat, &bCanConv);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(SUCCEEDED(hr) && bCanConv == TRUE)
|
||||||
|
{
|
||||||
|
hr = pConv->Initialize(pFrame, destFormat, WICBitmapDitherTypeErrorDiffusion, 0, 0, WICBitmapPaletteTypeCustom);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(SUCCEEDED(hr))
|
||||||
|
{
|
||||||
|
memcpy(&_format, &destFormat, sizeof(WICPixelFormatGUID));
|
||||||
|
*ppConv = pConv;
|
||||||
|
}
|
||||||
|
|
||||||
|
return SUCCEEDED(hr);
|
||||||
|
}
|
||||||
|
|
||||||
|
size_t WICImageLoader::getBitsPerPixel(WICPixelFormatGUID format)
|
||||||
|
{
|
||||||
|
HRESULT hr = S_FALSE;
|
||||||
|
|
||||||
|
IWICImagingFactory* pfactory = getWICFactory();
|
||||||
|
|
||||||
|
IWICComponentInfo* pCInfo = NULL;
|
||||||
|
|
||||||
|
if(pfactory != NULL)
|
||||||
|
{
|
||||||
|
hr = pfactory->CreateComponentInfo(format, &pCInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
WICComponentType cType;
|
||||||
|
|
||||||
|
if(SUCCEEDED(hr))
|
||||||
|
{
|
||||||
|
hr = pCInfo->GetComponentType(&cType);
|
||||||
|
}
|
||||||
|
|
||||||
|
IWICPixelFormatInfo* pPInfo = NULL;
|
||||||
|
|
||||||
|
if(SUCCEEDED(hr) && cType == WICPixelFormat)
|
||||||
|
{
|
||||||
|
hr = pCInfo->QueryInterface(IID_IWICPixelFormatInfo, (void**)&pPInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
UINT bpp = 0;
|
||||||
|
|
||||||
|
if(SUCCEEDED(hr))
|
||||||
|
{
|
||||||
|
hr = pPInfo->GetBitsPerPixel(&bpp);
|
||||||
|
}
|
||||||
|
|
||||||
|
SafeRelease(&pCInfo);
|
||||||
|
SafeRelease(&pPInfo);
|
||||||
|
return bpp;
|
||||||
|
}
|
||||||
|
|
||||||
|
int WICImageLoader::getHeight()
|
||||||
|
{
|
||||||
|
return _height;
|
||||||
|
}
|
||||||
|
|
||||||
|
int WICImageLoader::getWidth()
|
||||||
|
{
|
||||||
|
return _width;
|
||||||
|
}
|
||||||
|
|
||||||
|
int WICImageLoader::getImageData(ImageBlob rawData, size_t dataLen)
|
||||||
|
{
|
||||||
|
if(dataLen < _dataLen)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
memcpy((void*)rawData, _data, _dataLen);
|
||||||
|
|
||||||
|
return _dataLen;
|
||||||
|
}
|
||||||
|
|
||||||
|
int WICImageLoader::getImageDataSize()
|
||||||
|
{
|
||||||
|
return _dataLen;
|
||||||
|
}
|
||||||
|
|
||||||
|
WICPixelFormatGUID WICImageLoader::getPixelFormat()
|
||||||
|
{
|
||||||
|
return _format;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool WICImageLoader::encodeImageData(std::string path, ImageBlob data, size_t dataLen, WICPixelFormatGUID pixelFormat, int width, int height, GUID containerFormat)
|
||||||
|
{
|
||||||
|
assert(data != NULL);
|
||||||
|
assert(dataLen > 0 && width > 0 && height > 0);
|
||||||
|
|
||||||
|
IWICImagingFactory* pFact = getWICFactory();
|
||||||
|
|
||||||
|
HRESULT hr = S_FALSE;
|
||||||
|
IWICStream* pStream = NULL;
|
||||||
|
|
||||||
|
if(NULL != pFact)
|
||||||
|
{
|
||||||
|
hr = pFact->CreateStream(&pStream);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(SUCCEEDED(hr))
|
||||||
|
{
|
||||||
|
std::wstring wpath;
|
||||||
|
wpath.assign(path.begin(), path.end());
|
||||||
|
hr = pStream->InitializeFromFilename(wpath.c_str(), GENERIC_WRITE);
|
||||||
|
}
|
||||||
|
|
||||||
|
IWICBitmapEncoder* pEnc = NULL;
|
||||||
|
|
||||||
|
if(SUCCEEDED(hr))
|
||||||
|
{
|
||||||
|
hr = pFact->CreateEncoder(containerFormat, NULL, &pEnc);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(SUCCEEDED(hr))
|
||||||
|
{
|
||||||
|
hr = pEnc->Initialize(pStream, WICBitmapEncoderNoCache);
|
||||||
|
}
|
||||||
|
|
||||||
|
IWICBitmapFrameEncode* pFrame = NULL;
|
||||||
|
IPropertyBag2* pProp = NULL;
|
||||||
|
|
||||||
|
if(SUCCEEDED(hr))
|
||||||
|
{
|
||||||
|
hr = pEnc->CreateNewFrame(&pFrame, &pProp);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(SUCCEEDED(hr))
|
||||||
|
{
|
||||||
|
hr = pFrame->Initialize(pProp);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(SUCCEEDED(hr))
|
||||||
|
{
|
||||||
|
hr = pFrame->SetSize(width, height);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(SUCCEEDED(hr))
|
||||||
|
{
|
||||||
|
hr = pFrame->SetPixelFormat(&pixelFormat);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(SUCCEEDED(hr))
|
||||||
|
{
|
||||||
|
size_t bpp = getBitsPerPixel(pixelFormat);
|
||||||
|
size_t stride = (width * bpp + 7) / 8;
|
||||||
|
|
||||||
|
hr = pFrame->WritePixels(height, stride, dataLen, (BYTE*)data);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(SUCCEEDED(hr))
|
||||||
|
{
|
||||||
|
hr = pFrame->Commit();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(SUCCEEDED(hr))
|
||||||
|
{
|
||||||
|
hr = pEnc->Commit();
|
||||||
|
}
|
||||||
|
|
||||||
|
SafeRelease(&pStream);
|
||||||
|
SafeRelease(&pEnc);
|
||||||
|
SafeRelease(&pFrame);
|
||||||
|
SafeRelease(&pProp);
|
||||||
|
return SUCCEEDED(hr);
|
||||||
|
}
|
||||||
|
|
||||||
|
IWICImagingFactory* WICImageLoader::getWICFactory()
|
||||||
|
{
|
||||||
|
if(NULL == _wicFactory)
|
||||||
|
{
|
||||||
|
HRESULT hr = CoInitializeEx(NULL, COINIT_MULTITHREADED);
|
||||||
|
|
||||||
|
if(SUCCEEDED(hr))
|
||||||
|
{
|
||||||
|
hr = CoCreateInstance(CLSID_WICImagingFactory, NULL, CLSCTX_INPROC_SERVER, IID_IWICImagingFactory, (LPVOID*)&_wicFactory);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(FAILED(hr))
|
||||||
|
{
|
||||||
|
SafeRelease(&_wicFactory);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return _wicFactory;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
NS_CC_END
|
|
@ -0,0 +1,98 @@
|
||||||
|
/****************************************************************************
|
||||||
|
Copyright (c) Microsoft Open Technologies, Inc. All rights reserved.
|
||||||
|
|
||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
|
|
||||||
|
Based upon code from the DirectX Tool Kit by Microsoft Corporation,
|
||||||
|
obtained from https://directxtk.codeplex.com
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef __WIC_IMAGE_LOADER_H__
|
||||||
|
#define __WIC_IMAGE_LOADER_H__
|
||||||
|
|
||||||
|
#if defined(CC_USE_WIC)
|
||||||
|
|
||||||
|
#include <memory>
|
||||||
|
#include <string>
|
||||||
|
#include <wincodec.h>
|
||||||
|
#include "CCPlatformMacros.h"
|
||||||
|
|
||||||
|
NS_CC_BEGIN
|
||||||
|
|
||||||
|
|
||||||
|
typedef const unsigned char* ImageBlob;
|
||||||
|
|
||||||
|
struct WICConvert
|
||||||
|
{
|
||||||
|
WICPixelFormatGUID source;
|
||||||
|
WICPixelFormatGUID target;
|
||||||
|
};
|
||||||
|
|
||||||
|
class WICImageLoader
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
WICImageLoader();
|
||||||
|
~WICImageLoader();
|
||||||
|
|
||||||
|
int getWidth();
|
||||||
|
int getHeight();
|
||||||
|
int getImageDataSize();
|
||||||
|
WICPixelFormatGUID getPixelFormat();
|
||||||
|
int getImageData(ImageBlob rawData, size_t dataLen);
|
||||||
|
bool decodeImageData(ImageBlob data, size_t dataLen);
|
||||||
|
bool encodeImageData(std::string path, ImageBlob data, size_t dataLen, WICPixelFormatGUID pixelFormat, int width, int height, GUID containerFormat);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
bool processImage(IWICBitmapDecoder* decoder);
|
||||||
|
size_t getBitsPerPixel(WICPixelFormatGUID format);
|
||||||
|
HRESULT convertFormatIfRequired(IWICBitmapFrameDecode* pFrame, IWICFormatConverter** ppConv);
|
||||||
|
|
||||||
|
static IWICImagingFactory* getWICFactory();
|
||||||
|
|
||||||
|
private:
|
||||||
|
int _height;
|
||||||
|
int _width;
|
||||||
|
size_t _dataLen;
|
||||||
|
UINT _bpp;
|
||||||
|
WICPixelFormatGUID _format;
|
||||||
|
BYTE* _data;
|
||||||
|
|
||||||
|
|
||||||
|
static IWICImagingFactory* _wicFactory;
|
||||||
|
};
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
void SafeRelease(T **ppObj)
|
||||||
|
{
|
||||||
|
if(*ppObj != NULL)
|
||||||
|
{
|
||||||
|
(*ppObj)->Release();
|
||||||
|
*ppObj = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
NS_CC_END
|
||||||
|
|
||||||
|
#endif
|
||||||
|
#endif // #ifndef __WIC_IMAGE_LOADER_H__
|
||||||
|
|
|
@ -26,9 +26,9 @@
|
||||||
|
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
#if _MSC_VER < 1900
|
||||||
char *inet_ntop(int af, const void *addr, char *buf, size_t size);
|
char *inet_ntop(int af, const void *addr, char *buf, size_t size);
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* HEADER_CURL_INET_NTOP_H */
|
#endif /* HEADER_CURL_INET_NTOP_H */
|
||||||
|
|
||||||
|
|
|
@ -1,159 +0,0 @@
|
||||||
<?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="Debug|Win32">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Debug|ARM">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>ARM</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|ARM">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>ARM</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
</ItemGroup>
|
|
||||||
<PropertyGroup Label="Globals">
|
|
||||||
<ProjectGuid>{271fee84-9198-4c26-8567-4247c563b0b1}</ProjectGuid>
|
|
||||||
<RootNamespace>CopyTemplateFiles</RootNamespace>
|
|
||||||
<DefaultLanguage>en-US</DefaultLanguage>
|
|
||||||
<MinimumVisualStudioVersion>11.0</MinimumVisualStudioVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v110_wp80</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
<PlatformToolset>v110_wp80</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<PlatformToolset>v110_wp80</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<PlatformToolset>v110_wp80</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
|
||||||
<ImportGroup 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>
|
|
||||||
<GenerateManifest>false</GenerateManifest>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<PreprocessorDefinitions>_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
|
||||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
|
||||||
<AdditionalUsingDirectories>$(WindowsSDK_MetadataPath);$(AdditionalUsingDirectories)</AdditionalUsingDirectories>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
|
||||||
</Link>
|
|
||||||
<PostBuildEvent>
|
|
||||||
<Command>echo "Copying WP8-XAML CPP template files"
|
|
||||||
xcopy "xaml\App.xaml" "..\..\..\templates\cpp-template-default\proj.wp8-xaml\App\*" /eiycq
|
|
||||||
xcopy "xaml\App.xaml.cs" "..\..\..\templates\cpp-template-default\proj.wp8-xaml\App\*" /eiycq
|
|
||||||
xcopy "xaml\MainPage.xaml" "..\..\..\templates\cpp-template-default\proj.wp8-xaml\App\*" /eiycq
|
|
||||||
xcopy "xaml\MainPage.xaml.cs" "..\..\..\templates\cpp-template-default\proj.wp8-xaml\App\*" /eiycq
|
|
||||||
xcopy "xaml\EditBox.xaml" "..\..\..\templates\cpp-template-default\proj.wp8-xaml\App\*" /eiycq
|
|
||||||
xcopy "xaml\EditBox.xaml.cs" "..\..\..\templates\cpp-template-default\proj.wp8-xaml\App\*" /eiycq
|
|
||||||
xcopy "cpp" "..\..\..\templates\cpp-template-default\proj.wp8-xaml\AppComponent\src\" /eiycq</Command>
|
|
||||||
</PostBuildEvent>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<PreprocessorDefinitions>_LIB;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
|
||||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
|
||||||
<AdditionalUsingDirectories>$(WindowsSDK_MetadataPath);$(AdditionalUsingDirectories)</AdditionalUsingDirectories>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
|
||||||
</Link>
|
|
||||||
<PostBuildEvent>
|
|
||||||
<Command>echo "Copying WP8-XAML CPP template files"
|
|
||||||
xcopy "xaml\App.xaml" "..\..\..\templates\cpp-template-default\proj.wp8-xaml\App\*" /eiycq
|
|
||||||
xcopy "xaml\App.xaml.cs" "..\..\..\templates\cpp-template-default\proj.wp8-xaml\App\*" /eiycq
|
|
||||||
xcopy "xaml\MainPage.xaml" "..\..\..\templates\cpp-template-default\proj.wp8-xaml\App\*" /eiycq
|
|
||||||
xcopy "xaml\MainPage.xaml.cs" "..\..\..\templates\cpp-template-default\proj.wp8-xaml\App\*" /eiycq
|
|
||||||
xcopy "xaml\EditBox.xaml" "..\..\..\templates\cpp-template-default\proj.wp8-xaml\App\*" /eiycq
|
|
||||||
xcopy "xaml\EditBox.xaml.cs" "..\..\..\templates\cpp-template-default\proj.wp8-xaml\App\*" /eiycq
|
|
||||||
xcopy "cpp" "..\..\..\templates\cpp-template-default\proj.wp8-xaml\AppComponent\src\" /eiycq</Command>
|
|
||||||
</PostBuildEvent>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
|
|
||||||
<ClCompile>
|
|
||||||
<PreprocessorDefinitions>_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
|
||||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
|
||||||
<AdditionalUsingDirectories>$(WindowsSDK_MetadataPath);$(AdditionalUsingDirectories)</AdditionalUsingDirectories>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
|
||||||
</Link>
|
|
||||||
<PostBuildEvent>
|
|
||||||
<Command>echo "Copying WP8-XAML CPP template files"
|
|
||||||
xcopy "xaml\App.xaml" "..\..\..\templates\cpp-template-default\proj.wp8-xaml\App\*" /eiycq
|
|
||||||
xcopy "xaml\App.xaml.cs" "..\..\..\templates\cpp-template-default\proj.wp8-xaml\App\*" /eiycq
|
|
||||||
xcopy "xaml\MainPage.xaml" "..\..\..\templates\cpp-template-default\proj.wp8-xaml\App\*" /eiycq
|
|
||||||
xcopy "xaml\MainPage.xaml.cs" "..\..\..\templates\cpp-template-default\proj.wp8-xaml\App\*" /eiycq
|
|
||||||
xcopy "xaml\EditBox.xaml" "..\..\..\templates\cpp-template-default\proj.wp8-xaml\App\*" /eiycq
|
|
||||||
xcopy "xaml\EditBox.xaml.cs" "..\..\..\templates\cpp-template-default\proj.wp8-xaml\App\*" /eiycq
|
|
||||||
xcopy "cpp" "..\..\..\templates\cpp-template-default\proj.wp8-xaml\AppComponent\src\" /eiycq</Command>
|
|
||||||
</PostBuildEvent>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
|
|
||||||
<ClCompile>
|
|
||||||
<PreprocessorDefinitions>_LIB;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
|
||||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
|
||||||
<AdditionalUsingDirectories>$(WindowsSDK_MetadataPath);$(AdditionalUsingDirectories)</AdditionalUsingDirectories>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
|
||||||
</Link>
|
|
||||||
<PostBuildEvent>
|
|
||||||
<Command>echo "Copying WP8-XAML CPP template files"
|
|
||||||
xcopy "xaml\App.xaml" "..\..\..\templates\cpp-template-default\proj.wp8-xaml\App\*" /eiycq
|
|
||||||
xcopy "xaml\App.xaml.cs" "..\..\..\templates\cpp-template-default\proj.wp8-xaml\App\*" /eiycq
|
|
||||||
xcopy "xaml\MainPage.xaml" "..\..\..\templates\cpp-template-default\proj.wp8-xaml\App\*" /eiycq
|
|
||||||
xcopy "xaml\MainPage.xaml.cs" "..\..\..\templates\cpp-template-default\proj.wp8-xaml\App\*" /eiycq
|
|
||||||
xcopy "xaml\EditBox.xaml" "..\..\..\templates\cpp-template-default\proj.wp8-xaml\App\*" /eiycq
|
|
||||||
xcopy "xaml\EditBox.xaml.cs" "..\..\..\templates\cpp-template-default\proj.wp8-xaml\App\*" /eiycq
|
|
||||||
xcopy "cpp" "..\..\..\templates\cpp-template-default\proj.wp8-xaml\AppComponent\src\" /eiycq</Command>
|
|
||||||
</PostBuildEvent>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Reference Include="Windows">
|
|
||||||
<IsWinMDFile>true</IsWinMDFile>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="platform.winmd">
|
|
||||||
<IsWinMDFile>true</IsWinMDFile>
|
|
||||||
<Private>false</Private>
|
|
||||||
</Reference>
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
|
||||||
<Import Project="$(MSBuildExtensionsPath)\Microsoft\WindowsPhone\v$(TargetPlatformVersion)\Microsoft.Cpp.WindowsPhone.$(TargetPlatformVersion).targets" />
|
|
||||||
<ImportGroup Label="ExtensionTargets">
|
|
||||||
</ImportGroup>
|
|
||||||
</Project>
|
|
|
@ -1,2 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
|
|
|
@ -1,6 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<PropertyGroup>
|
|
||||||
<FullDeploy>true</FullDeploy>
|
|
||||||
</PropertyGroup>
|
|
||||||
</Project>
|
|
|
@ -1,191 +0,0 @@
|
||||||
/****************************************************************************
|
|
||||||
Copyright (c) 2013 cocos2d-x.org
|
|
||||||
Copyright (c) Microsoft Open Technologies, Inc.
|
|
||||||
|
|
||||||
http://www.cocos2d-x.org
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
#include "Cocos2dRenderer.h"
|
|
||||||
#include "cocos2d.h"
|
|
||||||
#include "CCApplication.h"
|
|
||||||
#include "CCGLViewImpl-wp8.h"
|
|
||||||
#include "AppDelegate.h"
|
|
||||||
#include <ppltasks.h>
|
|
||||||
|
|
||||||
using namespace Concurrency;
|
|
||||||
using namespace DirectX;
|
|
||||||
using namespace Microsoft::WRL;
|
|
||||||
using namespace Windows::Foundation;
|
|
||||||
using namespace Windows::UI::Core;
|
|
||||||
|
|
||||||
USING_NS_CC;
|
|
||||||
|
|
||||||
Cocos2dRenderer::Cocos2dRenderer(Windows::Graphics::Display::DisplayOrientations orientation): mInitialized(false), m_loadingComplete(false), m_delegate(nullptr), m_messageBoxDelegate(nullptr)
|
|
||||||
{
|
|
||||||
mApp = new AppDelegate();
|
|
||||||
m_orientation = orientation;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Creates and restores Cocos2d-x after DirectX and Angle contexts are created or updated
|
|
||||||
void Cocos2dRenderer::CreateGLResources()
|
|
||||||
{
|
|
||||||
auto director = cocos2d::Director::getInstance();
|
|
||||||
|
|
||||||
if(!mInitialized)
|
|
||||||
{
|
|
||||||
mInitialized = true;
|
|
||||||
GLViewImpl* glview = GLViewImpl::create("Test Cpp");
|
|
||||||
glview->Create(m_eglDisplay, m_eglContext, m_eglSurface, m_renderTargetSize.Width, m_renderTargetSize.Height,m_orientation);
|
|
||||||
director->setOpenGLView(glview);
|
|
||||||
glview->SetXamlEventDelegate(m_delegate);
|
|
||||||
glview->SetXamlMessageBoxDelegate(m_messageBoxDelegate);
|
|
||||||
glview->SetXamlEditBoxDelegate(m_editBoxDelegate);
|
|
||||||
CCApplication::getInstance()->run();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
cocos2d::GL::invalidateStateCache();
|
|
||||||
cocos2d::ShaderCache::getInstance()->reloadDefaultGLPrograms();
|
|
||||||
cocos2d::DrawPrimitives::init();
|
|
||||||
cocos2d::VolatileTextureMgr::reloadAllTextures();
|
|
||||||
cocos2d::EventCustom recreatedEvent(EVENT_RENDERER_RECREATED);
|
|
||||||
director->getEventDispatcher()->dispatchEvent(&recreatedEvent);
|
|
||||||
cocos2d::Application::getInstance()->applicationWillEnterForeground();
|
|
||||||
director->setGLDefaultValues();
|
|
||||||
}
|
|
||||||
|
|
||||||
m_loadingComplete = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Cocos2dRenderer::Connect()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// purge Cocos2d-x gl GL resourses since the DirectX/Angle Context has been lost
|
|
||||||
void Cocos2dRenderer::Disconnect()
|
|
||||||
{
|
|
||||||
Application::getInstance()->applicationDidEnterBackground();
|
|
||||||
cocos2d::EventCustom backgroundEvent(EVENT_COME_TO_BACKGROUND);
|
|
||||||
cocos2d::Director::getInstance()->getEventDispatcher()->dispatchEvent(&backgroundEvent);
|
|
||||||
CloseAngle();
|
|
||||||
m_loadingComplete = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// save your game state here
|
|
||||||
IAsyncAction^ Cocos2dRenderer::OnSuspending()
|
|
||||||
{
|
|
||||||
return create_async([]() {
|
|
||||||
// save your game state here
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void Cocos2dRenderer::OnUpdateDevice()
|
|
||||||
{
|
|
||||||
//GLView* glview = GLView::sharedOpenGLView();
|
|
||||||
GLViewImpl::sharedOpenGLView()->UpdateDevice(m_eglDisplay, m_eglContext, m_eglSurface);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Cocos2dRenderer::OnOrientationChanged(Windows::Graphics::Display::DisplayOrientations orientation)
|
|
||||||
{
|
|
||||||
DirectXBase::OnOrientationChanged(orientation);
|
|
||||||
GLViewImpl::sharedOpenGLView()->UpdateOrientation(orientation);
|
|
||||||
}
|
|
||||||
|
|
||||||
// return true if eglSwapBuffers was called by OnRender()
|
|
||||||
bool Cocos2dRenderer::OnRender()
|
|
||||||
{
|
|
||||||
if(m_loadingComplete)
|
|
||||||
{
|
|
||||||
//GLView* glview = GLView::sharedOpenGLView();
|
|
||||||
GLViewImpl::sharedOpenGLView()->Render();
|
|
||||||
return true; // eglSwapBuffers was called by glview->Render();
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Cocos2dRenderer::OnKeyPressed(Platform::String^ text)
|
|
||||||
{
|
|
||||||
char szUtf8[8] = {0};
|
|
||||||
int nLen = WideCharToMultiByte(CP_UTF8, 0, (LPCWSTR)text->Data(), 1, szUtf8, sizeof(szUtf8), NULL, NULL);
|
|
||||||
IMEDispatcher::sharedDispatcher()->dispatchInsertText(szUtf8, nLen);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Cocos2dRenderer::OnCocos2dKeyEvent(Cocos2dKeyEvent event)
|
|
||||||
{
|
|
||||||
switch(event)
|
|
||||||
{
|
|
||||||
case Cocos2dKeyEvent::Escape:
|
|
||||||
//Director::getInstance()()->getKeypadDispatcher()->dispatchKeypadMSG(kTypeBackClicked);
|
|
||||||
break;
|
|
||||||
case Cocos2dKeyEvent::Back:
|
|
||||||
IMEDispatcher::sharedDispatcher()->dispatchDeleteBackward();
|
|
||||||
break;
|
|
||||||
case Cocos2dKeyEvent::Enter:
|
|
||||||
//SetFocus(false);
|
|
||||||
IMEDispatcher::sharedDispatcher()->dispatchInsertText("\n", 1);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void Cocos2dRenderer::SetXamlEventDelegate(Cocos2dEventDelegate^ delegate)
|
|
||||||
{
|
|
||||||
m_delegate = delegate;
|
|
||||||
GLViewImpl* eglView = GLViewImpl::sharedOpenGLView();
|
|
||||||
if(eglView)
|
|
||||||
{
|
|
||||||
eglView->SetXamlEventDelegate(delegate);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void Cocos2dRenderer::SetXamlMessageBoxDelegate(Cocos2dMessageBoxDelegate^ delegate)
|
|
||||||
{
|
|
||||||
m_messageBoxDelegate = delegate;
|
|
||||||
GLViewImpl* eglView = GLViewImpl::sharedOpenGLView();
|
|
||||||
if(eglView)
|
|
||||||
{
|
|
||||||
eglView->SetXamlMessageBoxDelegate(delegate);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void Cocos2dRenderer::SetXamlEditBoxDelegate(Cocos2dEditBoxDelegate^ delegate)
|
|
||||||
{
|
|
||||||
m_editBoxDelegate = delegate;
|
|
||||||
GLViewImpl* eglView = GLViewImpl::sharedOpenGLView();
|
|
||||||
if(eglView)
|
|
||||||
{
|
|
||||||
eglView->SetXamlEditBoxDelegate(delegate);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void Cocos2dRenderer::SetXamlOpenURLDelegate(Cocos2dOpenURLDelegate^ delegate)
|
|
||||||
{
|
|
||||||
m_openURLDelegate = delegate;
|
|
||||||
Application* app = Application::getInstance();
|
|
||||||
if (app)
|
|
||||||
{
|
|
||||||
app->SetXamlOpenURLDelegate(delegate);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,70 +0,0 @@
|
||||||
/****************************************************************************
|
|
||||||
Copyright (c) 2013 cocos2d-x.org
|
|
||||||
Copyright (c) Microsoft Open Technologies, Inc.
|
|
||||||
|
|
||||||
http://www.cocos2d-x.org
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
****************************************************************************/
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "InputEvent.h"
|
|
||||||
#include "DirectXBase.h"
|
|
||||||
|
|
||||||
class AppDelegate;
|
|
||||||
|
|
||||||
ref class Cocos2dRenderer sealed : public DirectXBase
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
Cocos2dRenderer(Windows::Graphics::Display::DisplayOrientations orientation);
|
|
||||||
|
|
||||||
// Direct3DBase methods.
|
|
||||||
virtual void OnOrientationChanged(Windows::Graphics::Display::DisplayOrientations orientation) override;
|
|
||||||
virtual bool OnRender() override;
|
|
||||||
virtual void CreateGLResources() override;
|
|
||||||
|
|
||||||
void OnBackButton();
|
|
||||||
void OnKeyPressed(Platform::String^ text);
|
|
||||||
void OnCocos2dKeyEvent(cocos2d::Cocos2dKeyEvent event);
|
|
||||||
void SetXamlEventDelegate(cocos2d::Cocos2dEventDelegate^ delegate);
|
|
||||||
void SetXamlMessageBoxDelegate(cocos2d::Cocos2dMessageBoxDelegate^ delegate);
|
|
||||||
void SetXamlEditBoxDelegate(cocos2d::Cocos2dEditBoxDelegate^ delegate);
|
|
||||||
void SetXamlOpenURLDelegate(cocos2d::Cocos2dOpenURLDelegate^ delegate);
|
|
||||||
|
|
||||||
Windows::Foundation::IAsyncAction^ OnSuspending();
|
|
||||||
void Connect();
|
|
||||||
void Disconnect();
|
|
||||||
|
|
||||||
protected:
|
|
||||||
virtual void OnUpdateDevice() override;
|
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
bool m_loadingComplete;
|
|
||||||
bool mInitialized;
|
|
||||||
|
|
||||||
cocos2d::Cocos2dEventDelegate^ m_delegate;
|
|
||||||
cocos2d::Cocos2dMessageBoxDelegate^ m_messageBoxDelegate;
|
|
||||||
cocos2d::Cocos2dEditBoxDelegate^ m_editBoxDelegate;
|
|
||||||
cocos2d::Cocos2dOpenURLDelegate^ m_openURLDelegate;
|
|
||||||
|
|
||||||
// The AppDelegate for the Cocos2D app
|
|
||||||
AppDelegate* mApp;
|
|
||||||
Windows::Graphics::Display::DisplayOrientations m_orientation;
|
|
||||||
};
|
|
|
@ -1,65 +0,0 @@
|
||||||
/****************************************************************************
|
|
||||||
Copyright (c) 2013 cocos2d-x.org
|
|
||||||
Copyright (c) Microsoft Open Technologies, Inc.
|
|
||||||
|
|
||||||
http://www.cocos2d-x.org
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
#include "Direct3DContentProvider.h"
|
|
||||||
#include "Direct3DInterop.h"
|
|
||||||
|
|
||||||
using namespace cocos2d;
|
|
||||||
|
|
||||||
Direct3DContentProvider::Direct3DContentProvider(Direct3DInterop^ controller) :
|
|
||||||
m_controller(controller)
|
|
||||||
{
|
|
||||||
m_controller->RequestAdditionalFrame += ref new RequestAdditionalFrameHandler([=] ()
|
|
||||||
{
|
|
||||||
if (m_host)
|
|
||||||
{
|
|
||||||
m_host->RequestAdditionalFrame();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// IDrawingSurfaceContentProviderNative interface
|
|
||||||
HRESULT Direct3DContentProvider::Connect(_In_ IDrawingSurfaceRuntimeHostNative* host, _In_ ID3D11Device1* device)
|
|
||||||
{
|
|
||||||
m_host = host;
|
|
||||||
|
|
||||||
return m_controller->Connect(host, device);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Direct3DContentProvider::Disconnect()
|
|
||||||
{
|
|
||||||
m_controller->Disconnect();
|
|
||||||
m_host = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
HRESULT Direct3DContentProvider::PrepareResources(_In_ const LARGE_INTEGER* presentTargetTime, _Inout_ DrawingSurfaceSizeF* desiredRenderTargetSize)
|
|
||||||
{
|
|
||||||
return m_controller->PrepareResources(presentTargetTime, desiredRenderTargetSize);
|
|
||||||
}
|
|
||||||
|
|
||||||
HRESULT Direct3DContentProvider::Draw(_In_ ID3D11Device1* device, _In_ ID3D11DeviceContext1* context, _In_ ID3D11RenderTargetView* renderTargetView)
|
|
||||||
{
|
|
||||||
return m_controller->Draw(device, context, renderTargetView);
|
|
||||||
}
|
|
|
@ -1,52 +0,0 @@
|
||||||
/****************************************************************************
|
|
||||||
Copyright (c) 2013 cocos2d-x.org
|
|
||||||
Copyright (c) Microsoft Open Technologies, Inc.
|
|
||||||
|
|
||||||
http://www.cocos2d-x.org
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include <wrl/module.h>
|
|
||||||
#include <Windows.Phone.Graphics.Interop.h>
|
|
||||||
#include <DrawingSurfaceNative.h>
|
|
||||||
|
|
||||||
#include "Direct3DInterop.h"
|
|
||||||
|
|
||||||
class Direct3DContentProvider : public Microsoft::WRL::RuntimeClass<
|
|
||||||
Microsoft::WRL::RuntimeClassFlags<Microsoft::WRL::WinRtClassicComMix>,
|
|
||||||
ABI::Windows::Phone::Graphics::Interop::IDrawingSurfaceBackgroundContentProvider,
|
|
||||||
IDrawingSurfaceBackgroundContentProviderNative>
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
Direct3DContentProvider(cocos2d::Direct3DInterop^ controller);
|
|
||||||
|
|
||||||
// IDrawingSurfaceContentProviderNative
|
|
||||||
HRESULT STDMETHODCALLTYPE Connect(_In_ IDrawingSurfaceRuntimeHostNative* host, _In_ ID3D11Device1* device);
|
|
||||||
void STDMETHODCALLTYPE Disconnect();
|
|
||||||
|
|
||||||
HRESULT STDMETHODCALLTYPE PrepareResources(_In_ const LARGE_INTEGER* presentTargetTime, _Inout_ DrawingSurfaceSizeF* desiredRenderTargetSize);
|
|
||||||
HRESULT STDMETHODCALLTYPE Draw(_In_ ID3D11Device1* device, _In_ ID3D11DeviceContext1* context, _In_ ID3D11RenderTargetView* renderTargetView);
|
|
||||||
|
|
||||||
private:
|
|
||||||
cocos2d::Direct3DInterop^ m_controller;
|
|
||||||
Microsoft::WRL::ComPtr<IDrawingSurfaceRuntimeHostNative> m_host;
|
|
||||||
};
|
|
|
@ -1,201 +0,0 @@
|
||||||
/****************************************************************************
|
|
||||||
Copyright (c) 2013 cocos2d-x.org
|
|
||||||
Copyright (c) Microsoft Open Technologies, Inc.
|
|
||||||
|
|
||||||
http://www.cocos2d-x.org
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
****************************************************************************/
|
|
||||||
#include "Direct3DInterop.h"
|
|
||||||
#include "Direct3DContentProvider.h"
|
|
||||||
#include "EditBoxEvent.h"
|
|
||||||
#include "cocos2d.h"
|
|
||||||
|
|
||||||
using namespace Windows::Foundation;
|
|
||||||
using namespace Windows::UI::Core;
|
|
||||||
using namespace Windows::UI::Input;
|
|
||||||
using namespace Microsoft::WRL;
|
|
||||||
using namespace Windows::Phone::Graphics::Interop;
|
|
||||||
using namespace Windows::Phone::Input::Interop;
|
|
||||||
using namespace Windows::Graphics::Display;
|
|
||||||
using namespace DirectX;
|
|
||||||
|
|
||||||
namespace cocos2d
|
|
||||||
{
|
|
||||||
|
|
||||||
Direct3DInterop::Direct3DInterop(Windows::Graphics::Display::DisplayOrientations orientation)
|
|
||||||
: mCurrentOrientation(orientation), m_delegate(nullptr)
|
|
||||||
{
|
|
||||||
m_renderer = ref new Cocos2dRenderer(mCurrentOrientation);
|
|
||||||
}
|
|
||||||
|
|
||||||
IDrawingSurfaceBackgroundContentProvider^ Direct3DInterop::CreateContentProvider()
|
|
||||||
{
|
|
||||||
ComPtr<Direct3DContentProvider> provider = Make<Direct3DContentProvider>(this);
|
|
||||||
return reinterpret_cast<IDrawingSurfaceBackgroundContentProvider^>(provider.Get());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Interface With Direct3DContentProvider
|
|
||||||
HRESULT Direct3DInterop::Connect(_In_ IDrawingSurfaceRuntimeHostNative* host, _In_ ID3D11Device1* device)
|
|
||||||
{
|
|
||||||
return S_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Direct3DInterop::Disconnect()
|
|
||||||
{
|
|
||||||
m_renderer->Disconnect();
|
|
||||||
}
|
|
||||||
|
|
||||||
// IDrawingSurfaceManipulationHandler
|
|
||||||
void Direct3DInterop::SetManipulationHost(DrawingSurfaceManipulationHost^ manipulationHost)
|
|
||||||
{
|
|
||||||
manipulationHost->PointerPressed +=
|
|
||||||
ref new TypedEventHandler<DrawingSurfaceManipulationHost^, PointerEventArgs^>(this, &Direct3DInterop::OnPointerPressed);
|
|
||||||
|
|
||||||
manipulationHost->PointerMoved +=
|
|
||||||
ref new TypedEventHandler<DrawingSurfaceManipulationHost^, PointerEventArgs^>(this, &Direct3DInterop::OnPointerMoved);
|
|
||||||
|
|
||||||
manipulationHost->PointerReleased +=
|
|
||||||
ref new TypedEventHandler<DrawingSurfaceManipulationHost^, PointerEventArgs^>(this, &Direct3DInterop::OnPointerReleased);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Direct3DInterop::UpdateForWindowSizeChange(float width, float height)
|
|
||||||
{
|
|
||||||
m_renderer->UpdateForWindowSizeChange(width, height);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
IAsyncAction^ Direct3DInterop::OnSuspending()
|
|
||||||
{
|
|
||||||
return m_renderer->OnSuspending();
|
|
||||||
}
|
|
||||||
|
|
||||||
void Direct3DInterop::OnBackKeyPress()
|
|
||||||
{
|
|
||||||
cocos2d::GLViewImpl::sharedOpenGLView()->QueueBackKeyPress();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Pointer Event Handlers. We need to queue up pointer events to pass them to the drawing thread
|
|
||||||
void Direct3DInterop::OnPointerPressed(DrawingSurfaceManipulationHost^ sender, PointerEventArgs^ args)
|
|
||||||
{
|
|
||||||
cocos2d::GLViewImpl::sharedOpenGLView()->QueuePointerEvent(cocos2d::PointerEventType::PointerPressed, args);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Direct3DInterop::OnPointerMoved(DrawingSurfaceManipulationHost^ sender, PointerEventArgs^ args)
|
|
||||||
{
|
|
||||||
cocos2d::GLViewImpl::sharedOpenGLView()->QueuePointerEvent(cocos2d::PointerEventType::PointerMoved, args);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Direct3DInterop::OnPointerReleased(DrawingSurfaceManipulationHost^ sender, PointerEventArgs^ args)
|
|
||||||
{
|
|
||||||
cocos2d::GLViewImpl::sharedOpenGLView()->QueuePointerEvent(cocos2d::PointerEventType::PointerReleased, args);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Direct3DInterop::OnOrientationChanged(Windows::Graphics::Display::DisplayOrientations orientation)
|
|
||||||
{
|
|
||||||
std::shared_ptr<cocos2d::InputEvent> e(new cocos2d::CustomInputEvent([this, orientation]()
|
|
||||||
{
|
|
||||||
m_renderer->OnOrientationChanged(orientation);
|
|
||||||
}));
|
|
||||||
cocos2d::GLViewImpl::sharedOpenGLView()->QueueEvent(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Direct3DInterop::OnCocos2dKeyEvent(Cocos2dKeyEvent key)
|
|
||||||
{
|
|
||||||
std::shared_ptr<cocos2d::InputEvent> e(new cocos2d::KeyboardEvent(key));
|
|
||||||
cocos2d::GLViewImpl::sharedOpenGLView()->QueueEvent(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void Direct3DInterop::OnCocos2dKeyEvent(Cocos2dKeyEvent key, Platform::String^ text)
|
|
||||||
{
|
|
||||||
std::shared_ptr<cocos2d::InputEvent> e(new cocos2d::KeyboardEvent(key,text));
|
|
||||||
cocos2d::GLViewImpl::sharedOpenGLView()->QueueEvent(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void Direct3DInterop::OnCocos2dEditboxEvent(Object^ sender, Platform::String^ args, Windows::Foundation::EventHandler<Platform::String^>^ handler)
|
|
||||||
{
|
|
||||||
std::shared_ptr<cocos2d::InputEvent> e(new EditBoxEvent(sender, args, handler));
|
|
||||||
cocos2d::GLViewImpl::sharedOpenGLView()->QueueEvent(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Direct3DInterop::OnCocos2dOpenURL(Platform::String^ url)
|
|
||||||
{
|
|
||||||
m_openURLDelegate->Invoke(url);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
HRESULT Direct3DInterop::PrepareResources(_In_ const LARGE_INTEGER* presentTargetTime, _Inout_ DrawingSurfaceSizeF* desiredRenderTargetSize)
|
|
||||||
{
|
|
||||||
desiredRenderTargetSize->width = WindowBounds.Width;
|
|
||||||
desiredRenderTargetSize->height = WindowBounds.Height;
|
|
||||||
return S_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
HRESULT Direct3DInterop::Draw(_In_ ID3D11Device1* device, _In_ ID3D11DeviceContext1* context, _In_ ID3D11RenderTargetView* renderTargetView)
|
|
||||||
{
|
|
||||||
m_renderer->UpdateDevice(device, context, renderTargetView);
|
|
||||||
|
|
||||||
cocos2d::GLViewImpl::sharedOpenGLView()->ProcessEvents();
|
|
||||||
m_renderer->Render();
|
|
||||||
RequestAdditionalFrame();
|
|
||||||
return S_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Direct3DInterop::SetCocos2dEventDelegate(Cocos2dEventDelegate^ delegate)
|
|
||||||
{
|
|
||||||
m_delegate = delegate;
|
|
||||||
m_renderer->SetXamlEventDelegate(delegate);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Direct3DInterop::SetCocos2dMessageBoxDelegate(Cocos2dMessageBoxDelegate ^ delegate)
|
|
||||||
{
|
|
||||||
m_messageBoxDelegate = delegate;
|
|
||||||
m_renderer->SetXamlMessageBoxDelegate(delegate);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Direct3DInterop::SetCocos2dEditBoxDelegate(Cocos2dEditBoxDelegate ^ delegate)
|
|
||||||
{
|
|
||||||
m_editBoxDelegate = delegate;
|
|
||||||
m_renderer->SetXamlEditBoxDelegate(delegate);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Direct3DInterop::SetCocos2dOpenURLDelegate(Cocos2dOpenURLDelegate ^ delegate)
|
|
||||||
{
|
|
||||||
m_openURLDelegate = delegate;
|
|
||||||
m_renderer->SetXamlOpenURLDelegate(delegate);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
bool Direct3DInterop::SendCocos2dEvent(Cocos2dEvent event)
|
|
||||||
{
|
|
||||||
Platform::String^ str;
|
|
||||||
if(m_delegate)
|
|
||||||
{
|
|
||||||
m_delegate->Invoke(event, str);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,100 +0,0 @@
|
||||||
/****************************************************************************
|
|
||||||
Copyright (c) 2013 cocos2d-x.org
|
|
||||||
Copyright (c) Microsoft Open Technologies, Inc.
|
|
||||||
|
|
||||||
http://www.cocos2d-x.org
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include <wrl/client.h>
|
|
||||||
#include <mutex>
|
|
||||||
#include <queue>
|
|
||||||
#include <memory>
|
|
||||||
#include "Cocos2dRenderer.h"
|
|
||||||
#include "InputEvent.h"
|
|
||||||
#include <DrawingSurfaceNative.h>
|
|
||||||
|
|
||||||
|
|
||||||
namespace cocos2d
|
|
||||||
{
|
|
||||||
|
|
||||||
public delegate void RequestAdditionalFrameHandler();
|
|
||||||
|
|
||||||
[Windows::Foundation::Metadata::WebHostHidden]
|
|
||||||
public ref class Direct3DInterop sealed : public Windows::Phone::Input::Interop::IDrawingSurfaceManipulationHandler
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
Direct3DInterop(Windows::Graphics::Display::DisplayOrientations orientation);
|
|
||||||
|
|
||||||
Windows::Phone::Graphics::Interop::IDrawingSurfaceBackgroundContentProvider^ CreateContentProvider();
|
|
||||||
|
|
||||||
// IDrawingSurfaceManipulationHandler
|
|
||||||
virtual void SetManipulationHost(Windows::Phone::Input::Interop::DrawingSurfaceManipulationHost^ manipulationHost);
|
|
||||||
|
|
||||||
event RequestAdditionalFrameHandler^ RequestAdditionalFrame;
|
|
||||||
|
|
||||||
|
|
||||||
void UpdateForWindowSizeChange(float width, float height);
|
|
||||||
Windows::Foundation::IAsyncAction^ OnSuspending();
|
|
||||||
|
|
||||||
void OnBackKeyPress();
|
|
||||||
void OnCocos2dKeyEvent(Cocos2dKeyEvent key);
|
|
||||||
void OnCocos2dKeyEvent(Cocos2dKeyEvent key, Platform::String^ text);
|
|
||||||
void OnCocos2dEditboxEvent(Platform::Object^ sender, Platform::String^ args, Windows::Foundation::EventHandler<Platform::String^>^ handler);
|
|
||||||
void OnOrientationChanged(Windows::Graphics::Display::DisplayOrientations orientation);
|
|
||||||
void OnCocos2dOpenURL(Platform::String^ url);
|
|
||||||
|
|
||||||
property Windows::Graphics::Display::DisplayOrientations WindowOrientation;
|
|
||||||
property Windows::Foundation::Size WindowBounds;
|
|
||||||
|
|
||||||
void SetCocos2dEventDelegate(Cocos2dEventDelegate^ delegate);
|
|
||||||
void SetCocos2dMessageBoxDelegate(Cocos2dMessageBoxDelegate ^ delegate);
|
|
||||||
void SetCocos2dEditBoxDelegate(Cocos2dEditBoxDelegate ^ delegate);
|
|
||||||
void SetCocos2dOpenURLDelegate(Cocos2dOpenURLDelegate ^ delegate);
|
|
||||||
|
|
||||||
|
|
||||||
protected:
|
|
||||||
// Event Handlers
|
|
||||||
void OnPointerPressed(Windows::Phone::Input::Interop::DrawingSurfaceManipulationHost^ sender, Windows::UI::Core::PointerEventArgs^ args);
|
|
||||||
void OnPointerMoved(Windows::Phone::Input::Interop::DrawingSurfaceManipulationHost^ sender, Windows::UI::Core::PointerEventArgs^ args);
|
|
||||||
void OnPointerReleased(Windows::Phone::Input::Interop::DrawingSurfaceManipulationHost^ sender, Windows::UI::Core::PointerEventArgs^ args);
|
|
||||||
|
|
||||||
internal:
|
|
||||||
HRESULT Connect(_In_ IDrawingSurfaceRuntimeHostNative* host, _In_ ID3D11Device1* device);
|
|
||||||
void Disconnect();
|
|
||||||
HRESULT PrepareResources(_In_ const LARGE_INTEGER* presentTargetTime, _Inout_ DrawingSurfaceSizeF* desiredRenderTargetSize);
|
|
||||||
HRESULT Draw(_In_ ID3D11Device1* device, _In_ ID3D11DeviceContext1* context, _In_ ID3D11RenderTargetView* renderTargetView);
|
|
||||||
bool SendCocos2dEvent(Cocos2dEvent event);
|
|
||||||
|
|
||||||
private:
|
|
||||||
Cocos2dRenderer^ m_renderer;
|
|
||||||
Windows::Graphics::Display::DisplayOrientations mCurrentOrientation;
|
|
||||||
|
|
||||||
|
|
||||||
Cocos2dEventDelegate^ m_delegate;
|
|
||||||
Cocos2dMessageBoxDelegate^ m_messageBoxDelegate;
|
|
||||||
Cocos2dEditBoxDelegate^ m_editBoxDelegate;
|
|
||||||
Cocos2dOpenURLDelegate^ m_openURLDelegate;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,321 +0,0 @@
|
||||||
/****************************************************************************
|
|
||||||
Copyright (c) 2013 cocos2d-x.org
|
|
||||||
Copyright (c) Microsoft Open Technologies, Inc.
|
|
||||||
|
|
||||||
http://www.cocos2d-x.org
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
#include "DirectXBase.h"
|
|
||||||
#include "DirectXHelper.h"
|
|
||||||
|
|
||||||
using namespace DirectX;
|
|
||||||
using namespace Microsoft::WRL;
|
|
||||||
using namespace Windows::Foundation;
|
|
||||||
using namespace Windows::Graphics::Display;
|
|
||||||
|
|
||||||
// Constructor.
|
|
||||||
DirectXBase::DirectXBase()
|
|
||||||
: m_bAngleInitialized(false)
|
|
||||||
, m_eglDisplay(nullptr)
|
|
||||||
, m_eglSurface(nullptr)
|
|
||||||
, m_eglContext(nullptr)
|
|
||||||
, m_eglWindow(nullptr)
|
|
||||||
, m_eglPhoneWindow(nullptr)
|
|
||||||
, m_device(nullptr)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
// Initialize the Direct3D resources required to run.
|
|
||||||
void DirectXBase::Initialize()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
// These are the resources that depend on the device.
|
|
||||||
void DirectXBase::CreateDeviceResources()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void DirectXBase::SetDevice(ID3D11Device1* device)
|
|
||||||
{
|
|
||||||
if(m_device)
|
|
||||||
{
|
|
||||||
m_device->Release();
|
|
||||||
m_device = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
m_device = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
void DirectXBase::UpdateDevice(ID3D11Device1* device, ID3D11DeviceContext1* context, ID3D11RenderTargetView* renderTargetView)
|
|
||||||
{
|
|
||||||
if (m_device != device)
|
|
||||||
{
|
|
||||||
CloseAngle();
|
|
||||||
device->AddRef();
|
|
||||||
m_device = device;
|
|
||||||
|
|
||||||
CreateDeviceResources();
|
|
||||||
|
|
||||||
// Force call to CreateWindowSizeDependentResources
|
|
||||||
m_renderTargetSize.Width = -1;
|
|
||||||
m_renderTargetSize.Height = -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
m_featureLevel = device->GetFeatureLevel();
|
|
||||||
|
|
||||||
|
|
||||||
ComPtr<ID3D11Resource> renderTargetViewResource;
|
|
||||||
renderTargetView->GetResource(&renderTargetViewResource);
|
|
||||||
|
|
||||||
ComPtr<ID3D11Texture2D> backBuffer;
|
|
||||||
DX::ThrowIfFailed(
|
|
||||||
renderTargetViewResource.As(&backBuffer)
|
|
||||||
);
|
|
||||||
|
|
||||||
// Cache the rendertarget dimensions in our helper class for convenient use.
|
|
||||||
D3D11_TEXTURE2D_DESC backBufferDesc;
|
|
||||||
backBuffer->GetDesc(&backBufferDesc);
|
|
||||||
|
|
||||||
if (m_renderTargetSize.Width != static_cast<float>(backBufferDesc.Width) ||
|
|
||||||
m_renderTargetSize.Height != static_cast<float>(backBufferDesc.Height))
|
|
||||||
{
|
|
||||||
m_renderTargetSize.Width = static_cast<float>(backBufferDesc.Width);
|
|
||||||
m_renderTargetSize.Height = static_cast<float>(backBufferDesc.Height);
|
|
||||||
CreateWindowSizeDependentResources();
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!m_bAngleInitialized)
|
|
||||||
{
|
|
||||||
InitializeAngle(device, context, renderTargetView);
|
|
||||||
CreateGLResources();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
m_eglPhoneWindow->Update(device, context, renderTargetView);
|
|
||||||
}
|
|
||||||
|
|
||||||
OnUpdateDevice();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void DirectXBase::UpdateForWindowSizeChange(float width, float height)
|
|
||||||
{
|
|
||||||
if (width != m_windowBounds.Width || height != m_windowBounds.Height)
|
|
||||||
{
|
|
||||||
m_windowBounds.Width = width;
|
|
||||||
m_windowBounds.Height = height;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Allocate all memory resources that depend on the window size.
|
|
||||||
void DirectXBase::CreateWindowSizeDependentResources()
|
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void DirectXBase::OnOrientationChanged(DisplayOrientations orientation)
|
|
||||||
{
|
|
||||||
switch(orientation)
|
|
||||||
{
|
|
||||||
case DisplayOrientations::Portrait:
|
|
||||||
m_orientationMatrix = XMMatrixIdentity();
|
|
||||||
m_aspectRatio = m_renderTargetSize.Width / m_renderTargetSize.Height;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case DisplayOrientations::PortraitFlipped:
|
|
||||||
m_orientationMatrix = XMMatrixRotationZ(XM_PI);
|
|
||||||
m_aspectRatio = m_renderTargetSize.Width / m_renderTargetSize.Height;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case DisplayOrientations::Landscape:
|
|
||||||
m_orientationMatrix = XMMatrixRotationZ(-XM_PIDIV2);
|
|
||||||
m_aspectRatio = m_renderTargetSize.Height / m_renderTargetSize.Width;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case DisplayOrientations::LandscapeFlipped:
|
|
||||||
m_orientationMatrix = XMMatrixRotationZ(XM_PIDIV2);
|
|
||||||
m_aspectRatio = m_renderTargetSize.Height / m_renderTargetSize.Width;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void DirectXBase::Render()
|
|
||||||
{
|
|
||||||
if(!OnRender())
|
|
||||||
{
|
|
||||||
eglSwapBuffers(m_eglDisplay, m_eglSurface);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void DirectXBase::CloseAngle()
|
|
||||||
{
|
|
||||||
eglMakeCurrent(NULL, NULL, NULL, NULL);
|
|
||||||
|
|
||||||
if(m_eglPhoneWindow != nullptr)
|
|
||||||
{
|
|
||||||
m_eglPhoneWindow->Update(nullptr, nullptr, nullptr);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(m_eglDisplay && m_eglContext)
|
|
||||||
{
|
|
||||||
eglDestroyContext(m_eglDisplay, m_eglContext);
|
|
||||||
m_eglContext = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(m_eglDisplay && m_eglSurface)
|
|
||||||
{
|
|
||||||
eglDestroySurface(m_eglDisplay, m_eglSurface);
|
|
||||||
m_eglSurface = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(m_eglDisplay)
|
|
||||||
{
|
|
||||||
eglTerminate(m_eglDisplay);
|
|
||||||
m_eglDisplay = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(m_device)
|
|
||||||
{
|
|
||||||
m_device->Release();
|
|
||||||
m_device = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
m_eglPhoneWindow = nullptr;
|
|
||||||
m_eglWindow = nullptr;
|
|
||||||
|
|
||||||
m_bAngleInitialized = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool DirectXBase::InitializeAngle(ID3D11Device1* d3dDevice, ID3D11DeviceContext1* d3dContext, ID3D11RenderTargetView* d3dRenderTargetView)
|
|
||||||
{
|
|
||||||
// setup EGL
|
|
||||||
EGLint configAttribList[] = {
|
|
||||||
EGL_RED_SIZE, 8,
|
|
||||||
EGL_GREEN_SIZE, 8,
|
|
||||||
EGL_BLUE_SIZE, 8,
|
|
||||||
EGL_ALPHA_SIZE, 8,
|
|
||||||
EGL_DEPTH_SIZE, 8,
|
|
||||||
EGL_STENCIL_SIZE, 8,
|
|
||||||
EGL_SAMPLE_BUFFERS, 0,
|
|
||||||
EGL_NONE
|
|
||||||
};
|
|
||||||
EGLint surfaceAttribList[] = {
|
|
||||||
EGL_NONE, EGL_NONE
|
|
||||||
};
|
|
||||||
|
|
||||||
EGLint numConfigs;
|
|
||||||
EGLint majorVersion;
|
|
||||||
EGLint minorVersion;
|
|
||||||
EGLDisplay display;
|
|
||||||
EGLContext context;
|
|
||||||
EGLSurface surface;
|
|
||||||
EGLConfig config;
|
|
||||||
EGLint contextAttribs[] = { EGL_CONTEXT_CLIENT_VERSION, 2, EGL_NONE, EGL_NONE };
|
|
||||||
|
|
||||||
// we need to select the correct DirectX feature level depending on the platform
|
|
||||||
// default is D3D_FEATURE_LEVEL_9_3 Windows Phone 8.0
|
|
||||||
ANGLE_D3D_FEATURE_LEVEL featureLevel = ANGLE_D3D_FEATURE_LEVEL::ANGLE_D3D_FEATURE_LEVEL_9_3;
|
|
||||||
|
|
||||||
switch(m_featureLevel)
|
|
||||||
{
|
|
||||||
case ANGLE_D3D_FEATURE_LEVEL_9_3:
|
|
||||||
featureLevel = ANGLE_D3D_FEATURE_LEVEL::ANGLE_D3D_FEATURE_LEVEL_9_3;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case ANGLE_D3D_FEATURE_LEVEL_9_2:
|
|
||||||
featureLevel = ANGLE_D3D_FEATURE_LEVEL::ANGLE_D3D_FEATURE_LEVEL_9_2;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case ANGLE_D3D_FEATURE_LEVEL_9_1:
|
|
||||||
featureLevel = ANGLE_D3D_FEATURE_LEVEL::ANGLE_D3D_FEATURE_LEVEL_9_1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(m_eglPhoneWindow == nullptr)
|
|
||||||
{
|
|
||||||
DX::ThrowIfFailed(
|
|
||||||
CreateWinPhone8XamlWindow(&m_eglPhoneWindow)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
m_eglPhoneWindow->Update(d3dDevice, d3dContext, d3dRenderTargetView);
|
|
||||||
|
|
||||||
ComPtr<IUnknown> u;
|
|
||||||
HRESULT r = m_eglPhoneWindow.As(&u);
|
|
||||||
|
|
||||||
if(m_eglWindow == nullptr)
|
|
||||||
{ DX::ThrowIfFailed(
|
|
||||||
CreateWinrtEglWindow(u.Get(), featureLevel, m_eglWindow.GetAddressOf())
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
display = eglGetDisplay(m_eglWindow);
|
|
||||||
if(display == EGL_NO_DISPLAY){
|
|
||||||
//ofLogError("ofAppWinRTWindow") << "couldn't get EGL display";
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!eglInitialize(display, &majorVersion, &minorVersion)){
|
|
||||||
//ofLogError("ofAppWinRTWindow") << "failed to initialize EGL";
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get configs
|
|
||||||
if ( !eglGetConfigs(display, NULL, 0, &numConfigs) ){
|
|
||||||
//ofLogError("ofAppWinRTWindow") << "failed to get configurations";
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Choose config
|
|
||||||
if(!eglChooseConfig(display, configAttribList, &config, 1, &numConfigs)){
|
|
||||||
//ofLogError("ofAppWinRTWindow") << "failed to choose configuration";
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create a surface
|
|
||||||
surface = eglCreateWindowSurface(display, config, m_eglWindow, surfaceAttribList);
|
|
||||||
if(surface == EGL_NO_SURFACE){
|
|
||||||
//ofLogError("ofAppWinRTWindow") << "failed to create EGL window surface";
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create a GL context
|
|
||||||
context = eglCreateContext(display, config, EGL_NO_CONTEXT, contextAttribs);
|
|
||||||
if(context == EGL_NO_CONTEXT){
|
|
||||||
//ofLogError("ofAppWinRTWindow") << "failed to create EGL context";
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Make the context current
|
|
||||||
if (!eglMakeCurrent(display, surface, surface, context)){
|
|
||||||
//ofLogError("ofAppWinRTWindow") << "failed to make EGL context current";
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
m_eglDisplay = display;
|
|
||||||
m_eglSurface = surface;
|
|
||||||
m_eglContext = context;
|
|
||||||
|
|
||||||
m_bAngleInitialized = true;
|
|
||||||
return true;
|
|
||||||
}
|
|
|
@ -1,84 +0,0 @@
|
||||||
/****************************************************************************
|
|
||||||
Copyright (c) 2013 cocos2d-x.org
|
|
||||||
Copyright (c) Microsoft Open Technologies, Inc.
|
|
||||||
|
|
||||||
http://www.cocos2d-x.org
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include <d3d11_1.h>
|
|
||||||
#include <DirectXMath.h>
|
|
||||||
#include "EGL/egl.h"
|
|
||||||
#include "EGL/eglext.h"
|
|
||||||
#include "EGL/eglplatform.h"
|
|
||||||
#include "GLES2/gl2.h"
|
|
||||||
#include "GLES2/gl2ext.h"
|
|
||||||
#include "winrtangle.h"
|
|
||||||
|
|
||||||
// Helper class that initializes DirectX APIs for 3D rendering.
|
|
||||||
ref class DirectXBase abstract
|
|
||||||
{
|
|
||||||
internal:
|
|
||||||
DirectXBase();
|
|
||||||
|
|
||||||
virtual void Initialize();
|
|
||||||
virtual void CreateDeviceResources();
|
|
||||||
virtual void SetDevice(ID3D11Device1* device);
|
|
||||||
virtual void UpdateDevice(ID3D11Device1* device, ID3D11DeviceContext1* context, ID3D11RenderTargetView* renderTargetView);
|
|
||||||
virtual void UpdateForWindowSizeChange(float width, float height);
|
|
||||||
virtual void CreateWindowSizeDependentResources();
|
|
||||||
virtual void OnOrientationChanged(Windows::Graphics::Display::DisplayOrientations orientation);
|
|
||||||
|
|
||||||
virtual void CreateGLResources() = 0;
|
|
||||||
|
|
||||||
void Render();
|
|
||||||
|
|
||||||
protected:
|
|
||||||
|
|
||||||
// return true if eglSwapBuffers was called by OnRender
|
|
||||||
virtual bool OnRender() = 0;
|
|
||||||
virtual void OnUpdateDevice() = 0;
|
|
||||||
void CloseAngle();
|
|
||||||
|
|
||||||
protected private:
|
|
||||||
// Direct3D Objects.
|
|
||||||
ID3D11Device1* m_device;
|
|
||||||
|
|
||||||
D3D_FEATURE_LEVEL m_featureLevel;
|
|
||||||
|
|
||||||
bool InitializeAngle(ID3D11Device1* device, ID3D11DeviceContext1* context, ID3D11RenderTargetView* renderTargetView);
|
|
||||||
|
|
||||||
// Cached renderer properties.
|
|
||||||
Windows::Foundation::Size m_renderTargetSize;
|
|
||||||
Windows::Foundation::Rect m_windowBounds;
|
|
||||||
Windows::Graphics::Display::DisplayOrientations m_orientation;
|
|
||||||
|
|
||||||
// Angle EGL
|
|
||||||
bool m_bAngleInitialized;
|
|
||||||
EGLDisplay m_eglDisplay;
|
|
||||||
EGLContext m_eglContext;
|
|
||||||
EGLSurface m_eglSurface;
|
|
||||||
Microsoft::WRL::ComPtr<IWinrtEglWindow> m_eglWindow;
|
|
||||||
Microsoft::WRL::ComPtr<IWinPhone8XamlD3DWindow> m_eglPhoneWindow;
|
|
||||||
DirectX::XMMATRIX m_orientationMatrix;
|
|
||||||
float m_aspectRatio;
|
|
||||||
};
|
|
|
@ -1,47 +0,0 @@
|
||||||
/****************************************************************************
|
|
||||||
Copyright (c) 2013 cocos2d-x.org
|
|
||||||
Copyright (c) Microsoft Open Technologies, Inc.
|
|
||||||
|
|
||||||
http://www.cocos2d-x.org
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
//// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
|
|
||||||
//// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
|
||||||
//// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
|
|
||||||
//// PARTICULAR PURPOSE.
|
|
||||||
////
|
|
||||||
//// Copyright (c) Microsoft Corporation. All rights reserved
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
|
|
||||||
// This header defines helper utilities to make DirectX APIs work with exceptions.
|
|
||||||
namespace DX
|
|
||||||
{
|
|
||||||
inline void ThrowIfFailed(HRESULT hr)
|
|
||||||
{
|
|
||||||
if (FAILED(hr))
|
|
||||||
{
|
|
||||||
// Set a breakpoint on this line to catch DX API errors.
|
|
||||||
throw Platform::Exception::CreateException(hr);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,48 +0,0 @@
|
||||||
/****************************************************************************
|
|
||||||
Copyright (c) 2014 cocos2d-x.org
|
|
||||||
|
|
||||||
http://www.cocos2d-x.org
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
#include "EditBoxEvent.h"
|
|
||||||
|
|
||||||
using namespace Platform;
|
|
||||||
|
|
||||||
namespace cocos2d
|
|
||||||
{
|
|
||||||
EditBoxEvent::EditBoxEvent( Platform::Object^ sender, Platform::String^ arg, Windows::Foundation::EventHandler<Platform::String^>^ handle ):
|
|
||||||
m_sender(sender),
|
|
||||||
m_args(arg),
|
|
||||||
m_handler(handle)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void EditBoxEvent::execute()
|
|
||||||
{
|
|
||||||
if(m_handler.Get())
|
|
||||||
{
|
|
||||||
m_handler.Get()->Invoke(m_sender.Get(), m_args.Get());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,48 +0,0 @@
|
||||||
/****************************************************************************
|
|
||||||
Copyright (c) 2014 cocos2d-x.org
|
|
||||||
|
|
||||||
http://www.cocos2d-x.org
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
#ifndef __EditBoxEVENT_H__
|
|
||||||
#define __EditBoxEVENT_H__
|
|
||||||
|
|
||||||
#include "InputEvent.h"
|
|
||||||
#include <agile.h>
|
|
||||||
|
|
||||||
|
|
||||||
namespace cocos2d
|
|
||||||
{
|
|
||||||
class EditBoxEvent : public cocos2d::InputEvent
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
EditBoxEvent(Platform::Object^ sender, Platform::String^ arg, Windows::Foundation::EventHandler<Platform::String^>^ handle);
|
|
||||||
|
|
||||||
virtual void execute();
|
|
||||||
|
|
||||||
private:
|
|
||||||
Platform::Agile<Platform::Object^> m_sender;
|
|
||||||
Platform::Agile<Platform::String^> m_args;
|
|
||||||
Platform::Agile<Windows::Foundation::EventHandler<Platform::String^>^> m_handler;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -1,20 +0,0 @@
|
||||||
<Application
|
|
||||||
x:Class="cocos2d.App"
|
|
||||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
||||||
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
|
|
||||||
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone">
|
|
||||||
|
|
||||||
<!--Application Resources-->
|
|
||||||
<Application.Resources>
|
|
||||||
<local:LocalizedStrings xmlns:local="clr-namespace:cocos2d" x:Key="LocalizedStrings"/>
|
|
||||||
</Application.Resources>
|
|
||||||
|
|
||||||
<Application.ApplicationLifetimeObjects>
|
|
||||||
<!--Required object that handles lifetime events for the application-->
|
|
||||||
<shell:PhoneApplicationService
|
|
||||||
Launching="Application_Launching" Closing="Application_Closing"
|
|
||||||
Activated="Application_Activated" Deactivated="Application_Deactivated"/>
|
|
||||||
</Application.ApplicationLifetimeObjects>
|
|
||||||
|
|
||||||
</Application>
|
|
|
@ -1,362 +0,0 @@
|
||||||
using System;
|
|
||||||
using System.Diagnostics;
|
|
||||||
using System.Resources;
|
|
||||||
using System.Windows;
|
|
||||||
using System.Windows.Markup;
|
|
||||||
using System.Windows.Navigation;
|
|
||||||
using Microsoft.Phone.Controls;
|
|
||||||
using Microsoft.Phone.Shell;
|
|
||||||
using System.IO.IsolatedStorage;
|
|
||||||
|
|
||||||
namespace cocos2d
|
|
||||||
{
|
|
||||||
public partial class App : Application
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Provides easy access to the root frame of the Phone Application.
|
|
||||||
/// </summary>
|
|
||||||
/// <returns>The root frame of the Phone Application.</returns>
|
|
||||||
public static PhoneApplicationFrame RootFrame { get; private set; }
|
|
||||||
|
|
||||||
|
|
||||||
enum SessionType
|
|
||||||
{
|
|
||||||
None,
|
|
||||||
Home,
|
|
||||||
DeepLink
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set to Home when the app is launched from Primary tile.
|
|
||||||
// Set to DeepLink when the app is launched from Deep Link.
|
|
||||||
private SessionType sessionType = SessionType.None;
|
|
||||||
|
|
||||||
// Set to true when the page navigation is being reset
|
|
||||||
bool wasRelaunched = false;
|
|
||||||
|
|
||||||
// set to true when 5 min passed since the app was relaunched
|
|
||||||
bool mustClearPagestack = false;
|
|
||||||
|
|
||||||
IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Constructor for the Application object.
|
|
||||||
/// </summary>
|
|
||||||
public App()
|
|
||||||
{
|
|
||||||
// Global handler for uncaught exceptions.
|
|
||||||
UnhandledException += Application_UnhandledException;
|
|
||||||
|
|
||||||
// Standard XAML initialization
|
|
||||||
InitializeComponent();
|
|
||||||
|
|
||||||
// Phone-specific initialization
|
|
||||||
InitializePhoneApplication();
|
|
||||||
|
|
||||||
// Show graphics profiling information while debugging.
|
|
||||||
if (Debugger.IsAttached)
|
|
||||||
{
|
|
||||||
// Display the current frame rate counters.
|
|
||||||
Application.Current.Host.Settings.EnableFrameRateCounter = false;
|
|
||||||
|
|
||||||
// Show the areas of the app that are being redrawn in each frame.
|
|
||||||
//Application.Current.Host.Settings.EnableRedrawRegions = true;
|
|
||||||
|
|
||||||
// Enable non-production analysis visualization mode,
|
|
||||||
// which shows areas of a page that are handed off to GPU with a colored overlay.
|
|
||||||
//Application.Current.Host.Settings.EnableCacheVisualization = true;
|
|
||||||
|
|
||||||
// Prevent the screen from turning off while under the debugger by disabling
|
|
||||||
// the application's idle detection.
|
|
||||||
// Caution:- Use this under debug mode only. Application that disables user idle detection will continue to run
|
|
||||||
// and consume battery power when the user is not using the phone.
|
|
||||||
PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disabled;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Code to execute when the application is launching (eg, from Start)
|
|
||||||
// This code will not execute when the application is reactivated
|
|
||||||
private void Application_Launching(object sender, LaunchingEventArgs e)
|
|
||||||
{
|
|
||||||
|
|
||||||
// When a new instance of the app is launched, clear all deactivation settings
|
|
||||||
RemoveCurrentDeactivationSettings();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Code to execute when the application is activated (brought to foreground)
|
|
||||||
// This code will not execute when the application is first launched
|
|
||||||
private void Application_Activated(object sender, ActivatedEventArgs e)
|
|
||||||
{
|
|
||||||
// If some interval has passed since the app was deactivated (30 seconds in this example),
|
|
||||||
// then remember to clear the back stack of pages
|
|
||||||
mustClearPagestack = CheckDeactivationTimeStamp();
|
|
||||||
|
|
||||||
|
|
||||||
// If IsApplicationInstancePreserved is not true, then set the session type to the value
|
|
||||||
// saved in isolated storage. This will make sure the session type is correct for an
|
|
||||||
// app that is being resumed after being tombstoned.
|
|
||||||
if (!e.IsApplicationInstancePreserved)
|
|
||||||
{
|
|
||||||
RestoreSessionType();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Code to execute when the application is deactivated (sent to background)
|
|
||||||
// This code will not execute when the application is closing
|
|
||||||
private void Application_Deactivated(object sender, DeactivatedEventArgs e)
|
|
||||||
{
|
|
||||||
// When the applicaiton is deactivated, save the current deactivation settings to isolated storage
|
|
||||||
SaveCurrentDeactivationSettings();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Code to execute when the application is closing (eg, user hit Back)
|
|
||||||
// This code will not execute when the application is deactivated
|
|
||||||
private void Application_Closing(object sender, ClosingEventArgs e)
|
|
||||||
{
|
|
||||||
// When the application closes, delete any deactivation settings from isolated storage
|
|
||||||
RemoveCurrentDeactivationSettings();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Code to execute if a navigation fails
|
|
||||||
private void RootFrame_NavigationFailed(object sender, NavigationFailedEventArgs e)
|
|
||||||
{
|
|
||||||
if (Debugger.IsAttached)
|
|
||||||
{
|
|
||||||
// A navigation has failed; break into the debugger
|
|
||||||
Debugger.Break();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Code to execute on Unhandled Exceptions
|
|
||||||
private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
|
|
||||||
{
|
|
||||||
if (Debugger.IsAttached)
|
|
||||||
{
|
|
||||||
// An unhandled exception has occurred; break into the debugger
|
|
||||||
Debugger.Break();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#region Phone application initialization
|
|
||||||
|
|
||||||
// Avoid double-initialization
|
|
||||||
private bool phoneApplicationInitialized = false;
|
|
||||||
|
|
||||||
// Do not add any additional code to this method
|
|
||||||
private void InitializePhoneApplication()
|
|
||||||
{
|
|
||||||
if (phoneApplicationInitialized)
|
|
||||||
return;
|
|
||||||
|
|
||||||
// Create the frame but don't set it as RootVisual yet; this allows the splash
|
|
||||||
// screen to remain active until the application is ready to render.
|
|
||||||
RootFrame = new PhoneApplicationFrame();
|
|
||||||
RootFrame.Navigated += CompleteInitializePhoneApplication;
|
|
||||||
|
|
||||||
// Handle navigation failures
|
|
||||||
RootFrame.NavigationFailed += RootFrame_NavigationFailed;
|
|
||||||
|
|
||||||
// Handle reset requests for clearing the backstack
|
|
||||||
RootFrame.Navigated += CheckForResetNavigation;
|
|
||||||
|
|
||||||
// Monitor deep link launching
|
|
||||||
RootFrame.Navigating += RootFrame_Navigating;
|
|
||||||
|
|
||||||
// Ensure we don't initialize again
|
|
||||||
phoneApplicationInitialized = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Event handler for the Navigating event of the root frame. Use this handler to modify
|
|
||||||
// the default navigation behavior.
|
|
||||||
void RootFrame_Navigating(object sender, NavigatingCancelEventArgs e)
|
|
||||||
{
|
|
||||||
|
|
||||||
// If the session type is None or New, check the navigation Uri to determine if the
|
|
||||||
// navigation is a deep link or if it points to the app's main page.
|
|
||||||
if (sessionType == SessionType.None && e.NavigationMode == NavigationMode.New)
|
|
||||||
{
|
|
||||||
// This block will run if the current navigation is part of the app's intial launch
|
|
||||||
|
|
||||||
|
|
||||||
// Keep track of Session Type
|
|
||||||
if (e.Uri.ToString().Contains("DeepLink=true"))
|
|
||||||
{
|
|
||||||
sessionType = SessionType.DeepLink;
|
|
||||||
}
|
|
||||||
else if (e.Uri.ToString().Contains("/MainPage.xaml"))
|
|
||||||
{
|
|
||||||
sessionType = SessionType.Home;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (e.NavigationMode == NavigationMode.Reset)
|
|
||||||
{
|
|
||||||
// This block will execute if the current navigation is a relaunch.
|
|
||||||
// If so, another navigation will be coming, so this records that a relaunch just happened
|
|
||||||
// so that the next navigation can use this info.
|
|
||||||
wasRelaunched = true;
|
|
||||||
}
|
|
||||||
else if (e.NavigationMode == NavigationMode.New && wasRelaunched)
|
|
||||||
{
|
|
||||||
// This block will run if the previous navigation was a relaunch
|
|
||||||
wasRelaunched = false;
|
|
||||||
|
|
||||||
if (e.Uri.ToString().Contains("DeepLink=true"))
|
|
||||||
{
|
|
||||||
// This block will run if the launch Uri contains "DeepLink=true" which
|
|
||||||
// was specified when the secondary tile was created in MainPage.xaml.cs
|
|
||||||
|
|
||||||
sessionType = SessionType.DeepLink;
|
|
||||||
// The app was relaunched via a Deep Link.
|
|
||||||
// The page stack will be cleared.
|
|
||||||
}
|
|
||||||
else if (e.Uri.ToString().Contains("/MainPage.xaml"))
|
|
||||||
{
|
|
||||||
// This block will run if the navigation Uri is the main page
|
|
||||||
if (sessionType == SessionType.DeepLink)
|
|
||||||
{
|
|
||||||
// When the app was previously launched via Deep Link and relaunched via Main Tile, we need to clear the page stack.
|
|
||||||
sessionType = SessionType.Home;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (!mustClearPagestack)
|
|
||||||
{
|
|
||||||
//The app was previously launched via Main Tile and relaunched via Main Tile. Cancel the navigation to resume.
|
|
||||||
e.Cancel = true;
|
|
||||||
RootFrame.Navigated -= ClearBackStackAfterReset;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
mustClearPagestack = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Do not add any additional code to this method
|
|
||||||
private void CompleteInitializePhoneApplication(object sender, NavigationEventArgs e)
|
|
||||||
{
|
|
||||||
// Set the root visual to allow the application to render
|
|
||||||
if (RootVisual != RootFrame)
|
|
||||||
RootVisual = RootFrame;
|
|
||||||
|
|
||||||
// Remove this handler since it is no longer needed
|
|
||||||
RootFrame.Navigated -= CompleteInitializePhoneApplication;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void CheckForResetNavigation(object sender, NavigationEventArgs e)
|
|
||||||
{
|
|
||||||
// If the app has received a 'reset' navigation, then we need to check
|
|
||||||
// on the next navigation to see if the page stack should be reset
|
|
||||||
if (e.NavigationMode == NavigationMode.Reset)
|
|
||||||
RootFrame.Navigated += ClearBackStackAfterReset;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void ClearBackStackAfterReset(object sender, NavigationEventArgs e)
|
|
||||||
{
|
|
||||||
// Unregister the event so it doesn't get called again
|
|
||||||
RootFrame.Navigated -= ClearBackStackAfterReset;
|
|
||||||
|
|
||||||
// Only clear the stack for 'new' (forward) and 'refresh' navigations
|
|
||||||
if (e.NavigationMode != NavigationMode.New)
|
|
||||||
return;
|
|
||||||
|
|
||||||
// For UI consistency, clear the entire page stack
|
|
||||||
while (RootFrame.RemoveBackEntry() != null)
|
|
||||||
{
|
|
||||||
; // do nothing
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
// Helper method for adding or updating a key/value pair in isolated storage
|
|
||||||
public bool AddOrUpdateValue(string Key, Object value)
|
|
||||||
{
|
|
||||||
bool valueChanged = false;
|
|
||||||
|
|
||||||
// If the key exists
|
|
||||||
if (settings.Contains(Key))
|
|
||||||
{
|
|
||||||
// If the value has changed
|
|
||||||
if (settings[Key] != value)
|
|
||||||
{
|
|
||||||
// Store the new value
|
|
||||||
settings[Key] = value;
|
|
||||||
valueChanged = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Otherwise create the key.
|
|
||||||
else
|
|
||||||
{
|
|
||||||
settings.Add(Key, value);
|
|
||||||
valueChanged = true;
|
|
||||||
}
|
|
||||||
return valueChanged;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Helper method for removing a key/value pair from isolated storage
|
|
||||||
public void RemoveValue(string Key)
|
|
||||||
{
|
|
||||||
// If the key exists
|
|
||||||
if (settings.Contains(Key))
|
|
||||||
{
|
|
||||||
settings.Remove(Key);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Called when the app is deactivating. Saves the time of the deactivation and the
|
|
||||||
// session type of the app instance to isolated storage.
|
|
||||||
public void SaveCurrentDeactivationSettings()
|
|
||||||
{
|
|
||||||
if (AddOrUpdateValue("DeactivateTime", DateTimeOffset.Now))
|
|
||||||
{
|
|
||||||
settings.Save();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (AddOrUpdateValue("SessionType", sessionType))
|
|
||||||
{
|
|
||||||
settings.Save();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Called when the app is launched or closed. Removes all deactivation settings from
|
|
||||||
// isolated storage
|
|
||||||
public void RemoveCurrentDeactivationSettings()
|
|
||||||
{
|
|
||||||
RemoveValue("DeactivateTime");
|
|
||||||
RemoveValue("SessionType");
|
|
||||||
settings.Save();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Helper method to determine if the interval since the app was deactivated is
|
|
||||||
// greater than 30 seconds
|
|
||||||
bool CheckDeactivationTimeStamp()
|
|
||||||
{
|
|
||||||
DateTimeOffset lastDeactivated;
|
|
||||||
|
|
||||||
if (settings.Contains("DeactivateTime"))
|
|
||||||
{
|
|
||||||
lastDeactivated = (DateTimeOffset)settings["DeactivateTime"];
|
|
||||||
}
|
|
||||||
|
|
||||||
var currentDuration = DateTimeOffset.Now.Subtract(lastDeactivated);
|
|
||||||
|
|
||||||
return TimeSpan.FromSeconds(currentDuration.TotalSeconds) > TimeSpan.FromSeconds(30);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Helper method to restore the session type from isolated storage.
|
|
||||||
void RestoreSessionType()
|
|
||||||
{
|
|
||||||
if (settings.Contains("SessionType"))
|
|
||||||
{
|
|
||||||
sessionType = (SessionType)settings["SessionType"];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,20 +0,0 @@
|
||||||
<UserControl x:Class="cocos2d.EditBox"
|
|
||||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
||||||
mc:Ignorable="d"
|
|
||||||
FontFamily="{StaticResource PhoneFontFamilyNormal}"
|
|
||||||
FontSize="{StaticResource PhoneFontSizeNormal}"
|
|
||||||
Foreground="{StaticResource PhoneForegroundBrush}"
|
|
||||||
d:DesignHeight="480" d:DesignWidth="480">
|
|
||||||
|
|
||||||
<Grid x:Name="LayoutRoot" Background="{StaticResource PhoneSemitransparentBrush}">
|
|
||||||
<!--<TextBox KeyDown="OnKeyDownHandler" Height="72" x:Name="textinput" TextWrapping="Wrap" VerticalAlignment="Top" Margin="0,0,220,0" TextChanged="textinput_TextChanged"/>-->
|
|
||||||
<!-- comment TextBox and uncomment PasswordBox to use PasswordBox -->
|
|
||||||
<!--<PasswordBox KeyDown="OnKeyDownHandler" Height="72" x:Name="textinput" TextWrapping="Wrap" VerticalAlignment="Top" Margin="0,0,220,0" TextChanged="textinput_TextChanged"/>-->
|
|
||||||
<Button Content="Done" VerticalAlignment="Top" Width="108" Background="{StaticResource PhoneChromeBrush}" HorizontalAlignment="Right" Margin="0,0,120,0" Click="Done_Click"/>
|
|
||||||
<Button Content="Cancel" VerticalAlignment="Top" Width="131" Background="{StaticResource PhoneChromeBrush}" HorizontalAlignment="Right" Click="Cancel_Click"/>
|
|
||||||
|
|
||||||
</Grid>
|
|
||||||
</UserControl>
|
|
|
@ -1,190 +0,0 @@
|
||||||
/****************************************************************************
|
|
||||||
Copyright (c) 2014 cocos2d-x.org
|
|
||||||
|
|
||||||
http://www.cocos2d-x.org
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Net;
|
|
||||||
using System.Windows;
|
|
||||||
using System.Windows.Controls;
|
|
||||||
using System.Windows.Navigation;
|
|
||||||
using Microsoft.Phone.Controls;
|
|
||||||
using Microsoft.Phone.Shell;
|
|
||||||
using System.Windows.Media;
|
|
||||||
using System.Windows.Input;
|
|
||||||
|
|
||||||
namespace cocos2d
|
|
||||||
{
|
|
||||||
public partial class EditBox : UserControl
|
|
||||||
{
|
|
||||||
private MainPage m_mainPage = null;
|
|
||||||
private String m_strText = "";
|
|
||||||
private String m_strPlaceholder = "";
|
|
||||||
private bool bIsFocus = false;
|
|
||||||
private int m_inputFlag = 0;
|
|
||||||
private Control m_textinput = null;
|
|
||||||
|
|
||||||
public void initTextinput(int maxLen, int inputMode)
|
|
||||||
{
|
|
||||||
if (m_inputFlag == 0)
|
|
||||||
{
|
|
||||||
// kEditBoxInputFlagPassword
|
|
||||||
PasswordBox pwdBox = new PasswordBox();
|
|
||||||
pwdBox.MaxLength = maxLen < 0 ? 0 : maxLen;
|
|
||||||
pwdBox.Password = m_strText;
|
|
||||||
pwdBox.GotFocus += pwdBox_GotFocus;
|
|
||||||
m_textinput = pwdBox;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
TextBox textbox = new TextBox();
|
|
||||||
textbox.MaxLength = maxLen < 0 ? 0 : maxLen;
|
|
||||||
SetInputScope(textbox, inputMode);
|
|
||||||
textbox.TextChanged += textinput_TextChanged;
|
|
||||||
textbox.GotFocus += textinput_GotFocus;
|
|
||||||
textbox.LostFocus += textinput_LostFocus;
|
|
||||||
m_textinput = textbox;
|
|
||||||
}
|
|
||||||
m_textinput.Margin = new System.Windows.Thickness(0, 0, 220, 0);
|
|
||||||
m_textinput.Height = 72.0;
|
|
||||||
m_textinput.TabIndex = 0;
|
|
||||||
m_textinput.VerticalAlignment = VerticalAlignment.Top;
|
|
||||||
m_textinput.KeyDown += OnKeyDownHandler;
|
|
||||||
this.LayoutRoot.Children.Add(m_textinput);
|
|
||||||
}
|
|
||||||
|
|
||||||
void pwdBox_GotFocus(object sender, RoutedEventArgs e)
|
|
||||||
{
|
|
||||||
((PasswordBox)m_textinput).SelectAll();
|
|
||||||
}
|
|
||||||
|
|
||||||
public EditBox(MainPage page, String strPlaceholder, String strText, int maxLen, int inputMode, int inputFlag)
|
|
||||||
{
|
|
||||||
m_mainPage = page;
|
|
||||||
InitializeComponent();
|
|
||||||
m_strText = strText;
|
|
||||||
m_strPlaceholder = strPlaceholder;
|
|
||||||
m_inputFlag = inputFlag;
|
|
||||||
initTextinput(maxLen, inputMode);
|
|
||||||
this.Loaded += EditBox_Loaded;
|
|
||||||
}
|
|
||||||
|
|
||||||
void EditBox_Loaded(object sender, RoutedEventArgs e)
|
|
||||||
{
|
|
||||||
m_textinput.Focus();
|
|
||||||
}
|
|
||||||
|
|
||||||
void textinput_LostFocus(object sender, RoutedEventArgs e)
|
|
||||||
{
|
|
||||||
// TextBox.LostFocus
|
|
||||||
TextBox curBox = (TextBox)m_textinput;
|
|
||||||
bIsFocus = false;
|
|
||||||
m_strText = curBox.Text;
|
|
||||||
string strText = "";
|
|
||||||
strText = curBox.Text;
|
|
||||||
if (strText == "" && m_inputFlag != 0)
|
|
||||||
{
|
|
||||||
curBox.Text = m_strPlaceholder;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void textinput_GotFocus(object sender, RoutedEventArgs e)
|
|
||||||
{
|
|
||||||
// TextBox.GotFocus
|
|
||||||
TextBox curBox = (TextBox)m_textinput;
|
|
||||||
bIsFocus = true;
|
|
||||||
curBox.Text = m_strText;
|
|
||||||
curBox.Select(curBox.Text.Length, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnKeyDownHandler(object sender, System.Windows.Input.KeyEventArgs e)
|
|
||||||
{
|
|
||||||
switch (e.Key)
|
|
||||||
{
|
|
||||||
case Key.Enter:
|
|
||||||
Done_Click(sender, null);
|
|
||||||
e.Handled = true;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Done_Click(object sender, RoutedEventArgs e)
|
|
||||||
{
|
|
||||||
m_mainPage.OnSelectText(sender, m_inputFlag == 0 ? ((PasswordBox)m_textinput).Password : m_strText);
|
|
||||||
((Grid)this.Parent).Children.Remove(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Cancel_Click(object sender, RoutedEventArgs e)
|
|
||||||
{
|
|
||||||
((Grid)this.Parent).Children.Remove(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void textinput_TextChanged(object sender, TextChangedEventArgs e)
|
|
||||||
{
|
|
||||||
// TextBox.textinput_TextChanged
|
|
||||||
if (bIsFocus)
|
|
||||||
m_strText = ((TextBox)m_textinput).Text;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void SetInputScope(TextBox curBox, int inputMode)
|
|
||||||
{
|
|
||||||
// TextBox.SetInputScope
|
|
||||||
InputScope inputScope = new InputScope();
|
|
||||||
InputScopeName name = new InputScopeName();
|
|
||||||
|
|
||||||
switch (inputMode)
|
|
||||||
{
|
|
||||||
case 0:// kEditBoxInputModeAny
|
|
||||||
name.NameValue = InputScopeNameValue.Default;
|
|
||||||
break;
|
|
||||||
case 1:// kEditBoxInputModeEmailAddr
|
|
||||||
name.NameValue = InputScopeNameValue.EmailNameOrAddress;
|
|
||||||
break;
|
|
||||||
case 2:// kEditBoxInputModeNumeric
|
|
||||||
name.NameValue = InputScopeNameValue.Number;
|
|
||||||
break;
|
|
||||||
case 3:// kEditBoxInputModePhoneNumber
|
|
||||||
name.NameValue = InputScopeNameValue.TelephoneNumber;
|
|
||||||
break;
|
|
||||||
case 4:// kEditBoxInputModeUrl
|
|
||||||
name.NameValue = InputScopeNameValue.Url;
|
|
||||||
break;
|
|
||||||
case 5:// kEditBoxInputModeDecimal
|
|
||||||
name.NameValue = InputScopeNameValue.Digits;
|
|
||||||
break;
|
|
||||||
case 6:// kEditBoxInputModeSingleLine
|
|
||||||
name.NameValue = InputScopeNameValue.Default;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
name.NameValue = InputScopeNameValue.Default;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
inputScope.Names.Add(name);
|
|
||||||
curBox.InputScope = inputScope;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,28 +0,0 @@
|
||||||
<phone:PhoneApplicationPage
|
|
||||||
x:Class="cocos2d.MainPage"
|
|
||||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
||||||
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
|
|
||||||
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
|
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
||||||
mc:Ignorable="d"
|
|
||||||
FontFamily="{StaticResource PhoneFontFamilyNormal}"
|
|
||||||
FontSize="{StaticResource PhoneFontSizeNormal}"
|
|
||||||
Foreground="{StaticResource PhoneForegroundBrush}"
|
|
||||||
SupportedOrientations="Landscape" Orientation="Landscape"
|
|
||||||
shell:SystemTray.IsVisible="False">
|
|
||||||
|
|
||||||
<!--LayoutRoot is the root grid where all page content is placed-->
|
|
||||||
<DrawingSurfaceBackgroundGrid x:Name="DrawingSurfaceBackground" Loaded="DrawingSurfaceBackground_Loaded">
|
|
||||||
<StackPanel Orientation="Horizontal" Margin="10,0,0,0" Height="30" VerticalAlignment="Top" x:Name="MemoryDisplay">
|
|
||||||
<TextBlock Text="Memory: "/>
|
|
||||||
<TextBlock x:Name="MemoryTextBlock"/>
|
|
||||||
<TextBlock Text=" MB"/>
|
|
||||||
<TextBlock Text=" Peak: "/>
|
|
||||||
<TextBlock x:Name="PeakMemoryTextBlock"/>
|
|
||||||
<TextBlock Text=" MB"/>
|
|
||||||
</StackPanel>
|
|
||||||
</DrawingSurfaceBackgroundGrid>
|
|
||||||
|
|
||||||
</phone:PhoneApplicationPage>
|
|
|
@ -1,251 +0,0 @@
|
||||||
#if DEBUG
|
|
||||||
#define DISPLAY_MEMORY
|
|
||||||
#endif
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.ComponentModel;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Net;
|
|
||||||
using System.Windows;
|
|
||||||
using System.Windows.Controls;
|
|
||||||
using System.Windows.Navigation;
|
|
||||||
using System.Windows.Documents;
|
|
||||||
using System.Windows.Input;
|
|
||||||
using System.Windows.Media;
|
|
||||||
using System.Windows.Media.Animation;
|
|
||||||
using System.Windows.Shapes;
|
|
||||||
using Microsoft.Phone.Controls;
|
|
||||||
using System.Threading;
|
|
||||||
using System.Diagnostics;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using Microsoft.Phone.Shell;
|
|
||||||
using Windows.UI.Input;
|
|
||||||
using System.Windows.Threading;
|
|
||||||
using Microsoft.Phone.Info;
|
|
||||||
using Windows.Graphics.Display;
|
|
||||||
using Microsoft.Phone.Tasks;
|
|
||||||
|
|
||||||
namespace cocos2d
|
|
||||||
{
|
|
||||||
public partial class MainPage : PhoneApplicationPage
|
|
||||||
{
|
|
||||||
private Direct3DInterop m_d3dInterop = null;
|
|
||||||
private DispatcherTimer m_timer;
|
|
||||||
|
|
||||||
// event handler for CCEditBox
|
|
||||||
private event EventHandler<String> m_receiveHandler;
|
|
||||||
|
|
||||||
// invisible XAML TextBox for Cocos2d-x keyboard input
|
|
||||||
TextBox m_textBox = null;
|
|
||||||
|
|
||||||
// Constructor
|
|
||||||
public MainPage()
|
|
||||||
{
|
|
||||||
InitializeComponent();
|
|
||||||
#if DISPLAY_MEMORY
|
|
||||||
StartTimer();
|
|
||||||
#else
|
|
||||||
MemoryDisplay.Visibility = Visibility.Collapsed;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
override protected void OnOrientationChanged(OrientationChangedEventArgs args)
|
|
||||||
{
|
|
||||||
base.OnOrientationChanged(args);
|
|
||||||
if (m_d3dInterop != null)
|
|
||||||
{
|
|
||||||
DisplayOrientations orientation = ConvertToNativeOrientation(args.Orientation);
|
|
||||||
m_d3dInterop.OnOrientationChanged(orientation);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static DisplayOrientations ConvertToNativeOrientation(PageOrientation xamlOrientation)
|
|
||||||
{
|
|
||||||
switch (xamlOrientation)
|
|
||||||
{
|
|
||||||
case PageOrientation.Portrait:
|
|
||||||
case PageOrientation.PortraitUp:
|
|
||||||
return DisplayOrientations.Portrait;
|
|
||||||
case PageOrientation.PortraitDown:
|
|
||||||
return DisplayOrientations.PortraitFlipped;
|
|
||||||
case PageOrientation.Landscape:
|
|
||||||
case PageOrientation.LandscapeLeft:
|
|
||||||
return DisplayOrientations.Landscape;
|
|
||||||
case PageOrientation.LandscapeRight:
|
|
||||||
return DisplayOrientations.LandscapeFlipped;
|
|
||||||
default:
|
|
||||||
return DisplayOrientations.Landscape;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void DrawingSurfaceBackground_Loaded(object sender, RoutedEventArgs e)
|
|
||||||
{
|
|
||||||
if (m_d3dInterop == null)
|
|
||||||
{
|
|
||||||
PageOrientation pageOrientation = (PageOrientation)GetValue(OrientationProperty);
|
|
||||||
DisplayOrientations displayOrientation = ConvertToNativeOrientation(pageOrientation);
|
|
||||||
|
|
||||||
m_d3dInterop = new Direct3DInterop(displayOrientation);
|
|
||||||
|
|
||||||
// Set WindowBounds to size of DrawingSurface
|
|
||||||
m_d3dInterop.WindowBounds = new Windows.Foundation.Size(
|
|
||||||
(float)Application.Current.Host.Content.ActualWidth,
|
|
||||||
(float)Application.Current.Host.Content.ActualHeight
|
|
||||||
);
|
|
||||||
|
|
||||||
// Hook-up native component to DrawingSurfaceBackgroundGrid
|
|
||||||
DrawingSurfaceBackground.SetBackgroundContentProvider(m_d3dInterop.CreateContentProvider());
|
|
||||||
DrawingSurfaceBackground.SetBackgroundManipulationHandler(m_d3dInterop);
|
|
||||||
|
|
||||||
// Hook-up Cocos2d-x delegates
|
|
||||||
m_d3dInterop.SetCocos2dEventDelegate(OnCocos2dEvent);
|
|
||||||
m_d3dInterop.SetCocos2dMessageBoxDelegate(OnCocos2dMessageBoxEvent);
|
|
||||||
m_d3dInterop.SetCocos2dEditBoxDelegate(OpenEditBox);
|
|
||||||
m_d3dInterop.SetCocos2dOpenURLDelegate(OpenURL);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// called when the user presses the back button on the device
|
|
||||||
protected override void OnBackKeyPress(CancelEventArgs e)
|
|
||||||
{
|
|
||||||
m_d3dInterop.OnBackKeyPress();
|
|
||||||
// cocos2d-x will async send Cocos2dEvent.TerminateApp event if it is time to exit app.
|
|
||||||
// We do not want to exit now, so we set e.Cancel to true.
|
|
||||||
e.Cancel = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnKeyDown(object sender, KeyEventArgs e)
|
|
||||||
{
|
|
||||||
ModifierKeys modifiers = Keyboard.Modifiers;
|
|
||||||
|
|
||||||
switch (e.Key)
|
|
||||||
{
|
|
||||||
case Key.Escape:
|
|
||||||
m_d3dInterop.OnCocos2dKeyEvent(Cocos2dKeyEvent.Escape);
|
|
||||||
e.Handled = true;
|
|
||||||
break;
|
|
||||||
case Key.Back:
|
|
||||||
m_d3dInterop.OnCocos2dKeyEvent(Cocos2dKeyEvent.Back);
|
|
||||||
e.Handled = true;
|
|
||||||
break;
|
|
||||||
case Key.Enter:
|
|
||||||
m_d3dInterop.OnCocos2dKeyEvent(Cocos2dKeyEvent.Enter);
|
|
||||||
e.Handled = true;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnKeyUp(object sender, KeyEventArgs e)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnTextChanged(object sender, TextChangedEventArgs e)
|
|
||||||
{
|
|
||||||
if (m_textBox.Text.Length > 0)
|
|
||||||
{
|
|
||||||
m_d3dInterop.OnCocos2dKeyEvent(Cocos2dKeyEvent.Text, m_textBox.Text);
|
|
||||||
m_textBox.Text = "";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Called by the Cocos2d-x C++ engine to display a MessageBox
|
|
||||||
public void OnCocos2dMessageBoxEvent(String title, String text)
|
|
||||||
{
|
|
||||||
Dispatcher.BeginInvoke(() =>
|
|
||||||
{
|
|
||||||
MessageBox.Show(text, title, MessageBoxButton.OK);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// events called by the Cocos2d-x C++ engine to be handled by C#
|
|
||||||
public void OnCocos2dEvent(Cocos2dEvent theEvent, String text)
|
|
||||||
{
|
|
||||||
Dispatcher.BeginInvoke(() =>
|
|
||||||
{
|
|
||||||
switch (theEvent)
|
|
||||||
{
|
|
||||||
case Cocos2dEvent.TerminateApp:
|
|
||||||
Application.Current.Terminate();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case Cocos2dEvent.ShowKeyboard:
|
|
||||||
if (m_textBox == null)
|
|
||||||
{
|
|
||||||
m_textBox = new TextBox();
|
|
||||||
m_textBox.Opacity = 0.0;
|
|
||||||
m_textBox.Width = 1;
|
|
||||||
m_textBox.Height = 1;
|
|
||||||
m_textBox.KeyDown += OnKeyDown;
|
|
||||||
m_textBox.TextChanged += OnTextChanged;
|
|
||||||
DrawingSurfaceBackground.Children.Add(m_textBox);
|
|
||||||
}
|
|
||||||
m_textBox.SelectionLength = 0;
|
|
||||||
m_textBox.SelectionStart = int.MaxValue;
|
|
||||||
m_textBox.Focus();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case Cocos2dEvent.HideKeyboard:
|
|
||||||
if (m_textBox != null)
|
|
||||||
{
|
|
||||||
DrawingSurfaceBackground.Children.Remove(m_textBox);
|
|
||||||
}
|
|
||||||
m_textBox = null;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Called by the Cocos2d-x C++ engine to display a CCEditBox
|
|
||||||
public void OpenEditBox(String strPlaceHolder, string strText, int maxLength, int inputMode, int inputFlag, EventHandler<String> receiveHandler)
|
|
||||||
{
|
|
||||||
m_receiveHandler = receiveHandler;
|
|
||||||
Deployment.Current.Dispatcher.BeginInvoke(() =>
|
|
||||||
{
|
|
||||||
EditBox editbox = new EditBox(this, strPlaceHolder, strText, maxLength, inputMode, inputFlag);
|
|
||||||
DrawingSurfaceBackground.Children.Add(editbox);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnSelectText(object sender, String str)
|
|
||||||
{
|
|
||||||
if (m_d3dInterop != null && m_receiveHandler != null)
|
|
||||||
{
|
|
||||||
m_d3dInterop.OnCocos2dEditboxEvent(sender, str, m_receiveHandler);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OpenURL(String url)
|
|
||||||
{
|
|
||||||
WebBrowserTask webBrowserTask = new WebBrowserTask();
|
|
||||||
webBrowserTask.Uri = new Uri(url, UriKind.Absolute);
|
|
||||||
webBrowserTask.Show();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void StartTimer()
|
|
||||||
{
|
|
||||||
m_timer = new DispatcherTimer();
|
|
||||||
m_timer.Interval = new TimeSpan(0, 0, 1);
|
|
||||||
m_timer.Tick += new EventHandler(TimerTick);
|
|
||||||
m_timer.Start();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void TimerTick(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
// These are TextBlock controls that are created in the page’s XAML file.
|
|
||||||
float value = DeviceStatus.ApplicationCurrentMemoryUsage / (1024.0f * 1024.0f);
|
|
||||||
MemoryTextBlock.Text = value.ToString();
|
|
||||||
value = DeviceStatus.ApplicationPeakMemoryUsage / (1024.0f * 1024.0f);
|
|
||||||
PeakMemoryTextBlock.Text = value.ToString();
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
MemoryTextBlock.Text = ex.Message;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,560 +0,0 @@
|
||||||
/****************************************************************************
|
|
||||||
Copyright (c) 2013 cocos2d-x.org
|
|
||||||
Copyright (c) Microsoft Open Technologies, Inc.
|
|
||||||
|
|
||||||
http://www.cocos2d-x.org
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
#include "CCGLViewImpl-wp8.h"
|
|
||||||
#include "deprecated/CCSet.h"
|
|
||||||
#include "base/ccMacros.h"
|
|
||||||
#include "base/CCDirector.h"
|
|
||||||
#include "base/CCTouch.h"
|
|
||||||
#include "base/CCIMEDispatcher.h"
|
|
||||||
#include "CCApplication.h"
|
|
||||||
#include "CCWinRTUtils.h"
|
|
||||||
#include "deprecated/CCNotificationCenter.h"
|
|
||||||
|
|
||||||
using namespace Platform;
|
|
||||||
using namespace Windows::Foundation;
|
|
||||||
using namespace Windows::Foundation::Collections;
|
|
||||||
using namespace Windows::Graphics::Display;
|
|
||||||
using namespace Windows::UI::Input;
|
|
||||||
using namespace Windows::UI::Core;
|
|
||||||
using namespace Windows::UI::Xaml;
|
|
||||||
using namespace Windows::UI::Xaml::Media;
|
|
||||||
using namespace Windows::System;
|
|
||||||
using namespace Windows::UI::ViewManagement;
|
|
||||||
using namespace Windows::ApplicationModel;
|
|
||||||
using namespace Windows::ApplicationModel::Core;
|
|
||||||
using namespace Windows::ApplicationModel::Activation;
|
|
||||||
using namespace Windows::Phone::UI::Core;
|
|
||||||
using namespace Platform;
|
|
||||||
using namespace Microsoft::WRL;
|
|
||||||
|
|
||||||
|
|
||||||
NS_CC_BEGIN
|
|
||||||
|
|
||||||
static GLViewImpl* s_pEglView = NULL;
|
|
||||||
|
|
||||||
GLViewImpl* GLViewImpl::create(const std::string& viewName)
|
|
||||||
{
|
|
||||||
auto ret = new GLViewImpl;
|
|
||||||
if(ret && ret->initWithFullScreen(viewName))
|
|
||||||
{
|
|
||||||
ret->autorelease();
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
GLViewImpl::GLViewImpl()
|
|
||||||
: _frameZoomFactor(1.0f)
|
|
||||||
, _supportTouch(true)
|
|
||||||
, _isRetina(false)
|
|
||||||
, m_lastPointValid(false)
|
|
||||||
, m_running(false)
|
|
||||||
, m_initialized(false)
|
|
||||||
, m_windowClosed(false)
|
|
||||||
, m_windowVisible(true)
|
|
||||||
, m_width(0)
|
|
||||||
, m_height(0)
|
|
||||||
, m_eglDisplay(nullptr)
|
|
||||||
, m_eglContext(nullptr)
|
|
||||||
, m_eglSurface(nullptr)
|
|
||||||
, m_delegate(nullptr)
|
|
||||||
, m_messageBoxDelegate(nullptr)
|
|
||||||
, m_orientation(DisplayOrientations::Landscape)
|
|
||||||
{
|
|
||||||
s_pEglView = this;
|
|
||||||
_viewName = "cocos2dx";
|
|
||||||
}
|
|
||||||
|
|
||||||
GLViewImpl::~GLViewImpl()
|
|
||||||
{
|
|
||||||
CC_ASSERT(this == s_pEglView);
|
|
||||||
s_pEglView = NULL;
|
|
||||||
|
|
||||||
// TODO: cleanup
|
|
||||||
}
|
|
||||||
|
|
||||||
bool GLViewImpl::initWithRect(const std::string& viewName, Rect rect, float frameZoomFactor)
|
|
||||||
{
|
|
||||||
setViewName(viewName);
|
|
||||||
setFrameSize(rect.size.width, rect.size.height);
|
|
||||||
setFrameZoomFactor(frameZoomFactor);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool GLViewImpl::initWithFullScreen(const std::string& viewName)
|
|
||||||
{
|
|
||||||
return initWithRect(viewName, Rect(0, 0, m_width, m_height), 1.0f);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
bool GLViewImpl::Create(EGLDisplay eglDisplay, EGLContext eglContext, EGLSurface eglSurface, float width, float height, DisplayOrientations orientation)
|
|
||||||
{
|
|
||||||
m_orientation = orientation;
|
|
||||||
m_eglDisplay = eglDisplay;
|
|
||||||
m_eglContext = eglContext;
|
|
||||||
m_eglSurface = eglSurface;
|
|
||||||
UpdateForWindowSizeChange(width, height);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void GLViewImpl::UpdateDevice(EGLDisplay eglDisplay, EGLContext eglContext, EGLSurface eglSurface)
|
|
||||||
{
|
|
||||||
m_eglDisplay = eglDisplay;
|
|
||||||
m_eglContext = eglContext;
|
|
||||||
m_eglSurface = eglSurface;
|
|
||||||
|
|
||||||
//UpdateForWindowSizeChange(width, height);
|
|
||||||
}
|
|
||||||
|
|
||||||
void GLViewImpl::setIMEKeyboardState(bool bOpen)
|
|
||||||
{
|
|
||||||
std::string str;
|
|
||||||
setIMEKeyboardState(bOpen, str);
|
|
||||||
}
|
|
||||||
|
|
||||||
void GLViewImpl::setIMEKeyboardState(bool bOpen, std::string str)
|
|
||||||
{
|
|
||||||
if(m_delegate)
|
|
||||||
{
|
|
||||||
if(bOpen)
|
|
||||||
{
|
|
||||||
m_delegate->Invoke(Cocos2dEvent::ShowKeyboard, stringToPlatformString(str));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
m_delegate->Invoke(Cocos2dEvent::HideKeyboard, stringToPlatformString(str));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Platform::String^ GLViewImpl::stringToPlatformString(std::string strSrc)
|
|
||||||
{
|
|
||||||
// to wide char
|
|
||||||
int strLen = MultiByteToWideChar(CP_UTF8, 0, strSrc.c_str(), -1, NULL, 0);
|
|
||||||
wchar_t* wstr = new wchar_t[strLen + 1];
|
|
||||||
memset(wstr, 0, strLen + 1);
|
|
||||||
MultiByteToWideChar(CP_UTF8, 0, strSrc.c_str(), -1, wstr, strLen);
|
|
||||||
Platform::String^ strDst = ref new Platform::String(wstr);
|
|
||||||
delete[] wstr;
|
|
||||||
return strDst;
|
|
||||||
}
|
|
||||||
|
|
||||||
void GLViewImpl::swapBuffers()
|
|
||||||
{
|
|
||||||
eglSwapBuffers(m_eglDisplay, m_eglSurface);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
bool GLViewImpl::isOpenGLReady()
|
|
||||||
{
|
|
||||||
// TODO: need to revisit this
|
|
||||||
return (m_eglDisplay && m_orientation != DisplayOrientations::None);
|
|
||||||
}
|
|
||||||
|
|
||||||
void GLViewImpl::end()
|
|
||||||
{
|
|
||||||
m_windowClosed = true;
|
|
||||||
std::string str;
|
|
||||||
if (m_delegate) {
|
|
||||||
// Terminate app on Director::getInstance()->end();
|
|
||||||
m_delegate->Invoke(Cocos2dEvent::TerminateApp, stringToPlatformString(str));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void GLViewImpl::OnSuspending(Platform::Object^ sender, SuspendingEventArgs^ args)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void GLViewImpl::OnResuming(Platform::Object^ sender, Platform::Object^ args)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
// user pressed the Back Key on the phone
|
|
||||||
void GLViewImpl::OnBackKeyPress()
|
|
||||||
{
|
|
||||||
EventKeyboard event(EventKeyboard::KeyCode::KEY_ESCAPE, false);
|
|
||||||
Director::getInstance()->getEventDispatcher()->dispatchEvent(&event);
|
|
||||||
}
|
|
||||||
|
|
||||||
void GLViewImpl::OnPointerPressed(CoreWindow^ sender, PointerEventArgs^ args)
|
|
||||||
{
|
|
||||||
OnPointerPressed(args);
|
|
||||||
}
|
|
||||||
|
|
||||||
void GLViewImpl::OnPointerPressed(PointerEventArgs^ args)
|
|
||||||
{
|
|
||||||
int id = args->CurrentPoint->PointerId;
|
|
||||||
Vec2 pt = GetPoint(args);
|
|
||||||
handleTouchesBegin(1, &id, &pt.x, &pt.y);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void GLViewImpl::OnPointerWheelChanged(CoreWindow^ sender, PointerEventArgs^ args)
|
|
||||||
{
|
|
||||||
float direction = (float)args->CurrentPoint->Properties->MouseWheelDelta;
|
|
||||||
int id = 0;
|
|
||||||
Vec2 p(0.0f,0.0f);
|
|
||||||
handleTouchesBegin(1, &id, &p.x, &p.y);
|
|
||||||
p.y += direction;
|
|
||||||
handleTouchesMove(1, &id, &p.x, &p.y);
|
|
||||||
handleTouchesEnd(1, &id, &p.x, &p.y);
|
|
||||||
}
|
|
||||||
|
|
||||||
void GLViewImpl::OnVisibilityChanged(CoreWindow^ sender, VisibilityChangedEventArgs^ args)
|
|
||||||
{
|
|
||||||
m_windowVisible = args->Visible;
|
|
||||||
}
|
|
||||||
|
|
||||||
void GLViewImpl::OnWindowClosed(CoreWindow^ sender, CoreWindowEventArgs^ args)
|
|
||||||
{
|
|
||||||
m_windowClosed = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void GLViewImpl::OnPointerMoved(CoreWindow^ sender, PointerEventArgs^ args)
|
|
||||||
{
|
|
||||||
OnPointerMoved(args);
|
|
||||||
}
|
|
||||||
|
|
||||||
void GLViewImpl::OnPointerMoved( PointerEventArgs^ args)
|
|
||||||
{
|
|
||||||
auto currentPoint = args->CurrentPoint;
|
|
||||||
if (currentPoint->IsInContact)
|
|
||||||
{
|
|
||||||
if (m_lastPointValid)
|
|
||||||
{
|
|
||||||
int id = args->CurrentPoint->PointerId;
|
|
||||||
Vec2 p = GetPoint(args);
|
|
||||||
handleTouchesMove(1, &id, &p.x, &p.y);
|
|
||||||
}
|
|
||||||
m_lastPoint = currentPoint->Position;
|
|
||||||
m_lastPointValid = true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
m_lastPointValid = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void GLViewImpl::OnPointerReleased(CoreWindow^ sender, PointerEventArgs^ args)
|
|
||||||
{
|
|
||||||
OnPointerReleased(args);
|
|
||||||
}
|
|
||||||
|
|
||||||
void GLViewImpl::OnPointerReleased(PointerEventArgs^ args)
|
|
||||||
{
|
|
||||||
int id = args->CurrentPoint->PointerId;
|
|
||||||
Vec2 pt = GetPoint(args);
|
|
||||||
handleTouchesEnd(1, &id, &pt.x, &pt.y);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void GLViewImpl::resize(int width, int height)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void GLViewImpl::setFrameZoomFactor(float fZoomFactor)
|
|
||||||
{
|
|
||||||
_frameZoomFactor = fZoomFactor;
|
|
||||||
Director::getInstance()->setProjection(Director::getInstance()->getProjection());
|
|
||||||
//resize(m_obScreenSize.width * fZoomFactor, m_obScreenSize.height * fZoomFactor);
|
|
||||||
}
|
|
||||||
|
|
||||||
float GLViewImpl::getFrameZoomFactor()
|
|
||||||
{
|
|
||||||
return _frameZoomFactor;
|
|
||||||
}
|
|
||||||
|
|
||||||
void GLViewImpl::centerWindow()
|
|
||||||
{
|
|
||||||
// not implemented in WinRT. Window is always full screen
|
|
||||||
}
|
|
||||||
|
|
||||||
GLViewImpl* GLViewImpl::sharedOpenGLView()
|
|
||||||
{
|
|
||||||
return s_pEglView;
|
|
||||||
}
|
|
||||||
|
|
||||||
int GLViewImpl::Run()
|
|
||||||
{
|
|
||||||
// XAML version does not have a run loop
|
|
||||||
m_running = true;
|
|
||||||
return 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
void GLViewImpl::Render()
|
|
||||||
{
|
|
||||||
OnRendering();
|
|
||||||
}
|
|
||||||
|
|
||||||
void GLViewImpl::OnRendering()
|
|
||||||
{
|
|
||||||
if(m_running && m_initialized)
|
|
||||||
{
|
|
||||||
Director::getInstance()->mainLoop();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
bool GLViewImpl::ShowMessageBox(Platform::String^ title, Platform::String^ message)
|
|
||||||
{
|
|
||||||
if(m_messageBoxDelegate)
|
|
||||||
{
|
|
||||||
m_messageBoxDelegate->Invoke(title, message);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool GLViewImpl::OpenXamlEditBox(Platform::String^ strPlaceHolder, Platform::String^ strText, int maxLength, int inputMode, int inputFlag, Windows::Foundation::EventHandler<Platform::String^>^ receiveHandler)
|
|
||||||
{
|
|
||||||
if(m_editBoxDelegate)
|
|
||||||
{
|
|
||||||
m_editBoxDelegate->Invoke(strPlaceHolder, strText, maxLength, inputMode, inputFlag, receiveHandler);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// called by orientation change from WP8 XAML
|
|
||||||
void GLViewImpl::UpdateOrientation(DisplayOrientations orientation)
|
|
||||||
{
|
|
||||||
if(m_orientation != orientation)
|
|
||||||
{
|
|
||||||
m_orientation = orientation;
|
|
||||||
UpdateWindowSize();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// called by size change from WP8 XAML
|
|
||||||
void GLViewImpl::UpdateForWindowSizeChange(float width, float height)
|
|
||||||
{
|
|
||||||
m_width = width;
|
|
||||||
m_height = height;
|
|
||||||
UpdateWindowSize();
|
|
||||||
}
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
win32 version
|
|
||||||
|
|
||||||
void GLViewEventHandler::OnGLFWWindowSizeFunCallback(GLFWwindow *windows, int width, int height)
|
|
||||||
{
|
|
||||||
auto view = Director::getInstance()->getOpenGLView();
|
|
||||||
if(view && view->getResolutionPolicy() != ResolutionPolicy::UNKNOWN)
|
|
||||||
{
|
|
||||||
Size resSize=view->getDesignResolutionSize();
|
|
||||||
ResolutionPolicy resPolicy=view->getResolutionPolicy();
|
|
||||||
view->setFrameSize(width, height);
|
|
||||||
view->setDesignResolutionSize(resSize.width, resSize.height, resPolicy);
|
|
||||||
Director::getInstance()->setViewport();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void GLViewImpl::UpdateWindowSize()
|
|
||||||
{
|
|
||||||
float width, height;
|
|
||||||
|
|
||||||
if(m_orientation == DisplayOrientations::Landscape || m_orientation == DisplayOrientations::LandscapeFlipped)
|
|
||||||
{
|
|
||||||
width = m_height;
|
|
||||||
height = m_width;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
width = m_width;
|
|
||||||
height = m_height;
|
|
||||||
}
|
|
||||||
|
|
||||||
UpdateOrientationMatrix();
|
|
||||||
|
|
||||||
//CCSize designSize = getDesignResolutionSize();
|
|
||||||
if(!m_initialized)
|
|
||||||
{
|
|
||||||
m_initialized = true;
|
|
||||||
GLView::setFrameSize(width, height);
|
|
||||||
}
|
|
||||||
|
|
||||||
auto view = Director::getInstance()->getOpenGLView();
|
|
||||||
if(view && view->getResolutionPolicy() != ResolutionPolicy::UNKNOWN)
|
|
||||||
{
|
|
||||||
Size resSize=view->getDesignResolutionSize();
|
|
||||||
ResolutionPolicy resPolicy=view->getResolutionPolicy();
|
|
||||||
view->setFrameSize(width, height);
|
|
||||||
view->setDesignResolutionSize(resSize.width, resSize.height, resPolicy);
|
|
||||||
Director::getInstance()->setViewport();
|
|
||||||
Director::sharedDirector()->setProjection(Director::sharedDirector()->getProjection());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const Mat4& GLViewImpl::getOrientationMatrix() const
|
|
||||||
{
|
|
||||||
return m_orientationMatrix;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
void GLViewImpl::UpdateOrientationMatrix()
|
|
||||||
{
|
|
||||||
kmMat4Identity(&m_orientationMatrix);
|
|
||||||
kmMat4Identity(&m_reverseOrientationMatrix);
|
|
||||||
switch(m_orientation)
|
|
||||||
{
|
|
||||||
case Windows::Graphics::Display::DisplayOrientations::PortraitFlipped:
|
|
||||||
kmMat4RotationZ(&m_orientationMatrix, M_PI);
|
|
||||||
kmMat4RotationZ(&m_reverseOrientationMatrix, -M_PI);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case Windows::Graphics::Display::DisplayOrientations::Landscape:
|
|
||||||
kmMat4RotationZ(&m_orientationMatrix, -M_PI_2);
|
|
||||||
kmMat4RotationZ(&m_reverseOrientationMatrix, M_PI_2);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case Windows::Graphics::Display::DisplayOrientations::LandscapeFlipped:
|
|
||||||
kmMat4RotationZ(&m_orientationMatrix, M_PI_2);
|
|
||||||
kmMat4RotationZ(&m_reverseOrientationMatrix, -M_PI_2);
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
cocos2d::Vec2 GLViewImpl::TransformToOrientation(Windows::Foundation::Point p)
|
|
||||||
{
|
|
||||||
cocos2d::Vec2 returnValue;
|
|
||||||
|
|
||||||
float x = p.X;
|
|
||||||
float y = p.Y;
|
|
||||||
|
|
||||||
switch (m_orientation)
|
|
||||||
{
|
|
||||||
case DisplayOrientations::Portrait:
|
|
||||||
default:
|
|
||||||
returnValue = Vec2(x, y);
|
|
||||||
break;
|
|
||||||
case DisplayOrientations::Landscape:
|
|
||||||
returnValue = Vec2(y, m_width - x);
|
|
||||||
break;
|
|
||||||
case DisplayOrientations::PortraitFlipped:
|
|
||||||
returnValue = Vec2(m_width - x, m_height - y);
|
|
||||||
break;
|
|
||||||
case DisplayOrientations::LandscapeFlipped:
|
|
||||||
returnValue = Vec2(m_height - y, x);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
float zoomFactor = GLViewImpl::sharedOpenGLView()->getFrameZoomFactor();
|
|
||||||
if(zoomFactor > 0.0f) {
|
|
||||||
returnValue.x /= zoomFactor;
|
|
||||||
returnValue.y /= zoomFactor;
|
|
||||||
}
|
|
||||||
|
|
||||||
// CCLOG("%.2f %.2f : %.2f %.2f", p.X, p.Y,returnValue.x, returnValue.y);
|
|
||||||
|
|
||||||
return returnValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
Vec2 GLViewImpl::GetPoint(PointerEventArgs^ args) {
|
|
||||||
|
|
||||||
return TransformToOrientation(args->CurrentPoint->Position);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void GLViewImpl::setViewPortInPoints(float x , float y , float w , float h)
|
|
||||||
{
|
|
||||||
switch(m_orientation)
|
|
||||||
{
|
|
||||||
case DisplayOrientations::Landscape:
|
|
||||||
case DisplayOrientations::LandscapeFlipped:
|
|
||||||
glViewport((GLint)(y * _scaleY + _viewPortRect.origin.y),
|
|
||||||
(GLint)(x * _scaleX + _viewPortRect.origin.x),
|
|
||||||
(GLsizei)(h * _scaleY),
|
|
||||||
(GLsizei)(w * _scaleX));
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
glViewport((GLint)(x * _scaleX + _viewPortRect.origin.x),
|
|
||||||
(GLint)(y * _scaleY + _viewPortRect.origin.y),
|
|
||||||
(GLsizei)(w * _scaleX),
|
|
||||||
(GLsizei)(h * _scaleY));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void GLViewImpl::setScissorInPoints(float x , float y , float w , float h)
|
|
||||||
{
|
|
||||||
switch(m_orientation)
|
|
||||||
{
|
|
||||||
case DisplayOrientations::Landscape:
|
|
||||||
case DisplayOrientations::LandscapeFlipped:
|
|
||||||
glScissor((GLint)(y * _scaleX + _viewPortRect.origin.y),
|
|
||||||
(GLint)((_viewPortRect.size.width - ((x + w) * _scaleX)) + _viewPortRect.origin.x),
|
|
||||||
(GLsizei)(h * _scaleY),
|
|
||||||
(GLsizei)(w * _scaleX));
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
glScissor((GLint)(x * _scaleX + _viewPortRect.origin.x),
|
|
||||||
(GLint)(y * _scaleY + _viewPortRect.origin.y),
|
|
||||||
(GLsizei)(w * _scaleX),
|
|
||||||
(GLsizei)(h * _scaleY));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void GLViewImpl::QueueBackKeyPress()
|
|
||||||
{
|
|
||||||
std::shared_ptr<BackButtonEvent> e(new BackButtonEvent());
|
|
||||||
mInputEvents.push(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
void GLViewImpl::QueuePointerEvent(PointerEventType type, PointerEventArgs^ args)
|
|
||||||
{
|
|
||||||
std::shared_ptr<PointerEvent> e(new PointerEvent(type, args));
|
|
||||||
mInputEvents.push(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
void GLViewImpl::QueueEvent(std::shared_ptr<InputEvent>& event)
|
|
||||||
{
|
|
||||||
mInputEvents.push(event);
|
|
||||||
}
|
|
||||||
|
|
||||||
void GLViewImpl::ProcessEvents()
|
|
||||||
{
|
|
||||||
std::shared_ptr<InputEvent> e;
|
|
||||||
while (mInputEvents.try_pop(e))
|
|
||||||
{
|
|
||||||
e->execute();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_CC_END
|
|
|
@ -1,189 +0,0 @@
|
||||||
/****************************************************************************
|
|
||||||
Copyright (c) 2010 cocos2d-x.org
|
|
||||||
Copyright (c) Microsoft Open Technologies, Inc.
|
|
||||||
|
|
||||||
http://www.cocos2d-x.org
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
#ifndef __CC_EGLVIEWIMPL_WINRT_H__
|
|
||||||
#define __CC_EGLVIEWIMPL_WINRT_H__
|
|
||||||
|
|
||||||
#include "CCStdC.h"
|
|
||||||
#include "platform/CCCommon.h"
|
|
||||||
#include "platform/CCGLView.h"
|
|
||||||
#include "InputEvent.h"
|
|
||||||
|
|
||||||
|
|
||||||
#include <agile.h>
|
|
||||||
|
|
||||||
#include <wrl/client.h>
|
|
||||||
#include <d3d11_1.h>
|
|
||||||
#include <concurrent_queue.h>
|
|
||||||
|
|
||||||
#include <agile.h>
|
|
||||||
#include <DirectXMath.h>
|
|
||||||
|
|
||||||
#include <EGL/egl.h>
|
|
||||||
|
|
||||||
|
|
||||||
NS_CC_BEGIN
|
|
||||||
|
|
||||||
class GLViewImpl;
|
|
||||||
|
|
||||||
|
|
||||||
class CC_DLL GLViewImpl : public GLView
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
static GLViewImpl* create(const std::string& viewName);
|
|
||||||
|
|
||||||
/* override functions */
|
|
||||||
virtual bool isOpenGLReady();
|
|
||||||
virtual void end();
|
|
||||||
virtual void swapBuffers();
|
|
||||||
virtual void setViewPortInPoints(float x , float y , float w , float h);
|
|
||||||
virtual void setScissorInPoints(float x , float y , float w , float h);
|
|
||||||
const Mat4& getOrientationMatrix() const;
|
|
||||||
const Mat4& getReverseOrientationMatrix () const {return m_reverseOrientationMatrix;};
|
|
||||||
|
|
||||||
Windows::Graphics::Display::DisplayOrientations getDeviceOrientation() {return m_orientation;};
|
|
||||||
Size getRenerTargetSize() const { return Size(m_width, m_height); }
|
|
||||||
|
|
||||||
virtual void setIMEKeyboardState(bool bOpen);
|
|
||||||
virtual void setIMEKeyboardState(bool bOpen, std::string str);
|
|
||||||
Platform::String^ stringToPlatformString(std::string strSrc);
|
|
||||||
void ShowKeyboard(Windows::Foundation::Rect r);
|
|
||||||
void HideKeyboard(Windows::Foundation::Rect r);
|
|
||||||
|
|
||||||
// WP8 XAML app
|
|
||||||
virtual bool Create(EGLDisplay eglDisplay, EGLContext eglContext, EGLSurface eglSurface, float width, float height
|
|
||||||
,Windows::Graphics::Display::DisplayOrientations orientation);
|
|
||||||
virtual void UpdateDevice(EGLDisplay eglDisplay, EGLContext eglContext, EGLSurface eglSurface);
|
|
||||||
|
|
||||||
void OnPointerPressed(Windows::UI::Core::PointerEventArgs^ args);
|
|
||||||
void OnPointerMoved(Windows::UI::Core::PointerEventArgs^ args);
|
|
||||||
void OnPointerReleased(Windows::UI::Core::PointerEventArgs^ args);
|
|
||||||
void OnPointerPressed(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::PointerEventArgs^ args);
|
|
||||||
void OnPointerWheelChanged(Windows::UI::Core::CoreWindow^, Windows::UI::Core::PointerEventArgs^ args);
|
|
||||||
void OnPointerMoved(Windows::UI::Core::CoreWindow^, Windows::UI::Core::PointerEventArgs^ args);
|
|
||||||
void OnPointerReleased(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::PointerEventArgs^ args);
|
|
||||||
void OnVisibilityChanged(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::VisibilityChangedEventArgs^ args);
|
|
||||||
void OnWindowClosed(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::CoreWindowEventArgs^ args);
|
|
||||||
void OnResuming(Platform::Object^ sender, Platform::Object^ args);
|
|
||||||
void OnSuspending(Platform::Object^ sender, Windows::ApplicationModel::SuspendingEventArgs^ args);
|
|
||||||
void OnBackKeyPress();
|
|
||||||
|
|
||||||
void QueueBackKeyPress();
|
|
||||||
void QueuePointerEvent(PointerEventType type, Windows::UI::Core::PointerEventArgs^ args);
|
|
||||||
void GLViewImpl::QueueEvent(std::shared_ptr<InputEvent>& event);
|
|
||||||
|
|
||||||
void SetXamlEventDelegate(Cocos2dEventDelegate^ delegate) { m_delegate = delegate; };
|
|
||||||
void SetXamlMessageBoxDelegate(Cocos2dMessageBoxDelegate^ delegate) { m_messageBoxDelegate = delegate; };
|
|
||||||
void SetXamlEditBoxDelegate(Cocos2dEditBoxDelegate^ delegate) { m_editBoxDelegate = delegate; };
|
|
||||||
|
|
||||||
bool ShowMessageBox(Platform::String^ title, Platform::String^ message);
|
|
||||||
bool OpenXamlEditBox(Platform::String^ strPlaceHolder, Platform::String^ strText, int maxLength, int inputMode, int inputFlag, Windows::Foundation::EventHandler<Platform::String^>^ receiveHandler);
|
|
||||||
|
|
||||||
int Run();
|
|
||||||
void Render();
|
|
||||||
|
|
||||||
void resize(int width, int height);
|
|
||||||
|
|
||||||
float getFrameZoomFactor();
|
|
||||||
void centerWindow();
|
|
||||||
|
|
||||||
void UpdateOrientation(Windows::Graphics::Display::DisplayOrientations orientation);
|
|
||||||
void UpdateForWindowSizeChange(float width, float height);
|
|
||||||
|
|
||||||
// static function
|
|
||||||
/**
|
|
||||||
@brief get the shared main open gl window
|
|
||||||
*/
|
|
||||||
static GLViewImpl* sharedOpenGLView();
|
|
||||||
|
|
||||||
void ProcessEvents();
|
|
||||||
void AddPointerEvent(PointerEventType type, Windows::UI::Core::PointerEventArgs^ args);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
protected:
|
|
||||||
GLViewImpl();
|
|
||||||
virtual ~GLViewImpl();
|
|
||||||
|
|
||||||
bool initWithRect(const std::string& viewName, Rect rect, float frameZoomFactor);
|
|
||||||
bool initWithFullScreen(const std::string& viewName);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Set zoom factor for frame. This method is for debugging big resolution (e.g.new ipad) app on desktop.
|
|
||||||
*/
|
|
||||||
void setFrameZoomFactor(float zoomFactor);
|
|
||||||
|
|
||||||
inline bool isRetina() { return _isRetina; };
|
|
||||||
|
|
||||||
float _frameZoomFactor;
|
|
||||||
bool _supportTouch;
|
|
||||||
bool _isRetina;
|
|
||||||
|
|
||||||
|
|
||||||
private:
|
|
||||||
CC_DISALLOW_COPY_AND_ASSIGN(GLViewImpl);
|
|
||||||
|
|
||||||
void OnRendering();
|
|
||||||
void UpdateWindowSize();
|
|
||||||
void UpdateOrientationMatrix();
|
|
||||||
|
|
||||||
cocos2d::Vec2 TransformToOrientation(Windows::Foundation::Point point);
|
|
||||||
cocos2d::Vec2 GetPoint(Windows::UI::Core::PointerEventArgs^ args);
|
|
||||||
|
|
||||||
Windows::Foundation::Rect m_windowBounds;
|
|
||||||
Windows::Foundation::EventRegistrationToken m_eventToken;
|
|
||||||
Windows::Foundation::Point m_lastPoint;
|
|
||||||
|
|
||||||
float m_width;
|
|
||||||
float m_height;
|
|
||||||
|
|
||||||
Windows::Graphics::Display::DisplayOrientations m_orientation;
|
|
||||||
Windows::Foundation::Rect m_keyboardRect;
|
|
||||||
|
|
||||||
bool m_lastPointValid;
|
|
||||||
bool m_windowClosed;
|
|
||||||
bool m_windowVisible;
|
|
||||||
Mat4 m_orientationMatrix;
|
|
||||||
Mat4 m_reverseOrientationMatrix;
|
|
||||||
|
|
||||||
|
|
||||||
bool m_running;
|
|
||||||
bool m_initialized;
|
|
||||||
|
|
||||||
Microsoft::WRL::ComPtr<IWinrtEglWindow> m_eglWindow;
|
|
||||||
|
|
||||||
EGLDisplay m_eglDisplay;
|
|
||||||
EGLContext m_eglContext;
|
|
||||||
EGLSurface m_eglSurface;
|
|
||||||
Cocos2dEventDelegate^ m_delegate;
|
|
||||||
Cocos2dMessageBoxDelegate^ m_messageBoxDelegate;
|
|
||||||
Cocos2dEditBoxDelegate^ m_editBoxDelegate;
|
|
||||||
|
|
||||||
Concurrency::concurrent_queue<std::shared_ptr<InputEvent>> mInputEvents;
|
|
||||||
};
|
|
||||||
|
|
||||||
NS_CC_END
|
|
||||||
|
|
||||||
#endif // end of __CC_EGLVIEWIMPL_WINRT_H__
|
|
|
@ -1,365 +0,0 @@
|
||||||
// XXX: For some reason, this file must not be compiled
|
|
||||||
// XXX: Ask MS why
|
|
||||||
#if 0
|
|
||||||
|
|
||||||
#include "Direct3DBase.h"
|
|
||||||
|
|
||||||
|
|
||||||
using namespace DirectX;
|
|
||||||
using namespace Microsoft::WRL;
|
|
||||||
using namespace Windows::UI::Core;
|
|
||||||
using namespace Windows::Foundation;
|
|
||||||
using namespace Windows::Graphics::Display;
|
|
||||||
|
|
||||||
// Constructor.
|
|
||||||
Direct3DBase::Direct3DBase()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
// Initialize the Direct3D resources required to run.
|
|
||||||
void Direct3DBase::Initialize(CoreWindow^ window)
|
|
||||||
{
|
|
||||||
m_window = window;
|
|
||||||
|
|
||||||
CreateDeviceResources();
|
|
||||||
CreateWindowSizeDependentResources();
|
|
||||||
}
|
|
||||||
|
|
||||||
// This method is called in the event handler for the SizeChanged event.
|
|
||||||
void Direct3DBase::UpdateForWindowSizeChange()
|
|
||||||
{
|
|
||||||
if (m_window == nullptr)
|
|
||||||
return;
|
|
||||||
if (m_window->Bounds.Width != m_windowBounds.Width ||
|
|
||||||
m_window->Bounds.Height != m_windowBounds.Height ||
|
|
||||||
m_orientation != DisplayProperties::CurrentOrientation )
|
|
||||||
{
|
|
||||||
ID3D11RenderTargetView* nullViews[] = {nullptr};
|
|
||||||
m_d3dContext->OMSetRenderTargets(ARRAYSIZE(nullViews), nullViews, nullptr);
|
|
||||||
m_renderTargetView = nullptr;
|
|
||||||
m_depthStencilView = nullptr;
|
|
||||||
m_d3dContext->Flush();
|
|
||||||
CreateWindowSizeDependentResources();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Recreate all device resources and set them back to the current state.
|
|
||||||
void Direct3DBase::HandleDeviceLost()
|
|
||||||
{
|
|
||||||
// Reset these member variables to ensure that UpdateForWindowSizeChange recreates all resources.
|
|
||||||
m_windowBounds.Width = 0;
|
|
||||||
m_windowBounds.Height = 0;
|
|
||||||
m_swapChain = nullptr;
|
|
||||||
|
|
||||||
CreateDeviceResources();
|
|
||||||
UpdateForWindowSizeChange();
|
|
||||||
}
|
|
||||||
|
|
||||||
// These are the resources that depend on the device.
|
|
||||||
void Direct3DBase::CreateDeviceResources()
|
|
||||||
{
|
|
||||||
// This flag adds support for surfaces with a different color channel ordering
|
|
||||||
// than the API default. It is required for compatibility with Direct2D.
|
|
||||||
UINT creationFlags = D3D11_CREATE_DEVICE_BGRA_SUPPORT;
|
|
||||||
|
|
||||||
#if defined(_DEBUG)
|
|
||||||
// If the project is in a debug build, enable debugging via SDK Layers with this flag.
|
|
||||||
creationFlags |= D3D11_CREATE_DEVICE_DEBUG;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// This array defines the set of DirectX hardware feature levels this app will support.
|
|
||||||
// Note the ordering should be preserved.
|
|
||||||
// Don't forget to declare your application's minimum required feature level in its
|
|
||||||
// description. All applications are assumed to support 9.1 unless otherwise stated.
|
|
||||||
D3D_FEATURE_LEVEL featureLevels[] =
|
|
||||||
{
|
|
||||||
D3D_FEATURE_LEVEL_11_1,
|
|
||||||
D3D_FEATURE_LEVEL_11_0,
|
|
||||||
D3D_FEATURE_LEVEL_10_1,
|
|
||||||
D3D_FEATURE_LEVEL_10_0,
|
|
||||||
D3D_FEATURE_LEVEL_9_3
|
|
||||||
};
|
|
||||||
|
|
||||||
// Create the Direct3D 11 API device object and a corresponding context.
|
|
||||||
ComPtr<ID3D11Device> device;
|
|
||||||
ComPtr<ID3D11DeviceContext> context;
|
|
||||||
DX::ThrowIfFailed(
|
|
||||||
D3D11CreateDevice(
|
|
||||||
nullptr, // Specify nullptr to use the default adapter.
|
|
||||||
D3D_DRIVER_TYPE_HARDWARE,
|
|
||||||
nullptr,
|
|
||||||
creationFlags, // Set set debug and Direct2D compatibility flags.
|
|
||||||
featureLevels, // List of feature levels this app can support.
|
|
||||||
ARRAYSIZE(featureLevels),
|
|
||||||
D3D11_SDK_VERSION, // Always set this to D3D11_SDK_VERSION.
|
|
||||||
&device, // Returns the Direct3D device created.
|
|
||||||
&m_featureLevel, // Returns feature level of device created.
|
|
||||||
&context // Returns the device immediate context.
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
// Get the Direct3D 11.1 API device and context interfaces.
|
|
||||||
DX::ThrowIfFailed(
|
|
||||||
device.As(&m_d3dDevice)
|
|
||||||
);
|
|
||||||
|
|
||||||
DX::ThrowIfFailed(
|
|
||||||
context.As(&m_d3dContext)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Allocate all memory resources that depend on the window size.
|
|
||||||
void Direct3DBase::CreateWindowSizeDependentResources()
|
|
||||||
{
|
|
||||||
m_windowBounds = m_window->Bounds;
|
|
||||||
|
|
||||||
// Calculate the necessary swap chain and render target size in pixels.
|
|
||||||
m_renderTargetSize.Width = ConvertDipsToPixels(m_windowBounds.Width);
|
|
||||||
m_renderTargetSize.Height = ConvertDipsToPixels(m_windowBounds.Height);
|
|
||||||
|
|
||||||
DXGI_SWAP_CHAIN_DESC1 swapChainDesc = {0};
|
|
||||||
swapChainDesc.Width = static_cast<UINT>(m_renderTargetSize.Width); // Match the size of the window.
|
|
||||||
swapChainDesc.Height = static_cast<UINT>(m_renderTargetSize.Height);
|
|
||||||
swapChainDesc.Format = DXGI_FORMAT_B8G8R8A8_UNORM; // This is the most common swap chain format.
|
|
||||||
swapChainDesc.Stereo = false;
|
|
||||||
swapChainDesc.SampleDesc.Count = 1; // Don't use multi-sampling.
|
|
||||||
swapChainDesc.SampleDesc.Quality = 0;
|
|
||||||
swapChainDesc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;
|
|
||||||
swapChainDesc.BufferCount = 1; // On phone, only single buffering is supported.
|
|
||||||
swapChainDesc.Scaling = DXGI_SCALING_STRETCH; // On phone, only stretch and aspect-ratio stretch scaling are allowed.
|
|
||||||
swapChainDesc.SwapEffect = DXGI_SWAP_EFFECT_DISCARD; // On phone, no swap effects are supported.
|
|
||||||
swapChainDesc.Flags = 0;
|
|
||||||
|
|
||||||
ComPtr<IDXGIDevice1> dxgiDevice;
|
|
||||||
DX::ThrowIfFailed(
|
|
||||||
m_d3dDevice.As(&dxgiDevice)
|
|
||||||
);
|
|
||||||
|
|
||||||
ComPtr<IDXGIAdapter> dxgiAdapter;
|
|
||||||
DX::ThrowIfFailed(
|
|
||||||
dxgiDevice->GetAdapter(&dxgiAdapter)
|
|
||||||
);
|
|
||||||
|
|
||||||
ComPtr<IDXGIFactory2> dxgiFactory;
|
|
||||||
DX::ThrowIfFailed(
|
|
||||||
dxgiAdapter->GetParent(
|
|
||||||
__uuidof(IDXGIFactory2),
|
|
||||||
&dxgiFactory
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
Windows::UI::Core::CoreWindow^ window = m_window.Get();
|
|
||||||
DX::ThrowIfFailed(
|
|
||||||
dxgiFactory->CreateSwapChainForCoreWindow(
|
|
||||||
m_d3dDevice.Get(),
|
|
||||||
reinterpret_cast<IUnknown*>(window),
|
|
||||||
&swapChainDesc,
|
|
||||||
nullptr, // Allow on all displays.
|
|
||||||
&m_swapChain
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
// Ensure that DXGI does not queue more than one frame at a time. This both reduces latency and
|
|
||||||
// ensures that the application will only render after each VSync, minimizing power consumption.
|
|
||||||
DX::ThrowIfFailed(
|
|
||||||
dxgiDevice->SetMaximumFrameLatency(1)
|
|
||||||
);
|
|
||||||
|
|
||||||
// Create a render target view of the swap chain back buffer.
|
|
||||||
ComPtr<ID3D11Texture2D> backBuffer;
|
|
||||||
DX::ThrowIfFailed(
|
|
||||||
m_swapChain->GetBuffer(
|
|
||||||
0,
|
|
||||||
__uuidof(ID3D11Texture2D),
|
|
||||||
&backBuffer
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
DX::ThrowIfFailed(
|
|
||||||
m_d3dDevice->CreateRenderTargetView(
|
|
||||||
backBuffer.Get(),
|
|
||||||
nullptr,
|
|
||||||
&m_renderTargetView
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
// Create a depth stencil view.
|
|
||||||
CD3D11_TEXTURE2D_DESC depthStencilDesc(
|
|
||||||
DXGI_FORMAT_D24_UNORM_S8_UINT,
|
|
||||||
static_cast<UINT>(m_renderTargetSize.Width),
|
|
||||||
static_cast<UINT>(m_renderTargetSize.Height),
|
|
||||||
1,
|
|
||||||
1,
|
|
||||||
D3D11_BIND_DEPTH_STENCIL
|
|
||||||
);
|
|
||||||
|
|
||||||
ComPtr<ID3D11Texture2D> depthStencil;
|
|
||||||
DX::ThrowIfFailed(
|
|
||||||
m_d3dDevice->CreateTexture2D(
|
|
||||||
&depthStencilDesc,
|
|
||||||
nullptr,
|
|
||||||
&depthStencil
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
CD3D11_DEPTH_STENCIL_VIEW_DESC depthStencilViewDesc(D3D11_DSV_DIMENSION_TEXTURE2D);
|
|
||||||
DX::ThrowIfFailed(
|
|
||||||
m_d3dDevice->CreateDepthStencilView(
|
|
||||||
depthStencil.Get(),
|
|
||||||
&depthStencilViewDesc,
|
|
||||||
&m_depthStencilView
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
// Set the rendering viewport to target the entire window.
|
|
||||||
CD3D11_VIEWPORT viewport(
|
|
||||||
0.0f,
|
|
||||||
0.0f,
|
|
||||||
m_renderTargetSize.Width,
|
|
||||||
m_renderTargetSize.Height
|
|
||||||
);
|
|
||||||
|
|
||||||
m_d3dContext->RSSetViewports(1, &viewport);
|
|
||||||
|
|
||||||
ComputeOrientationMatrices();
|
|
||||||
}
|
|
||||||
|
|
||||||
void Direct3DBase::ReleaseResourcesForSuspending()
|
|
||||||
{
|
|
||||||
// Phone applications operate in a memory-constrained environment, so when entering
|
|
||||||
// the background it is a good idea to free memory-intensive objects that will be
|
|
||||||
// easy to restore upon reactivation. The swapchain and backbuffer are good candidates
|
|
||||||
// here, as they consume a large amount of memory and can be reinitialized quickly.
|
|
||||||
m_swapChain = nullptr;
|
|
||||||
m_renderTargetView = nullptr;
|
|
||||||
m_depthStencilView = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Method to deliver the final image to the display.
|
|
||||||
void Direct3DBase::Present()
|
|
||||||
{
|
|
||||||
// The first argument instructs DXGI to block until VSync, putting the application
|
|
||||||
// to sleep until the next VSync. This ensures we don't waste any cycles rendering
|
|
||||||
// frames that will never be displayed to the screen.
|
|
||||||
HRESULT hr = m_swapChain->Present(1, 0);
|
|
||||||
|
|
||||||
// Discard the contents of the render target.
|
|
||||||
// This is a valid operation only when the existing contents will be entirely
|
|
||||||
// overwritten. If dirty or scroll rects are used, this call should be removed.
|
|
||||||
m_d3dContext->DiscardView(m_renderTargetView.Get());
|
|
||||||
|
|
||||||
// Discard the contents of the depth stencil.
|
|
||||||
m_d3dContext->DiscardView(m_depthStencilView.Get());
|
|
||||||
|
|
||||||
// If the device was removed either by a disconnect or a driver upgrade, we
|
|
||||||
// must recreate all device resources.
|
|
||||||
if (hr == DXGI_ERROR_DEVICE_REMOVED)
|
|
||||||
{
|
|
||||||
HandleDeviceLost();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
DX::ThrowIfFailed(hr);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Method to convert a length in device-independent pixels (DIPs) to a length in physical pixels.
|
|
||||||
float Direct3DBase::ConvertDipsToPixels(float dips)
|
|
||||||
{
|
|
||||||
static const float dipsPerInch = 96.0f;
|
|
||||||
return floor(dips * DisplayProperties::LogicalDpi / dipsPerInch + 0.5f); // Round to nearest integer.
|
|
||||||
}
|
|
||||||
|
|
||||||
// Method to compute the matrices that will need to be used for rotating whatever we draw.
|
|
||||||
void Direct3DBase::ComputeOrientationMatrices()
|
|
||||||
{
|
|
||||||
// Store the current device orientation
|
|
||||||
m_orientation = DisplayProperties::CurrentOrientation;
|
|
||||||
|
|
||||||
// Generate the matrix transformations for rendering to the new orientation.
|
|
||||||
switch (m_orientation)
|
|
||||||
{
|
|
||||||
case DisplayOrientations::Portrait:
|
|
||||||
// Portrait is default for WP8, so no changes need to be made here
|
|
||||||
// Just use Identity Matrices
|
|
||||||
m_orientationTransform2D = XMMatrixIdentity();
|
|
||||||
m_orientationTransform3D = XMMatrixIdentity();
|
|
||||||
m_orientedScreenSize = m_renderTargetSize;
|
|
||||||
break;
|
|
||||||
case DisplayOrientations::Landscape:
|
|
||||||
//2D: 90-degree Rotation + translation of origin
|
|
||||||
m_orientationTransform2D = XMMatrixMultiply(
|
|
||||||
XMMatrixRotationZ(XM_PIDIV2),
|
|
||||||
XMMatrixTranslation(m_renderTargetSize.Width,0 ,0));
|
|
||||||
//3D: 90-degree Z-rotation
|
|
||||||
m_orientationTransform3D = XMMATRIX(
|
|
||||||
0.0f, -1.0f, 0.0f, 0.0f,
|
|
||||||
1.0f, 0.0f, 0.0f, 0.0f,
|
|
||||||
0.0f, 0.0f, 1.0f, 0.0f,
|
|
||||||
0.0f, 0.0f, 0.0f, 1.0f );
|
|
||||||
m_orientedScreenSize = Size(m_renderTargetSize.Height, m_renderTargetSize.Width);
|
|
||||||
break;
|
|
||||||
case DisplayOrientations::PortraitFlipped:
|
|
||||||
//This is not supported on the phone, but we leave the math here, just in case...
|
|
||||||
//2D: 180-degree Rotation + translation of origin
|
|
||||||
m_orientationTransform2D = XMMatrixMultiply(
|
|
||||||
XMMatrixRotationZ(XM_PI),
|
|
||||||
XMMatrixTranslation(m_renderTargetSize.Width,m_renderTargetSize.Height,0));
|
|
||||||
//3D: // 180-degree Z-rotation
|
|
||||||
m_orientationTransform3D = XMMATRIX(
|
|
||||||
-1.0f, 0.0f, 0.0f, 0.0f,
|
|
||||||
0.0f, -1.0f, 0.0f, 0.0f,
|
|
||||||
0.0f, 0.0f, 1.0f, 0.0f,
|
|
||||||
0.0f, 0.0f, 0.0f, 1.0f
|
|
||||||
);
|
|
||||||
m_orientedScreenSize = m_renderTargetSize;
|
|
||||||
break;
|
|
||||||
case DisplayOrientations::LandscapeFlipped:
|
|
||||||
//2D: 270-degree Rotation + translation of origin
|
|
||||||
m_orientationTransform2D = XMMatrixMultiply(
|
|
||||||
XMMatrixRotationZ(3 * XM_PIDIV2),
|
|
||||||
XMMatrixTranslation(0,m_renderTargetSize.Height,0));
|
|
||||||
//3D: 270-degree Z-rotation
|
|
||||||
m_orientationTransform3D = XMMATRIX(
|
|
||||||
0.0f, 1.0f, 0.0f, 0.0f,
|
|
||||||
-1.0f, 0.0f, 0.0f, 0.0f,
|
|
||||||
0.0f, 0.0f, 1.0f, 0.0f,
|
|
||||||
0.0f, 0.0f, 0.0f, 1.0f );
|
|
||||||
m_orientedScreenSize = Size(m_renderTargetSize.Height, m_renderTargetSize.Width);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
throw ref new Platform::FailureException();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Point Direct3DBase::TransformToOrientation(Point point, bool dipsToPixels)
|
|
||||||
{
|
|
||||||
Point returnValue;
|
|
||||||
|
|
||||||
switch (m_orientation)
|
|
||||||
{
|
|
||||||
case DisplayOrientations::Portrait:
|
|
||||||
returnValue = point;
|
|
||||||
break;
|
|
||||||
case DisplayOrientations::Landscape:
|
|
||||||
returnValue = Point(point.Y, m_windowBounds.Width - point.X);
|
|
||||||
break;
|
|
||||||
case DisplayOrientations::PortraitFlipped:
|
|
||||||
returnValue = Point(m_windowBounds.Width - point.X, m_windowBounds.Height - point.Y);
|
|
||||||
break;
|
|
||||||
case DisplayOrientations::LandscapeFlipped:
|
|
||||||
returnValue = Point(m_windowBounds.Height - point.Y, point.X);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
throw ref new Platform::FailureException();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return dipsToPixels ? Point(ConvertDipsToPixels(returnValue.X),
|
|
||||||
ConvertDipsToPixels(returnValue.Y))
|
|
||||||
: returnValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif // 0
|
|
|
@ -1,63 +0,0 @@
|
||||||
#pragma once
|
|
||||||
|
|
||||||
// XXX: For some reason, this file must not be compiled
|
|
||||||
// XXX: Ask MS why
|
|
||||||
#if 0
|
|
||||||
|
|
||||||
|
|
||||||
#include <wrl/client.h>
|
|
||||||
#include <d3d11_1.h>
|
|
||||||
#include <DirectXMath.h>
|
|
||||||
#include <memory>
|
|
||||||
#include <agile.h>
|
|
||||||
#include "DirectXHelper.h"
|
|
||||||
|
|
||||||
// Helper class that initializes DirectX APIs for 3D rendering.
|
|
||||||
ref class Direct3DBase abstract
|
|
||||||
{
|
|
||||||
internal:
|
|
||||||
Direct3DBase();
|
|
||||||
|
|
||||||
public:
|
|
||||||
virtual void Initialize(Windows::UI::Core::CoreWindow^ window);
|
|
||||||
virtual void HandleDeviceLost();
|
|
||||||
virtual void CreateDeviceResources();
|
|
||||||
virtual void CreateWindowSizeDependentResources();
|
|
||||||
virtual void UpdateForWindowSizeChange();
|
|
||||||
virtual void ReleaseResourcesForSuspending();
|
|
||||||
//virtual void Render() = 0;
|
|
||||||
virtual void Present();
|
|
||||||
virtual float ConvertDipsToPixels(float dips);
|
|
||||||
virtual void ComputeOrientationMatrices();
|
|
||||||
virtual Windows::Foundation::Point TransformToOrientation(Windows::Foundation::Point point, bool dipsToPixels=true);
|
|
||||||
|
|
||||||
float getOrientedWindowWidth() {return m_orientedScreenSize.Width;};
|
|
||||||
float getOrientedWindowHeight() {return m_orientedScreenSize.Height;};
|
|
||||||
|
|
||||||
protected private:
|
|
||||||
// Direct3D Objects.
|
|
||||||
Microsoft::WRL::ComPtr<ID3D11Device1> m_d3dDevice;
|
|
||||||
Microsoft::WRL::ComPtr<ID3D11DeviceContext1> m_d3dContext;
|
|
||||||
Microsoft::WRL::ComPtr<IDXGISwapChain1> m_swapChain;
|
|
||||||
Microsoft::WRL::ComPtr<ID3D11RenderTargetView> m_renderTargetView;
|
|
||||||
Microsoft::WRL::ComPtr<ID3D11DepthStencilView> m_depthStencilView;
|
|
||||||
|
|
||||||
// Cached renderer properties.
|
|
||||||
D3D_FEATURE_LEVEL m_featureLevel;
|
|
||||||
Windows::Foundation::Size m_renderTargetSize;
|
|
||||||
Windows::Foundation::Rect m_windowBounds;
|
|
||||||
Platform::Agile<Windows::UI::Core::CoreWindow> m_window;
|
|
||||||
|
|
||||||
|
|
||||||
// Store the current Orientation of the device
|
|
||||||
Windows::Graphics::Display::DisplayOrientations m_orientation;
|
|
||||||
|
|
||||||
// Size of the virtual, oriented screen
|
|
||||||
Windows::Foundation::Size m_orientedScreenSize;
|
|
||||||
|
|
||||||
// Transforms used for rendering 2D and 3D elements in proper orientation
|
|
||||||
DirectX::XMMATRIX m_orientationTransform3D;
|
|
||||||
DirectX::XMMATRIX m_orientationTransform2D;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // 0
|
|
|
@ -1,284 +0,0 @@
|
||||||
// XXX: For some reason, this file must not be compiled
|
|
||||||
// XXX: Ask MS why
|
|
||||||
#if 0
|
|
||||||
|
|
||||||
#include <wrl/client.h>
|
|
||||||
#include <d3d11_1.h>
|
|
||||||
#include "DirectXBase.h"
|
|
||||||
|
|
||||||
using namespace Microsoft::WRL;
|
|
||||||
using namespace Windows::UI::Core;
|
|
||||||
using namespace Windows::Foundation;
|
|
||||||
using namespace Windows::Graphics::Display;
|
|
||||||
|
|
||||||
// Constructor.
|
|
||||||
DirectXBase::DirectXBase()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
// Initialize the Direct3D resources required to run.
|
|
||||||
void DirectXBase::Initialize(CoreWindow^ window, float dpi)
|
|
||||||
{
|
|
||||||
m_window = window;
|
|
||||||
CreateDeviceResources();
|
|
||||||
CreateWindowSizeDependentResources();
|
|
||||||
SetDpi(dpi);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Recreate all device resources and set them back to the current state.
|
|
||||||
void DirectXBase::HandleDeviceLost()
|
|
||||||
{
|
|
||||||
// Reset these member variables to ensure that UpdateForWindowSizeChange recreates all resources.
|
|
||||||
m_windowBounds.Width = 0;
|
|
||||||
m_windowBounds.Height = 0;
|
|
||||||
m_swapChain = nullptr;
|
|
||||||
|
|
||||||
CreateDeviceResources();
|
|
||||||
UpdateForWindowSizeChange();
|
|
||||||
}
|
|
||||||
|
|
||||||
// These are the resources that depend on the device.
|
|
||||||
void DirectXBase::CreateDeviceResources()
|
|
||||||
{
|
|
||||||
// This flag adds support for surfaces with a different color channel ordering
|
|
||||||
// than the API default. It is required for compatibility with Direct2D.
|
|
||||||
UINT creationFlags = D3D11_CREATE_DEVICE_BGRA_SUPPORT;
|
|
||||||
|
|
||||||
#if defined(_DEBUG)
|
|
||||||
// If the project is in a debug build, enable debugging via SDK Layers with this flag.
|
|
||||||
creationFlags |= D3D11_CREATE_DEVICE_DEBUG;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// This array defines the set of DirectX hardware feature levels this app will support.
|
|
||||||
// Note the ordering should be preserved.
|
|
||||||
// Don't forget to declare your application's minimum required feature level in its
|
|
||||||
// description. All applications are assumed to support 9.1 unless otherwise stated.
|
|
||||||
D3D_FEATURE_LEVEL featureLevels[] =
|
|
||||||
{
|
|
||||||
D3D_FEATURE_LEVEL_11_1,
|
|
||||||
D3D_FEATURE_LEVEL_11_0,
|
|
||||||
D3D_FEATURE_LEVEL_10_1,
|
|
||||||
D3D_FEATURE_LEVEL_10_0,
|
|
||||||
D3D_FEATURE_LEVEL_9_3
|
|
||||||
};
|
|
||||||
|
|
||||||
// Create the Direct3D 11 API device object and a corresponding context.
|
|
||||||
ComPtr<ID3D11Device> device;
|
|
||||||
ComPtr<ID3D11DeviceContext> context;
|
|
||||||
DX::ThrowIfFailed(
|
|
||||||
D3D11CreateDevice(
|
|
||||||
nullptr, // Specify nullptr to use the default adapter.
|
|
||||||
D3D_DRIVER_TYPE_HARDWARE,
|
|
||||||
nullptr,
|
|
||||||
creationFlags, // Set set debug and Direct2D compatibility flags.
|
|
||||||
featureLevels, // List of feature levels this app can support.
|
|
||||||
ARRAYSIZE(featureLevels),
|
|
||||||
D3D11_SDK_VERSION, // Always set this to D3D11_SDK_VERSION.
|
|
||||||
&device, // Returns the Direct3D device created.
|
|
||||||
&m_featureLevel, // Returns feature level of device created.
|
|
||||||
&context // Returns the device immediate context.
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
// Get the Direct3D 11.1 API device and context interfaces.
|
|
||||||
DX::ThrowIfFailed(
|
|
||||||
device.As(&m_d3dDevice)
|
|
||||||
);
|
|
||||||
|
|
||||||
DX::ThrowIfFailed(
|
|
||||||
context.As(&m_d3dContext)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Allocate all memory resources that depend on the window size.
|
|
||||||
void DirectXBase::CreateWindowSizeDependentResources()
|
|
||||||
{
|
|
||||||
m_windowBounds = m_window->Bounds;
|
|
||||||
|
|
||||||
// Calculate the necessary swap chain and render target size in pixels.
|
|
||||||
m_renderTargetSize.Width = ConvertDipsToPixels(m_windowBounds.Width);
|
|
||||||
m_renderTargetSize.Height = ConvertDipsToPixels(m_windowBounds.Height);
|
|
||||||
|
|
||||||
DXGI_SWAP_CHAIN_DESC1 swapChainDesc = {0};
|
|
||||||
swapChainDesc.Width = static_cast<UINT>(m_renderTargetSize.Width); // Match the size of the window.
|
|
||||||
swapChainDesc.Height = static_cast<UINT>(m_renderTargetSize.Height);
|
|
||||||
swapChainDesc.Format = DXGI_FORMAT_B8G8R8A8_UNORM; // This is the most common swap chain format.
|
|
||||||
swapChainDesc.Stereo = false;
|
|
||||||
swapChainDesc.SampleDesc.Count = 1; // Don't use multi-sampling.
|
|
||||||
swapChainDesc.SampleDesc.Quality = 0;
|
|
||||||
swapChainDesc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;
|
|
||||||
swapChainDesc.BufferCount = 1; // On phone, only single buffering is supported.
|
|
||||||
swapChainDesc.Scaling = DXGI_SCALING_STRETCH; // On phone, only stretch and aspect-ratio stretch scaling are allowed.
|
|
||||||
swapChainDesc.SwapEffect = DXGI_SWAP_EFFECT_DISCARD; // On phone, no swap effects are supported.
|
|
||||||
swapChainDesc.Flags = 0;
|
|
||||||
|
|
||||||
ComPtr<IDXGIDevice1> dxgiDevice;
|
|
||||||
DX::ThrowIfFailed(
|
|
||||||
m_d3dDevice.As(&dxgiDevice)
|
|
||||||
);
|
|
||||||
|
|
||||||
ComPtr<IDXGIAdapter> dxgiAdapter;
|
|
||||||
DX::ThrowIfFailed(
|
|
||||||
dxgiDevice->GetAdapter(&dxgiAdapter)
|
|
||||||
);
|
|
||||||
|
|
||||||
ComPtr<IDXGIFactory2> dxgiFactory;
|
|
||||||
DX::ThrowIfFailed(
|
|
||||||
dxgiAdapter->GetParent(
|
|
||||||
__uuidof(IDXGIFactory2),
|
|
||||||
&dxgiFactory
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
Windows::UI::Core::CoreWindow^ window = m_window.Get();
|
|
||||||
DX::ThrowIfFailed(
|
|
||||||
dxgiFactory->CreateSwapChainForCoreWindow(
|
|
||||||
m_d3dDevice.Get(),
|
|
||||||
reinterpret_cast<IUnknown*>(window),
|
|
||||||
&swapChainDesc,
|
|
||||||
nullptr, // Allow on all displays.
|
|
||||||
&m_swapChain
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
// Ensure that DXGI does not queue more than one frame at a time. This both reduces latency and
|
|
||||||
// ensures that the application will only render after each VSync, minimizing power consumption.
|
|
||||||
DX::ThrowIfFailed(
|
|
||||||
dxgiDevice->SetMaximumFrameLatency(1)
|
|
||||||
);
|
|
||||||
|
|
||||||
// Create a render target view of the swap chain back buffer.
|
|
||||||
ComPtr<ID3D11Texture2D> backBuffer;
|
|
||||||
DX::ThrowIfFailed(
|
|
||||||
m_swapChain->GetBuffer(
|
|
||||||
0,
|
|
||||||
__uuidof(ID3D11Texture2D),
|
|
||||||
&backBuffer
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
DX::ThrowIfFailed(
|
|
||||||
m_d3dDevice->CreateRenderTargetView(
|
|
||||||
backBuffer.Get(),
|
|
||||||
nullptr,
|
|
||||||
&m_renderTargetView
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
// Create a depth stencil view.
|
|
||||||
CD3D11_TEXTURE2D_DESC depthStencilDesc(
|
|
||||||
DXGI_FORMAT_D24_UNORM_S8_UINT,
|
|
||||||
static_cast<UINT>(m_renderTargetSize.Width),
|
|
||||||
static_cast<UINT>(m_renderTargetSize.Height),
|
|
||||||
1,
|
|
||||||
1,
|
|
||||||
D3D11_BIND_DEPTH_STENCIL
|
|
||||||
);
|
|
||||||
|
|
||||||
ComPtr<ID3D11Texture2D> depthStencil;
|
|
||||||
DX::ThrowIfFailed(
|
|
||||||
m_d3dDevice->CreateTexture2D(
|
|
||||||
&depthStencilDesc,
|
|
||||||
nullptr,
|
|
||||||
&depthStencil
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
CD3D11_DEPTH_STENCIL_VIEW_DESC depthStencilViewDesc(D3D11_DSV_DIMENSION_TEXTURE2D);
|
|
||||||
DX::ThrowIfFailed(
|
|
||||||
m_d3dDevice->CreateDepthStencilView(
|
|
||||||
depthStencil.Get(),
|
|
||||||
&depthStencilViewDesc,
|
|
||||||
&m_depthStencilView
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
// Set the rendering viewport to target the entire window.
|
|
||||||
CD3D11_VIEWPORT viewport(
|
|
||||||
0.0f,
|
|
||||||
0.0f,
|
|
||||||
m_renderTargetSize.Width,
|
|
||||||
m_renderTargetSize.Height
|
|
||||||
);
|
|
||||||
|
|
||||||
m_d3dContext->RSSetViewports(1, &viewport);
|
|
||||||
}
|
|
||||||
|
|
||||||
// This method is called in the event handler for the SizeChanged event.
|
|
||||||
void DirectXBase::UpdateForWindowSizeChange()
|
|
||||||
{
|
|
||||||
if (m_window->Bounds.Width != m_windowBounds.Width ||
|
|
||||||
m_window->Bounds.Height != m_windowBounds.Height)
|
|
||||||
{
|
|
||||||
ID3D11RenderTargetView* nullViews[] = {nullptr};
|
|
||||||
m_d3dContext->OMSetRenderTargets(ARRAYSIZE(nullViews), nullViews, nullptr);
|
|
||||||
m_renderTargetView = nullptr;
|
|
||||||
m_depthStencilView = nullptr;
|
|
||||||
m_d3dContext->Flush();
|
|
||||||
CreateWindowSizeDependentResources();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void DirectXBase::ReleaseResourcesForSuspending()
|
|
||||||
{
|
|
||||||
// Phone applications operate in a memory-constrained environment, so when entering
|
|
||||||
// the background it is a good idea to free memory-intensive objects that will be
|
|
||||||
// easy to restore upon reactivation. The swapchain and backbuffer are good candidates
|
|
||||||
// here, as they consume a large amount of memory and can be reinitialized quickly.
|
|
||||||
m_swapChain = nullptr;
|
|
||||||
m_renderTargetView = nullptr;
|
|
||||||
m_depthStencilView = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Method to deliver the final image to the display.
|
|
||||||
void DirectXBase::Present()
|
|
||||||
{
|
|
||||||
// The first argument instructs DXGI to block until VSync, putting the application
|
|
||||||
// to sleep until the next VSync. This ensures we don't waste any cycles rendering
|
|
||||||
// frames that will never be displayed to the screen.
|
|
||||||
HRESULT hr = m_swapChain->Present(1, 0);
|
|
||||||
|
|
||||||
// Discard the contents of the render target.
|
|
||||||
// This is a valid operation only when the existing contents will be entirely
|
|
||||||
// overwritten. If dirty or scroll rects are used, this call should be removed.
|
|
||||||
m_d3dContext->DiscardView(m_renderTargetView.Get());
|
|
||||||
|
|
||||||
// Discard the contents of the depth stencil.
|
|
||||||
m_d3dContext->DiscardView(m_depthStencilView.Get());
|
|
||||||
|
|
||||||
// If the device was removed either by a disconnect or a driver upgrade, we
|
|
||||||
// must recreate all device resources.
|
|
||||||
if (hr == DXGI_ERROR_DEVICE_REMOVED)
|
|
||||||
{
|
|
||||||
HandleDeviceLost();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
DX::ThrowIfFailed(hr);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Method to convert a length in device-independent pixels (DIPs) to a length in physical pixels.
|
|
||||||
float DirectXBase::ConvertDipsToPixels(float dips)
|
|
||||||
{
|
|
||||||
static const float dipsPerInch = 96.0f;
|
|
||||||
return floor(dips * DisplayProperties::LogicalDpi / dipsPerInch + 0.5f); // Round to nearest integer.
|
|
||||||
}
|
|
||||||
|
|
||||||
// Helps track the DPI in the helper class.
|
|
||||||
// This is called in the dpiChanged event handler in the view class.
|
|
||||||
void DirectXBase::SetDpi(float dpi)
|
|
||||||
{
|
|
||||||
if (dpi != m_dpi)
|
|
||||||
{
|
|
||||||
// Save the DPI of this display in our class.
|
|
||||||
m_dpi = dpi;
|
|
||||||
|
|
||||||
// Often a DPI change implies a window size change. In some cases Windows will issues
|
|
||||||
// both a size changed event and a DPI changed event. In this case, the resulting bounds
|
|
||||||
// will not change, and the window resize code will only be executed once.
|
|
||||||
UpdateForWindowSizeChange();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif //0
|
|
|
@ -1,46 +0,0 @@
|
||||||
// XXX: For some reason, this file must not be compiled
|
|
||||||
// XXX: Ask MS why
|
|
||||||
#if 0
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "DirectXHelper.h"
|
|
||||||
#include <wrl/client.h>
|
|
||||||
#include <d3d11_1.h>
|
|
||||||
#include <agile.h>
|
|
||||||
|
|
||||||
// Helper class that initializes DirectX APIs for 3D rendering.
|
|
||||||
ref class DirectXBase abstract
|
|
||||||
{
|
|
||||||
internal:
|
|
||||||
DirectXBase();
|
|
||||||
|
|
||||||
public:
|
|
||||||
virtual void Initialize(Windows::UI::Core::CoreWindow^ window, float dpi);
|
|
||||||
virtual void HandleDeviceLost();
|
|
||||||
virtual void CreateDeviceResources();
|
|
||||||
virtual void CreateWindowSizeDependentResources();
|
|
||||||
virtual void UpdateForWindowSizeChange();
|
|
||||||
virtual void ReleaseResourcesForSuspending();
|
|
||||||
virtual void Present();
|
|
||||||
virtual float ConvertDipsToPixels(float dips);
|
|
||||||
virtual void SetDpi(float dpi);
|
|
||||||
|
|
||||||
protected private:
|
|
||||||
// Direct3D Objects.
|
|
||||||
Microsoft::WRL::ComPtr<ID3D11Device1> m_d3dDevice;
|
|
||||||
Microsoft::WRL::ComPtr<ID3D11DeviceContext1> m_d3dContext;
|
|
||||||
Microsoft::WRL::ComPtr<IDXGISwapChain1> m_swapChain;
|
|
||||||
Microsoft::WRL::ComPtr<ID3D11RenderTargetView> m_renderTargetView;
|
|
||||||
Microsoft::WRL::ComPtr<ID3D11DepthStencilView> m_depthStencilView;
|
|
||||||
|
|
||||||
// Cached renderer properties.
|
|
||||||
D3D_FEATURE_LEVEL m_featureLevel;
|
|
||||||
Windows::Foundation::Size m_renderTargetSize;
|
|
||||||
Windows::Foundation::Rect m_windowBounds;
|
|
||||||
Platform::Agile<Windows::UI::Core::CoreWindow> m_window;
|
|
||||||
float m_dpi;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // 0
|
|
|
@ -126,7 +126,7 @@ namespace ui {
|
||||||
Label* m_pLabelPlaceHolder;
|
Label* m_pLabelPlaceHolder;
|
||||||
EditBox::InputMode m_eEditBoxInputMode;
|
EditBox::InputMode m_eEditBoxInputMode;
|
||||||
EditBox::InputFlag m_eEditBoxInputFlag;
|
EditBox::InputFlag m_eEditBoxInputFlag;
|
||||||
(EditBox::KeyboardReturnType m_eKeyboardReturnType;
|
EditBox::KeyboardReturnType m_eKeyboardReturnType;
|
||||||
|
|
||||||
std::string m_strText;
|
std::string m_strText;
|
||||||
std::string m_strPlaceHolder;
|
std::string m_strPlaceHolder;
|
||||||
|
|
|
@ -1,313 +0,0 @@
|
||||||
/****************************************************************************
|
|
||||||
Copyright (c) 2014 cocos2d-x.org
|
|
||||||
|
|
||||||
http://www.cocos2d-x.org
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
#include "platform/CCPlatformConfig.h"
|
|
||||||
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WP8)
|
|
||||||
|
|
||||||
#include "UIEditBoxImpl-wp8.h"
|
|
||||||
#include "UIEditBox.h"
|
|
||||||
#include "CCGLViewImpl-wp8.h"
|
|
||||||
#include "base/CCScriptSupport.h"
|
|
||||||
#include "base/ccUTF8.h"
|
|
||||||
#include "2d/CCLabel.h"
|
|
||||||
|
|
||||||
NS_CC_BEGIN
|
|
||||||
|
|
||||||
namespace ui {
|
|
||||||
|
|
||||||
EditBoxImpl* __createSystemEditBox(EditBox* pEditBox)
|
|
||||||
{
|
|
||||||
return new UIEditBoxImplWp8(pEditBox);
|
|
||||||
}
|
|
||||||
|
|
||||||
UIEditBoxImplWp8::UIEditBoxImplWp8( EditBox* pEditText )
|
|
||||||
: EditBoxImpl(pEditText)
|
|
||||||
, m_pLabel(NULL)
|
|
||||||
, m_pLabelPlaceHolder(NULL)
|
|
||||||
, m_eEditBoxInputMode(EditBox::InputMode::SINGLE_LINE)
|
|
||||||
, m_eEditBoxInputFlag(EditBox::InputFlag::INTIAL_CAPS_ALL_CHARACTERS)
|
|
||||||
, m_eKeyboardReturnType(EditBox::KeyboardReturnType::DEFAULT)
|
|
||||||
, m_colText(Color3B::WHITE)
|
|
||||||
, m_colPlaceHolder(Color3B::GRAY)
|
|
||||||
, m_nMaxLength(-1)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
UIEditBoxImplWp8::~UIEditBoxImplWp8()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void UIEditBoxImplWp8::openKeyboard()
|
|
||||||
{
|
|
||||||
if (_delegate != NULL)
|
|
||||||
{
|
|
||||||
_delegate->editBoxEditingDidBegin(_editBox);
|
|
||||||
}
|
|
||||||
#if CC_ENABLE_SCRIPT_BINDING
|
|
||||||
EditBox* pEditBox = this->getEditBox();
|
|
||||||
if (NULL != pEditBox && 0 != pEditBox->getScriptEditBoxHandler())
|
|
||||||
{
|
|
||||||
CommonScriptData data(pEditBox->getScriptEditBoxHandler(), "began",pEditBox);
|
|
||||||
ScriptEvent event(kCommonEvent,(void*)&data);
|
|
||||||
ScriptEngineManager::getInstance()->getScriptEngine()->sendEvent(&event);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
std::string placeHolder = m_pLabelPlaceHolder->getString();
|
|
||||||
if (placeHolder.length() == 0)
|
|
||||||
placeHolder = "Enter value";
|
|
||||||
|
|
||||||
char pText[100]= {0};
|
|
||||||
std::string text = getText();
|
|
||||||
if (text.length())
|
|
||||||
strncpy(pText, text.c_str(), 100);
|
|
||||||
|
|
||||||
Windows::Foundation::EventHandler<Platform::String^>^ receiveHandler = ref new Windows::Foundation::EventHandler<Platform::String^>(
|
|
||||||
[this](Platform::Object^ sender, Platform::String^ arg)
|
|
||||||
{
|
|
||||||
setText(PlatformStringTostring(arg).c_str());
|
|
||||||
if (_delegate != NULL) {
|
|
||||||
_delegate->editBoxTextChanged(_editBox, getText());
|
|
||||||
_delegate->editBoxEditingDidEnd(_editBox);
|
|
||||||
_delegate->editBoxReturn(_editBox);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
GLViewImpl::sharedOpenGLView()->OpenXamlEditBox(stringToPlatformString(placeHolder), stringToPlatformString(getText()), m_nMaxLength, (int)m_eEditBoxInputMode, (int)m_eEditBoxInputFlag, receiveHandler);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool UIEditBoxImplWp8::initWithSize( const Size& size )
|
|
||||||
{
|
|
||||||
//! int fontSize = getFontSizeAccordingHeightJni(size.height-12);
|
|
||||||
m_pLabel = Label::createWithSystemFont("", "", size.height-12);
|
|
||||||
// align the text vertically center
|
|
||||||
m_pLabel->setAnchorPoint(Vec2(0.0f, 0.5f));
|
|
||||||
m_pLabel->setPosition(Vec2(5.0, size.height / 2.0f));
|
|
||||||
m_pLabel->setTextColor(m_colText);
|
|
||||||
_editBox->addChild(m_pLabel);
|
|
||||||
|
|
||||||
m_pLabelPlaceHolder = Label::createWithSystemFont("", "", size.height-12);
|
|
||||||
// align the text vertically center
|
|
||||||
m_pLabelPlaceHolder->setAnchorPoint(Vec2(0.0f, 0.5f));
|
|
||||||
m_pLabelPlaceHolder->setPosition(Vec2(5.0f, size.height / 2.0f));
|
|
||||||
m_pLabelPlaceHolder->setVisible(false);
|
|
||||||
m_pLabelPlaceHolder->setTextColor(m_colPlaceHolder);
|
|
||||||
_editBox->addChild(m_pLabelPlaceHolder);
|
|
||||||
|
|
||||||
m_EditSize = size;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void UIEditBoxImplWp8::setFont( const char* pFontName, int fontSize )
|
|
||||||
{
|
|
||||||
if(m_pLabel != NULL) {
|
|
||||||
m_pLabel->setSystemFontName(pFontName);
|
|
||||||
m_pLabel->setSystemFontSize(fontSize);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(m_pLabelPlaceHolder != NULL) {
|
|
||||||
m_pLabelPlaceHolder->setSystemFontName(pFontName);
|
|
||||||
m_pLabelPlaceHolder->setSystemFontSize(fontSize);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void UIEditBoxImplWp8::setFontColor( const Color4B& color )
|
|
||||||
{
|
|
||||||
m_colText = color;
|
|
||||||
m_pLabel->setTextColor(color);
|
|
||||||
}
|
|
||||||
|
|
||||||
void UIEditBoxImplWp8::setPlaceholderFont( const char* pFontName, int fontSize )
|
|
||||||
{
|
|
||||||
if(m_pLabelPlaceHolder != NULL) {
|
|
||||||
m_pLabelPlaceHolder->setSystemFontName(pFontName);
|
|
||||||
m_pLabelPlaceHolder->setSystemFontSize(fontSize);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void UIEditBoxImplWp8::setPlaceholderFontColor( const Color4B& color )
|
|
||||||
{
|
|
||||||
m_colPlaceHolder = color;
|
|
||||||
m_pLabelPlaceHolder->setTextColor(color);
|
|
||||||
}
|
|
||||||
|
|
||||||
void UIEditBoxImplWp8::setInputMode( EditBox::InputMode inputMode )
|
|
||||||
{
|
|
||||||
m_eEditBoxInputMode = inputMode;
|
|
||||||
}
|
|
||||||
|
|
||||||
void UIEditBoxImplWp8::setInputFlag(EditBox::InputFlag inputFlag )
|
|
||||||
{
|
|
||||||
m_eEditBoxInputFlag = inputFlag;
|
|
||||||
}
|
|
||||||
|
|
||||||
void UIEditBoxImplWp8::setMaxLength( int maxLength )
|
|
||||||
{
|
|
||||||
m_nMaxLength = maxLength;
|
|
||||||
}
|
|
||||||
|
|
||||||
int UIEditBoxImplWp8::getMaxLength()
|
|
||||||
{
|
|
||||||
return m_nMaxLength;
|
|
||||||
}
|
|
||||||
|
|
||||||
void UIEditBoxImplWp8::setReturnType( EditBox::KeyboardReturnType returnType )
|
|
||||||
{
|
|
||||||
m_eKeyboardReturnType = returnType;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool UIEditBoxImplWp8::isEditing()
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
void UIEditBoxImplWp8::setText( const char* pText )
|
|
||||||
{
|
|
||||||
if (pText != NULL)
|
|
||||||
{
|
|
||||||
m_strText = pText;
|
|
||||||
|
|
||||||
if (m_strText.length() > 0)
|
|
||||||
{
|
|
||||||
m_pLabelPlaceHolder->setVisible(false);
|
|
||||||
|
|
||||||
std::string strToShow;
|
|
||||||
|
|
||||||
if (EditBox::InputFlag::PASSWORD == m_eEditBoxInputFlag)
|
|
||||||
{
|
|
||||||
long length = cc_utf8_strlen(m_strText.c_str(), -1);
|
|
||||||
for (long i = 0; i < length; i++)
|
|
||||||
{
|
|
||||||
strToShow.append("*");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
strToShow = m_strText;
|
|
||||||
}
|
|
||||||
|
|
||||||
//! std::string strWithEllipsis = getStringWithEllipsisJni(strToShow.c_str(), m_EditSize.width, m_EditSize.height-12);
|
|
||||||
//! m_pLabel->setString(strWithEllipsis.c_str());
|
|
||||||
m_pLabel->setString(strToShow.c_str());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
m_pLabelPlaceHolder->setVisible(true);
|
|
||||||
m_pLabel->setString("");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const char* UIEditBoxImplWp8::getText( void )
|
|
||||||
{
|
|
||||||
return m_strText.c_str();
|
|
||||||
}
|
|
||||||
|
|
||||||
void UIEditBoxImplWp8::setPlaceHolder( const char* pText )
|
|
||||||
{
|
|
||||||
if (pText != NULL)
|
|
||||||
{
|
|
||||||
m_strPlaceHolder = pText;
|
|
||||||
if (m_strPlaceHolder.length() > 0 && m_strText.length() == 0)
|
|
||||||
{
|
|
||||||
m_pLabelPlaceHolder->setVisible(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
m_pLabelPlaceHolder->setString(m_strPlaceHolder.c_str());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void UIEditBoxImplWp8::setPosition( const Vec2& pos )
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void UIEditBoxImplWp8::setVisible( bool visible )
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void UIEditBoxImplWp8::setContentSize( const Size& size )
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void UIEditBoxImplWp8::setAnchorPoint( const Vec2& anchorPoint )
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void UIEditBoxImplWp8::visit( void )
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void UIEditBoxImplWp8::doAnimationWhenKeyboardMove( float duration, float distance )
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void UIEditBoxImplWp8::closeKeyboard()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void UIEditBoxImplWp8::onEnter( void )
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
Platform::String^ UIEditBoxImplWp8::stringToPlatformString( std::string strSrc )
|
|
||||||
{
|
|
||||||
// to wide char
|
|
||||||
int nStrLen = MultiByteToWideChar(CP_UTF8, 0, strSrc.c_str(), -1, NULL, 0);
|
|
||||||
wchar_t* pWStr = new wchar_t[nStrLen + 1];
|
|
||||||
memset(pWStr, 0, nStrLen + 1);
|
|
||||||
MultiByteToWideChar(CP_UTF8, 0, strSrc.c_str(), -1, pWStr, nStrLen);
|
|
||||||
Platform::String^ strDst = ref new Platform::String(pWStr);
|
|
||||||
delete[] pWStr;
|
|
||||||
return strDst;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string UIEditBoxImplWp8::PlatformStringTostring( Platform::String^ strSrc )
|
|
||||||
{
|
|
||||||
const wchar_t* pWStr = strSrc->Data();
|
|
||||||
int nStrLen = WideCharToMultiByte(CP_UTF8, 0, pWStr, -1, NULL, 0, NULL, NULL);
|
|
||||||
char* pStr = new char[nStrLen + 1];
|
|
||||||
memset(pStr, 0, nStrLen + 1);
|
|
||||||
WideCharToMultiByte(CP_UTF8, 0, pWStr, -1, pStr, nStrLen, NULL, NULL); ;
|
|
||||||
|
|
||||||
std::string strDst = std::string(pStr);
|
|
||||||
|
|
||||||
delete[] pStr;
|
|
||||||
return strDst;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_CC_END
|
|
||||||
|
|
||||||
#endif // WP8
|
|
|
@ -1,93 +0,0 @@
|
||||||
/****************************************************************************
|
|
||||||
Copyright (c) 2014 cocos2d-x.org
|
|
||||||
|
|
||||||
http://www.cocos2d-x.org
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
****************************************************************************/
|
|
||||||
#ifndef __UIEditBoxIMPLWP8_H__
|
|
||||||
#define __UIEditBoxIMPLWP8_H__
|
|
||||||
|
|
||||||
#include "platform/CCPlatformConfig.h"
|
|
||||||
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WP8)
|
|
||||||
|
|
||||||
#include "UIEditBoxImpl.h"
|
|
||||||
|
|
||||||
NS_CC_BEGIN
|
|
||||||
|
|
||||||
namespace ui {
|
|
||||||
class EditBox;
|
|
||||||
|
|
||||||
class CC_GUI_DLL UIEditBoxImplWp8 : public EditBoxImpl
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
UIEditBoxImplWp8(EditBox* pEditText);
|
|
||||||
virtual ~UIEditBoxImplWp8();
|
|
||||||
|
|
||||||
virtual bool initWithSize(const Size& size);
|
|
||||||
virtual void setFont(const char* pFontName, int fontSize);
|
|
||||||
virtual void setFontColor(const Color4B& color);
|
|
||||||
virtual void setPlaceholderFont(const char* pFontName, int fontSize);
|
|
||||||
virtual void setPlaceholderFontColor(const Color4B& color);
|
|
||||||
virtual void setInputMode(EditBox::InputMode inputMode);
|
|
||||||
virtual void setInputFlag(EditBox::InputFlag inputFlag);
|
|
||||||
virtual void setMaxLength(int maxLength);
|
|
||||||
virtual int getMaxLength();
|
|
||||||
virtual void setReturnType(EditBox::KeyboardReturnType returnType);
|
|
||||||
virtual bool isEditing();
|
|
||||||
|
|
||||||
virtual void setText(const char* pText);
|
|
||||||
virtual const char* getText(void);
|
|
||||||
virtual void setPlaceHolder(const char* pText);
|
|
||||||
virtual void setPosition(const Vec2& pos);
|
|
||||||
virtual void setVisible(bool visible);
|
|
||||||
virtual void setContentSize(const Size& size);
|
|
||||||
virtual void setAnchorPoint(const Vec2& anchorPoint);
|
|
||||||
virtual void visit(void);
|
|
||||||
virtual void doAnimationWhenKeyboardMove(float duration, float distance);
|
|
||||||
virtual void openKeyboard();
|
|
||||||
virtual void closeKeyboard();
|
|
||||||
virtual void onEnter(void);
|
|
||||||
private:
|
|
||||||
Platform::String^ stringToPlatformString(std::string strSrc);
|
|
||||||
std::string PlatformStringTostring(Platform::String^ strSrc);
|
|
||||||
private:
|
|
||||||
|
|
||||||
Label* m_pLabel;
|
|
||||||
Label* m_pLabelPlaceHolder;
|
|
||||||
EditBox::InputMode m_eEditBoxInputMode;
|
|
||||||
EditBox::InputFlag m_eEditBoxInputFlag;
|
|
||||||
(EditBox::KeyboardReturnType m_eKeyboardReturnType;
|
|
||||||
|
|
||||||
std::string m_strText;
|
|
||||||
std::string m_strPlaceHolder;
|
|
||||||
|
|
||||||
Color4B m_colText;
|
|
||||||
Color4B m_colPlaceHolder;
|
|
||||||
|
|
||||||
int m_nMaxLength;
|
|
||||||
Size m_EditSize;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_CC_END
|
|
||||||
|
|
||||||
#endif //WP8
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"version":"v3-deps-39",
|
"version":"v3-deps-41",
|
||||||
"zip_file_size":"87419231",
|
"zip_file_size":"87419231",
|
||||||
"repo_name":"cocos2d-x-3rd-party-libs-bin",
|
"repo_name":"cocos2d-x-3rd-party-libs-bin",
|
||||||
"repo_parent":"https://github.com/cocos2d/",
|
"repo_parent":"https://github.com/cocos2d/",
|
||||||
|
|
|
@ -12,10 +12,6 @@
|
||||||
"proj.win32/PROJECT_NAME.vcxproj.user",
|
"proj.win32/PROJECT_NAME.vcxproj.user",
|
||||||
"proj.win32/PROJECT_NAME.sln",
|
"proj.win32/PROJECT_NAME.sln",
|
||||||
"proj.ios_mac/PROJECT_NAME.xcodeproj",
|
"proj.ios_mac/PROJECT_NAME.xcodeproj",
|
||||||
"proj.wp8-xaml/PROJECT_NAME.sln",
|
|
||||||
"proj.wp8-xaml/App/PROJECT_NAME.csproj",
|
|
||||||
"proj.wp8-xaml/AppComponent/PROJECT_NAMEComponent.vcxproj",
|
|
||||||
"proj.wp8-xaml/AppComponent/PROJECT_NAMEComponent.vcxproj.filters",
|
|
||||||
"proj.win8.1-universal/PROJECT_NAME.sln",
|
"proj.win8.1-universal/PROJECT_NAME.sln",
|
||||||
"proj.win8.1-universal/App.Shared/PROJECT_NAME.Shared.vcxitems",
|
"proj.win8.1-universal/App.Shared/PROJECT_NAME.Shared.vcxitems",
|
||||||
"proj.win8.1-universal/App.Shared/PROJECT_NAME.Shared.vcxitems.filters",
|
"proj.win8.1-universal/App.Shared/PROJECT_NAME.Shared.vcxitems.filters",
|
||||||
|
@ -34,9 +30,6 @@
|
||||||
"proj.win32/PROJECT_NAME.vcxproj.user",
|
"proj.win32/PROJECT_NAME.vcxproj.user",
|
||||||
"proj.win32/PROJECT_NAME.sln",
|
"proj.win32/PROJECT_NAME.sln",
|
||||||
"proj.win32/main.cpp",
|
"proj.win32/main.cpp",
|
||||||
"proj.wp8-xaml/App/PROJECT_NAME.csproj",
|
|
||||||
"proj.wp8-xaml/App/Properties/WMAppManifest.xml",
|
|
||||||
"proj.wp8-xaml/PROJECT_NAME.sln",
|
|
||||||
"proj.win8.1-universal/PROJECT_NAME.sln",
|
"proj.win8.1-universal/PROJECT_NAME.sln",
|
||||||
"proj.win8.1-universal/App.Shared/PROJECT_NAME.Shared.vcxitems",
|
"proj.win8.1-universal/App.Shared/PROJECT_NAME.Shared.vcxitems",
|
||||||
"proj.win8.1-universal/App.Windows/PROJECT_NAME.Windows.vcxproj",
|
"proj.win8.1-universal/App.Windows/PROJECT_NAME.Windows.vcxproj",
|
||||||
|
|
|
@ -1,20 +0,0 @@
|
||||||
<Application
|
|
||||||
x:Class="cocos2d.App"
|
|
||||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
||||||
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
|
|
||||||
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone">
|
|
||||||
|
|
||||||
<!--Application Resources-->
|
|
||||||
<Application.Resources>
|
|
||||||
<local:LocalizedStrings xmlns:local="clr-namespace:cocos2d" x:Key="LocalizedStrings"/>
|
|
||||||
</Application.Resources>
|
|
||||||
|
|
||||||
<Application.ApplicationLifetimeObjects>
|
|
||||||
<!--Required object that handles lifetime events for the application-->
|
|
||||||
<shell:PhoneApplicationService
|
|
||||||
Launching="Application_Launching" Closing="Application_Closing"
|
|
||||||
Activated="Application_Activated" Deactivated="Application_Deactivated"/>
|
|
||||||
</Application.ApplicationLifetimeObjects>
|
|
||||||
|
|
||||||
</Application>
|
|
|
@ -1,362 +0,0 @@
|
||||||
using System;
|
|
||||||
using System.Diagnostics;
|
|
||||||
using System.Resources;
|
|
||||||
using System.Windows;
|
|
||||||
using System.Windows.Markup;
|
|
||||||
using System.Windows.Navigation;
|
|
||||||
using Microsoft.Phone.Controls;
|
|
||||||
using Microsoft.Phone.Shell;
|
|
||||||
using System.IO.IsolatedStorage;
|
|
||||||
|
|
||||||
namespace cocos2d
|
|
||||||
{
|
|
||||||
public partial class App : Application
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Provides easy access to the root frame of the Phone Application.
|
|
||||||
/// </summary>
|
|
||||||
/// <returns>The root frame of the Phone Application.</returns>
|
|
||||||
public static PhoneApplicationFrame RootFrame { get; private set; }
|
|
||||||
|
|
||||||
|
|
||||||
enum SessionType
|
|
||||||
{
|
|
||||||
None,
|
|
||||||
Home,
|
|
||||||
DeepLink
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set to Home when the app is launched from Primary tile.
|
|
||||||
// Set to DeepLink when the app is launched from Deep Link.
|
|
||||||
private SessionType sessionType = SessionType.None;
|
|
||||||
|
|
||||||
// Set to true when the page navigation is being reset
|
|
||||||
bool wasRelaunched = false;
|
|
||||||
|
|
||||||
// set to true when 5 min passed since the app was relaunched
|
|
||||||
bool mustClearPagestack = false;
|
|
||||||
|
|
||||||
IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Constructor for the Application object.
|
|
||||||
/// </summary>
|
|
||||||
public App()
|
|
||||||
{
|
|
||||||
// Global handler for uncaught exceptions.
|
|
||||||
UnhandledException += Application_UnhandledException;
|
|
||||||
|
|
||||||
// Standard XAML initialization
|
|
||||||
InitializeComponent();
|
|
||||||
|
|
||||||
// Phone-specific initialization
|
|
||||||
InitializePhoneApplication();
|
|
||||||
|
|
||||||
// Show graphics profiling information while debugging.
|
|
||||||
if (Debugger.IsAttached)
|
|
||||||
{
|
|
||||||
// Display the current frame rate counters.
|
|
||||||
Application.Current.Host.Settings.EnableFrameRateCounter = false;
|
|
||||||
|
|
||||||
// Show the areas of the app that are being redrawn in each frame.
|
|
||||||
//Application.Current.Host.Settings.EnableRedrawRegions = true;
|
|
||||||
|
|
||||||
// Enable non-production analysis visualization mode,
|
|
||||||
// which shows areas of a page that are handed off to GPU with a colored overlay.
|
|
||||||
//Application.Current.Host.Settings.EnableCacheVisualization = true;
|
|
||||||
|
|
||||||
// Prevent the screen from turning off while under the debugger by disabling
|
|
||||||
// the application's idle detection.
|
|
||||||
// Caution:- Use this under debug mode only. Application that disables user idle detection will continue to run
|
|
||||||
// and consume battery power when the user is not using the phone.
|
|
||||||
PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disabled;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Code to execute when the application is launching (eg, from Start)
|
|
||||||
// This code will not execute when the application is reactivated
|
|
||||||
private void Application_Launching(object sender, LaunchingEventArgs e)
|
|
||||||
{
|
|
||||||
|
|
||||||
// When a new instance of the app is launched, clear all deactivation settings
|
|
||||||
RemoveCurrentDeactivationSettings();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Code to execute when the application is activated (brought to foreground)
|
|
||||||
// This code will not execute when the application is first launched
|
|
||||||
private void Application_Activated(object sender, ActivatedEventArgs e)
|
|
||||||
{
|
|
||||||
// If some interval has passed since the app was deactivated (30 seconds in this example),
|
|
||||||
// then remember to clear the back stack of pages
|
|
||||||
mustClearPagestack = CheckDeactivationTimeStamp();
|
|
||||||
|
|
||||||
|
|
||||||
// If IsApplicationInstancePreserved is not true, then set the session type to the value
|
|
||||||
// saved in isolated storage. This will make sure the session type is correct for an
|
|
||||||
// app that is being resumed after being tombstoned.
|
|
||||||
if (!e.IsApplicationInstancePreserved)
|
|
||||||
{
|
|
||||||
RestoreSessionType();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Code to execute when the application is deactivated (sent to background)
|
|
||||||
// This code will not execute when the application is closing
|
|
||||||
private void Application_Deactivated(object sender, DeactivatedEventArgs e)
|
|
||||||
{
|
|
||||||
// When the applicaiton is deactivated, save the current deactivation settings to isolated storage
|
|
||||||
SaveCurrentDeactivationSettings();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Code to execute when the application is closing (eg, user hit Back)
|
|
||||||
// This code will not execute when the application is deactivated
|
|
||||||
private void Application_Closing(object sender, ClosingEventArgs e)
|
|
||||||
{
|
|
||||||
// When the application closes, delete any deactivation settings from isolated storage
|
|
||||||
RemoveCurrentDeactivationSettings();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Code to execute if a navigation fails
|
|
||||||
private void RootFrame_NavigationFailed(object sender, NavigationFailedEventArgs e)
|
|
||||||
{
|
|
||||||
if (Debugger.IsAttached)
|
|
||||||
{
|
|
||||||
// A navigation has failed; break into the debugger
|
|
||||||
Debugger.Break();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Code to execute on Unhandled Exceptions
|
|
||||||
private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
|
|
||||||
{
|
|
||||||
if (Debugger.IsAttached)
|
|
||||||
{
|
|
||||||
// An unhandled exception has occurred; break into the debugger
|
|
||||||
Debugger.Break();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#region Phone application initialization
|
|
||||||
|
|
||||||
// Avoid double-initialization
|
|
||||||
private bool phoneApplicationInitialized = false;
|
|
||||||
|
|
||||||
// Do not add any additional code to this method
|
|
||||||
private void InitializePhoneApplication()
|
|
||||||
{
|
|
||||||
if (phoneApplicationInitialized)
|
|
||||||
return;
|
|
||||||
|
|
||||||
// Create the frame but don't set it as RootVisual yet; this allows the splash
|
|
||||||
// screen to remain active until the application is ready to render.
|
|
||||||
RootFrame = new PhoneApplicationFrame();
|
|
||||||
RootFrame.Navigated += CompleteInitializePhoneApplication;
|
|
||||||
|
|
||||||
// Handle navigation failures
|
|
||||||
RootFrame.NavigationFailed += RootFrame_NavigationFailed;
|
|
||||||
|
|
||||||
// Handle reset requests for clearing the backstack
|
|
||||||
RootFrame.Navigated += CheckForResetNavigation;
|
|
||||||
|
|
||||||
// Monitor deep link launching
|
|
||||||
RootFrame.Navigating += RootFrame_Navigating;
|
|
||||||
|
|
||||||
// Ensure we don't initialize again
|
|
||||||
phoneApplicationInitialized = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Event handler for the Navigating event of the root frame. Use this handler to modify
|
|
||||||
// the default navigation behavior.
|
|
||||||
void RootFrame_Navigating(object sender, NavigatingCancelEventArgs e)
|
|
||||||
{
|
|
||||||
|
|
||||||
// If the session type is None or New, check the navigation Uri to determine if the
|
|
||||||
// navigation is a deep link or if it points to the app's main page.
|
|
||||||
if (sessionType == SessionType.None && e.NavigationMode == NavigationMode.New)
|
|
||||||
{
|
|
||||||
// This block will run if the current navigation is part of the app's intial launch
|
|
||||||
|
|
||||||
|
|
||||||
// Keep track of Session Type
|
|
||||||
if (e.Uri.ToString().Contains("DeepLink=true"))
|
|
||||||
{
|
|
||||||
sessionType = SessionType.DeepLink;
|
|
||||||
}
|
|
||||||
else if (e.Uri.ToString().Contains("/MainPage.xaml"))
|
|
||||||
{
|
|
||||||
sessionType = SessionType.Home;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (e.NavigationMode == NavigationMode.Reset)
|
|
||||||
{
|
|
||||||
// This block will execute if the current navigation is a relaunch.
|
|
||||||
// If so, another navigation will be coming, so this records that a relaunch just happened
|
|
||||||
// so that the next navigation can use this info.
|
|
||||||
wasRelaunched = true;
|
|
||||||
}
|
|
||||||
else if (e.NavigationMode == NavigationMode.New && wasRelaunched)
|
|
||||||
{
|
|
||||||
// This block will run if the previous navigation was a relaunch
|
|
||||||
wasRelaunched = false;
|
|
||||||
|
|
||||||
if (e.Uri.ToString().Contains("DeepLink=true"))
|
|
||||||
{
|
|
||||||
// This block will run if the launch Uri contains "DeepLink=true" which
|
|
||||||
// was specified when the secondary tile was created in MainPage.xaml.cs
|
|
||||||
|
|
||||||
sessionType = SessionType.DeepLink;
|
|
||||||
// The app was relaunched via a Deep Link.
|
|
||||||
// The page stack will be cleared.
|
|
||||||
}
|
|
||||||
else if (e.Uri.ToString().Contains("/MainPage.xaml"))
|
|
||||||
{
|
|
||||||
// This block will run if the navigation Uri is the main page
|
|
||||||
if (sessionType == SessionType.DeepLink)
|
|
||||||
{
|
|
||||||
// When the app was previously launched via Deep Link and relaunched via Main Tile, we need to clear the page stack.
|
|
||||||
sessionType = SessionType.Home;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (!mustClearPagestack)
|
|
||||||
{
|
|
||||||
//The app was previously launched via Main Tile and relaunched via Main Tile. Cancel the navigation to resume.
|
|
||||||
e.Cancel = true;
|
|
||||||
RootFrame.Navigated -= ClearBackStackAfterReset;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
mustClearPagestack = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Do not add any additional code to this method
|
|
||||||
private void CompleteInitializePhoneApplication(object sender, NavigationEventArgs e)
|
|
||||||
{
|
|
||||||
// Set the root visual to allow the application to render
|
|
||||||
if (RootVisual != RootFrame)
|
|
||||||
RootVisual = RootFrame;
|
|
||||||
|
|
||||||
// Remove this handler since it is no longer needed
|
|
||||||
RootFrame.Navigated -= CompleteInitializePhoneApplication;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void CheckForResetNavigation(object sender, NavigationEventArgs e)
|
|
||||||
{
|
|
||||||
// If the app has received a 'reset' navigation, then we need to check
|
|
||||||
// on the next navigation to see if the page stack should be reset
|
|
||||||
if (e.NavigationMode == NavigationMode.Reset)
|
|
||||||
RootFrame.Navigated += ClearBackStackAfterReset;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void ClearBackStackAfterReset(object sender, NavigationEventArgs e)
|
|
||||||
{
|
|
||||||
// Unregister the event so it doesn't get called again
|
|
||||||
RootFrame.Navigated -= ClearBackStackAfterReset;
|
|
||||||
|
|
||||||
// Only clear the stack for 'new' (forward) and 'refresh' navigations
|
|
||||||
if (e.NavigationMode != NavigationMode.New)
|
|
||||||
return;
|
|
||||||
|
|
||||||
// For UI consistency, clear the entire page stack
|
|
||||||
while (RootFrame.RemoveBackEntry() != null)
|
|
||||||
{
|
|
||||||
; // do nothing
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
// Helper method for adding or updating a key/value pair in isolated storage
|
|
||||||
public bool AddOrUpdateValue(string Key, Object value)
|
|
||||||
{
|
|
||||||
bool valueChanged = false;
|
|
||||||
|
|
||||||
// If the key exists
|
|
||||||
if (settings.Contains(Key))
|
|
||||||
{
|
|
||||||
// If the value has changed
|
|
||||||
if (settings[Key] != value)
|
|
||||||
{
|
|
||||||
// Store the new value
|
|
||||||
settings[Key] = value;
|
|
||||||
valueChanged = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Otherwise create the key.
|
|
||||||
else
|
|
||||||
{
|
|
||||||
settings.Add(Key, value);
|
|
||||||
valueChanged = true;
|
|
||||||
}
|
|
||||||
return valueChanged;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Helper method for removing a key/value pair from isolated storage
|
|
||||||
public void RemoveValue(string Key)
|
|
||||||
{
|
|
||||||
// If the key exists
|
|
||||||
if (settings.Contains(Key))
|
|
||||||
{
|
|
||||||
settings.Remove(Key);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Called when the app is deactivating. Saves the time of the deactivation and the
|
|
||||||
// session type of the app instance to isolated storage.
|
|
||||||
public void SaveCurrentDeactivationSettings()
|
|
||||||
{
|
|
||||||
if (AddOrUpdateValue("DeactivateTime", DateTimeOffset.Now))
|
|
||||||
{
|
|
||||||
settings.Save();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (AddOrUpdateValue("SessionType", sessionType))
|
|
||||||
{
|
|
||||||
settings.Save();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Called when the app is launched or closed. Removes all deactivation settings from
|
|
||||||
// isolated storage
|
|
||||||
public void RemoveCurrentDeactivationSettings()
|
|
||||||
{
|
|
||||||
RemoveValue("DeactivateTime");
|
|
||||||
RemoveValue("SessionType");
|
|
||||||
settings.Save();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Helper method to determine if the interval since the app was deactivated is
|
|
||||||
// greater than 30 seconds
|
|
||||||
bool CheckDeactivationTimeStamp()
|
|
||||||
{
|
|
||||||
DateTimeOffset lastDeactivated;
|
|
||||||
|
|
||||||
if (settings.Contains("DeactivateTime"))
|
|
||||||
{
|
|
||||||
lastDeactivated = (DateTimeOffset)settings["DeactivateTime"];
|
|
||||||
}
|
|
||||||
|
|
||||||
var currentDuration = DateTimeOffset.Now.Subtract(lastDeactivated);
|
|
||||||
|
|
||||||
return TimeSpan.FromSeconds(currentDuration.TotalSeconds) > TimeSpan.FromSeconds(30);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Helper method to restore the session type from isolated storage.
|
|
||||||
void RestoreSessionType()
|
|
||||||
{
|
|
||||||
if (settings.Contains("SessionType"))
|
|
||||||
{
|
|
||||||
sessionType = (SessionType)settings["SessionType"];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 8.8 KiB |
Before Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 9.7 KiB |
Before Width: | Height: | Size: 8.9 KiB |
Before Width: | Height: | Size: 3.6 KiB |