Merge pull request #11452 from MSOpenTech/v3-remove-wp8

V3 remove WP8 project files
This commit is contained in:
minggo 2015-04-16 14:32:11 +08:00
commit 97f150a89f
182 changed files with 688 additions and 38060 deletions

View File

@ -89,11 +89,15 @@ Run
### 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/
Starting with Cocos2d-x v3.6 there will no longer be support for Windows Phone 8.0
Main features
-------------
* Scene management (workflow)
@ -184,6 +188,10 @@ $ bin/lua-empty-test/lua-empty-test
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
```

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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)
}

View File

@ -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
#>

View File

@ -1,5 +0,0 @@
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@ -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

View File

@ -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

View File

@ -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>

View File

@ -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>

View File

@ -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

View File

@ -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>

View File

@ -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>

View File

@ -1,2 +0,0 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012

View File

@ -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"
}
}

View 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.

View File

@ -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>

View File

@ -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);
}

View File

@ -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;
};
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 801 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 329 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 429 B

View File

@ -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

View File

@ -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>

View File

@ -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>

View File

@ -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)
{
}

View File

@ -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;
};
}

View File

@ -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>

View File

@ -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;
}

View File

@ -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;
};

View File

@ -1 +0,0 @@
#include "pch.h"

View File

@ -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"

View File

@ -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.

View File

@ -472,6 +472,7 @@
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\platform\winrt\Keyboard-winrt.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\platform\winrt\pch.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\CCCustomCommand.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\renderer\CCGLProgram.h" />
@ -1027,6 +1028,7 @@
</ForcedIncludeFiles>
</ClCompile>
<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\CCCustomCommand.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\renderer\CCGLProgram.cpp" />

View File

@ -1743,6 +1743,9 @@
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\3d\CCTerrain.h">
<Filter>3d</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\..\..\platform\winrt\WICImageLoader-win.h">
<Filter>platform\winrt</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\cocos2d.cpp" />
@ -3315,6 +3318,9 @@
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\editor-support\cocostudio\CocoStudio.cpp">
<Filter>cocostudio\json</Filter>
</ClCompile>
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\..\platform\winrt\WICImageLoader-win.cpp">
<Filter>platform\winrt</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<Filter Include="2d">

View File

@ -146,7 +146,7 @@
<CompileAsWinRT>true</CompileAsWinRT>
<AdditionalOptions>/Zm384 /bigobj %(AdditionalOptions)</AdditionalOptions>
<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>
<SDLCheck>false</SDLCheck>
<DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>
@ -166,7 +166,7 @@
<CompileAsWinRT>true</CompileAsWinRT>
<AdditionalOptions>/Zm384 /bigobj %(AdditionalOptions)</AdditionalOptions>
<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>
<SDLCheck>false</SDLCheck>
<DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>
@ -186,7 +186,7 @@
<CompileAsWinRT>true</CompileAsWinRT>
<AdditionalOptions>/Zm384 /bigobj %(AdditionalOptions)</AdditionalOptions>
<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>
<SDLCheck>false</SDLCheck>
<DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>
@ -206,7 +206,7 @@
<CompileAsWinRT>true</CompileAsWinRT>
<AdditionalOptions>/Zm384 /bigobj %(AdditionalOptions)</AdditionalOptions>
<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>
<SDLCheck>false</SDLCheck>
<DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>
@ -226,7 +226,7 @@
<CompileAsWinRT>true</CompileAsWinRT>
<AdditionalOptions>/Zm384 /bigobj %(AdditionalOptions)</AdditionalOptions>
<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>
<SDLCheck>false</SDLCheck>
<DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>
@ -246,7 +246,7 @@
<CompileAsWinRT>true</CompileAsWinRT>
<AdditionalOptions>/Zm384 /bigobj %(AdditionalOptions)</AdditionalOptions>
<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>
<SDLCheck>false</SDLCheck>
<DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>

View File

@ -108,7 +108,7 @@
<CompileAsWinRT>true</CompileAsWinRT>
<AdditionalOptions>/Zm384 /bigobj %(AdditionalOptions)</AdditionalOptions>
<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>
<SDLCheck>false</SDLCheck>
<DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>
@ -128,7 +128,7 @@
<CompileAsWinRT>true</CompileAsWinRT>
<AdditionalOptions>/Zm384 /bigobj %(AdditionalOptions)</AdditionalOptions>
<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>
<SDLCheck>false</SDLCheck>
<DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>
@ -148,7 +148,7 @@
<CompileAsWinRT>true</CompileAsWinRT>
<AdditionalOptions>/Zm384 /bigobj %(AdditionalOptions)</AdditionalOptions>
<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>
<SDLCheck>false</SDLCheck>
<DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>
@ -168,7 +168,7 @@
<CompileAsWinRT>true</CompileAsWinRT>
<AdditionalOptions>/Zm384 /bigobj %(AdditionalOptions)</AdditionalOptions>
<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>
<SDLCheck>false</SDLCheck>
<DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -18,8 +18,8 @@
<DisableSpecificWarnings>4056;4244;4251;4756;4453;28204;</DisableSpecificWarnings>
</ClCompile>
<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>
<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>
<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\sqlite3\libraries\$(COCOS2D_PLATFORM)\$(Platform);$(EngineRoot)external\freetype2\prebuilt\$(COCOS2D_PLATFORM)\$(Platform);%(AdditionalLibraryDirectories);</AdditionalLibraryDirectories>
<AdditionalOptions>/IGNORE:4264 %(AdditionalOptions)</AdditionalOptions>
</Link>
</ItemDefinitionGroup>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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);
}

View File

@ -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);
};

View File

@ -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;
}

View File

@ -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();
};

View File

@ -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

View File

@ -257,6 +257,12 @@ THE SOFTWARE.
#define CC_USE_CULLING 1
#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.
*/
#ifndef CC_USE_JPEG
@ -277,6 +283,17 @@ THE SOFTWARE.
#endif
#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. */
#ifndef CC_ENABLE_SCRIPT_BINDING
#define CC_ENABLE_SCRIPT_BINDING 1

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -54,7 +54,10 @@ extern "C"
}
#endif
#endif
#if CC_USE_PNG
#include "png.h"
#endif //CC_USE_PNG
#if CC_USE_TIFF
#include "tiffio.h"
@ -410,6 +413,7 @@ namespace
int offset;
}tImageSource;
#ifdef CC_USE_PNG
static void pngReadCallback(png_structp png_ptr, png_bytep data, png_size_t length)
{
tImageSource* isource = (tImageSource*)png_get_io_ptr(png_ptr);
@ -424,6 +428,7 @@ namespace
png_error(png_ptr, "pngReaderCallback failed");
}
}
#endif //CC_USE_PNG
}
Texture2D::PixelFormat getDevicePixelFormat(Texture2D::PixelFormat format)
@ -819,9 +824,75 @@ namespace
#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)
{
#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) */
struct jpeg_decompress_struct cinfo;
/* We use our private extension JPEG error handler.
@ -908,12 +979,16 @@ bool Image::initWithJpgData(const unsigned char * data, ssize_t dataLen)
return ret;
#else
CCLOG("jpeg is not enabled, please enable it in ccConfig.h");
return false;
#endif // CC_USE_JPEG
}
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
#define PNGSIGSIZE 8
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);
}
return ret;
#else
CCLOG("png is not enabled, please enable it in ccConfig.h");
return false;
#endif //CC_USE_PNG
}
#if CC_USE_TIFF
@ -1176,7 +1255,9 @@ namespace
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;
do
{
@ -1235,9 +1316,9 @@ bool Image::initWithTiffData(const unsigned char * data, ssize_t dataLen)
} while (0);
return ret;
#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;
#endif
#endif //CC_USE_TIFF
}
namespace
@ -2139,6 +2220,9 @@ bool Image::saveToFile(const std::string& filename, 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;
do
{
@ -2280,10 +2364,17 @@ bool Image::saveImageToPNG(const std::string& filePath, bool isToRGB)
ret = true;
} while (0);
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)
{
#if CC_USE_JPEG
#if defined(CC_USE_WIC)
return encodeWithWIC(filePath, false, GUID_ContainerFormatJpeg);
#elif defined(CC_USE_JPEG)
bool ret = false;
do
{

View File

@ -30,6 +30,10 @@ THE SOFTWARE.
#include "base/CCRef.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,
// such as RGB888, RGB5A1
#define CC_RGB_PREMULTIPLY_ALPHA(vr, vg, vb, va) \
@ -150,6 +154,10 @@ public:
static void setPVRImagesHavePremultipliedAlpha(bool haveAlphaPremultiplied);
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 initWithPngData(const unsigned char * data, ssize_t dataLen);
bool initWithTiffData(const unsigned char * data, ssize_t dataLen);

View File

@ -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

View File

@ -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__

View File

@ -26,9 +26,9 @@
***************************************************************************/
#if _MSC_VER < 1900
char *inet_ntop(int af, const void *addr, char *buf, size_t size);
#endif
#endif /* HEADER_CURL_INET_NTOP_H */

View File

@ -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>

View File

@ -1,2 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />

View File

@ -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>

View File

@ -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);
}
}

View File

@ -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;
};

View File

@ -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);
}

View File

@ -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;
};

View File

@ -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;
}
}

View File

@ -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;
};
}

View File

@ -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;
}

View File

@ -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;
};

View File

@ -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);
}
}
}

View File

@ -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());
}
}
}

View File

@ -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

View File

@ -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>

View File

@ -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"];
}
}
}
}

View File

@ -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>

View File

@ -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;
}
}
}

View File

@ -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>

View File

@ -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 pages 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;
}
}
}
}

View File

@ -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

View File

@ -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__

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

File diff suppressed because it is too large Load Diff

View File

@ -126,7 +126,7 @@ namespace ui {
Label* m_pLabelPlaceHolder;
EditBox::InputMode m_eEditBoxInputMode;
EditBox::InputFlag m_eEditBoxInputFlag;
(EditBox::KeyboardReturnType m_eKeyboardReturnType;
EditBox::KeyboardReturnType m_eKeyboardReturnType;
std::string m_strText;
std::string m_strPlaceHolder;

View File

@ -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

View File

@ -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

View File

@ -1,5 +1,5 @@
{
"version":"v3-deps-39",
"version":"v3-deps-41",
"zip_file_size":"87419231",
"repo_name":"cocos2d-x-3rd-party-libs-bin",
"repo_parent":"https://github.com/cocos2d/",

View File

@ -12,10 +12,6 @@
"proj.win32/PROJECT_NAME.vcxproj.user",
"proj.win32/PROJECT_NAME.sln",
"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/App.Shared/PROJECT_NAME.Shared.vcxitems",
"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.sln",
"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/App.Shared/PROJECT_NAME.Shared.vcxitems",
"proj.win8.1-universal/App.Windows/PROJECT_NAME.Windows.vcxproj",

View File

@ -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>

View File

@ -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"];
}
}
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Some files were not shown because too many files have changed in this diff Show More