From 2865ad798ba10d2971ad46522a6bc0e16350970f Mon Sep 17 00:00:00 2001 From: Dhilan007 Date: Tue, 15 Oct 2013 10:18:37 +0800 Subject: [PATCH 01/18] issues #2905:Updating project configuration for folder change. --- build/cocos2d-win32.vc2012.sln | 176 +- cocos/2d/cocos2d.vcxproj | 658 +++--- cocos/2d/cocos2d.vcxproj.filters | 1849 ++++++++--------- cocos/2d/platform/win32/CCEGLView.cpp | 2 +- cocos/2d/platform/win32/CCEGLView.h | 2 +- cocos/audio/proj.win32/CocosDenshion.vcxproj | 4 +- extensions/proj.win32/libExtensions.vcxproj | 194 +- .../proj.win32/libExtensions.vcxproj.filters | 535 +++-- .../Cpp/HelloCpp/proj.win32/HelloCpp.vcxproj | 15 +- .../Cpp/TestCpp/proj.win32/TestCpp.vcxproj | 10 +- 10 files changed, 1654 insertions(+), 1791 deletions(-) diff --git a/build/cocos2d-win32.vc2012.sln b/build/cocos2d-win32.vc2012.sln index 497a1d991c..d8c443ec6d 100644 --- a/build/cocos2d-win32.vc2012.sln +++ b/build/cocos2d-win32.vc2012.sln @@ -1,98 +1,19 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2012 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libBox2D", "external\Box2D\proj.win32\Box2D.vcxproj", "{929480E7-23C0-4DF6-8456-096D71547116}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "audio", "..\cocos\audio\proj.win32\CocosDenshion.vcxproj", "{F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libchipmunk", "external\chipmunk\proj.win32\chipmunk.vcxproj", "{207BC7A9-CCF1-4F2F-A04D-45F72242AE25}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcocos2d", "..\cocos\2d\cocos2d.vcxproj", "{98A51BA8-FC3A-415B-AC8F-8C7BD464E93E}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "audio", "audio\proj.win32\CocosDenshion.vcxproj", "{F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6}" - ProjectSection(ProjectDependencies) = postProject - {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E} = {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E} - EndProjectSection +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HelloCpp", "..\samples\Cpp\HelloCpp\proj.win32\HelloCpp.vcxproj", "{B8BF9E81-35FD-4582-BA1C-B85FA365BABB}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcocos2d", "cocos2dx\proj.win32\cocos2d.vcxproj", "{98A51BA8-FC3A-415B-AC8F-8C7BD464E93E}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libBox2D", "..\external\Box2D\proj.win32\Box2D.vcxproj", "{929480E7-23C0-4DF6-8456-096D71547116}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "liblua", "scripting\lua\proj.win32\liblua.vcxproj", "{DDC3E27F-004D-4DD4-9DD3-931A013D2159}" - ProjectSection(ProjectDependencies) = postProject - {21B2C324-891F-48EA-AD1A-5AE13DE12E28} = {21B2C324-891F-48EA-AD1A-5AE13DE12E28} - {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E} = {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E} - {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6} = {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6} - EndProjectSection +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libchipmunk", "..\external\chipmunk\proj.win32\chipmunk.vcxproj", "{207BC7A9-CCF1-4F2F-A04D-45F72242AE25}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libExtensions", "extensions\proj.win32\libExtensions.vcxproj", "{21B2C324-891F-48EA-AD1A-5AE13DE12E28}" - ProjectSection(ProjectDependencies) = postProject - {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E} = {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E} - {207BC7A9-CCF1-4F2F-A04D-45F72242AE25} = {207BC7A9-CCF1-4F2F-A04D-45F72242AE25} - {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6} = {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6} - EndProjectSection +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libExtensions", "..\extensions\proj.win32\libExtensions.vcxproj", "{21B2C324-891F-48EA-AD1A-5AE13DE12E28}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HelloCpp", "samples\Cpp\HelloCpp\proj.win32\HelloCpp.vcxproj", "{B8BF9E81-35FD-4582-BA1C-B85FA365BABB}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestCpp", "samples\Cpp\TestCpp\proj.win32\TestCpp.vcxproj", "{76A39BB2-9B84-4C65-98A5-654D86B86F2A}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CocosDragonJS", "samples\Javascript\CocosDragonJS\proj.win32\CocosDragonJS.vcxproj", "{68ED0B4E-2BCA-45D2-9648-CEABEBD3B9D7}" - ProjectSection(ProjectDependencies) = postProject - {21B2C324-891F-48EA-AD1A-5AE13DE12E28} = {21B2C324-891F-48EA-AD1A-5AE13DE12E28} - {39379840-825A-45A0-B363-C09FFEF864BD} = {39379840-825A-45A0-B363-C09FFEF864BD} - {207BC7A9-CCF1-4F2F-A04D-45F72242AE25} = {207BC7A9-CCF1-4F2F-A04D-45F72242AE25} - {929480E7-23C0-4DF6-8456-096D71547116} = {929480E7-23C0-4DF6-8456-096D71547116} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MoonWarriors", "samples\Javascript\MoonWarriors\proj.win32\MoonWarriors.vcxproj", "{1DB7C0FC-46FF-4A1B-82E0-C6244EEEC4C2}" - ProjectSection(ProjectDependencies) = postProject - {21B2C324-891F-48EA-AD1A-5AE13DE12E28} = {21B2C324-891F-48EA-AD1A-5AE13DE12E28} - {39379840-825A-45A0-B363-C09FFEF864BD} = {39379840-825A-45A0-B363-C09FFEF864BD} - {207BC7A9-CCF1-4F2F-A04D-45F72242AE25} = {207BC7A9-CCF1-4F2F-A04D-45F72242AE25} - {929480E7-23C0-4DF6-8456-096D71547116} = {929480E7-23C0-4DF6-8456-096D71547116} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestJavascript", "samples\Javascript\TestJavascript\proj.win32\TestJavascript.vcxproj", "{D0F06A44-A245-4D13-A498-0120C203B539}" - ProjectSection(ProjectDependencies) = postProject - {21B2C324-891F-48EA-AD1A-5AE13DE12E28} = {21B2C324-891F-48EA-AD1A-5AE13DE12E28} - {39379840-825A-45A0-B363-C09FFEF864BD} = {39379840-825A-45A0-B363-C09FFEF864BD} - {207BC7A9-CCF1-4F2F-A04D-45F72242AE25} = {207BC7A9-CCF1-4F2F-A04D-45F72242AE25} - {929480E7-23C0-4DF6-8456-096D71547116} = {929480E7-23C0-4DF6-8456-096D71547116} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WatermelonWithMe", "samples\Javascript\WatermelonWithMe\proj.win32\WatermelonWithMe.vcxproj", "{BE092D9E-95AE-4F86-84CE-F4519E4F3F15}" - ProjectSection(ProjectDependencies) = postProject - {21B2C324-891F-48EA-AD1A-5AE13DE12E28} = {21B2C324-891F-48EA-AD1A-5AE13DE12E28} - {39379840-825A-45A0-B363-C09FFEF864BD} = {39379840-825A-45A0-B363-C09FFEF864BD} - {207BC7A9-CCF1-4F2F-A04D-45F72242AE25} = {207BC7A9-CCF1-4F2F-A04D-45F72242AE25} - {929480E7-23C0-4DF6-8456-096D71547116} = {929480E7-23C0-4DF6-8456-096D71547116} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HelloLua", "samples\Lua\HelloLua\proj.win32\HelloLua.vcxproj", "{13E55395-94A2-4CD9-BFC2-1A051F80C17D}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestLua", "samples\Lua\TestLua\proj.win32\TestLua.win32.vcxproj", "{4E6A7A0E-DDD8-4BAA-8B22-C964069364ED}" - ProjectSection(ProjectDependencies) = postProject - {21B2C324-891F-48EA-AD1A-5AE13DE12E28} = {21B2C324-891F-48EA-AD1A-5AE13DE12E28} - {DDC3E27F-004D-4DD4-9DD3-931A013D2159} = {DDC3E27F-004D-4DD4-9DD3-931A013D2159} - {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E} = {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E} - {207BC7A9-CCF1-4F2F-A04D-45F72242AE25} = {207BC7A9-CCF1-4F2F-A04D-45F72242AE25} - {929480E7-23C0-4DF6-8456-096D71547116} = {929480E7-23C0-4DF6-8456-096D71547116} - {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6} = {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libJSBinding", "scripting\javascript\bindings\proj.win32\libJSBinding.vcxproj", "{39379840-825A-45A0-B363-C09FFEF864BD}" - ProjectSection(ProjectDependencies) = postProject - {21B2C324-891F-48EA-AD1A-5AE13DE12E28} = {21B2C324-891F-48EA-AD1A-5AE13DE12E28} - {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E} = {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E} - {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6} = {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CrystalCraze", "samples\Javascript\CrystalCraze\proj.win32\CrystalCraze.vcxproj", "{9A17D9A4-4B11-4E32-94F6-895FF4909EC5}" - ProjectSection(ProjectDependencies) = postProject - {21B2C324-891F-48EA-AD1A-5AE13DE12E28} = {21B2C324-891F-48EA-AD1A-5AE13DE12E28} - {39379840-825A-45A0-B363-C09FFEF864BD} = {39379840-825A-45A0-B363-C09FFEF864BD} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AssetsManagerTest", "samples\Cpp\AssetsManagerTest\proj.win32\AssetsManagerTest.vcxproj", "{6D37505F-A890-441D-BD3F-A61E2C0469CE}" - ProjectSection(ProjectDependencies) = postProject - {21B2C324-891F-48EA-AD1A-5AE13DE12E28} = {21B2C324-891F-48EA-AD1A-5AE13DE12E28} - {39379840-825A-45A0-B363-C09FFEF864BD} = {39379840-825A-45A0-B363-C09FFEF864BD} - {207BC7A9-CCF1-4F2F-A04D-45F72242AE25} = {207BC7A9-CCF1-4F2F-A04D-45F72242AE25} - EndProjectSection +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestCpp", "..\samples\Cpp\TestCpp\proj.win32\TestCpp.vcxproj", "{76A39BB2-9B84-4C65-98A5-654D86B86F2A}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -100,14 +21,6 @@ Global Release|Win32 = Release|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {929480E7-23C0-4DF6-8456-096D71547116}.Debug|Win32.ActiveCfg = Debug|Win32 - {929480E7-23C0-4DF6-8456-096D71547116}.Debug|Win32.Build.0 = Debug|Win32 - {929480E7-23C0-4DF6-8456-096D71547116}.Release|Win32.ActiveCfg = Release|Win32 - {929480E7-23C0-4DF6-8456-096D71547116}.Release|Win32.Build.0 = Release|Win32 - {207BC7A9-CCF1-4F2F-A04D-45F72242AE25}.Debug|Win32.ActiveCfg = Debug|Win32 - {207BC7A9-CCF1-4F2F-A04D-45F72242AE25}.Debug|Win32.Build.0 = Debug|Win32 - {207BC7A9-CCF1-4F2F-A04D-45F72242AE25}.Release|Win32.ActiveCfg = Release|Win32 - {207BC7A9-CCF1-4F2F-A04D-45F72242AE25}.Release|Win32.Build.0 = Release|Win32 {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6}.Debug|Win32.ActiveCfg = Debug|Win32 {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6}.Debug|Win32.Build.0 = Debug|Win32 {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6}.Release|Win32.ActiveCfg = Release|Win32 @@ -116,81 +29,30 @@ Global {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E}.Debug|Win32.Build.0 = Debug|Win32 {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E}.Release|Win32.ActiveCfg = Release|Win32 {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E}.Release|Win32.Build.0 = Release|Win32 - {DDC3E27F-004D-4DD4-9DD3-931A013D2159}.Debug|Win32.ActiveCfg = Debug|Win32 - {DDC3E27F-004D-4DD4-9DD3-931A013D2159}.Debug|Win32.Build.0 = Debug|Win32 - {DDC3E27F-004D-4DD4-9DD3-931A013D2159}.Release|Win32.ActiveCfg = Release|Win32 - {DDC3E27F-004D-4DD4-9DD3-931A013D2159}.Release|Win32.Build.0 = Release|Win32 - {21B2C324-891F-48EA-AD1A-5AE13DE12E28}.Debug|Win32.ActiveCfg = Debug|Win32 - {21B2C324-891F-48EA-AD1A-5AE13DE12E28}.Debug|Win32.Build.0 = Debug|Win32 - {21B2C324-891F-48EA-AD1A-5AE13DE12E28}.Release|Win32.ActiveCfg = Release|Win32 - {21B2C324-891F-48EA-AD1A-5AE13DE12E28}.Release|Win32.Build.0 = Release|Win32 {B8BF9E81-35FD-4582-BA1C-B85FA365BABB}.Debug|Win32.ActiveCfg = Debug|Win32 {B8BF9E81-35FD-4582-BA1C-B85FA365BABB}.Debug|Win32.Build.0 = Debug|Win32 {B8BF9E81-35FD-4582-BA1C-B85FA365BABB}.Release|Win32.ActiveCfg = Release|Win32 {B8BF9E81-35FD-4582-BA1C-B85FA365BABB}.Release|Win32.Build.0 = Release|Win32 + {929480E7-23C0-4DF6-8456-096D71547116}.Debug|Win32.ActiveCfg = Debug|Win32 + {929480E7-23C0-4DF6-8456-096D71547116}.Debug|Win32.Build.0 = Debug|Win32 + {929480E7-23C0-4DF6-8456-096D71547116}.Release|Win32.ActiveCfg = Release|Win32 + {929480E7-23C0-4DF6-8456-096D71547116}.Release|Win32.Build.0 = Release|Win32 + {207BC7A9-CCF1-4F2F-A04D-45F72242AE25}.Debug|Win32.ActiveCfg = Debug|Win32 + {207BC7A9-CCF1-4F2F-A04D-45F72242AE25}.Debug|Win32.Build.0 = Debug|Win32 + {207BC7A9-CCF1-4F2F-A04D-45F72242AE25}.Release|Win32.ActiveCfg = Release|Win32 + {207BC7A9-CCF1-4F2F-A04D-45F72242AE25}.Release|Win32.Build.0 = Release|Win32 + {21B2C324-891F-48EA-AD1A-5AE13DE12E28}.Debug|Win32.ActiveCfg = Debug|Win32 + {21B2C324-891F-48EA-AD1A-5AE13DE12E28}.Debug|Win32.Build.0 = Debug|Win32 + {21B2C324-891F-48EA-AD1A-5AE13DE12E28}.Release|Win32.ActiveCfg = Release|Win32 + {21B2C324-891F-48EA-AD1A-5AE13DE12E28}.Release|Win32.Build.0 = Release|Win32 {76A39BB2-9B84-4C65-98A5-654D86B86F2A}.Debug|Win32.ActiveCfg = Debug|Win32 {76A39BB2-9B84-4C65-98A5-654D86B86F2A}.Debug|Win32.Build.0 = Debug|Win32 {76A39BB2-9B84-4C65-98A5-654D86B86F2A}.Release|Win32.ActiveCfg = Release|Win32 {76A39BB2-9B84-4C65-98A5-654D86B86F2A}.Release|Win32.Build.0 = Release|Win32 - {68ED0B4E-2BCA-45D2-9648-CEABEBD3B9D7}.Debug|Win32.ActiveCfg = Debug|Win32 - {68ED0B4E-2BCA-45D2-9648-CEABEBD3B9D7}.Debug|Win32.Build.0 = Debug|Win32 - {68ED0B4E-2BCA-45D2-9648-CEABEBD3B9D7}.Release|Win32.ActiveCfg = Release|Win32 - {68ED0B4E-2BCA-45D2-9648-CEABEBD3B9D7}.Release|Win32.Build.0 = Release|Win32 - {1DB7C0FC-46FF-4A1B-82E0-C6244EEEC4C2}.Debug|Win32.ActiveCfg = Debug|Win32 - {1DB7C0FC-46FF-4A1B-82E0-C6244EEEC4C2}.Debug|Win32.Build.0 = Debug|Win32 - {1DB7C0FC-46FF-4A1B-82E0-C6244EEEC4C2}.Release|Win32.ActiveCfg = Release|Win32 - {1DB7C0FC-46FF-4A1B-82E0-C6244EEEC4C2}.Release|Win32.Build.0 = Release|Win32 - {D0F06A44-A245-4D13-A498-0120C203B539}.Debug|Win32.ActiveCfg = Debug|Win32 - {D0F06A44-A245-4D13-A498-0120C203B539}.Debug|Win32.Build.0 = Debug|Win32 - {D0F06A44-A245-4D13-A498-0120C203B539}.Release|Win32.ActiveCfg = Release|Win32 - {D0F06A44-A245-4D13-A498-0120C203B539}.Release|Win32.Build.0 = Release|Win32 - {BE092D9E-95AE-4F86-84CE-F4519E4F3F15}.Debug|Win32.ActiveCfg = Debug|Win32 - {BE092D9E-95AE-4F86-84CE-F4519E4F3F15}.Debug|Win32.Build.0 = Debug|Win32 - {BE092D9E-95AE-4F86-84CE-F4519E4F3F15}.Release|Win32.ActiveCfg = Release|Win32 - {BE092D9E-95AE-4F86-84CE-F4519E4F3F15}.Release|Win32.Build.0 = Release|Win32 - {13E55395-94A2-4CD9-BFC2-1A051F80C17D}.Debug|Win32.ActiveCfg = Debug|Win32 - {13E55395-94A2-4CD9-BFC2-1A051F80C17D}.Debug|Win32.Build.0 = Debug|Win32 - {13E55395-94A2-4CD9-BFC2-1A051F80C17D}.Release|Win32.ActiveCfg = Release|Win32 - {13E55395-94A2-4CD9-BFC2-1A051F80C17D}.Release|Win32.Build.0 = Release|Win32 - {4E6A7A0E-DDD8-4BAA-8B22-C964069364ED}.Debug|Win32.ActiveCfg = Debug|Win32 - {4E6A7A0E-DDD8-4BAA-8B22-C964069364ED}.Debug|Win32.Build.0 = Debug|Win32 - {4E6A7A0E-DDD8-4BAA-8B22-C964069364ED}.Release|Win32.ActiveCfg = Release|Win32 - {4E6A7A0E-DDD8-4BAA-8B22-C964069364ED}.Release|Win32.Build.0 = Release|Win32 - {39379840-825A-45A0-B363-C09FFEF864BD}.Debug|Win32.ActiveCfg = Debug|Win32 - {39379840-825A-45A0-B363-C09FFEF864BD}.Debug|Win32.Build.0 = Debug|Win32 - {39379840-825A-45A0-B363-C09FFEF864BD}.Release|Win32.ActiveCfg = Release|Win32 - {39379840-825A-45A0-B363-C09FFEF864BD}.Release|Win32.Build.0 = Release|Win32 - {9A17D9A4-4B11-4E32-94F6-895FF4909EC5}.Debug|Win32.ActiveCfg = Debug|Win32 - {9A17D9A4-4B11-4E32-94F6-895FF4909EC5}.Debug|Win32.Build.0 = Debug|Win32 - {9A17D9A4-4B11-4E32-94F6-895FF4909EC5}.Release|Win32.ActiveCfg = Release|Win32 - {9A17D9A4-4B11-4E32-94F6-895FF4909EC5}.Release|Win32.Build.0 = Release|Win32 - {6D37505F-A890-441D-BD3F-A61E2C0469CE}.Debug|Win32.ActiveCfg = Debug|Win32 - {6D37505F-A890-441D-BD3F-A61E2C0469CE}.Debug|Win32.Build.0 = Debug|Win32 - {6D37505F-A890-441D-BD3F-A61E2C0469CE}.Release|Win32.ActiveCfg = Release|Win32 - {6D37505F-A890-441D-BD3F-A61E2C0469CE}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {207BC7A9-CCF1-4F2F-A04D-45F72242AE25} = {F51B8DCB-62CD-441F-B85D-43BD8EA432F1} - {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6} = {F51B8DCB-62CD-441F-B85D-43BD8EA432F1} - {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E} = {F51B8DCB-62CD-441F-B85D-43BD8EA432F1} - {21B2C324-891F-48EA-AD1A-5AE13DE12E28} = {F51B8DCB-62CD-441F-B85D-43BD8EA432F1} - {929480E7-23C0-4DF6-8456-096D71547116} = {F51B8DCB-62CD-441F-B85D-43BD8EA432F1} - {13E55395-94A2-4CD9-BFC2-1A051F80C17D} = {69C8AC8E-8B5C-474C-950D-1DB7F367E22C} - {4E6A7A0E-DDD8-4BAA-8B22-C964069364ED} = {69C8AC8E-8B5C-474C-950D-1DB7F367E22C} - {DDC3E27F-004D-4DD4-9DD3-931A013D2159} = {69C8AC8E-8B5C-474C-950D-1DB7F367E22C} - {76A39BB2-9B84-4C65-98A5-654D86B86F2A} = {8DFE8821-1A1A-4894-9EA1-2A211F8CEDEA} - {B8BF9E81-35FD-4582-BA1C-B85FA365BABB} = {8DFE8821-1A1A-4894-9EA1-2A211F8CEDEA} - {6D37505F-A890-441D-BD3F-A61E2C0469CE} = {8DFE8821-1A1A-4894-9EA1-2A211F8CEDEA} - {1DB7C0FC-46FF-4A1B-82E0-C6244EEEC4C2} = {42FCBD79-852E-4A68-9C3F-51200BAF5732} - {D0F06A44-A245-4D13-A498-0120C203B539} = {42FCBD79-852E-4A68-9C3F-51200BAF5732} - {BE092D9E-95AE-4F86-84CE-F4519E4F3F15} = {42FCBD79-852E-4A68-9C3F-51200BAF5732} - {68ED0B4E-2BCA-45D2-9648-CEABEBD3B9D7} = {42FCBD79-852E-4A68-9C3F-51200BAF5732} - {39379840-825A-45A0-B363-C09FFEF864BD} = {42FCBD79-852E-4A68-9C3F-51200BAF5732} - {9A17D9A4-4B11-4E32-94F6-895FF4909EC5} = {42FCBD79-852E-4A68-9C3F-51200BAF5732} - EndGlobalSection GlobalSection(DPCodeReviewSolutionGUID) = preSolution DPCodeReviewSolutionGUID = {00000000-0000-0000-0000-000000000000} EndGlobalSection diff --git a/cocos/2d/cocos2d.vcxproj b/cocos/2d/cocos2d.vcxproj index 46a695d1e2..0c421489f9 100644 --- a/cocos/2d/cocos2d.vcxproj +++ b/cocos/2d/cocos2d.vcxproj @@ -69,7 +69,7 @@ Disabled - $(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A\include;$(ProjectDir)..;$(ProjectDir)..\platform\win32;$(ProjectDir)..\platform\third_party\win32\iconv;$(ProjectDir)..\platform\third_party\win32\zlib;$(ProjectDir)..\platform\third_party\win32\libpng;$(ProjectDir)..\platform\third_party\win32\libjpeg;$(ProjectDir)..\platform\third_party\win32\libtiff;$(ProjectDir)..\platform\third_party\win32\libwebp;$(ProjectDir)..\platform\third_party\win32\libfreetype2;$(ProjectDir)..\platform\third_party\win32\OGLES;..\include;$(ProjectDir)..\kazmath\include;$(ProjectDir)..\platform\third_party\common\etc;$(ProjectDir)..\..\external\chipmunk\include\chipmunk;%(AdditionalIncludeDirectories) + $(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A\include;$(ProjectDir);$(ProjectDir)..\physics;$(ProjectDir)..\..\external\glfw3\include\win32;$(ProjectDir)..\base;$(ProjectDir)..\..\external\unzip;$(ProjectDir)..\..\external\tinyxml2;$(ProjectDir)platform\win32;$(ProjectDir)..\..\external\win32-specific\icon\include;$(ProjectDir)..\..\external\win32-specific\zlib\include;$(ProjectDir)..\..\external\png\include\win32;$(ProjectDir)..\..\external\jpeg\include\win32;$(ProjectDir)..\..\external\tiff\include\win32;$(ProjectDir)..\..\external\webp\include\win32;$(ProjectDir)..\..\external\freetype2\include\win32;$(ProjectDir)..\..\external\win32-specific\gles\include\OGLES;$(ProjectDir)..\math\kazmath\include;$(ProjectDir)platform\third_party\common\etc;$(ProjectDir)..\..\external\chipmunk\include\chipmunk;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_LIB;COCOS2DXWIN32_EXPORTS;GL_GLEXT_PROTOTYPES;COCOS2D_DEBUG=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) false EnableFastChecks @@ -83,7 +83,16 @@ if not exist "$(OutDir)" mkdir "$(OutDir)" -xcopy /Y /Q "$(ProjectDir)..\platform\third_party\win32\libraries\*.*" "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\external\freetype2\prebuilt\win32\*.*" "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\external\glfw3\prebuilt\win32\*.*" "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\external\curl\prebuilt\win32\*.*" "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\external\jpeg\prebuilt\win32\*.*" "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\external\png\prebuilt\win32\*.*" "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\external\tiff\prebuilt\win32\*.*" "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\external\webp\prebuilt\win32\*.*" "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\external\win32-specific\zlib\prebuilt\*.*" "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\external\win32-specific\icon\prebuilt\*.*" "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\external\win32-specific\gles\prebuilt\*.*" "$(OutDir)" @@ -119,7 +128,7 @@ xcopy /Y /Q "$(ProjectDir)..\platform\third_party\win32\libraries\*.*" "$(OutDir if not exist "$(OutDir)" mkdir "$(OutDir)" -xcopy /Y /Q "$(ProjectDir)..\platform\third_party\win32\libraries\*.*" "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\external*\win32\*.*" "$(OutDir)" @@ -140,79 +149,36 @@ xcopy /Y /Q "$(ProjectDir)..\platform\third_party\win32\libraries\*.*" "$(OutDir - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -228,162 +194,158 @@ xcopy /Y /Q "$(ProjectDir)..\platform\third_party\win32\libraries\*.*" "$(OutDir - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -402,101 +364,147 @@ xcopy /Y /Q "$(ProjectDir)..\platform\third_party\win32\libraries\*.*" "$(OutDir - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cocos/2d/cocos2d.vcxproj.filters b/cocos/2d/cocos2d.vcxproj.filters index 391517347c..2028e708c8 100644 --- a/cocos/2d/cocos2d.vcxproj.filters +++ b/cocos/2d/cocos2d.vcxproj.filters @@ -4,9 +4,6 @@ {cc64f5ad-2234-494c-9c51-b7a20c8887aa} - - {aec8225f-81a7-4213-b97b-7004d5535398} - {736cf4ab-e0d6-40ba-912a-b062d28d318a} @@ -67,21 +64,6 @@ {7751500e-ac9e-4604-a96d-670b30b7d8bd} - - {b38113b1-3d59-4f6e-ac5a-f43921f6ed09} - - - {569c49c9-27eb-456e-a3f4-9f403e28a3a1} - - - {191b3e94-47dc-4054-b1cb-bf145d281521} - - - {a91a4cc0-41e6-43e9-80c0-2c9101924386} - - - {e278b354-1e41-4e92-95b3-7f661ba67140} - {163895ae-8a8e-46bf-bdf2-98bb2c1347fc} @@ -112,397 +94,26 @@ {b9880458-36e5-4f28-a34b-d01d9512a395} + + {05e27e68-7574-4a8b-af68-553dd3bafdfa} + + + {b797075f-7437-46d5-b4ee-2aa2c108e98f} + + + {c755509d-1610-4e6c-b01b-e01d4d0de46e} + + + {e1b64497-c099-4f06-8d61-9d4c6b7a215a} + + + {7c71abeb-8b4b-4be8-a23c-e32fedc65fc9} + + + {aec8225f-81a7-4213-b97b-7004d5535398} + - - base_nodes - - - base_nodes - - - cocoa - - - cocoa - - - cocoa - - - cocoa - - - cocoa - - - cocoa - - - cocoa - - - cocoa - - - cocoa - - - cocoa - - - effects - - - effects - - - actions - - - actions - - - actions - - - actions - - - actions - - - actions - - - actions - - - actions - - - actions - - - actions - - - actions - - - actions - - - actions - - - label_nodes - - - label_nodes - - - label_nodes - - - layers_scenes_transitions_nodes - - - layers_scenes_transitions_nodes - - - layers_scenes_transitions_nodes - - - layers_scenes_transitions_nodes - - - layers_scenes_transitions_nodes - - - menu_nodes - - - menu_nodes - - - misc_nodes - - - misc_nodes - - - misc_nodes - - - particle_nodes - - - particle_nodes - - - particle_nodes - - - particle_nodes - - - platform - - - platform - - - platform - - - platform\win32 - - - platform\win32 - - - platform\win32 - - - platform\win32 - - - platform\win32 - - - sprite_nodes - - - sprite_nodes - - - sprite_nodes - - - sprite_nodes - - - sprite_nodes - - - sprite_nodes - - - support - - - support - - - support - - - support - - - support - - - support - - - support\data_support - - - support\image_support - - - support\zip_support - - - support\zip_support - - - support\zip_support - - - textures - - - textures - - - textures - - - tilemap_parallax_nodes - - - tilemap_parallax_nodes - - - tilemap_parallax_nodes - - - tilemap_parallax_nodes - - - tilemap_parallax_nodes - - - tilemap_parallax_nodes - - - text_input_node - - - text_input_node - - - script_support - - - kazmath\src - - - kazmath\src - - - kazmath\src - - - kazmath\src - - - kazmath\src - - - kazmath\src - - - kazmath\src - - - kazmath\src - - - kazmath\src - - - kazmath\src - - - kazmath\src - - - kazmath\src\GL - - - kazmath\src\GL - - - - - - - - draw_nodes - - - draw_nodes - - - misc_nodes - - - shaders - - - shaders - - - shaders - - - shaders - - - platform\win32 - - - platform - - - platform\win32 - - - support - - - support\user_default - - - support\tinyxml2 - - - cocoa - - - - support\component - - - support\component - - - - platform\etc - - - - label_nodes - - - label_nodes - - - label_nodes - - - label_nodes - - - label_nodes - - - label_nodes - - - label_nodes - - - label_nodes - - - label_nodes - - - label_nodes - - - platform - - - platform - - - event_dispatcher - - - event_dispatcher - - - event_dispatcher - - - event_dispatcher - physics @@ -548,535 +159,421 @@ physics\Box2D - + + base_nodes + + + base_nodes + + + effects + + + effects + + event_dispatcher - + event_dispatcher - + event_dispatcher - + event_dispatcher - + event_dispatcher - + event_dispatcher - + event_dispatcher - + event_dispatcher + + event_dispatcher + + + event_dispatcher + + + event_dispatcher + + + event_dispatcher + + + kazmath\src\GL + + + kazmath\src\GL + + + kazmath\src + + + kazmath\src + + + kazmath\src + + + kazmath\src + + + kazmath\src + + + kazmath\src + + + kazmath\src + + + kazmath\src + + + kazmath\src + + + kazmath\src + + + kazmath\src + + + layers_scenes_transitions_nodes + + + layers_scenes_transitions_nodes + + + layers_scenes_transitions_nodes + + + layers_scenes_transitions_nodes + + + layers_scenes_transitions_nodes + + + menu_nodes + + + menu_nodes + + + misc_nodes + + + misc_nodes + + + misc_nodes + + + misc_nodes + + + particle_nodes + + + particle_nodes + + + particle_nodes + + + particle_nodes + + + script_support + + + actions + + + actions + + + actions + + + actions + + + actions + + + actions + + + actions + + + actions + + + actions + + + actions + + + actions + + + actions + + + actions + + + draw_nodes + + + draw_nodes + + + label_nodes + + + label_nodes + + + label_nodes + + + label_nodes + + + label_nodes + + + label_nodes + + + label_nodes + + + label_nodes + + + label_nodes + + + label_nodes + + + label_nodes + + + label_nodes + + + label_nodes + + + platform\etc + + + platform\win32 + + + platform\win32 + + + platform\win32 + + + platform\win32 + + + platform\win32 + + + platform\win32 + + + platform\win32 + + + platform + + + platform + + + platform + + + platform + + + platform + + + platform + + + shaders + + + shaders + + + shaders + + + shaders + + + sprite_nodes + + + sprite_nodes + + + sprite_nodes + + + sprite_nodes + + + sprite_nodes + + + sprite_nodes + + + text_input_node + + + text_input_node + + + textures + + + textures + + + textures + + + tilemap_parallax_nodes + + + tilemap_parallax_nodes + + + tilemap_parallax_nodes + + + tilemap_parallax_nodes + + + tilemap_parallax_nodes + + + tilemap_parallax_nodes + + + + + + + + + + + support + + + support + + + support + + + support + + + support + + + support + + + support\component + + + support\component + + + support\data_support + + + support\image_support + + + support\tinyxml2 + + + support\user_default + + + support\zip_support + + + support\zip_support + + + support\zip_support + + + base + + + base + + + base + + + base + + + base + + + base + + + base + + + base + + + base + + + base + + + base + + + support + - - base_nodes - - - base_nodes - - - cocoa - - - cocoa - - - cocoa - - - cocoa - - - cocoa - - - cocoa - - - cocoa - - - cocoa - - - cocoa - - - cocoa - - - cocoa - - - effects - - - effects - - - actions - - - actions - - - actions - - - actions - - - actions - - - actions - - - actions - - - actions - - - actions - - - actions - - - actions - - - actions - - - actions - - - include - - - include - - - include - - - include - - - include - - - include - - - label_nodes - - - label_nodes - - - label_nodes - - - layers_scenes_transitions_nodes - - - layers_scenes_transitions_nodes - - - layers_scenes_transitions_nodes - - - layers_scenes_transitions_nodes - - - layers_scenes_transitions_nodes - - - menu_nodes - - - menu_nodes - - - misc_nodes - - - misc_nodes - - - misc_nodes - - - particle_nodes - - - particle_nodes - - - particle_nodes - - - particle_nodes - - - platform - - - platform - - - platform - - - platform - - - platform - - - platform - - - platform - - - platform - - - platform - - - platform - - - platform\win32 - - - platform\win32 - - - platform\win32 - - - platform\win32 - - - platform\win32 - - - sprite_nodes - - - sprite_nodes - - - sprite_nodes - - - sprite_nodes - - - sprite_nodes - - - sprite_nodes - - - support - - - support - - - support - - - support - - - support - - - support - - - support\data_support - - - support\data_support - - - support\data_support - - - support\image_support - - - support\zip_support - - - support\zip_support - - - support\zip_support - - - textures - - - textures - - - textures - - - tilemap_parallax_nodes - - - tilemap_parallax_nodes - - - tilemap_parallax_nodes - - - tilemap_parallax_nodes - - - tilemap_parallax_nodes - - - tilemap_parallax_nodes - - - text_input_node - - - text_input_node - - - text_input_node - - - script_support - - - kazmath\include\kazmath - - - kazmath\include\kazmath - - - kazmath\include\kazmath - - - kazmath\include\kazmath - - - kazmath\include\kazmath - - - kazmath\include\kazmath - - - kazmath\include\kazmath - - - kazmath\include\kazmath - - - kazmath\include\kazmath - - - kazmath\include\kazmath - - - kazmath\include\kazmath - - - kazmath\include\kazmath - - - kazmath\include\kazmath\GL - - - kazmath\include\kazmath\GL - - - - - - - draw_nodes - - - draw_nodes - - - misc_nodes - - - shaders - - - shaders - - - shaders - - - shaders - - - shaders - - - shaders - - - shaders - - - shaders - - - shaders - - - shaders - - - shaders - - - shaders - - - shaders - - - shaders - - - shaders - - - shaders - - - shaders - - - shaders - - - shaders - - - shaders - - - platform\win32 - - - support - - - support\user_default - - - support\tinyxml2 - - - cocoa - - - cocoa - - - cocoa - - - cocoa - - - - support\component - - - support\component - - - include - - - platform\etc - - - label_nodes - - - label_nodes - - - label_nodes - - - label_nodes - - - label_nodes - - - label_nodes - - - label_nodes - - - label_nodes - - - label_nodes - - - label_nodes - - - label_nodes - - - label_nodes - - - platform - - - platform - - - platform - - - event_dispatcher - - - event_dispatcher - - - event_dispatcher - - - event_dispatcher - physics @@ -1131,29 +628,529 @@ physics\Box2D - + + base_nodes + + + base_nodes + + + effects + + + effects + + event_dispatcher - + event_dispatcher - + event_dispatcher - + event_dispatcher - + event_dispatcher - + event_dispatcher - + event_dispatcher - + event_dispatcher + + event_dispatcher + + + event_dispatcher + + + event_dispatcher + + + event_dispatcher + + + include + + + include + + + include + + + include + + + include + + + include + + + include + + + kazmath\include\kazmath + + + kazmath\include\kazmath + + + kazmath\include\kazmath + + + kazmath\include\kazmath + + + kazmath\include\kazmath + + + kazmath\include\kazmath + + + kazmath\include\kazmath + + + kazmath\include\kazmath + + + kazmath\include\kazmath + + + kazmath\include\kazmath + + + kazmath\include\kazmath + + + kazmath\include\kazmath + + + kazmath\include\kazmath\GL + + + kazmath\include\kazmath\GL + + + layers_scenes_transitions_nodes + + + layers_scenes_transitions_nodes + + + layers_scenes_transitions_nodes + + + layers_scenes_transitions_nodes + + + layers_scenes_transitions_nodes + + + menu_nodes + + + menu_nodes + + + misc_nodes + + + misc_nodes + + + misc_nodes + + + misc_nodes + + + particle_nodes + + + particle_nodes + + + particle_nodes + + + particle_nodes + + + script_support + + + actions + + + actions + + + actions + + + actions + + + actions + + + actions + + + actions + + + actions + + + actions + + + actions + + + actions + + + actions + + + actions + + + draw_nodes + + + draw_nodes + + + label_nodes + + + label_nodes + + + label_nodes + + + label_nodes + + + label_nodes + + + label_nodes + + + label_nodes + + + label_nodes + + + label_nodes + + + label_nodes + + + label_nodes + + + label_nodes + + + label_nodes + + + label_nodes + + + platform\etc + + + platform\win32 + + + platform\win32 + + + platform\win32 + + + platform\win32 + + + platform\win32 + + + platform\win32 + + + platform + + + platform + + + platform + + + platform + + + platform + + + platform + + + platform + + + platform + + + platform + + + platform + + + platform + + + platform + + + platform + + + shaders + + + shaders + + + shaders + + + shaders + + + shaders + + + shaders + + + shaders + + + shaders + + + shaders + + + shaders + + + shaders + + + shaders + + + shaders + + + shaders + + + shaders + + + shaders + + + shaders + + + shaders + + + shaders + + + shaders + + + sprite_nodes + + + sprite_nodes + + + sprite_nodes + + + sprite_nodes + + + sprite_nodes + + + sprite_nodes + + + text_input_node + + + text_input_node + + + text_input_node + + + textures + + + textures + + + textures + + + tilemap_parallax_nodes + + + tilemap_parallax_nodes + + + tilemap_parallax_nodes + + + tilemap_parallax_nodes + + + tilemap_parallax_nodes + + + tilemap_parallax_nodes + + + + + + + + support + + + support + + + support + + + support + + + support + + + support + + + support + + + support\component + + + support\component + + + support\data_support + + + support\data_support + + + support\data_support + + + support\image_support + + + support\tinyxml2 + + + support\user_default + + + support\zip_support + + + support\zip_support + + + support\zip_support + + + base + + + base + + + base + + + base + + + base + + + base + + + base + + + base + + + base + + + base + + + base + + + base + + + base + + + base + + + base + \ No newline at end of file diff --git a/cocos/2d/platform/win32/CCEGLView.cpp b/cocos/2d/platform/win32/CCEGLView.cpp index 4099331cf9..d5b2ba0202 100644 --- a/cocos/2d/platform/win32/CCEGLView.cpp +++ b/cocos/2d/platform/win32/CCEGLView.cpp @@ -26,7 +26,7 @@ THE SOFTWARE. #include "CCSet.h" #include "ccMacros.h" #include "CCDirector.h" -#include "/CCIMEDispatcher.h" +#include "CCIMEDispatcher.h" #include "CCApplication.h" #include "CCTouch.h" #include "CCEventDispatcher.h" diff --git a/cocos/2d/platform/win32/CCEGLView.h b/cocos/2d/platform/win32/CCEGLView.h index 643b500c66..59432e27ba 100644 --- a/cocos/2d/platform/win32/CCEGLView.h +++ b/cocos/2d/platform/win32/CCEGLView.h @@ -30,7 +30,7 @@ THE SOFTWARE. #include "CCGeometry.h" #include "platform/CCEGLViewProtocol.h" -#include "platform/third_party/win32/GLFW/glfw3.h" +#include "glfw3.h" NS_CC_BEGIN diff --git a/cocos/audio/proj.win32/CocosDenshion.vcxproj b/cocos/audio/proj.win32/CocosDenshion.vcxproj index d5a959c878..b59c65d98c 100644 --- a/cocos/audio/proj.win32/CocosDenshion.vcxproj +++ b/cocos/audio/proj.win32/CocosDenshion.vcxproj @@ -11,7 +11,7 @@ - libCocosDenshion + audio {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6} CocosDenshion.win32 Win32Proj @@ -65,7 +65,7 @@ Disabled - $(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A\include;..\Include;$(ProjectDir)..\..\cocos2dx;$(ProjectDir)..\..\cocos2dx\include;$(ProjectDir)..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\external\chipmunk\include\chipmunk;%(AdditionalIncludeDirectories) + $(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A\include;..\Include;$(ProjectDir)..\..\physics;$(ProjectDir)..\..\base;$(ProjectDir)..\..\2d;$(ProjectDir)..\..\2d\platform\win32;$(ProjectDir)..\..\math\kazmath\include;$(ProjectDir)..\..\..\external\glfw3\include\win32;$(ProjectDir)..\..\..\external\win32-specific\gles\include\OGLES;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) false EnableFastChecks diff --git a/extensions/proj.win32/libExtensions.vcxproj b/extensions/proj.win32/libExtensions.vcxproj index e1c2ea14a1..25597c43e3 100644 --- a/extensions/proj.win32/libExtensions.vcxproj +++ b/extensions/proj.win32/libExtensions.vcxproj @@ -92,36 +92,48 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - @@ -141,11 +153,6 @@ - - - - - @@ -168,13 +175,6 @@ - - - - - - - @@ -223,39 +223,58 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -275,11 +294,6 @@ - - - - - @@ -303,20 +317,6 @@ - - - - - - - - - - - - - - @@ -372,10 +372,10 @@ - - - - + + + + diff --git a/extensions/proj.win32/libExtensions.vcxproj.filters b/extensions/proj.win32/libExtensions.vcxproj.filters index e6d6f2354c..766af1001f 100644 --- a/extensions/proj.win32/libExtensions.vcxproj.filters +++ b/extensions/proj.win32/libExtensions.vcxproj.filters @@ -102,75 +102,6 @@ GUI\CCScrollView - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - GUI\CCControlExtension @@ -225,9 +156,6 @@ GUI\CCEditBox - - AssetsManager - spine @@ -298,18 +226,6 @@ network - - CocoStudio\Components - - - CocoStudio\Components - - - CocoStudio\Components - - - CocoStudio\Components - CocoStudio\Armature\animation @@ -364,27 +280,6 @@ CocoStudio\Armature - - CocoStudio\Json - - - CocoStudio\Json - - - CocoStudio\Json\lib_json - - - CocoStudio\Json\lib_json - - - CocoStudio\Json\lib_json - - - CocoStudio\Reader - - - CocoStudio\Components - CocoStudio\Armature\utils @@ -454,9 +349,6 @@ CocoStudio\GUI\System - - CocoStudio\Reader - CocoStudio\GUI\UIWidgets\ScrollWidget @@ -505,9 +397,6 @@ CocoStudio\GUI\Layouts - - CocoStudio\GUI\Layouts - CocoStudio\GUI\Layouts @@ -529,21 +418,129 @@ CocoStudio\Reader - + + AssetsManager + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + CocoStudio\Action - + CocoStudio\Action - + CocoStudio\Action - + CocoStudio\Action - + CocoStudio\Action + + CocoStudio\Components + + + CocoStudio\Components + + + CocoStudio\Components + + + CocoStudio\Components + + + CocoStudio\Components + + + CocoStudio\Reader + + + CocoStudio\Reader + + + CocoStudio\Json + + + CocoStudio\Json + + + CocoStudio\Json\lib_json + + + CocoStudio\Json\lib_json + + + CocoStudio\Json\lib_json + @@ -569,87 +566,6 @@ GUI\CCScrollView - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - GUI\CCControlExtension @@ -710,9 +626,6 @@ GUI\CCEditBox - - AssetsManager - spine @@ -785,18 +698,6 @@ network - - CocoStudio\Components - - - CocoStudio\Components - - - CocoStudio\Components - - - CocoStudio\Components - CocoStudio\Armature\animation @@ -854,48 +755,6 @@ CocoStudio\Armature - - CocoStudio\Json - - - CocoStudio\Json - - - CocoStudio\Json\lib_json - - - CocoStudio\Json\lib_json - - - CocoStudio\Json\lib_json - - - CocoStudio\Json\lib_json - - - CocoStudio\Json\lib_json - - - CocoStudio\Json\lib_json - - - CocoStudio\Json\lib_json - - - CocoStudio\Json\lib_json - - - CocoStudio\Json\lib_json - - - CocoStudio\Json\lib_json - - - CocoStudio\Reader - - - CocoStudio\Components - CocoStudio\GUI\UIWidgets\ScrollWidget @@ -965,36 +824,174 @@ CocoStudio\GUI\System - + + AssetsManager + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + + CCBReader + + + CocoStudio\Action + + + CocoStudio\Action + + + CocoStudio\Action + + + CocoStudio\Action + + + CocoStudio\Action + + + CocoStudio\Components + + + CocoStudio\Components + + + CocoStudio\Components + + + CocoStudio\Components + + + CocoStudio\Components + + CocoStudio\Reader - - CocoStudio\Action + + CocoStudio\Reader - - CocoStudio\Action + + CocoStudio\Json - - CocoStudio\Action + + CocoStudio\Json - - CocoStudio\Action + + CocoStudio\Json\lib_json - - CocoStudio\Action + + CocoStudio\Json\lib_json + + + CocoStudio\Json\lib_json + + + CocoStudio\Json\lib_json + + + CocoStudio\Json\lib_json + + + CocoStudio\Json\lib_json + + + CocoStudio\Json\lib_json + + + CocoStudio\Json\lib_json + + + CocoStudio\Json\lib_json + + + CocoStudio\Json\lib_json - + CocoStudio\Json\lib_json - + CocoStudio\Json\lib_json - + CocoStudio\Json\lib_json - + CocoStudio\Json\lib_json diff --git a/samples/Cpp/HelloCpp/proj.win32/HelloCpp.vcxproj b/samples/Cpp/HelloCpp/proj.win32/HelloCpp.vcxproj index 1f00dbf6ea..233a21ce9c 100644 --- a/samples/Cpp/HelloCpp/proj.win32/HelloCpp.vcxproj +++ b/samples/Cpp/HelloCpp/proj.win32/HelloCpp.vcxproj @@ -36,11 +36,10 @@ - + - - - + + @@ -67,7 +66,7 @@ Disabled - $(ProjectDir)..\..\..\..\cocos2dx;$(ProjectDir)..\..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32\OGLES;..\Classes;$(ProjectDir)..\..\..\..\external\chipmunk\include\chipmunk;%(AdditionalIncludeDirectories) + $(ProjectDir)..\..\..\..\cocos\2d;$(ProjectDir)..\..\..\..\cocos\base;$(ProjectDir)..\..\..\..\cocos\physics;$(ProjectDir)..\..\..\..\cocos\math\kazmath\include;$(ProjectDir)..\..\..\..\cocos\2d\platform\win32;$(ProjectDir)..\..\..\..\external\glfw3\include\win32;$(ProjectDir)..\..\..\..\external\win32-specific\gles\include\OGLES;..\Classes;$(ProjectDir)..\..\..\..\external\chipmunk\include\chipmunk;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;COCOS2D_DEBUG=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -95,7 +94,7 @@ MaxSpeed true - $(ProjectDir)..\..\..\..\cocos2dx;$(ProjectDir)..\..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32\OGLES;..\Classes;%(AdditionalIncludeDirectories) + $(ProjectDir)..\..\..\..\cocos\2d;$(ProjectDir)..\..\..\..\cocos\2d\include;$(ProjectDir)..\..\..\..\cocos\math\kazmath\include;$(ProjectDir)..\..\..\..\cocos\2d\platform\win32;$(ProjectDir)..\..\..\..\external\win32-specific\gles\include\OGLES;..\Classes;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) MultiThreadedDLL true @@ -132,11 +131,11 @@ - + {98a51ba8-fc3a-415b-ac8f-8c7bd464e93e} false - + {f8edd7fa-9a51-4e80-baeb-860825d2eac6} false diff --git a/samples/Cpp/TestCpp/proj.win32/TestCpp.vcxproj b/samples/Cpp/TestCpp/proj.win32/TestCpp.vcxproj index 95e857631c..d9227050c3 100644 --- a/samples/Cpp/TestCpp/proj.win32/TestCpp.vcxproj +++ b/samples/Cpp/TestCpp/proj.win32/TestCpp.vcxproj @@ -36,11 +36,11 @@ - + - + @@ -67,7 +67,7 @@ Disabled - $(ProjectDir)..\..\..\..\cocos2dx;$(ProjectDir)..\..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32\pthread;$(ProjectDir)..\..\..\..\external;$(ProjectDir)..\..\..\..\external\chipmunk\include\chipmunk;$(ProjectDir)..\..\..\..\external\libwebsockets\win32\include;$(ProjectDir)..\..\..\..\audio\include;$(ProjectDir)..\..\..\..\extensions;$(ProjectDir)..\..\..\..\extensions\network;..\Classes;..;%(AdditionalIncludeDirectories) + $(ProjectDir)..\..\..\..\cocos\physics;$(ProjectDir)..\..\..\..\cocos\base;$(ProjectDir)..\..\..\..\cocos\2d;$(ProjectDir)..\..\..\..\cocos\math\kazmath\include;$(ProjectDir)..\..\..\..\cocos\2d\platform\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32;$(ProjectDir)..\..\..\..\external\win32-specific\gles\include\OGLES;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32\pthread;$(ProjectDir)..\..\..\..\external;$(ProjectDir)..\..\..\..\external\chipmunk\include\chipmunk;$(ProjectDir)..\..\..\..\external\glfw3\include\win32;$(ProjectDir)..\..\..\..\external\websockets\win32\include;$(ProjectDir)..\..\..\..\cocos\audio\include;$(ProjectDir)..\..\..\..\extensions;$(ProjectDir)..\..\..\..\cocos\network;..\Classes;..;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USE_MATH_DEFINES;GL_GLEXT_PROTOTYPES;CC_ENABLE_CHIPMUNK_INTEGRATION=1;COCOS2D_DEBUG=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebugDLL @@ -459,11 +459,11 @@ xcopy /Y /Q "$(ProjectDir)..\..\..\..\external\libwebsockets\win32\lib\*.*" "$(O - + {98a51ba8-fc3a-415b-ac8f-8c7bd464e93e} false - + {f8edd7fa-9a51-4e80-baeb-860825d2eac6} false From 4ccb13f5d02dba6532822a8fd93b29ef9178e803 Mon Sep 17 00:00:00 2001 From: samuelhu Date: Fri, 18 Oct 2013 17:37:04 +0800 Subject: [PATCH 02/18] fix libluajia.a search path bug --- build/cocos2d_libs.xcodeproj/project.pbxproj.REMOVED.git-id | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/cocos2d_libs.xcodeproj/project.pbxproj.REMOVED.git-id b/build/cocos2d_libs.xcodeproj/project.pbxproj.REMOVED.git-id index abe193af68..bb2117f6df 100644 --- a/build/cocos2d_libs.xcodeproj/project.pbxproj.REMOVED.git-id +++ b/build/cocos2d_libs.xcodeproj/project.pbxproj.REMOVED.git-id @@ -1 +1 @@ -a791b9789e080d3e7530890cfbaa966fffef5f9e \ No newline at end of file +af3544581a6508d57d3fe3b1f999cdc091bad543 \ No newline at end of file From 0cffe5121965fa77bab543e27e44d1456c6090cd Mon Sep 17 00:00:00 2001 From: samuelhu Date: Fri, 18 Oct 2013 18:08:05 +0800 Subject: [PATCH 03/18] fix libluajia.a search path bug --- build/cocos2d_libs.xcodeproj/project.pbxproj.REMOVED.git-id | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/cocos2d_libs.xcodeproj/project.pbxproj.REMOVED.git-id b/build/cocos2d_libs.xcodeproj/project.pbxproj.REMOVED.git-id index bb2117f6df..18265b616b 100644 --- a/build/cocos2d_libs.xcodeproj/project.pbxproj.REMOVED.git-id +++ b/build/cocos2d_libs.xcodeproj/project.pbxproj.REMOVED.git-id @@ -1 +1 @@ -af3544581a6508d57d3fe3b1f999cdc091bad543 \ No newline at end of file +1c487d29bdc2d80516e86e2ee93b1664e9f7df2f \ No newline at end of file From 54ac8f3537bdbbf9c421c94e6bcad50e8a4a770d Mon Sep 17 00:00:00 2001 From: garfield_ho Date: Sat, 19 Oct 2013 16:44:14 +0800 Subject: [PATCH 04/18] Add cc.RESOLUTION_POLICY to jsb_cocos2d.js,so it can use setDesignResolutionSize in cc.EGLView --- .../javascript/script/jsb_cocos2d.js | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/cocos/scripting/javascript/script/jsb_cocos2d.js b/cocos/scripting/javascript/script/jsb_cocos2d.js index 80ddb0a066..6ed7e19cba 100644 --- a/cocos/scripting/javascript/script/jsb_cocos2d.js +++ b/cocos/scripting/javascript/script/jsb_cocos2d.js @@ -4,6 +4,30 @@ var cc = cc || {}; +cc.RESOLUTION_POLICY = { + // The entire application is visible in the specified area without trying to preserve the original aspect ratio. + // Distortion can occur, and the application may appear stretched or compressed. +EXACTFIT:0, + // The entire application fills the specified area, without distortion but possibly with some cropping, + // while maintaining the original aspect ratio of the application. +NOBORDER:1, + // The entire application is visible in the specified area without distortion while maintaining the original + // aspect ratio of the application. Borders can appear on two sides of the application. +SHOW_ALL:2, + // The application takes the height of the design resolution size and modifies the width of the internal + // canvas so that it fits the aspect ratio of the device + // no distortion will occur however you must make sure your application works on different + // aspect ratios +HEIGHT:3, + // The application takes the width of the design resolution size and modifies the height of the internal + // canvas so that it fits the aspect ratio of the device + // no distortion will occur however you must make sure your application works on different + // aspect ratios +WIDTH:4, + +UNKNOWN:5 +}; + cc.LANGUAGE_ENGLISH = 0; cc.LANGUAGE_CHINESE = 1; cc.LANGUAGE_FRENCH = 2; From 464d1598d23a6bf667ca8e3d1d18d128e9d8d93a Mon Sep 17 00:00:00 2001 From: garfield_ho Date: Sat, 19 Oct 2013 16:48:57 +0800 Subject: [PATCH 05/18] fixed bug of CCBReader that can not autoplaySequence --- cocos/editor-support/cocosbuilder/CCBReader.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cocos/editor-support/cocosbuilder/CCBReader.cpp b/cocos/editor-support/cocosbuilder/CCBReader.cpp index d2f57ecf88..938c595f46 100644 --- a/cocos/editor-support/cocosbuilder/CCBReader.cpp +++ b/cocos/editor-support/cocosbuilder/CCBReader.cpp @@ -273,7 +273,7 @@ Node* CCBReader::readNodeGraphFromData(Data *pData, Object *pOwner, const Size & Dictionary* animationManagers = Dictionary::create(); Node *pNodeGraph = readFileWithCleanUp(true, animationManagers); - if (pNodeGraph && _actionManager->getAutoPlaySequenceId() != -1 && !_jsControlled) + if (pNodeGraph && _actionManager->getAutoPlaySequenceId() != -1) { // Auto play animations _actionManager->runAnimationsForSequenceIdTweenDuration(_actionManager->getAutoPlaySequenceId(), 0); From f11dba586a17cfd46ea183c081ec7bba7796d7ee Mon Sep 17 00:00:00 2001 From: Dhilan007 Date: Mon, 21 Oct 2013 22:09:21 +0800 Subject: [PATCH 06/18] issue #2905:modification vs-project for folder structure change --- build/cocos2d-win32.vc2012.sln | 151 +- cocos/2d/cocos2d.vcxproj | 19 +- cocos/audio/proj.win32/CocosDenshion.vcxproj | 10 +- .../javascript/bindings/XMLHTTPRequest.cpp | 847 --------- .../javascript/bindings/XMLHTTPRequest.h | 112 -- .../cocos2d_specifics.cpp.REMOVED.git-id | 2 +- .../javascript/bindings/cocos2d_specifics.hpp | 19 - .../bindings/js_bindings_ccbreader.cpp | 324 ---- .../bindings/js_bindings_ccbreader.h | 60 - ...s_chipmunk_auto_classes.cpp.REMOVED.git-id | 1 - .../js_bindings_chipmunk_auto_classes.h | 66 - ...dings_chipmunk_auto_classes_registration.h | 29 - ...ings_chipmunk_functions.cpp.REMOVED.git-id | 1 - .../bindings/js_bindings_chipmunk_functions.h | 292 --- ...bindings_chipmunk_functions_registration.h | 285 --- .../bindings/js_bindings_chipmunk_manual.cpp | 1624 ----------------- .../bindings/js_bindings_chipmunk_manual.h | 103 -- .../js_bindings_chipmunk_registration.cpp | 67 - .../js_bindings_chipmunk_registration.h | 31 - .../javascript/bindings/js_bindings_core.cpp | 2 +- .../bindings/js_bindings_system_functions.cpp | 75 - .../bindings/js_bindings_system_functions.h | 23 - ...s_bindings_system_functions_registration.h | 15 - .../js_bindings_system_registration.cpp | 62 - .../js_bindings_system_registration.h | 31 - .../jsb_cocos2dx_extension_manual.cpp | 1015 ----------- .../bindings/jsb_cocos2dx_extension_manual.h | 16 - .../javascript/bindings/jsb_websocket.cpp | 382 ---- .../javascript/bindings/jsb_websocket.h | 34 - .../bindings/proj.win32/libJSBinding.vcxproj | 53 +- .../proj.win32/libJSBinding.vcxproj.filters | 127 +- cocos/scripting/lua/bindings/liblua.vcxproj | 88 +- .../lua/bindings/liblua.vcxproj.filters | 226 +-- extensions/proj.win32/libExtensions.vcxproj | 248 +-- .../proj.win32/libExtensions.vcxproj.filters | 847 +-------- .../AssetsManagerTest/Classes/AppDelegate.cpp | 1 + .../proj.android/build_native.cmd | 7 +- .../proj.win32/AssetsManagerTest.vcxproj | 43 +- .../HelloCpp/proj.android/build_native.cmd | 5 +- .../Cpp/HelloCpp/proj.win32/HelloCpp.vcxproj | 11 +- .../SimpleGame/proj.android/build_native.cmd | 5 +- .../Cpp/TestCpp/proj.android/build_native.cmd | 12 +- .../Cpp/TestCpp/proj.win32/TestCpp.vcxproj | 32 +- .../CocosDragonJS/Classes/AppDelegate.cpp | 10 +- .../proj.android/build_native.cmd | 7 +- .../proj.win32/CocosDragonJS.vcxproj | 56 +- .../CrystalCraze/Classes/AppDelegate.cpp | 10 +- .../proj.android/build_native.cmd | 7 +- .../proj.win32/CrystalCraze.vcxproj | 62 +- .../MoonWarriors/Classes/AppDelegate.cpp | 10 +- .../proj.android/build_native.cmd | 9 +- .../proj.win32/MoonWarriors.vcxproj | 69 +- .../TestJavascript/Classes/AppDelegate.cpp | 21 +- .../proj.android/build_native.cmd | 6 +- .../proj.win32/TestJavascript.vcxproj | 79 +- .../WatermelonWithMe/Classes/AppDelegate.cpp | 10 +- .../proj.android/build_native.cmd | 7 +- .../proj.win32/WatermelonWithMe.vcxproj | 65 +- .../HelloLua/proj.android/build_native.cmd | 7 +- .../Lua/HelloLua/proj.win32/HelloLua.vcxproj | 47 +- .../Lua/TestLua/proj.android/build_native.cmd | 14 +- .../TestLua/proj.win32/TestLua.win32.vcxproj | 54 +- .../proj.android/build_native.cmd | 5 +- .../proj.win32/HelloCpp.sln | 37 +- .../proj.win32/HelloCpp.vcxproj | 32 +- .../multi-platform-js/Classes/AppDelegate.cpp | 17 +- .../proj.android/build_native.cmd | 6 +- .../proj.win32/HelloJavascript.sln | 47 +- .../proj.win32/HelloJavascript.vcxproj | 54 +- .../proj.android/build_native.cmd | 7 +- .../proj.win32/HelloLua.sln | 51 +- .../proj.win32/HelloLua.vcxproj | 47 +- tools/tojs/cocos2dx_extension.ini | 22 +- tools/tojs/genbindings.sh | 6 + 74 files changed, 1056 insertions(+), 7228 deletions(-) delete mode 100644 cocos/scripting/javascript/bindings/XMLHTTPRequest.cpp delete mode 100644 cocos/scripting/javascript/bindings/XMLHTTPRequest.h delete mode 100644 cocos/scripting/javascript/bindings/js_bindings_ccbreader.cpp delete mode 100644 cocos/scripting/javascript/bindings/js_bindings_ccbreader.h delete mode 100644 cocos/scripting/javascript/bindings/js_bindings_chipmunk_auto_classes.cpp.REMOVED.git-id delete mode 100644 cocos/scripting/javascript/bindings/js_bindings_chipmunk_auto_classes.h delete mode 100644 cocos/scripting/javascript/bindings/js_bindings_chipmunk_auto_classes_registration.h delete mode 100644 cocos/scripting/javascript/bindings/js_bindings_chipmunk_functions.cpp.REMOVED.git-id delete mode 100644 cocos/scripting/javascript/bindings/js_bindings_chipmunk_functions.h delete mode 100644 cocos/scripting/javascript/bindings/js_bindings_chipmunk_functions_registration.h delete mode 100644 cocos/scripting/javascript/bindings/js_bindings_chipmunk_manual.cpp delete mode 100644 cocos/scripting/javascript/bindings/js_bindings_chipmunk_manual.h delete mode 100644 cocos/scripting/javascript/bindings/js_bindings_chipmunk_registration.cpp delete mode 100644 cocos/scripting/javascript/bindings/js_bindings_chipmunk_registration.h delete mode 100644 cocos/scripting/javascript/bindings/js_bindings_system_functions.cpp delete mode 100644 cocos/scripting/javascript/bindings/js_bindings_system_functions.h delete mode 100644 cocos/scripting/javascript/bindings/js_bindings_system_functions_registration.h delete mode 100644 cocos/scripting/javascript/bindings/js_bindings_system_registration.cpp delete mode 100644 cocos/scripting/javascript/bindings/js_bindings_system_registration.h delete mode 100644 cocos/scripting/javascript/bindings/jsb_cocos2dx_extension_manual.cpp delete mode 100644 cocos/scripting/javascript/bindings/jsb_cocos2dx_extension_manual.h delete mode 100644 cocos/scripting/javascript/bindings/jsb_websocket.cpp delete mode 100644 cocos/scripting/javascript/bindings/jsb_websocket.h diff --git a/build/cocos2d-win32.vc2012.sln b/build/cocos2d-win32.vc2012.sln index d8c443ec6d..c1f930fa51 100644 --- a/build/cocos2d-win32.vc2012.sln +++ b/build/cocos2d-win32.vc2012.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2012 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "audio", "..\cocos\audio\proj.win32\CocosDenshion.vcxproj", "{F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libAudio", "..\cocos\audio\proj.win32\CocosDenshion.vcxproj", "{F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcocos2d", "..\cocos\2d\cocos2d.vcxproj", "{98A51BA8-FC3A-415B-AC8F-8C7BD464E93E}" EndProject @@ -15,6 +15,54 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libExtensions", "..\extensi EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestCpp", "..\samples\Cpp\TestCpp\proj.win32\TestCpp.vcxproj", "{76A39BB2-9B84-4C65-98A5-654D86B86F2A}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libCocosBuilder", "..\cocos\editor-support\cocosbuilder\proj.win32\libCocosBuilder.vcxproj", "{811C0DAB-7B96-4BD3-A154-B7572B58E4AB}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libCocosStudio", "..\cocos\editor-support\cocostudio\proj.win32\libCocosStudio.vcxproj", "{B57CF53F-2E49-4031-9822-047CC0E6BDE2}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libGUI", "..\cocos\gui\proj.win32\libGUI.vcxproj", "{7E06E92C-537A-442B-9E4A-4761C84F8A1A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libNetwork", "..\cocos\network\proj.win32\libNetwork.vcxproj", "{DF2638C0-8128-4847-867C-6EAFE3DEE7B5}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libSpine", "..\cocos\editor-support\spine\proj.win32\libSpine.vcxproj", "{B7C2A162-DEC9-4418-972E-240AB3CBFCAE}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AssetsManagerTest", "..\samples\Cpp\AssetsManagerTest\proj.win32\AssetsManagerTest.vcxproj", "{6D37505F-A890-441D-BD3F-A61E2C0469CE}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libJSBinding", "..\cocos\scripting\javascript\bindings\proj.win32\libJSBinding.vcxproj", "{39379840-825A-45A0-B363-C09FFEF864BD}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestJavascript", "..\samples\Javascript\TestJavascript\proj.win32\TestJavascript.vcxproj", "{D0F06A44-A245-4D13-A498-0120C203B539}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libLocalStorage", "..\cocos\storage\local-storage\proj.win32\libLocalStorage.vcxproj", "{632A8F38-D0F0-4D22-86B3-D69F5E6BF63A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CocosDragonJS", "..\samples\Javascript\CocosDragonJS\proj.win32\CocosDragonJS.vcxproj", "{68ED0B4E-2BCA-45D2-9648-CEABEBD3B9D7}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CrystalCraze", "..\samples\Javascript\CrystalCraze\proj.win32\CrystalCraze.vcxproj", "{9A17D9A4-4B11-4E32-94F6-895FF4909EC5}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MoonWarriors", "..\samples\Javascript\MoonWarriors\proj.win32\MoonWarriors.vcxproj", "{1DB7C0FC-46FF-4A1B-82E0-C6244EEEC4C2}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WatermelonWithMe", "..\samples\Javascript\WatermelonWithMe\proj.win32\WatermelonWithMe.vcxproj", "{BE092D9E-95AE-4F86-84CE-F4519E4F3F15}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "liblua", "..\cocos\scripting\lua\bindings\liblua.vcxproj", "{DDC3E27F-004D-4DD4-9DD3-931A013D2159}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HelloLua", "..\samples\Lua\HelloLua\proj.win32\HelloLua.vcxproj", "{13E55395-94A2-4CD9-BFC2-1A051F80C17D}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestLua", "..\samples\Lua\TestLua\proj.win32\TestLua.win32.vcxproj", "{4E6A7A0E-DDD8-4BAA-8B22-C964069364ED}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SimpleGame", "..\samples\Cpp\SimpleGame\proj.win32\SimpleGame.vcxproj", "{E0E282F4-8487-452C-BFAB-CB960EB4D22F}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libJSBindingForBuilder", "..\cocos\scripting\javascript\bindings\cocosbuilder\libJSBindingForBuilder.vcxproj", "{F9DA0FC1-651B-457B-962E-A4D61CEBF5FD}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libJSBindingForStudio", "..\cocos\scripting\javascript\bindings\cocostudio\libJSBindingForStudio.vcxproj", "{79D34511-E54E-410A-8BBA-EF175AD6C695}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libJSBindingForNetwork", "..\cocos\scripting\javascript\bindings\network\libJSBindingForNetwork.vcxproj", "{3BEC13F5-E227-4D80-BC77-1C857F83BCFC}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libJSBindingForExtension", "..\cocos\scripting\javascript\bindings\extension\libJSBindingForExtension.vcxproj", "{625F7391-9A91-48A1-8CFC-79508C822637}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "libJSBinding", "libJSBinding", "{10F98A57-B9A1-47DA-9FBA-12D328E72ED1}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libJSBindingForChipmunk", "..\cocos\scripting\javascript\bindings\chipmunk\libJSBindingForChipmunk.vcxproj", "{21070E58-EEC6-4E16-8B4F-6D083DF55790}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libJSBindingForLocalStorage", "..\cocos\scripting\javascript\bindings\localstorage\libJSBindingForLocalStorage.vcxproj", "{68F5F371-BD7B-4C30-AE5B-0B08F22E0CDE}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -49,10 +97,111 @@ Global {76A39BB2-9B84-4C65-98A5-654D86B86F2A}.Debug|Win32.Build.0 = Debug|Win32 {76A39BB2-9B84-4C65-98A5-654D86B86F2A}.Release|Win32.ActiveCfg = Release|Win32 {76A39BB2-9B84-4C65-98A5-654D86B86F2A}.Release|Win32.Build.0 = Release|Win32 + {811C0DAB-7B96-4BD3-A154-B7572B58E4AB}.Debug|Win32.ActiveCfg = Debug|Win32 + {811C0DAB-7B96-4BD3-A154-B7572B58E4AB}.Debug|Win32.Build.0 = Debug|Win32 + {811C0DAB-7B96-4BD3-A154-B7572B58E4AB}.Release|Win32.ActiveCfg = Release|Win32 + {811C0DAB-7B96-4BD3-A154-B7572B58E4AB}.Release|Win32.Build.0 = Release|Win32 + {B57CF53F-2E49-4031-9822-047CC0E6BDE2}.Debug|Win32.ActiveCfg = Debug|Win32 + {B57CF53F-2E49-4031-9822-047CC0E6BDE2}.Debug|Win32.Build.0 = Debug|Win32 + {B57CF53F-2E49-4031-9822-047CC0E6BDE2}.Release|Win32.ActiveCfg = Release|Win32 + {B57CF53F-2E49-4031-9822-047CC0E6BDE2}.Release|Win32.Build.0 = Release|Win32 + {7E06E92C-537A-442B-9E4A-4761C84F8A1A}.Debug|Win32.ActiveCfg = Debug|Win32 + {7E06E92C-537A-442B-9E4A-4761C84F8A1A}.Debug|Win32.Build.0 = Debug|Win32 + {7E06E92C-537A-442B-9E4A-4761C84F8A1A}.Release|Win32.ActiveCfg = Release|Win32 + {7E06E92C-537A-442B-9E4A-4761C84F8A1A}.Release|Win32.Build.0 = Release|Win32 + {DF2638C0-8128-4847-867C-6EAFE3DEE7B5}.Debug|Win32.ActiveCfg = Debug|Win32 + {DF2638C0-8128-4847-867C-6EAFE3DEE7B5}.Debug|Win32.Build.0 = Debug|Win32 + {DF2638C0-8128-4847-867C-6EAFE3DEE7B5}.Release|Win32.ActiveCfg = Release|Win32 + {DF2638C0-8128-4847-867C-6EAFE3DEE7B5}.Release|Win32.Build.0 = Release|Win32 + {B7C2A162-DEC9-4418-972E-240AB3CBFCAE}.Debug|Win32.ActiveCfg = Debug|Win32 + {B7C2A162-DEC9-4418-972E-240AB3CBFCAE}.Debug|Win32.Build.0 = Debug|Win32 + {B7C2A162-DEC9-4418-972E-240AB3CBFCAE}.Release|Win32.ActiveCfg = Release|Win32 + {B7C2A162-DEC9-4418-972E-240AB3CBFCAE}.Release|Win32.Build.0 = Release|Win32 + {6D37505F-A890-441D-BD3F-A61E2C0469CE}.Debug|Win32.ActiveCfg = Debug|Win32 + {6D37505F-A890-441D-BD3F-A61E2C0469CE}.Debug|Win32.Build.0 = Debug|Win32 + {6D37505F-A890-441D-BD3F-A61E2C0469CE}.Release|Win32.ActiveCfg = Release|Win32 + {6D37505F-A890-441D-BD3F-A61E2C0469CE}.Release|Win32.Build.0 = Release|Win32 + {39379840-825A-45A0-B363-C09FFEF864BD}.Debug|Win32.ActiveCfg = Debug|Win32 + {39379840-825A-45A0-B363-C09FFEF864BD}.Debug|Win32.Build.0 = Debug|Win32 + {39379840-825A-45A0-B363-C09FFEF864BD}.Release|Win32.ActiveCfg = Release|Win32 + {39379840-825A-45A0-B363-C09FFEF864BD}.Release|Win32.Build.0 = Release|Win32 + {D0F06A44-A245-4D13-A498-0120C203B539}.Debug|Win32.ActiveCfg = Debug|Win32 + {D0F06A44-A245-4D13-A498-0120C203B539}.Debug|Win32.Build.0 = Debug|Win32 + {D0F06A44-A245-4D13-A498-0120C203B539}.Release|Win32.ActiveCfg = Release|Win32 + {D0F06A44-A245-4D13-A498-0120C203B539}.Release|Win32.Build.0 = Release|Win32 + {632A8F38-D0F0-4D22-86B3-D69F5E6BF63A}.Debug|Win32.ActiveCfg = Debug|Win32 + {632A8F38-D0F0-4D22-86B3-D69F5E6BF63A}.Debug|Win32.Build.0 = Debug|Win32 + {632A8F38-D0F0-4D22-86B3-D69F5E6BF63A}.Release|Win32.ActiveCfg = Release|Win32 + {632A8F38-D0F0-4D22-86B3-D69F5E6BF63A}.Release|Win32.Build.0 = Release|Win32 + {68ED0B4E-2BCA-45D2-9648-CEABEBD3B9D7}.Debug|Win32.ActiveCfg = Debug|Win32 + {68ED0B4E-2BCA-45D2-9648-CEABEBD3B9D7}.Debug|Win32.Build.0 = Debug|Win32 + {68ED0B4E-2BCA-45D2-9648-CEABEBD3B9D7}.Release|Win32.ActiveCfg = Release|Win32 + {68ED0B4E-2BCA-45D2-9648-CEABEBD3B9D7}.Release|Win32.Build.0 = Release|Win32 + {9A17D9A4-4B11-4E32-94F6-895FF4909EC5}.Debug|Win32.ActiveCfg = Debug|Win32 + {9A17D9A4-4B11-4E32-94F6-895FF4909EC5}.Debug|Win32.Build.0 = Debug|Win32 + {9A17D9A4-4B11-4E32-94F6-895FF4909EC5}.Release|Win32.ActiveCfg = Release|Win32 + {9A17D9A4-4B11-4E32-94F6-895FF4909EC5}.Release|Win32.Build.0 = Release|Win32 + {1DB7C0FC-46FF-4A1B-82E0-C6244EEEC4C2}.Debug|Win32.ActiveCfg = Debug|Win32 + {1DB7C0FC-46FF-4A1B-82E0-C6244EEEC4C2}.Debug|Win32.Build.0 = Debug|Win32 + {1DB7C0FC-46FF-4A1B-82E0-C6244EEEC4C2}.Release|Win32.ActiveCfg = Release|Win32 + {1DB7C0FC-46FF-4A1B-82E0-C6244EEEC4C2}.Release|Win32.Build.0 = Release|Win32 + {BE092D9E-95AE-4F86-84CE-F4519E4F3F15}.Debug|Win32.ActiveCfg = Debug|Win32 + {BE092D9E-95AE-4F86-84CE-F4519E4F3F15}.Debug|Win32.Build.0 = Debug|Win32 + {BE092D9E-95AE-4F86-84CE-F4519E4F3F15}.Release|Win32.ActiveCfg = Release|Win32 + {BE092D9E-95AE-4F86-84CE-F4519E4F3F15}.Release|Win32.Build.0 = Release|Win32 + {DDC3E27F-004D-4DD4-9DD3-931A013D2159}.Debug|Win32.ActiveCfg = Debug|Win32 + {DDC3E27F-004D-4DD4-9DD3-931A013D2159}.Debug|Win32.Build.0 = Debug|Win32 + {DDC3E27F-004D-4DD4-9DD3-931A013D2159}.Release|Win32.ActiveCfg = Release|Win32 + {DDC3E27F-004D-4DD4-9DD3-931A013D2159}.Release|Win32.Build.0 = Release|Win32 + {13E55395-94A2-4CD9-BFC2-1A051F80C17D}.Debug|Win32.ActiveCfg = Debug|Win32 + {13E55395-94A2-4CD9-BFC2-1A051F80C17D}.Debug|Win32.Build.0 = Debug|Win32 + {13E55395-94A2-4CD9-BFC2-1A051F80C17D}.Release|Win32.ActiveCfg = Release|Win32 + {13E55395-94A2-4CD9-BFC2-1A051F80C17D}.Release|Win32.Build.0 = Release|Win32 + {4E6A7A0E-DDD8-4BAA-8B22-C964069364ED}.Debug|Win32.ActiveCfg = Debug|Win32 + {4E6A7A0E-DDD8-4BAA-8B22-C964069364ED}.Debug|Win32.Build.0 = Debug|Win32 + {4E6A7A0E-DDD8-4BAA-8B22-C964069364ED}.Release|Win32.ActiveCfg = Release|Win32 + {4E6A7A0E-DDD8-4BAA-8B22-C964069364ED}.Release|Win32.Build.0 = Release|Win32 + {E0E282F4-8487-452C-BFAB-CB960EB4D22F}.Debug|Win32.ActiveCfg = Debug|Win32 + {E0E282F4-8487-452C-BFAB-CB960EB4D22F}.Debug|Win32.Build.0 = Debug|Win32 + {E0E282F4-8487-452C-BFAB-CB960EB4D22F}.Release|Win32.ActiveCfg = Release|Win32 + {E0E282F4-8487-452C-BFAB-CB960EB4D22F}.Release|Win32.Build.0 = Release|Win32 + {F9DA0FC1-651B-457B-962E-A4D61CEBF5FD}.Debug|Win32.ActiveCfg = Debug|Win32 + {F9DA0FC1-651B-457B-962E-A4D61CEBF5FD}.Debug|Win32.Build.0 = Debug|Win32 + {F9DA0FC1-651B-457B-962E-A4D61CEBF5FD}.Release|Win32.ActiveCfg = Release|Win32 + {F9DA0FC1-651B-457B-962E-A4D61CEBF5FD}.Release|Win32.Build.0 = Release|Win32 + {79D34511-E54E-410A-8BBA-EF175AD6C695}.Debug|Win32.ActiveCfg = Debug|Win32 + {79D34511-E54E-410A-8BBA-EF175AD6C695}.Debug|Win32.Build.0 = Debug|Win32 + {79D34511-E54E-410A-8BBA-EF175AD6C695}.Release|Win32.ActiveCfg = Release|Win32 + {79D34511-E54E-410A-8BBA-EF175AD6C695}.Release|Win32.Build.0 = Release|Win32 + {3BEC13F5-E227-4D80-BC77-1C857F83BCFC}.Debug|Win32.ActiveCfg = Debug|Win32 + {3BEC13F5-E227-4D80-BC77-1C857F83BCFC}.Debug|Win32.Build.0 = Debug|Win32 + {3BEC13F5-E227-4D80-BC77-1C857F83BCFC}.Release|Win32.ActiveCfg = Release|Win32 + {3BEC13F5-E227-4D80-BC77-1C857F83BCFC}.Release|Win32.Build.0 = Release|Win32 + {625F7391-9A91-48A1-8CFC-79508C822637}.Debug|Win32.ActiveCfg = Debug|Win32 + {625F7391-9A91-48A1-8CFC-79508C822637}.Debug|Win32.Build.0 = Debug|Win32 + {625F7391-9A91-48A1-8CFC-79508C822637}.Release|Win32.ActiveCfg = Release|Win32 + {625F7391-9A91-48A1-8CFC-79508C822637}.Release|Win32.Build.0 = Release|Win32 + {21070E58-EEC6-4E16-8B4F-6D083DF55790}.Debug|Win32.ActiveCfg = Debug|Win32 + {21070E58-EEC6-4E16-8B4F-6D083DF55790}.Debug|Win32.Build.0 = Debug|Win32 + {21070E58-EEC6-4E16-8B4F-6D083DF55790}.Release|Win32.ActiveCfg = Release|Win32 + {21070E58-EEC6-4E16-8B4F-6D083DF55790}.Release|Win32.Build.0 = Release|Win32 + {68F5F371-BD7B-4C30-AE5B-0B08F22E0CDE}.Debug|Win32.ActiveCfg = Debug|Win32 + {68F5F371-BD7B-4C30-AE5B-0B08F22E0CDE}.Debug|Win32.Build.0 = Debug|Win32 + {68F5F371-BD7B-4C30-AE5B-0B08F22E0CDE}.Release|Win32.ActiveCfg = Release|Win32 + {68F5F371-BD7B-4C30-AE5B-0B08F22E0CDE}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {39379840-825A-45A0-B363-C09FFEF864BD} = {10F98A57-B9A1-47DA-9FBA-12D328E72ED1} + {F9DA0FC1-651B-457B-962E-A4D61CEBF5FD} = {10F98A57-B9A1-47DA-9FBA-12D328E72ED1} + {625F7391-9A91-48A1-8CFC-79508C822637} = {10F98A57-B9A1-47DA-9FBA-12D328E72ED1} + {3BEC13F5-E227-4D80-BC77-1C857F83BCFC} = {10F98A57-B9A1-47DA-9FBA-12D328E72ED1} + {79D34511-E54E-410A-8BBA-EF175AD6C695} = {10F98A57-B9A1-47DA-9FBA-12D328E72ED1} + {21070E58-EEC6-4E16-8B4F-6D083DF55790} = {10F98A57-B9A1-47DA-9FBA-12D328E72ED1} + {68F5F371-BD7B-4C30-AE5B-0B08F22E0CDE} = {10F98A57-B9A1-47DA-9FBA-12D328E72ED1} + EndGlobalSection GlobalSection(DPCodeReviewSolutionGUID) = preSolution DPCodeReviewSolutionGUID = {00000000-0000-0000-0000-000000000000} EndGlobalSection diff --git a/cocos/2d/cocos2d.vcxproj b/cocos/2d/cocos2d.vcxproj index 0c421489f9..a7f030bb9f 100644 --- a/cocos/2d/cocos2d.vcxproj +++ b/cocos/2d/cocos2d.vcxproj @@ -36,9 +36,13 @@ + + + + @@ -69,7 +73,7 @@ Disabled - $(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A\include;$(ProjectDir);$(ProjectDir)..\physics;$(ProjectDir)..\..\external\glfw3\include\win32;$(ProjectDir)..\base;$(ProjectDir)..\..\external\unzip;$(ProjectDir)..\..\external\tinyxml2;$(ProjectDir)platform\win32;$(ProjectDir)..\..\external\win32-specific\icon\include;$(ProjectDir)..\..\external\win32-specific\zlib\include;$(ProjectDir)..\..\external\png\include\win32;$(ProjectDir)..\..\external\jpeg\include\win32;$(ProjectDir)..\..\external\tiff\include\win32;$(ProjectDir)..\..\external\webp\include\win32;$(ProjectDir)..\..\external\freetype2\include\win32;$(ProjectDir)..\..\external\win32-specific\gles\include\OGLES;$(ProjectDir)..\math\kazmath\include;$(ProjectDir)platform\third_party\common\etc;$(ProjectDir)..\..\external\chipmunk\include\chipmunk;%(AdditionalIncludeDirectories) + $(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A\include;$(EngineRoot)external\sqlite3\include;$(EngineRoot)external\unzip;$(EngineRoot)external\tinyxml2;$(EngineRoot)external\png\include\win32;$(EngineRoot)external\jpeg\include\win32;$(EngineRoot)external\tiff\include\win32;$(EngineRoot)external\webp\include\win32;$(EngineRoot)external\freetype2\include\win32;$(EngineRoot)external\win32-specific\icon\include;$(EngineRoot)external\win32-specific\zlib\include;$(EngineRoot)external\chipmunk\include\chipmunk;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_LIB;COCOS2DXWIN32_EXPORTS;GL_GLEXT_PROTOTYPES;COCOS2D_DEBUG=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) false EnableFastChecks @@ -116,7 +120,7 @@ xcopy /Y /Q "$(ProjectDir)..\..\external\win32-specific\gles\prebuilt\*.*" "$(Ou - $(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A\include;$(ProjectDir)..;$(ProjectDir)..\platform\win32;$(ProjectDir)..\platform\third_party\win32\iconv;$(ProjectDir)..\platform\third_party\win32\zlib;$(ProjectDir)..\platform\third_party\win32\libpng;$(ProjectDir)..\platform\third_party\win32\libjpeg;$(ProjectDir)..\platform\third_party\win32\libtiff;$(ProjectDir)..\platform\third_party\win32\libwebp;$(ProjectDir)..\platform\third_party\win32\libfreetype2;$(ProjectDir)..\platform\third_party\win32\OGLES;..\include;$(ProjectDir)..\kazmath\include;$(ProjectDir)..\platform\third_party\common\etc;%(AdditionalIncludeDirectories) + $(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A\include;$(EngineRoot)external\sqlite3\include;$(EngineRoot)external\unzip;$(EngineRoot)external\tinyxml2;$(EngineRoot)external\png\include\win32;$(EngineRoot)external\jpeg\include\win32;$(EngineRoot)external\tiff\include\win32;$(EngineRoot)external\webp\include\win32;$(EngineRoot)external\freetype2\include\win32;$(EngineRoot)external\win32-specific\icon\include;$(EngineRoot)external\win32-specific\zlib\include;$(EngineRoot)external\chipmunk\include\chipmunk;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_LIB;COCOS2DXWIN32_EXPORTS;GL_GLEXT_PROTOTYPES;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) MultiThreadedDLL @@ -128,7 +132,16 @@ xcopy /Y /Q "$(ProjectDir)..\..\external\win32-specific\gles\prebuilt\*.*" "$(Ou if not exist "$(OutDir)" mkdir "$(OutDir)" -xcopy /Y /Q "$(ProjectDir)..\..\external*\win32\*.*" "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\external\freetype2\prebuilt\win32\*.*" "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\external\glfw3\prebuilt\win32\*.*" "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\external\curl\prebuilt\win32\*.*" "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\external\jpeg\prebuilt\win32\*.*" "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\external\png\prebuilt\win32\*.*" "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\external\tiff\prebuilt\win32\*.*" "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\external\webp\prebuilt\win32\*.*" "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\external\win32-specific\zlib\prebuilt\*.*" "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\external\win32-specific\icon\prebuilt\*.*" "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\external\win32-specific\gles\prebuilt\*.*" "$(OutDir)" diff --git a/cocos/audio/proj.win32/CocosDenshion.vcxproj b/cocos/audio/proj.win32/CocosDenshion.vcxproj index b59c65d98c..ecde64b8c3 100644 --- a/cocos/audio/proj.win32/CocosDenshion.vcxproj +++ b/cocos/audio/proj.win32/CocosDenshion.vcxproj @@ -11,7 +11,7 @@ - audio + libAudio {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6} CocosDenshion.win32 Win32Proj @@ -36,9 +36,13 @@ + + + + @@ -65,7 +69,7 @@ Disabled - $(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A\include;..\Include;$(ProjectDir)..\..\physics;$(ProjectDir)..\..\base;$(ProjectDir)..\..\2d;$(ProjectDir)..\..\2d\platform\win32;$(ProjectDir)..\..\math\kazmath\include;$(ProjectDir)..\..\..\external\glfw3\include\win32;$(ProjectDir)..\..\..\external\win32-specific\gles\include\OGLES;%(AdditionalIncludeDirectories) + $(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A\include;..\Include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) false EnableFastChecks @@ -89,7 +93,7 @@ - $(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A\include;..\Include;"$(ProjectDir)..\..\cocos2dx";"$(ProjectDir)..\..\cocos2dx\include";"$(ProjectDir)..\..\cocos2dx\kazmath\include";"$(ProjectDir)..\..\cocos2dx\platform\win32";"$(ProjectDir)..\..\cocos2dx\platform\third_party\win32\OGLES";%(AdditionalIncludeDirectories) + $(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A\include;..\Include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) MultiThreadedDLL diff --git a/cocos/scripting/javascript/bindings/XMLHTTPRequest.cpp b/cocos/scripting/javascript/bindings/XMLHTTPRequest.cpp deleted file mode 100644 index cc7b72c586..0000000000 --- a/cocos/scripting/javascript/bindings/XMLHTTPRequest.cpp +++ /dev/null @@ -1,847 +0,0 @@ -// -// XMLHTTPRequest.cpp -// XMLHttpRequest -// -// Created by Zynga 2013 -// -// Heavy based on: https://github.com/funkaster/FakeWebGL/blob/master/FakeWebGL/WebGL/XMLHTTPRequest.cpp -// Copyright (c) 2012 Rolando Abarca. All rights reserved. -// -// 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 "XMLHTTPRequest.h" -#include - -using namespace std; - -//#pragma mark - MinXmlHttpRequest - -/** - * @brief Implementation for header retrieving. - * @param header - */ -void MinXmlHttpRequest::_gotHeader(string header) -{ - // Get Header and Set StatusText - // Split String into Tokens - char * cstr = new char [header.length()+1]; - - // check for colon. - unsigned found_header_field = header.find_first_of(":"); - - if (found_header_field != std::string::npos) - { - // Found a header field. - string http_field; - string http_value; - - http_field = header.substr(0,found_header_field); - http_value = header.substr(found_header_field+1, header.length()); - - // Get rid of all \n - if (!http_value.empty() && http_value[http_value.size() - 1] == '\n') { - http_value.erase(http_value.size() - 1); - } - - _httpHeader[http_field] = http_value; - - } - else - { - // Seems like we have the response Code! Parse it and check for it. - char * pch; - strcpy(cstr, header.c_str()); - - pch = strtok(cstr," "); - while (pch != NULL) - { - - stringstream ss; - string val; - - ss << pch; - val = ss.str(); - unsigned found_http = val.find("HTTP"); - - // Check for HTTP Header to set statusText - if (found_http != std::string::npos) { - - stringstream mystream; - - // Get Response Status - pch = strtok (NULL, " "); - mystream << pch; - - pch = strtok (NULL, " "); - mystream << " " << pch; - - _statusText = mystream.str(); - - } - - pch = strtok (NULL, " "); - } - } - - CC_SAFE_DELETE_ARRAY(cstr); -} - -/** - * @brief Set Request header for next call. - * @param field Name of the Header to be set. - * @param value Value of the Headerfield - */ -void MinXmlHttpRequest::_setRequestHeader(const char* field, const char* value) -{ - stringstream header_s; - stringstream value_s; - string header; - - map::iterator iter = _requestHeader.find(field); - - // Concatenate values when header exists. - if (iter != _requestHeader.end()) - { - value_s << iter->second << "," << value; - } - else - { - value_s << value; - } - - _requestHeader[field] = value_s.str(); -} - -/** - * @brief If headers has been set, pass them to curl. - * - */ -void MinXmlHttpRequest::_setHttpRequestHeader() -{ - std::vector header; - - for (auto it = _requestHeader.begin(); it != _requestHeader.end(); ++it) - { - const char* first = it->first.c_str(); - const char* second = it->second.c_str(); - size_t len = sizeof(char) * (strlen(first) + 3 + strlen(second)); - char* test = (char*) malloc(len); - memset(test, 0,len); - - strcpy(test, first); - strcpy(test + strlen(first) , ": "); - strcpy(test + strlen(first) + 2, second); - - header.push_back(test); - - free(test); - - } - - if (!header.empty()) - { - _httpRequest->setHeaders(header); - } - -} - -/** - * @brief Callback for HTTPRequest. Handles the response and invokes Callback. - * @param sender Object which initialized callback - * @param respone Response object - */ -void MinXmlHttpRequest::handle_requestResponse(network::HttpClient *sender, network::HttpResponse *response) -{ - if (0 != strlen(response->getHttpRequest()->getTag())) - { - CCLOG("%s completed", response->getHttpRequest()->getTag()); - } - - int statusCode = response->getResponseCode(); - char statusString[64] = {}; - sprintf(statusString, "HTTP Status Code: %d, tag = %s", statusCode, response->getHttpRequest()->getTag()); - - if (!response->isSucceed()) - { - CCLOG("response failed"); - CCLOG("error buffer: %s", response->getErrorBuffer()); - return; - } - - // set header - std::vector *headers = response->getResponseHeader(); - - char* concatHeader = (char*) malloc(headers->size() + 1); - std::string header(headers->begin(), headers->end()); - strcpy(concatHeader, header.c_str()); - - std::istringstream stream(concatHeader); - std::string line; - while(std::getline(stream, line)) { - _gotHeader(line); - } - - /** get the response data **/ - std::vector *buffer = response->getResponseData(); - char* concatenated = (char*) malloc(buffer->size() + 1); - std::string s2(buffer->begin(), buffer->end()); - - strcpy(concatenated, s2.c_str()); - - if (statusCode == 200) - { - //Succeeded - _status = 200; - _readyState = DONE; - _data << concatenated; - _dataSize = buffer->size(); - } - else - { - _status = 0; - } - // Free Memory. - free((void*) concatHeader); - free((void*) concatenated); - - js_proxy_t * p; - void* ptr = (void*)this; - p = jsb_get_native_proxy(ptr); - - if(p) - { - JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); - - if (_onreadystateCallback) - { - //JS_IsExceptionPending(cx) && JS_ReportPendingException(cx); - jsval fval = OBJECT_TO_JSVAL(_onreadystateCallback); - jsval out; - JS_CallFunctionValue(cx, NULL, fval, 0, NULL, &out); - } - - } - -} -/** - * @brief Send out request and fire callback when done. - * @param cx Javascript context - */ -void MinXmlHttpRequest::_sendRequest(JSContext *cx) -{ - _httpRequest->setResponseCallback(this, httpresponse_selector(MinXmlHttpRequest::handle_requestResponse)); - network::HttpClient::getInstance()->send(_httpRequest); - _httpRequest->release(); -} - -/** - * @brief Constructor initializes cchttprequest and stuff - * - */ -MinXmlHttpRequest::MinXmlHttpRequest() : _onreadystateCallback(NULL), _isNetwork(true) -{ - _httpHeader.clear(); - _requestHeader.clear(); - _withCredentialsValue = true; - _cx = ScriptingCore::getInstance()->getGlobalContext(); - _httpRequest = new network::HttpRequest(); -} - -/** - * @brief Destructor cleans up _httpRequest and stuff - * - */ -MinXmlHttpRequest::~MinXmlHttpRequest() -{ - _httpHeader.clear(); - _requestHeader.clear(); - - if (_onreadystateCallback != NULL) - { - JS_RemoveObjectRoot(_cx, &_onreadystateCallback); - } - - if (_httpRequest) - { - // We don't need to release _httpRequest here since it will be released in the http callback. -// _httpRequest->release(); - } - -} - -/** - * @brief Initialize Object and needed properties. - * - */ -JS_BINDED_CLASS_GLUE_IMPL(MinXmlHttpRequest); - -/** - * @brief Implementation for the Javascript Constructor - * - */ -JS_BINDED_CONSTRUCTOR_IMPL(MinXmlHttpRequest) -{ - MinXmlHttpRequest* req = new MinXmlHttpRequest(); - req->autorelease(); - - js_proxy_t *p; - jsval out; - - JSObject *obj = JS_NewObject(cx, &MinXmlHttpRequest::js_class, MinXmlHttpRequest::js_proto, MinXmlHttpRequest::js_parent); - - if (obj) { - JS_SetPrivate(obj, req); - out = OBJECT_TO_JSVAL(obj); - } - - JS_SET_RVAL(cx, vp, out); - p =jsb_new_proxy(req, obj); - - JS_AddNamedObjectRoot(cx, &p->obj, "XMLHttpRequest"); - return JS_TRUE; -} - -/** - * @brief get Callback function for Javascript - * - */ -JS_BINDED_PROP_GET_IMPL(MinXmlHttpRequest, onreadystatechange) -{ - if (_onreadystateCallback) - { - JSString *tmpstr = JS_NewStringCopyZ(cx, "1"); - jsval tmpval = STRING_TO_JSVAL(tmpstr); - JS_SetProperty(cx, _onreadystateCallback, "readyState", &tmpval); - - jsval out = OBJECT_TO_JSVAL(_onreadystateCallback); - vp.set(out); - - } - else - { - vp.set(JSVAL_NULL); - } - return JS_TRUE; -} - -/** - * @brief Set Callback function coming from Javascript - * - * - */ -JS_BINDED_PROP_SET_IMPL(MinXmlHttpRequest, onreadystatechange) -{ - jsval callback = vp.get(); - if (callback != JSVAL_NULL) - { - _onreadystateCallback = JSVAL_TO_OBJECT(callback); - JS_AddNamedObjectRoot(cx, &_onreadystateCallback, "onreadystateCallback"); - } - return JS_TRUE; -} - -/** - * @brief upload getter - TODO - * - * Placeholder for further implementations!! - */ -JS_BINDED_PROP_GET_IMPL(MinXmlHttpRequest, upload) -{ - vp.set(JSVAL_NULL); - return JS_TRUE; -} - -/** - * @brief upload setter - TODO - * - * Placeholder for further implementations - */ -JS_BINDED_PROP_SET_IMPL(MinXmlHttpRequest, upload) -{ - vp.set(JSVAL_NULL); - return JS_TRUE; -} - -/** - * @brief timeout getter - TODO - * - * Placeholder for further implementations - */ -JS_BINDED_PROP_GET_IMPL(MinXmlHttpRequest, timeout) -{ - vp.set(INT_TO_JSVAL(_timeout)); - return JS_TRUE; -} - -/** - * @brief timeout setter - TODO - * - * Placeholder for further implementations - */ -JS_BINDED_PROP_SET_IMPL(MinXmlHttpRequest, timeout) -{ - jsval timeout_ms = vp.get(); - - _timeout = JSVAL_TO_INT(timeout_ms); - //curl_easy_setopt(curlHandle, CURLOPT_CONNECTTIMEOUT_MS, timeout); - return JS_TRUE; - -} - -/** - * @brief get response type for actual XHR - * - * - */ -JS_BINDED_PROP_GET_IMPL(MinXmlHttpRequest, responseType) -{ - JSString* str = JS_NewStringCopyN(cx, "", 0); - vp.set(STRING_TO_JSVAL(str)); - return JS_TRUE; -} - -/** - * @brief responseXML getter - TODO - * - * Placeholder for further implementation. - */ -JS_BINDED_PROP_GET_IMPL(MinXmlHttpRequest, responseXML) -{ - vp.set(JSVAL_NULL); - return JS_TRUE; -} - -/** - * @brief set response type for actual XHR - * - * - */ -JS_BINDED_PROP_SET_IMPL(MinXmlHttpRequest, responseType) -{ - jsval type = vp.get(); - if (type.isString()) { - JSString* str = type.toString(); - JSBool equal; - - JS_StringEqualsAscii(cx, str, "text", &equal); - if (equal) - { - _responseType = ResponseType::STRING; - return JS_TRUE; - } - - JS_StringEqualsAscii(cx, str, "arraybuffer", &equal); - if (equal) - { - _responseType = ResponseType::ARRAY_BUFFER; - return JS_TRUE; - } - - JS_StringEqualsAscii(cx, str, "json", &equal); - if (equal) - { - _responseType = ResponseType::JSON; - return JS_TRUE; - } - // ignore the rest of the response types for now - return JS_TRUE; - } - JS_ReportError(cx, "Invalid response type"); - return JS_FALSE; -} - -/** - * @brief get readyState for actual XHR - * - * - */ -JS_BINDED_PROP_GET_IMPL(MinXmlHttpRequest, readyState) -{ - vp.set(INT_TO_JSVAL(_readyState)); - return JS_TRUE; -} - -/** - * @brief get status for actual XHR - * - * - */ -JS_BINDED_PROP_GET_IMPL(MinXmlHttpRequest, status) -{ - vp.set(INT_TO_JSVAL(_status)); - return JS_TRUE; -} - -/** - * @brief get statusText for actual XHR - * - * - */ -JS_BINDED_PROP_GET_IMPL(MinXmlHttpRequest, statusText) -{ - jsval strVal = std_string_to_jsval(cx, _statusText); - - if (strVal != JSVAL_NULL) - { - vp.set(strVal); - return JS_TRUE; - } - else - { - JS_ReportError(cx, "Error trying to create JSString from data"); - return JS_FALSE; - } -} - -/** - * @brief get value of withCredentials property. - * - */ -JS_BINDED_PROP_GET_IMPL(MinXmlHttpRequest, withCredentials) -{ - vp.set(BOOLEAN_TO_JSVAL(_withCredentialsValue)); - return JS_TRUE; -} - -/** - * withCredentials - set value of withCredentials property. - * - */ -JS_BINDED_PROP_SET_IMPL(MinXmlHttpRequest, withCredentials) -{ - jsval credential = vp.get(); - if (credential != JSVAL_NULL) - { - _withCredentialsValue = JSVAL_TO_BOOLEAN(credential); - } - - return JS_TRUE; -} - -/** - * @brief get (raw) responseText - * - */ -JS_BINDED_PROP_GET_IMPL(MinXmlHttpRequest, responseText) -{ - jsval strVal = std_string_to_jsval(cx, _data.str()); - - if (strVal != JSVAL_NULL) - { - vp.set(strVal); - //JS_ReportError(cx, "Result: %s", data.str().c_str()); - return JS_TRUE; - } else { - JS_ReportError(cx, "Error trying to create JSString from data"); - return JS_FALSE; - } -} - -/** - * @brief get response of latest XHR - * - */ -JS_BINDED_PROP_GET_IMPL(MinXmlHttpRequest, response) -{ - - if (_responseType == ResponseType::JSON) - { - jsval outVal; - - jsval strVal = std_string_to_jsval(cx, _data.str()); - if (JS_ParseJSON(cx, JS_GetStringCharsZ(cx, JSVAL_TO_STRING(strVal)), _dataSize, &outVal)) - { - vp.set(outVal); - return JS_TRUE; - } - } - else if (_responseType == ResponseType::ARRAY_BUFFER) - { - JSObject* tmp = JS_NewArrayBuffer(cx, _dataSize); - uint8_t* tmpData = JS_GetArrayBufferData(tmp); - _data.read((char*)tmpData, _dataSize); - jsval outVal = OBJECT_TO_JSVAL(tmp); - - vp.set(outVal); - return JS_TRUE; - } - // by default, return text - return _js_get_responseText(cx, id, vp); -} - -/** - * @brief initialize new xhr. - * - */ -JS_BINDED_FUNC_IMPL(MinXmlHttpRequest, open) -{ - if (argc >= 2) - { - jsval* argv = JS_ARGV(cx, vp); - const char* method; - const char* urlstr; - JSBool async = true; - JSString* jsMethod = JS_ValueToString(cx, argv[0]); - JSString* jsURL = JS_ValueToString(cx, argv[1]); - - if (argc > 2) { - JS_ValueToBoolean(cx, argv[2], &async); - } - - JSStringWrapper w1(jsMethod); - JSStringWrapper w2(jsURL); - method = w1; - urlstr = w2; - - _url = urlstr; - _meth = method; - _readyState = 1; - _isAsync = async; - - if (_url.length() > 5 && _url.compare(_url.length() - 5, 5, ".json") == 0) - { - _responseType = ResponseType::JSON; - } - - if (_meth.compare("post") == 0 || _meth.compare("POST") == 0) - { - _httpRequest->setRequestType(network::HttpRequest::Type::POST); - } - else - { - _httpRequest->setRequestType(network::HttpRequest::Type::GET); - } - - _httpRequest->setUrl(_url.c_str()); - - _isNetwork = true; - _readyState = OPENED; - - return JS_TRUE; - } - - JS_ReportError(cx, "invalid call: %s", __FUNCTION__); - return JS_FALSE; - -} - -/** - * @brief send xhr - * - */ -JS_BINDED_FUNC_IMPL(MinXmlHttpRequest, send) -{ - JSString *str = NULL; - std::string data; - - // Clean up header map. New request, new headers! - _httpHeader.clear(); - - if (argc == 1) - { - if (!JS_ConvertArguments(cx, argc, JS_ARGV(cx, vp), "S", &str)) - { - return JS_FALSE; - } - JSStringWrapper strWrap(str); - data = strWrap.get(); - } - - - if (data.length() > 0 && (_meth.compare("post") == 0 || _meth.compare("POST") == 0)) - { - _httpRequest->setRequestData(data.c_str(), data.length()); - } - - _setHttpRequestHeader(); - _sendRequest(cx); - - return JS_TRUE; -} - -/** - * @brief abort function Placeholder! - * - */ -JS_BINDED_FUNC_IMPL(MinXmlHttpRequest, abort) -{ - return JS_TRUE; -} - -/** - * @brief Get all response headers as a string - * - */ -JS_BINDED_FUNC_IMPL(MinXmlHttpRequest, getAllResponseHeaders) -{ - stringstream responseheaders; - string responseheader; - - for (auto it = _httpHeader.begin(); it != _httpHeader.end(); ++it) - { - responseheaders << it->first << ": " << it->second << "\n"; - } - - responseheader = responseheaders.str(); - - jsval strVal = std_string_to_jsval(cx, responseheader); - if (strVal != JSVAL_NULL) - { - JS_SET_RVAL(cx, vp, strVal); - return JS_TRUE; - } - else - { - JS_ReportError(cx, "Error trying to create JSString from data"); - return JS_FALSE; - } - - return JS_TRUE; -} - -/** - * @brief Get all response headers as a string - * - */ -JS_BINDED_FUNC_IMPL(MinXmlHttpRequest, getResponseHeader) -{ - JSString *header_value; - - if (!JS_ConvertArguments(cx, argc, JS_ARGV(cx, vp), "S", &header_value)) { - return JS_FALSE; - }; - - std::string data; - JSStringWrapper strWrap(header_value); - data = strWrap.get(); - - stringstream streamdata; - - streamdata << data; - - string value = streamdata.str(); - - auto iter = _httpHeader.find(value); - if (iter != _httpHeader.end()) - { - jsval js_ret_val = std_string_to_jsval(cx, iter->second); - JS_SET_RVAL(cx, vp, js_ret_val); - return JS_TRUE; - } - else { - JS_SET_RVAL(cx, vp, JSVAL_NULL); - return JS_TRUE; - } -} - -/** - * @brief Set the given Fields to request Header. - * - * - */ -JS_BINDED_FUNC_IMPL(MinXmlHttpRequest, setRequestHeader) -{ - if (argc >= 2) - { - jsval* argv = JS_ARGV(cx, vp); - const char* field; - const char* value; - - JSString* jsField = JS_ValueToString(cx, argv[0]); - JSString* jsValue = JS_ValueToString(cx, argv[1]); - - JSStringWrapper w1(jsField); - JSStringWrapper w2(jsValue); - field = w1; - value = w2; - - // Populate the request_header map. - _setRequestHeader(field, value); - - return JS_TRUE; - } - - return JS_FALSE; - -} - -/** - * @brief overrideMimeType function - TODO! - * - * Just a placeholder for further implementations. - */ -JS_BINDED_FUNC_IMPL(MinXmlHttpRequest, overrideMimeType) -{ - return JS_TRUE; -} - -/** - * @brief destructor for Javascript - * - */ -static void basic_object_finalize(JSFreeOp *freeOp, JSObject *obj) -{ - CCLOG("basic_object_finalize %p ...", obj); -} - -/** - * @brief Register XMLHttpRequest to be usable in JS and add properties and Mehtods. - * @param cx Global Spidermonkey JS Context. - * @param global Global Spidermonkey Javascript object. - */ -void MinXmlHttpRequest::_js_register(JSContext *cx, JSObject *global) -{ - JSClass js_class = { - "XMLHttpRequest", JSCLASS_HAS_PRIVATE, JS_PropertyStub, - JS_DeletePropertyStub, JS_PropertyStub, JS_StrictPropertyStub, - JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, - basic_object_finalize, JSCLASS_NO_OPTIONAL_MEMBERS - }; - - MinXmlHttpRequest::js_class = js_class; - static JSPropertySpec props[] = { - JS_BINDED_PROP_DEF_ACCESSOR(MinXmlHttpRequest, onreadystatechange), - JS_BINDED_PROP_DEF_ACCESSOR(MinXmlHttpRequest, responseType), - JS_BINDED_PROP_DEF_ACCESSOR(MinXmlHttpRequest, withCredentials), - JS_BINDED_PROP_DEF_GETTER(MinXmlHttpRequest, readyState), - JS_BINDED_PROP_DEF_GETTER(MinXmlHttpRequest, status), - JS_BINDED_PROP_DEF_GETTER(MinXmlHttpRequest, statusText), - JS_BINDED_PROP_DEF_GETTER(MinXmlHttpRequest, responseText), - JS_BINDED_PROP_DEF_GETTER(MinXmlHttpRequest, responseXML), - JS_BINDED_PROP_DEF_GETTER(MinXmlHttpRequest, response), - {0, 0, 0, 0, 0} - }; - - static JSFunctionSpec funcs[] = { - JS_BINDED_FUNC_FOR_DEF(MinXmlHttpRequest, open), - JS_BINDED_FUNC_FOR_DEF(MinXmlHttpRequest, abort), - JS_BINDED_FUNC_FOR_DEF(MinXmlHttpRequest, send), - JS_BINDED_FUNC_FOR_DEF(MinXmlHttpRequest, setRequestHeader), - JS_BINDED_FUNC_FOR_DEF(MinXmlHttpRequest, getAllResponseHeaders), - JS_BINDED_FUNC_FOR_DEF(MinXmlHttpRequest, getResponseHeader), - JS_BINDED_FUNC_FOR_DEF(MinXmlHttpRequest, overrideMimeType), - JS_FS_END - }; - - MinXmlHttpRequest::js_parent = NULL; - MinXmlHttpRequest::js_proto = JS_InitClass(cx, global, NULL, &MinXmlHttpRequest::js_class , MinXmlHttpRequest::_js_constructor, 0, props, funcs, NULL, NULL); - -} - diff --git a/cocos/scripting/javascript/bindings/XMLHTTPRequest.h b/cocos/scripting/javascript/bindings/XMLHTTPRequest.h deleted file mode 100644 index 861e0a2536..0000000000 --- a/cocos/scripting/javascript/bindings/XMLHTTPRequest.h +++ /dev/null @@ -1,112 +0,0 @@ -// -// XMLHTTPRequest.h -// XMLHttpRequest -// -// Created by Zynga 2013 -// -// Heavy based on: https://github.com/funkaster/FakeWebGL/blob/master/FakeWebGL/WebGL/XMLHTTPRequest.h -// Copyright (c) 2012 Rolando Abarca. All rights reserved. -// -// 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 __FAKE_XMLHTTPREQUEST_H__ -#define __FAKE_XMLHTTPREQUEST_H__ - -#include "network/HttpClient.h" -#include "js_bindings_config.h" -#include "ScriptingCore.h" -#include "jstypes.h" -#include "jsapi.h" -#include "jsfriendapi.h" -#include "jsb_helper.h" - -class MinXmlHttpRequest : public cocos2d::Object -{ -public: - enum class ResponseType - { - STRING, - ARRAY_BUFFER, - BLOB, - DOCUMENT, - JSON - }; - - // Ready States (http://www.w3.org/TR/XMLHttpRequest/#interface-xmlhttprequest) - static const unsigned short UNSENT = 0; - static const unsigned short OPENED = 1; - static const unsigned short HEADERS_RECEIVED = 2; - static const unsigned short LOADING = 3; - static const unsigned short DONE = 4; - - MinXmlHttpRequest(); - ~MinXmlHttpRequest(); - - JS_BINDED_CLASS_GLUE(MinXmlHttpRequest); - JS_BINDED_CONSTRUCTOR(MinXmlHttpRequest); - JS_BINDED_PROP_ACCESSOR(MinXmlHttpRequest, onreadystatechange); - JS_BINDED_PROP_ACCESSOR(MinXmlHttpRequest, responseType); - JS_BINDED_PROP_ACCESSOR(MinXmlHttpRequest, withCredentials); - JS_BINDED_PROP_ACCESSOR(MinXmlHttpRequest, upload); - JS_BINDED_PROP_ACCESSOR(MinXmlHttpRequest, timeout); - JS_BINDED_PROP_GET(MinXmlHttpRequest, readyState); - JS_BINDED_PROP_GET(MinXmlHttpRequest, status); - JS_BINDED_PROP_GET(MinXmlHttpRequest, statusText); - JS_BINDED_PROP_GET(MinXmlHttpRequest, responseText); - JS_BINDED_PROP_GET(MinXmlHttpRequest, response); - JS_BINDED_PROP_GET(MinXmlHttpRequest, responseXML); - JS_BINDED_FUNC(MinXmlHttpRequest, open); - JS_BINDED_FUNC(MinXmlHttpRequest, send); - JS_BINDED_FUNC(MinXmlHttpRequest, abort); - JS_BINDED_FUNC(MinXmlHttpRequest, getAllResponseHeaders); - JS_BINDED_FUNC(MinXmlHttpRequest, getResponseHeader); - JS_BINDED_FUNC(MinXmlHttpRequest, setRequestHeader); - JS_BINDED_FUNC(MinXmlHttpRequest, overrideMimeType); - - void handle_requestResponse(network::HttpClient *sender, network::HttpResponse *response); - - -private: - void _gotHeader(std::string header); - void _setRequestHeader(const char* field, const char* value); - void _setHttpRequestHeader(); - void _sendRequest(JSContext *cx); - - std::string _url; - JSContext* _cx; - std::string _meth; - std::string _type; - std::stringstream _data; - size_t _dataSize; - JSObject* _onreadystateCallback; - int _readyState; - int _status; - std::string _statusText; - ResponseType _responseType; - unsigned _timeout; - bool _isAsync; - network::HttpRequest* _httpRequest; - bool _isNetwork; - bool _withCredentialsValue; - std::map _httpHeader; - std::map _requestHeader; -}; - -#endif diff --git a/cocos/scripting/javascript/bindings/cocos2d_specifics.cpp.REMOVED.git-id b/cocos/scripting/javascript/bindings/cocos2d_specifics.cpp.REMOVED.git-id index b8cda9a498..082d55b8bd 100644 --- a/cocos/scripting/javascript/bindings/cocos2d_specifics.cpp.REMOVED.git-id +++ b/cocos/scripting/javascript/bindings/cocos2d_specifics.cpp.REMOVED.git-id @@ -1 +1 @@ -bf994ad1fc8ac1044957d83708f7848e99ca59e6 \ No newline at end of file +33fef8c7bc7006ad55c27fd0ed9c9dd2c8064079 \ No newline at end of file diff --git a/cocos/scripting/javascript/bindings/cocos2d_specifics.hpp b/cocos/scripting/javascript/bindings/cocos2d_specifics.hpp index 1072cc8064..2981a726a8 100644 --- a/cocos/scripting/javascript/bindings/cocos2d_specifics.hpp +++ b/cocos/scripting/javascript/bindings/cocos2d_specifics.hpp @@ -101,25 +101,6 @@ protected: jsval _extraData; }; - -class JSCCBAnimationWrapper: public JSCallbackWrapper { -public: - JSCCBAnimationWrapper() {} - virtual ~JSCCBAnimationWrapper() {} - - void animationCompleteCallback() { - - JSContext *cx = ScriptingCore::getInstance()->getGlobalContext(); - jsval retval = JSVAL_NULL; - - if(!JSVAL_IS_VOID(_jsCallback) && !JSVAL_IS_VOID(_jsThisObj)) { - JS_CallFunctionValue(cx, JSVAL_TO_OBJECT(_jsThisObj), _jsCallback, 0, NULL, &retval); - } - } - -}; - - class JSCallFuncWrapper: public JSCallbackWrapper { public: JSCallFuncWrapper() {} diff --git a/cocos/scripting/javascript/bindings/js_bindings_ccbreader.cpp b/cocos/scripting/javascript/bindings/js_bindings_ccbreader.cpp deleted file mode 100644 index 733ac47b45..0000000000 --- a/cocos/scripting/javascript/bindings/js_bindings_ccbreader.cpp +++ /dev/null @@ -1,324 +0,0 @@ -// -// js_bindings_ccbreader.cpp -// watermelon -// -// Created by Rohan Kuruvilla on 14/08/2012. -// -// - -#include "js_bindings_ccbreader.h" -#include "ScriptingCore.h" -#include "js_bindings_config.h" - -USING_NS_CC; -USING_NS_CC_EXT; -using namespace cocosbuilder; - -static void removeSelector(std::string &str) { - size_t found; - found = str.find(":"); - while (found!=std::string::npos){ - str.replace(found, found+1, ""); - found = str.find(":"); - } -} - -SEL_MenuHandler CCBScriptCallbackProxy::onResolveCCBCCMenuItemSelector(cocos2d::Object * pTarget, - const char * pSelectorName) { - this->callBackProp = pSelectorName; - removeSelector(this->callBackProp); - return menu_selector(CCBScriptCallbackProxy::menuItemCallback); -} - -Control::Handler CCBScriptCallbackProxy::onResolveCCBCCControlSelector(Object * pTarget, - const char * pSelectorName) { - - this->callBackProp = pSelectorName; - removeSelector(this->callBackProp); - return cccontrol_selector(CCBScriptCallbackProxy::controlCallback); -} - -bool CCBScriptCallbackProxy::onAssignCCBMemberVariable(Object * pTarget, - const char * pMemberVariableName, - Node * pNode) { - return true; -} - -void CCBScriptCallbackProxy::onNodeLoaded(Node * pNode, - NodeLoader * pNodeLoader) {} - -CCBSelectorResolver * CCBScriptCallbackProxy::createNew() { - CCBScriptCallbackProxy * ret = new CCBScriptCallbackProxy(); - ret->setJSOwner(this->owner); - return dynamic_cast(ret); -} - -void CCBScriptCallbackProxy::menuItemCallback(Object *pSender) { - ScriptingCore::getInstance()->executeFunctionWithOwner(owner, callBackProp.c_str() ); -} - -void CCBScriptCallbackProxy::controlCallback(Object *pSender, Control::EventType event) { - ScriptingCore::getInstance()->executeFunctionWithOwner(owner, callBackProp.c_str() ); -} - -void CCBScriptCallbackProxy::setCallbackProperty(const char *prop) { - callBackProp = prop; -} - -void CCBScriptCallbackProxy::setJSOwner(jsval ownr) { - owner = ownr; -} - -jsval CCBScriptCallbackProxy::getJSOwner() { - return owner; -} - -JSBool js_cocos2dx_CCBAnimationManager_animationCompleteCallback(JSContext *cx, uint32_t argc, jsval *vp) -{ - if (argc >= 1) { - jsval *argv = JS_ARGV(cx, vp); - - JSObject *obj = JS_THIS_OBJECT(cx, vp); - js_proxy_t *proxy = jsb_get_js_proxy(obj); - cocosbuilder::CCBAnimationManager *node = (cocosbuilder::CCBAnimationManager *)(proxy ? proxy->ptr : NULL); - - JSCCBAnimationWrapper *tmpCobj = new JSCCBAnimationWrapper(); - tmpCobj->autorelease(); - - tmpCobj->setJSCallbackThis(argv[0]); - if(argc >= 2) { - tmpCobj->setJSCallbackFunc(argv[1]); - } - - node->setAnimationCompletedCallback(tmpCobj, callfunc_selector(JSCCBAnimationWrapper::animationCompleteCallback)); - - JS_SetReservedSlot(proxy->obj, 0, argv[0]); - JS_SetReservedSlot(proxy->obj, 1, argv[1]); - return JS_TRUE; - } - return JS_FALSE; -} - -JSBool js_cocos2dx_CCBReader_readNodeGraphFromFile(JSContext *cx, uint32_t argc, jsval *vp) -{ - jsval *argv = JS_ARGV(cx, vp); - JSBool ok = JS_TRUE; - JSObject *obj; - cocosbuilder::CCBReader* cobj; - obj = JS_THIS_OBJECT(cx, vp); - js_proxy_t *proxy = jsb_get_js_proxy(obj); - cobj = (cocosbuilder::CCBReader *)(proxy ? proxy->ptr : NULL); - TEST_NATIVE_OBJECT(cx, cobj) - - if (argc == 2) { - const char* arg0; - std::string arg0_tmp; ok &= jsval_to_std_string(cx, argv[0], &arg0_tmp); arg0 = arg0_tmp.c_str(); - cocos2d::Object* arg1; - do { - js_proxy_t *proxy; - JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]); - proxy = jsb_get_js_proxy(tmpObj); - arg1 = (cocos2d::Object*)(proxy ? proxy->ptr : NULL); - TEST_NATIVE_OBJECT(cx, arg1) - } while (0); - - JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments"); - - cocos2d::Node* ret = cobj->readNodeGraphFromFile(arg0, arg1); - jsval jsret; do { - if (ret) { - js_proxy_t *proxy = js_get_or_create_proxy(cx, ret); - jsret = OBJECT_TO_JSVAL(proxy->obj); - } else { - jsret = JSVAL_NULL; - } - } while (0); - JS_SET_RVAL(cx, vp, jsret); - return JS_TRUE; - } - if (argc == 1) { - const char* arg0; - std::string arg0_tmp; ok &= jsval_to_std_string(cx, argv[0], &arg0_tmp); arg0 = arg0_tmp.c_str(); - JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments"); - - cocos2d::Node* ret = cobj->readNodeGraphFromFile(arg0); - jsval jsret; do { - if (ret) { - js_proxy_t *proxy = js_get_or_create_proxy(cx, ret); - jsret = OBJECT_TO_JSVAL(proxy->obj); - } else { - jsret = JSVAL_NULL; - } - } while (0); - JS_SET_RVAL(cx, vp, jsret); - return JS_TRUE; - } - if (argc == 3) { - const char* arg0; - std::string arg0_tmp; ok &= jsval_to_std_string(cx, argv[0], &arg0_tmp); arg0 = arg0_tmp.c_str(); - cocos2d::Object* arg1; - do { - js_proxy_t *proxy; - JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]); - proxy = jsb_get_js_proxy(tmpObj); - arg1 = (cocos2d::Object*)(proxy ? proxy->ptr : NULL); - TEST_NATIVE_OBJECT(cx, arg1) - } while (0); - cocos2d::Size arg2; - ok &= jsval_to_ccsize(cx, argv[2], &arg2); - - JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments"); - - cocos2d::Node* ret = cobj->readNodeGraphFromFile(arg0, arg1, arg2); - jsval jsret; do { - if (ret) { - js_proxy_t *proxy = js_get_or_create_proxy(cx, ret); - jsret = OBJECT_TO_JSVAL(proxy->obj); - } else { - jsret = JSVAL_NULL; - } - } while (0); - JS_SET_RVAL(cx, vp, jsret); - return JS_TRUE; - } - return JS_FALSE; -} - -JSBool js_cocos2dx_CCBReader_createSceneWithNodeGraphFromFile(JSContext *cx, uint32_t argc, jsval *vp) -{ - jsval *argv = JS_ARGV(cx, vp); - JSBool ok = JS_TRUE; - JSObject *obj; - cocosbuilder::CCBReader* cobj; - obj = JS_THIS_OBJECT(cx, vp); - js_proxy_t *proxy = jsb_get_js_proxy(obj); - cobj = (cocosbuilder::CCBReader *)(proxy ? proxy->ptr : NULL); - TEST_NATIVE_OBJECT(cx, cobj) - - if (argc == 2) { - const char* arg0; - std::string arg0_tmp; ok &= jsval_to_std_string(cx, argv[0], &arg0_tmp); arg0 = arg0_tmp.c_str(); - cocos2d::Object* arg1; - do { - js_proxy_t *proxy; - JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]); - proxy = jsb_get_js_proxy(tmpObj); - arg1 = (cocos2d::Object*)(proxy ? proxy->ptr : NULL); - TEST_NATIVE_OBJECT(cx, arg1) - } while (0); - - JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments"); - - cocos2d::Scene* ret = cobj->createSceneWithNodeGraphFromFile(arg0, arg1); - jsval jsret; do { - if (ret) { - js_proxy_t *proxy = js_get_or_create_proxy(cx, ret); - jsret = OBJECT_TO_JSVAL(proxy->obj); - } else { - jsret = JSVAL_NULL; - } - } while (0); - JS_SET_RVAL(cx, vp, jsret); - return JS_TRUE; - } - if (argc == 1) { - const char* arg0; - std::string arg0_tmp; ok &= jsval_to_std_string(cx, argv[0], &arg0_tmp); arg0 = arg0_tmp.c_str(); - JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments"); - - cocos2d::Scene* ret = cobj->createSceneWithNodeGraphFromFile(arg0); - jsval jsret; do { - if (ret) { - js_proxy_t *proxy = js_get_or_create_proxy(cx, ret); - jsret = OBJECT_TO_JSVAL(proxy->obj); - } else { - jsret = JSVAL_NULL; - } - } while (0); - JS_SET_RVAL(cx, vp, jsret); - return JS_TRUE; - } - if (argc == 3) { - const char* arg0; - std::string arg0_tmp; ok &= jsval_to_std_string(cx, argv[0], &arg0_tmp); arg0 = arg0_tmp.c_str(); - cocos2d::Object* arg1; - do { - js_proxy_t *proxy; - JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]); - proxy = jsb_get_js_proxy(tmpObj); - arg1 = (cocos2d::Object*)(proxy ? proxy->ptr : NULL); - TEST_NATIVE_OBJECT(cx, arg1) - } while (0); - cocos2d::Size arg2; - ok &= jsval_to_ccsize(cx, argv[2], &arg2); - - JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments"); - - cocos2d::Scene* ret = cobj->createSceneWithNodeGraphFromFile(arg0, arg1, arg2); - jsval jsret; do { - if (ret) { - js_proxy_t *proxy = js_get_or_create_proxy(cx, ret); - jsret = OBJECT_TO_JSVAL(proxy->obj); - } else { - jsret = JSVAL_NULL; - } - } while (0); - JS_SET_RVAL(cx, vp, jsret); - return JS_TRUE; - } - - return JS_FALSE; -} - - -JSBool js_CocosBuilder_create(JSContext *cx, uint32_t argc, jsval *vp) -{ - - NodeLoaderLibrary * ccNodeLoaderLibrary = NodeLoaderLibrary::getInstance(); - - ccNodeLoaderLibrary->registerNodeLoader("", JSLayerLoader::loader()); - - CCBReader * ret = new CCBReader(ccNodeLoaderLibrary); - ret->autorelease(); - - jsval jsret; - if (ret) { - js_proxy_t *proxy = jsb_get_native_proxy(ret); - if (proxy) { - jsret = OBJECT_TO_JSVAL(proxy->obj); - } else { - // create a new js obj of that class - proxy = js_get_or_create_proxy(cx, ret); - jsret = OBJECT_TO_JSVAL(proxy->obj); - } - } else { - jsret = JSVAL_NULL; - } - JS_SET_RVAL(cx, vp, jsret); - return JS_TRUE; - -} - -extern JSObject* jsb_CCBReader_prototype; -extern JSObject* jsb_CCBAnimationManager_prototype; - -void register_CCBuilderReader(JSContext *cx, JSObject *obj) { - jsval nsval; - JSObject *ns; - JS_GetProperty(cx, obj, "cc", &nsval); - if (nsval == JSVAL_VOID) { - ns = JS_NewObject(cx, NULL, NULL, NULL); - nsval = OBJECT_TO_JSVAL(ns); - JS_SetProperty(cx, obj, "cc", &nsval); - } else { - JS_ValueToObject(cx, nsval, &ns); - } - obj = ns; - - JSObject *tmpObj = JSVAL_TO_OBJECT(anonEvaluate(cx, obj, "(function () { return cc._Reader; })()")); - JS_DefineFunction(cx, tmpObj, "create", js_CocosBuilder_create, 2, JSPROP_READONLY | JSPROP_PERMANENT); - JS_DefineFunction(cx, tmpObj, "loadScene", js_cocos2dx_CCBReader_createSceneWithNodeGraphFromFile, 2, JSPROP_READONLY | JSPROP_PERMANENT); - - JS_DefineFunction(cx, jsb_CCBReader_prototype, "load", js_cocos2dx_CCBReader_readNodeGraphFromFile, 2, JSPROP_READONLY | JSPROP_PERMANENT); - JS_DefineFunction(cx, jsb_CCBAnimationManager_prototype, "setCompletedAnimationCallback", js_cocos2dx_CCBAnimationManager_animationCompleteCallback, 2, JSPROP_READONLY | JSPROP_PERMANENT); -} diff --git a/cocos/scripting/javascript/bindings/js_bindings_ccbreader.h b/cocos/scripting/javascript/bindings/js_bindings_ccbreader.h deleted file mode 100644 index 8bcdabd044..0000000000 --- a/cocos/scripting/javascript/bindings/js_bindings_ccbreader.h +++ /dev/null @@ -1,60 +0,0 @@ -// -// js_bindings_ccbreader.h -// watermelon -// -// Created by Rohan Kuruvilla on 14/08/2012. -// -// -#ifndef __JS_BINDINGS_CCBREADER_H__ -#define __JS_BINDINGS_CCBREADER_H__ - -#include "jsapi.h" -#include "cocos2d_specifics.hpp" -#include "cocosbuilder/CocosBuilder.h" - -class CCBScriptCallbackProxy: public cocos2d::Layer -, public cocosbuilder::CCBSelectorResolver -, public cocosbuilder::CCBMemberVariableAssigner { - - std::string callBackProp; - jsval owner; - -public: - - - CCBScriptCallbackProxy () {} - virtual ~CCBScriptCallbackProxy() {} - - CCB_STATIC_NEW_AUTORELEASE_OBJECT_WITH_INIT_METHOD(CCBScriptCallbackProxy, create); - virtual cocos2d::SEL_MenuHandler onResolveCCBCCMenuItemSelector(cocos2d::Object * pTarget, - const char * pSelectorName); - - virtual cocos2d::extension::Control::Handler onResolveCCBCCControlSelector(cocos2d::Object * pTarget, - const char * pSelectorName); - virtual bool onAssignCCBMemberVariable(cocos2d::Object * pTarget, const char * pMemberVariableName, - cocos2d::Node * pNode); - virtual void onNodeLoaded(cocos2d::Node * pNode, - cocosbuilder::NodeLoader * pNodeLoader); - - virtual CCBSelectorResolver * createNew(); - void menuItemCallback(Object *pSender); - void controlCallback(Object *pSender, cocos2d::extension::Control::EventType event); - void setCallbackProperty(const char *prop); - void setJSOwner(jsval ownr); - jsval getJSOwner(); -}; - - -class JSLayerLoader : public cocosbuilder::LayerLoader { -public: - CCB_STATIC_NEW_AUTORELEASE_OBJECT_METHOD(JSLayerLoader, loader); - -protected: - CCB_VIRTUAL_NEW_AUTORELEASE_CREATECCNODE_METHOD(CCBScriptCallbackProxy); -}; - -void register_CCBuilderReader(JSContext *cx, JSObject *global); -JSBool js_CocosBuilder_Run(JSContext *cx, uint32_t argc, jsval *vp); - -#endif /* __JS_BINDINGS_CCBREADER_H__ */ - diff --git a/cocos/scripting/javascript/bindings/js_bindings_chipmunk_auto_classes.cpp.REMOVED.git-id b/cocos/scripting/javascript/bindings/js_bindings_chipmunk_auto_classes.cpp.REMOVED.git-id deleted file mode 100644 index c8c345c32c..0000000000 --- a/cocos/scripting/javascript/bindings/js_bindings_chipmunk_auto_classes.cpp.REMOVED.git-id +++ /dev/null @@ -1 +0,0 @@ -6558be4f421be9227dc4fabf1b682d479825bd18 \ No newline at end of file diff --git a/cocos/scripting/javascript/bindings/js_bindings_chipmunk_auto_classes.h b/cocos/scripting/javascript/bindings/js_bindings_chipmunk_auto_classes.h deleted file mode 100644 index 42c8840236..0000000000 --- a/cocos/scripting/javascript/bindings/js_bindings_chipmunk_auto_classes.h +++ /dev/null @@ -1,66 +0,0 @@ -/* -* AUTOGENERATED FILE. DO NOT EDIT IT -* Generated by "generate_js_bindings.py -c chipmunk_jsb.ini" on 2012-11-07 -* Script version: v0.3 -*/ -#include "js_bindings_config.h" -#ifdef JSB_INCLUDE_CHIPMUNK - -#include "js_bindings_chipmunk_manual.h" -extern JSObject *JSB_cpConstraint_object; -extern JSClass *JSB_cpConstraint_class; -void JSB_cpConstraint_createClass(JSContext *cx, JSObject* globalObj, const char* name ); -extern JSObject *JSB_cpGrooveJoint_object; -extern JSClass *JSB_cpGrooveJoint_class; -void JSB_cpGrooveJoint_createClass(JSContext *cx, JSObject* globalObj, const char* name ); -extern JSObject *JSB_cpSimpleMotor_object; -extern JSClass *JSB_cpSimpleMotor_class; -void JSB_cpSimpleMotor_createClass(JSContext *cx, JSObject* globalObj, const char* name ); -extern JSObject *JSB_cpPivotJoint_object; -extern JSClass *JSB_cpPivotJoint_class; -void JSB_cpPivotJoint_createClass(JSContext *cx, JSObject* globalObj, const char* name ); -extern JSObject *JSB_cpPinJoint_object; -extern JSClass *JSB_cpPinJoint_class; -void JSB_cpPinJoint_createClass(JSContext *cx, JSObject* globalObj, const char* name ); -extern JSObject *JSB_cpSlideJoint_object; -extern JSClass *JSB_cpSlideJoint_class; -void JSB_cpSlideJoint_createClass(JSContext *cx, JSObject* globalObj, const char* name ); -extern JSObject *JSB_cpGearJoint_object; -extern JSClass *JSB_cpGearJoint_class; -void JSB_cpGearJoint_createClass(JSContext *cx, JSObject* globalObj, const char* name ); -extern JSObject *JSB_cpDampedRotarySpring_object; -extern JSClass *JSB_cpDampedRotarySpring_class; -void JSB_cpDampedRotarySpring_createClass(JSContext *cx, JSObject* globalObj, const char* name ); -extern JSObject *JSB_cpDampedSpring_object; -extern JSClass *JSB_cpDampedSpring_class; -void JSB_cpDampedSpring_createClass(JSContext *cx, JSObject* globalObj, const char* name ); -extern JSObject *JSB_cpRatchetJoint_object; -extern JSClass *JSB_cpRatchetJoint_class; -void JSB_cpRatchetJoint_createClass(JSContext *cx, JSObject* globalObj, const char* name ); -extern JSObject *JSB_cpRotaryLimitJoint_object; -extern JSClass *JSB_cpRotaryLimitJoint_class; -void JSB_cpRotaryLimitJoint_createClass(JSContext *cx, JSObject* globalObj, const char* name ); -extern JSObject *JSB_cpArbiter_object; -extern JSClass *JSB_cpArbiter_class; -void JSB_cpArbiter_createClass(JSContext *cx, JSObject* globalObj, const char* name ); -extern JSObject *JSB_cpSpace_object; -extern JSClass *JSB_cpSpace_class; -void JSB_cpSpace_createClass(JSContext *cx, JSObject* globalObj, const char* name ); -extern JSObject *JSB_cpBody_object; -extern JSClass *JSB_cpBody_class; -void JSB_cpBody_createClass(JSContext *cx, JSObject* globalObj, const char* name ); -extern JSObject *JSB_cpShape_object; -extern JSClass *JSB_cpShape_class; -void JSB_cpShape_createClass(JSContext *cx, JSObject* globalObj, const char* name ); -extern JSObject *JSB_cpCircleShape_object; -extern JSClass *JSB_cpCircleShape_class; -void JSB_cpCircleShape_createClass(JSContext *cx, JSObject* globalObj, const char* name ); -extern JSObject *JSB_cpSegmentShape_object; -extern JSClass *JSB_cpSegmentShape_class; -void JSB_cpSegmentShape_createClass(JSContext *cx, JSObject* globalObj, const char* name ); -extern JSObject *JSB_cpPolyShape_object; -extern JSClass *JSB_cpPolyShape_class; -void JSB_cpPolyShape_createClass(JSContext *cx, JSObject* globalObj, const char* name ); - - -#endif // JSB_INCLUDE_CHIPMUNK diff --git a/cocos/scripting/javascript/bindings/js_bindings_chipmunk_auto_classes_registration.h b/cocos/scripting/javascript/bindings/js_bindings_chipmunk_auto_classes_registration.h deleted file mode 100644 index da26c49bb3..0000000000 --- a/cocos/scripting/javascript/bindings/js_bindings_chipmunk_auto_classes_registration.h +++ /dev/null @@ -1,29 +0,0 @@ -/* -* AUTOGENERATED FILE. DO NOT EDIT IT -* Generated by "generate_js_bindings.py -c chipmunk_jsb.ini" on 2012-11-07 -* Script version: v0.3 -*/ -#include "js_bindings_config.h" -#ifdef JSB_INCLUDE_CHIPMUNK - -JSB_cpConstraint_createClass(_cx, chipmunk, "Constraint"); -JSB_cpGrooveJoint_createClass(_cx, chipmunk, "GrooveJoint"); -JSB_cpSimpleMotor_createClass(_cx, chipmunk, "SimpleMotor"); -JSB_cpPivotJoint_createClass(_cx, chipmunk, "PivotJoint"); -JSB_cpPinJoint_createClass(_cx, chipmunk, "PinJoint"); -JSB_cpSlideJoint_createClass(_cx, chipmunk, "SlideJoint"); -JSB_cpGearJoint_createClass(_cx, chipmunk, "GearJoint"); -JSB_cpDampedRotarySpring_createClass(_cx, chipmunk, "DampedRotarySpring"); -JSB_cpDampedSpring_createClass(_cx, chipmunk, "DampedSpring"); -JSB_cpRatchetJoint_createClass(_cx, chipmunk, "RatchetJoint"); -JSB_cpRotaryLimitJoint_createClass(_cx, chipmunk, "RotaryLimitJoint"); -JSB_cpArbiter_createClass(_cx, chipmunk, "Arbiter"); -JSB_cpSpace_createClass(_cx, chipmunk, "Space"); -JSB_cpBody_createClass(_cx, chipmunk, "Body"); -JSB_cpShape_createClass(_cx, chipmunk, "Shape"); -JSB_cpCircleShape_createClass(_cx, chipmunk, "CircleShape"); -JSB_cpSegmentShape_createClass(_cx, chipmunk, "SegmentShape"); -JSB_cpPolyShape_createClass(_cx, chipmunk, "PolyShape"); - - -#endif // JSB_INCLUDE_CHIPMUNK diff --git a/cocos/scripting/javascript/bindings/js_bindings_chipmunk_functions.cpp.REMOVED.git-id b/cocos/scripting/javascript/bindings/js_bindings_chipmunk_functions.cpp.REMOVED.git-id deleted file mode 100644 index 5cf2a4495d..0000000000 --- a/cocos/scripting/javascript/bindings/js_bindings_chipmunk_functions.cpp.REMOVED.git-id +++ /dev/null @@ -1 +0,0 @@ -1c5eb9cd58c82de77374cdfa5c9ff647cc8b2f02 \ No newline at end of file diff --git a/cocos/scripting/javascript/bindings/js_bindings_chipmunk_functions.h b/cocos/scripting/javascript/bindings/js_bindings_chipmunk_functions.h deleted file mode 100644 index accf523d5e..0000000000 --- a/cocos/scripting/javascript/bindings/js_bindings_chipmunk_functions.h +++ /dev/null @@ -1,292 +0,0 @@ -/* -* AUTOGENERATED FILE. DO NOT EDIT IT -* Generated by "generate_js_bindings.py -c chipmunk_jsb.ini" on 2012-11-07 -* Script version: v0.3 -*/ -#include "js_bindings_config.h" -#ifdef JSB_INCLUDE_CHIPMUNK -#include "js_bindings_chipmunk_manual.h" - -#ifdef __cplusplus -extern "C" { -#endif -JSBool JSB_cpArbiterGetCount(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpArbiterGetDepth(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpArbiterGetElasticity(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpArbiterGetFriction(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpArbiterGetNormal(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpArbiterGetPoint(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpArbiterGetSurfaceVelocity(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpArbiterIgnore(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpArbiterIsFirstContact(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpArbiterSetElasticity(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpArbiterSetFriction(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpArbiterSetSurfaceVelocity(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpArbiterTotalImpulse(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpArbiterTotalImpulseWithFriction(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpArbiterTotalKE(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpAreaForCircle(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpAreaForSegment(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBBArea(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBBClampVect(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBBContainsBB(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBBContainsVect(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBBExpand(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBBIntersects(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBBIntersectsSegment(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBBMerge(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBBMergedArea(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBBNew(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBBNewForCircle(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBBSegmentQuery(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBBWrapVect(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodyActivate(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodyActivateStatic(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodyApplyForce(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodyApplyImpulse(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodyDestroy(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodyFree(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodyGetAngVel(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodyGetAngVelLimit(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodyGetAngle(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodyGetForce(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodyGetMass(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodyGetMoment(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodyGetPos(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodyGetRot(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodyGetSpace(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodyGetTorque(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodyGetVel(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodyGetVelAtLocalPoint(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodyGetVelAtWorldPoint(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodyGetVelLimit(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodyInit(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodyInitStatic(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodyIsRogue(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodyIsSleeping(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodyIsStatic(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodyKineticEnergy(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodyLocal2World(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodyNew(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodyNewStatic(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodyResetForces(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodySetAngVel(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodySetAngVelLimit(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodySetAngle(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodySetForce(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodySetMass(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodySetMoment(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodySetPos(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodySetTorque(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodySetVel(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodySetVelLimit(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodySleep(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodySleepWithGroup(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodyUpdatePosition(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodyUpdateVelocity(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodyWorld2Local(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBoxShapeNew(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBoxShapeNew2(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpCircleShapeGetOffset(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpCircleShapeGetRadius(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpCircleShapeNew(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpConstraintActivateBodies(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpConstraintDestroy(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpConstraintFree(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpConstraintGetA(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpConstraintGetB(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpConstraintGetErrorBias(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpConstraintGetImpulse(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpConstraintGetMaxBias(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpConstraintGetMaxForce(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpConstraintGetSpace(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpConstraintSetErrorBias(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpConstraintSetMaxBias(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpConstraintSetMaxForce(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpDampedRotarySpringGetDamping(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpDampedRotarySpringGetRestAngle(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpDampedRotarySpringGetStiffness(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpDampedRotarySpringNew(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpDampedRotarySpringSetDamping(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpDampedRotarySpringSetRestAngle(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpDampedRotarySpringSetStiffness(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpDampedSpringGetAnchr1(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpDampedSpringGetAnchr2(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpDampedSpringGetDamping(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpDampedSpringGetRestLength(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpDampedSpringGetStiffness(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpDampedSpringNew(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpDampedSpringSetAnchr1(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpDampedSpringSetAnchr2(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpDampedSpringSetDamping(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpDampedSpringSetRestLength(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpDampedSpringSetStiffness(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpGearJointGetPhase(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpGearJointGetRatio(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpGearJointNew(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpGearJointSetPhase(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpGearJointSetRatio(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpGrooveJointGetAnchr2(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpGrooveJointGetGrooveA(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpGrooveJointGetGrooveB(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpGrooveJointNew(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpGrooveJointSetAnchr2(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpGrooveJointSetGrooveA(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpGrooveJointSetGrooveB(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpInitChipmunk(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpMomentForBox(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpMomentForBox2(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpMomentForCircle(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpMomentForSegment(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpPinJointGetAnchr1(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpPinJointGetAnchr2(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpPinJointGetDist(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpPinJointNew(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpPinJointSetAnchr1(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpPinJointSetAnchr2(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpPinJointSetDist(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpPivotJointGetAnchr1(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpPivotJointGetAnchr2(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpPivotJointNew(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpPivotJointNew2(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpPivotJointSetAnchr1(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpPivotJointSetAnchr2(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpPolyShapeGetNumVerts(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpPolyShapeGetVert(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpRatchetJointGetAngle(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpRatchetJointGetPhase(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpRatchetJointGetRatchet(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpRatchetJointNew(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpRatchetJointSetAngle(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpRatchetJointSetPhase(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpRatchetJointSetRatchet(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpResetShapeIdCounter(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpRotaryLimitJointGetMax(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpRotaryLimitJointGetMin(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpRotaryLimitJointNew(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpRotaryLimitJointSetMax(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpRotaryLimitJointSetMin(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSegmentShapeGetA(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSegmentShapeGetB(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSegmentShapeGetNormal(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSegmentShapeGetRadius(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSegmentShapeNew(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSegmentShapeSetNeighbors(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpShapeCacheBB(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpShapeDestroy(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpShapeFree(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpShapeGetBB(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpShapeGetBody(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpShapeGetCollisionType(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpShapeGetElasticity(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpShapeGetFriction(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpShapeGetGroup(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpShapeGetLayers(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpShapeGetSensor(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpShapeGetSpace(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpShapeGetSurfaceVelocity(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpShapePointQuery(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpShapeSetBody(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpShapeSetCollisionType(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpShapeSetElasticity(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpShapeSetFriction(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpShapeSetGroup(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpShapeSetLayers(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpShapeSetSensor(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpShapeSetSurfaceVelocity(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpShapeUpdate(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSimpleMotorGetRate(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSimpleMotorNew(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSimpleMotorSetRate(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSlideJointGetAnchr1(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSlideJointGetAnchr2(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSlideJointGetMax(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSlideJointGetMin(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSlideJointNew(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSlideJointSetAnchr1(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSlideJointSetAnchr2(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSlideJointSetMax(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSlideJointSetMin(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpaceActivateShapesTouchingShape(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpaceAddBody(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpaceAddConstraint(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpaceAddShape(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpaceAddStaticShape(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpaceContainsBody(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpaceContainsConstraint(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpaceContainsShape(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpaceDestroy(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpaceFree(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpaceGetCollisionBias(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpaceGetCollisionPersistence(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpaceGetCollisionSlop(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpaceGetCurrentTimeStep(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpaceGetDamping(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpaceGetEnableContactGraph(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpaceGetGravity(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpaceGetIdleSpeedThreshold(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpaceGetIterations(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpaceGetSleepTimeThreshold(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpaceGetStaticBody(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpaceInit(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpaceIsLocked(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpaceNew(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpacePointQueryFirst(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpaceReindexShape(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpaceReindexShapesForBody(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpaceReindexStatic(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpaceRemoveBody(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpaceRemoveConstraint(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpaceRemoveShape(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpaceRemoveStaticShape(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpaceSetCollisionBias(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpaceSetCollisionPersistence(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpaceSetCollisionSlop(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpaceSetDamping(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpaceSetEnableContactGraph(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpaceSetGravity(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpaceSetIdleSpeedThreshold(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpaceSetIterations(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpaceSetSleepTimeThreshold(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpaceStep(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpaceUseSpatialHash(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpfabs(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpfclamp(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpfclamp01(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpflerp(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpflerpconst(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpfmax(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpfmin(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpvadd(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpvclamp(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpvcross(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpvdist(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpvdistsq(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpvdot(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpveql(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpvforangle(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpvlength(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpvlengthsq(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpvlerp(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpvlerpconst(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpvmult(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpvnear(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpvneg(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpvnormalize(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpvnormalize_safe(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpvperp(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpvproject(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpvrotate(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpvrperp(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpvslerp(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpvslerpconst(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpvsub(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpvtoangle(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpvunrotate(JSContext *cx, uint32_t argc, jsval *vp); - -#ifdef __cplusplus -} -#endif - - -#endif // JSB_INCLUDE_CHIPMUNK diff --git a/cocos/scripting/javascript/bindings/js_bindings_chipmunk_functions_registration.h b/cocos/scripting/javascript/bindings/js_bindings_chipmunk_functions_registration.h deleted file mode 100644 index 2d84087c28..0000000000 --- a/cocos/scripting/javascript/bindings/js_bindings_chipmunk_functions_registration.h +++ /dev/null @@ -1,285 +0,0 @@ -/* -* AUTOGENERATED FILE. DO NOT EDIT IT -* Generated by "generate_js_bindings.py -c chipmunk_jsb.ini" on 2012-10-18 -* Script version: v0.3 -*/ -#include "js_bindings_config.h" -#ifdef JSB_INCLUDE_CHIPMUNK - -#include "js_bindings_chipmunk_manual.h" -JS_DefineFunction(_cx, chipmunk, "arbiterGetCount", JSB_cpArbiterGetCount, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "arbiterGetDepth", JSB_cpArbiterGetDepth, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "arbiterGetElasticity", JSB_cpArbiterGetElasticity, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "arbiterGetFriction", JSB_cpArbiterGetFriction, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "arbiterGetNormal", JSB_cpArbiterGetNormal, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "arbiterGetPoint", JSB_cpArbiterGetPoint, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "arbiterGetSurfaceVelocity", JSB_cpArbiterGetSurfaceVelocity, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "arbiterIgnore", JSB_cpArbiterIgnore, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "arbiterIsFirstContact", JSB_cpArbiterIsFirstContact, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "arbiterSetElasticity", JSB_cpArbiterSetElasticity, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "arbiterSetFriction", JSB_cpArbiterSetFriction, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "arbiterSetSurfaceVelocity", JSB_cpArbiterSetSurfaceVelocity, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "arbiterTotalImpulse", JSB_cpArbiterTotalImpulse, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "arbiterTotalImpulseWithFriction", JSB_cpArbiterTotalImpulseWithFriction, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "arbiterTotalKE", JSB_cpArbiterTotalKE, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "areaForCircle", JSB_cpAreaForCircle, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "areaForSegment", JSB_cpAreaForSegment, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bBArea", JSB_cpBBArea, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bBClampVect", JSB_cpBBClampVect, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bBContainsBB", JSB_cpBBContainsBB, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bBContainsVect", JSB_cpBBContainsVect, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bBExpand", JSB_cpBBExpand, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bBIntersects", JSB_cpBBIntersects, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bBIntersectsSegment", JSB_cpBBIntersectsSegment, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bBMerge", JSB_cpBBMerge, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bBMergedArea", JSB_cpBBMergedArea, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bBNew", JSB_cpBBNew, 4, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bBNewForCircle", JSB_cpBBNewForCircle, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bBSegmentQuery", JSB_cpBBSegmentQuery, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bBWrapVect", JSB_cpBBWrapVect, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodyActivate", JSB_cpBodyActivate, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodyActivateStatic", JSB_cpBodyActivateStatic, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodyApplyForce", JSB_cpBodyApplyForce, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodyApplyImpulse", JSB_cpBodyApplyImpulse, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodyDestroy", JSB_cpBodyDestroy, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodyFree", JSB_cpBodyFree, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodyGetAngVel", JSB_cpBodyGetAngVel, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodyGetAngVelLimit", JSB_cpBodyGetAngVelLimit, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodyGetAngle", JSB_cpBodyGetAngle, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodyGetForce", JSB_cpBodyGetForce, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodyGetMass", JSB_cpBodyGetMass, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodyGetMoment", JSB_cpBodyGetMoment, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodyGetPos", JSB_cpBodyGetPos, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodyGetRot", JSB_cpBodyGetRot, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodyGetSpace", JSB_cpBodyGetSpace, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodyGetTorque", JSB_cpBodyGetTorque, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodyGetVel", JSB_cpBodyGetVel, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodyGetVelAtLocalPoint", JSB_cpBodyGetVelAtLocalPoint, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodyGetVelAtWorldPoint", JSB_cpBodyGetVelAtWorldPoint, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodyGetVelLimit", JSB_cpBodyGetVelLimit, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodyInit", JSB_cpBodyInit, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodyInitStatic", JSB_cpBodyInitStatic, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodyIsRogue", JSB_cpBodyIsRogue, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodyIsSleeping", JSB_cpBodyIsSleeping, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodyIsStatic", JSB_cpBodyIsStatic, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodyKineticEnergy", JSB_cpBodyKineticEnergy, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodyLocal2World", JSB_cpBodyLocal2World, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodyNew", JSB_cpBodyNew, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodyNewStatic", JSB_cpBodyNewStatic, 0, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodyResetForces", JSB_cpBodyResetForces, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodySetAngVel", JSB_cpBodySetAngVel, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodySetAngVelLimit", JSB_cpBodySetAngVelLimit, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodySetAngle", JSB_cpBodySetAngle, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodySetForce", JSB_cpBodySetForce, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodySetMass", JSB_cpBodySetMass, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodySetMoment", JSB_cpBodySetMoment, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodySetPos", JSB_cpBodySetPos, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodySetTorque", JSB_cpBodySetTorque, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodySetVel", JSB_cpBodySetVel, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodySetVelLimit", JSB_cpBodySetVelLimit, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodySleep", JSB_cpBodySleep, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodySleepWithGroup", JSB_cpBodySleepWithGroup, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodyUpdatePosition", JSB_cpBodyUpdatePosition, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodyUpdateVelocity", JSB_cpBodyUpdateVelocity, 4, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "bodyWorld2Local", JSB_cpBodyWorld2Local, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "boxShapeNew", JSB_cpBoxShapeNew, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "boxShapeNew2", JSB_cpBoxShapeNew2, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "circleShapeGetOffset", JSB_cpCircleShapeGetOffset, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "circleShapeGetRadius", JSB_cpCircleShapeGetRadius, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "circleShapeNew", JSB_cpCircleShapeNew, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "constraintActivateBodies", JSB_cpConstraintActivateBodies, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "constraintDestroy", JSB_cpConstraintDestroy, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "constraintFree", JSB_cpConstraintFree, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "constraintGetA", JSB_cpConstraintGetA, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "constraintGetB", JSB_cpConstraintGetB, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "constraintGetErrorBias", JSB_cpConstraintGetErrorBias, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "constraintGetImpulse", JSB_cpConstraintGetImpulse, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "constraintGetMaxBias", JSB_cpConstraintGetMaxBias, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "constraintGetMaxForce", JSB_cpConstraintGetMaxForce, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "constraintGetSpace", JSB_cpConstraintGetSpace, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "constraintSetErrorBias", JSB_cpConstraintSetErrorBias, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "constraintSetMaxBias", JSB_cpConstraintSetMaxBias, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "constraintSetMaxForce", JSB_cpConstraintSetMaxForce, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "dampedRotarySpringGetDamping", JSB_cpDampedRotarySpringGetDamping, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "dampedRotarySpringGetRestAngle", JSB_cpDampedRotarySpringGetRestAngle, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "dampedRotarySpringGetStiffness", JSB_cpDampedRotarySpringGetStiffness, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "dampedRotarySpringNew", JSB_cpDampedRotarySpringNew, 5, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "dampedRotarySpringSetDamping", JSB_cpDampedRotarySpringSetDamping, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "dampedRotarySpringSetRestAngle", JSB_cpDampedRotarySpringSetRestAngle, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "dampedRotarySpringSetStiffness", JSB_cpDampedRotarySpringSetStiffness, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "dampedSpringGetAnchr1", JSB_cpDampedSpringGetAnchr1, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "dampedSpringGetAnchr2", JSB_cpDampedSpringGetAnchr2, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "dampedSpringGetDamping", JSB_cpDampedSpringGetDamping, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "dampedSpringGetRestLength", JSB_cpDampedSpringGetRestLength, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "dampedSpringGetStiffness", JSB_cpDampedSpringGetStiffness, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "dampedSpringNew", JSB_cpDampedSpringNew, 7, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "dampedSpringSetAnchr1", JSB_cpDampedSpringSetAnchr1, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "dampedSpringSetAnchr2", JSB_cpDampedSpringSetAnchr2, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "dampedSpringSetDamping", JSB_cpDampedSpringSetDamping, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "dampedSpringSetRestLength", JSB_cpDampedSpringSetRestLength, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "dampedSpringSetStiffness", JSB_cpDampedSpringSetStiffness, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "gearJointGetPhase", JSB_cpGearJointGetPhase, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "gearJointGetRatio", JSB_cpGearJointGetRatio, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "gearJointNew", JSB_cpGearJointNew, 4, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "gearJointSetPhase", JSB_cpGearJointSetPhase, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "gearJointSetRatio", JSB_cpGearJointSetRatio, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "grooveJointGetAnchr2", JSB_cpGrooveJointGetAnchr2, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "grooveJointGetGrooveA", JSB_cpGrooveJointGetGrooveA, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "grooveJointGetGrooveB", JSB_cpGrooveJointGetGrooveB, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "grooveJointNew", JSB_cpGrooveJointNew, 5, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "grooveJointSetAnchr2", JSB_cpGrooveJointSetAnchr2, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "grooveJointSetGrooveA", JSB_cpGrooveJointSetGrooveA, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "grooveJointSetGrooveB", JSB_cpGrooveJointSetGrooveB, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "initChipmunk", JSB_cpInitChipmunk, 0, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "momentForBox", JSB_cpMomentForBox, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "momentForBox2", JSB_cpMomentForBox2, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "momentForCircle", JSB_cpMomentForCircle, 4, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "momentForSegment", JSB_cpMomentForSegment, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "pinJointGetAnchr1", JSB_cpPinJointGetAnchr1, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "pinJointGetAnchr2", JSB_cpPinJointGetAnchr2, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "pinJointGetDist", JSB_cpPinJointGetDist, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "pinJointNew", JSB_cpPinJointNew, 4, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "pinJointSetAnchr1", JSB_cpPinJointSetAnchr1, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "pinJointSetAnchr2", JSB_cpPinJointSetAnchr2, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "pinJointSetDist", JSB_cpPinJointSetDist, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "pivotJointGetAnchr1", JSB_cpPivotJointGetAnchr1, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "pivotJointGetAnchr2", JSB_cpPivotJointGetAnchr2, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "pivotJointNew", JSB_cpPivotJointNew, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "pivotJointNew2", JSB_cpPivotJointNew2, 4, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "pivotJointSetAnchr1", JSB_cpPivotJointSetAnchr1, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "pivotJointSetAnchr2", JSB_cpPivotJointSetAnchr2, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "polyShapeGetNumVerts", JSB_cpPolyShapeGetNumVerts, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "polyShapeGetVert", JSB_cpPolyShapeGetVert, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "ratchetJointGetAngle", JSB_cpRatchetJointGetAngle, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "ratchetJointGetPhase", JSB_cpRatchetJointGetPhase, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "ratchetJointGetRatchet", JSB_cpRatchetJointGetRatchet, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "ratchetJointNew", JSB_cpRatchetJointNew, 4, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "ratchetJointSetAngle", JSB_cpRatchetJointSetAngle, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "ratchetJointSetPhase", JSB_cpRatchetJointSetPhase, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "ratchetJointSetRatchet", JSB_cpRatchetJointSetRatchet, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "resetShapeIdCounter", JSB_cpResetShapeIdCounter, 0, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "rotaryLimitJointGetMax", JSB_cpRotaryLimitJointGetMax, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "rotaryLimitJointGetMin", JSB_cpRotaryLimitJointGetMin, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "rotaryLimitJointNew", JSB_cpRotaryLimitJointNew, 4, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "rotaryLimitJointSetMax", JSB_cpRotaryLimitJointSetMax, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "rotaryLimitJointSetMin", JSB_cpRotaryLimitJointSetMin, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "segmentShapeGetA", JSB_cpSegmentShapeGetA, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "segmentShapeGetB", JSB_cpSegmentShapeGetB, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "segmentShapeGetNormal", JSB_cpSegmentShapeGetNormal, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "segmentShapeGetRadius", JSB_cpSegmentShapeGetRadius, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "segmentShapeNew", JSB_cpSegmentShapeNew, 4, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "segmentShapeSetNeighbors", JSB_cpSegmentShapeSetNeighbors, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "shapeCacheBB", JSB_cpShapeCacheBB, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "shapeDestroy", JSB_cpShapeDestroy, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "shapeFree", JSB_cpShapeFree, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "shapeGetBB", JSB_cpShapeGetBB, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "shapeGetBody", JSB_cpShapeGetBody, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "shapeGetCollisionType", JSB_cpShapeGetCollisionType, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "shapeGetElasticity", JSB_cpShapeGetElasticity, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "shapeGetFriction", JSB_cpShapeGetFriction, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "shapeGetGroup", JSB_cpShapeGetGroup, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "shapeGetLayers", JSB_cpShapeGetLayers, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "shapeGetSensor", JSB_cpShapeGetSensor, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "shapeGetSpace", JSB_cpShapeGetSpace, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "shapeGetSurfaceVelocity", JSB_cpShapeGetSurfaceVelocity, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "shapePointQuery", JSB_cpShapePointQuery, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "shapeSetBody", JSB_cpShapeSetBody, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "shapeSetCollisionType", JSB_cpShapeSetCollisionType, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "shapeSetElasticity", JSB_cpShapeSetElasticity, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "shapeSetFriction", JSB_cpShapeSetFriction, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "shapeSetGroup", JSB_cpShapeSetGroup, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "shapeSetLayers", JSB_cpShapeSetLayers, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "shapeSetSensor", JSB_cpShapeSetSensor, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "shapeSetSurfaceVelocity", JSB_cpShapeSetSurfaceVelocity, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "shapeUpdate", JSB_cpShapeUpdate, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "simpleMotorGetRate", JSB_cpSimpleMotorGetRate, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "simpleMotorNew", JSB_cpSimpleMotorNew, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "simpleMotorSetRate", JSB_cpSimpleMotorSetRate, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "slideJointGetAnchr1", JSB_cpSlideJointGetAnchr1, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "slideJointGetAnchr2", JSB_cpSlideJointGetAnchr2, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "slideJointGetMax", JSB_cpSlideJointGetMax, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "slideJointGetMin", JSB_cpSlideJointGetMin, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "slideJointNew", JSB_cpSlideJointNew, 6, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "slideJointSetAnchr1", JSB_cpSlideJointSetAnchr1, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "slideJointSetAnchr2", JSB_cpSlideJointSetAnchr2, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "slideJointSetMax", JSB_cpSlideJointSetMax, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "slideJointSetMin", JSB_cpSlideJointSetMin, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "spaceActivateShapesTouchingShape", JSB_cpSpaceActivateShapesTouchingShape, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "spaceAddBody", JSB_cpSpaceAddBody, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "spaceAddConstraint", JSB_cpSpaceAddConstraint, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "spaceAddShape", JSB_cpSpaceAddShape, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "spaceAddStaticShape", JSB_cpSpaceAddStaticShape, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "spaceContainsBody", JSB_cpSpaceContainsBody, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "spaceContainsConstraint", JSB_cpSpaceContainsConstraint, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "spaceContainsShape", JSB_cpSpaceContainsShape, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "spaceDestroy", JSB_cpSpaceDestroy, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "spaceFree", JSB_cpSpaceFree, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "spaceGetCollisionBias", JSB_cpSpaceGetCollisionBias, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "spaceGetCollisionPersistence", JSB_cpSpaceGetCollisionPersistence, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "spaceGetCollisionSlop", JSB_cpSpaceGetCollisionSlop, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "spaceGetCurrentTimeStep", JSB_cpSpaceGetCurrentTimeStep, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "spaceGetDamping", JSB_cpSpaceGetDamping, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "spaceGetEnableContactGraph", JSB_cpSpaceGetEnableContactGraph, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "spaceGetGravity", JSB_cpSpaceGetGravity, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "spaceGetIdleSpeedThreshold", JSB_cpSpaceGetIdleSpeedThreshold, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "spaceGetIterations", JSB_cpSpaceGetIterations, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "spaceGetSleepTimeThreshold", JSB_cpSpaceGetSleepTimeThreshold, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "spaceGetStaticBody", JSB_cpSpaceGetStaticBody, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "spaceInit", JSB_cpSpaceInit, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "spaceIsLocked", JSB_cpSpaceIsLocked, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "spaceNew", JSB_cpSpaceNew, 0, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "spacePointQueryFirst", JSB_cpSpacePointQueryFirst, 4, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "spaceReindexShape", JSB_cpSpaceReindexShape, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "spaceReindexShapesForBody", JSB_cpSpaceReindexShapesForBody, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "spaceReindexStatic", JSB_cpSpaceReindexStatic, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "spaceRemoveBody", JSB_cpSpaceRemoveBody, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "spaceRemoveConstraint", JSB_cpSpaceRemoveConstraint, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "spaceRemoveShape", JSB_cpSpaceRemoveShape, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "spaceRemoveStaticShape", JSB_cpSpaceRemoveStaticShape, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "spaceSetCollisionBias", JSB_cpSpaceSetCollisionBias, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "spaceSetCollisionPersistence", JSB_cpSpaceSetCollisionPersistence, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "spaceSetCollisionSlop", JSB_cpSpaceSetCollisionSlop, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "spaceSetDamping", JSB_cpSpaceSetDamping, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "spaceSetEnableContactGraph", JSB_cpSpaceSetEnableContactGraph, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "spaceSetGravity", JSB_cpSpaceSetGravity, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "spaceSetIdleSpeedThreshold", JSB_cpSpaceSetIdleSpeedThreshold, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "spaceSetIterations", JSB_cpSpaceSetIterations, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "spaceSetSleepTimeThreshold", JSB_cpSpaceSetSleepTimeThreshold, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "spaceStep", JSB_cpSpaceStep, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "spaceUseSpatialHash", JSB_cpSpaceUseSpatialHash, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "fabs", JSB_cpfabs, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "fclamp", JSB_cpfclamp, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "fclamp01", JSB_cpfclamp01, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "flerp", JSB_cpflerp, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "flerpconst", JSB_cpflerpconst, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "fmax", JSB_cpfmax, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "fmin", JSB_cpfmin, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "vadd", JSB_cpvadd, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "vclamp", JSB_cpvclamp, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "vcross", JSB_cpvcross, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "vdist", JSB_cpvdist, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "vdistsq", JSB_cpvdistsq, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "vdot", JSB_cpvdot, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "veql", JSB_cpveql, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "vforangle", JSB_cpvforangle, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "vlength", JSB_cpvlength, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "vlengthsq", JSB_cpvlengthsq, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "vlerp", JSB_cpvlerp, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "vlerpconst", JSB_cpvlerpconst, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "vmult", JSB_cpvmult, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "vnear", JSB_cpvnear, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "vneg", JSB_cpvneg, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "vnormalize", JSB_cpvnormalize, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "vnormalize_safe", JSB_cpvnormalize_safe, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "vperp", JSB_cpvperp, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "vproject", JSB_cpvproject, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "vrotate", JSB_cpvrotate, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "vrperp", JSB_cpvrperp, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "vslerp", JSB_cpvslerp, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "vslerpconst", JSB_cpvslerpconst, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "vsub", JSB_cpvsub, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "vtoangle", JSB_cpvtoangle, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, chipmunk, "vunrotate", JSB_cpvunrotate, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); - - -#endif // JSB_INCLUDE_CHIPMUNK diff --git a/cocos/scripting/javascript/bindings/js_bindings_chipmunk_manual.cpp b/cocos/scripting/javascript/bindings/js_bindings_chipmunk_manual.cpp deleted file mode 100644 index 14a88c87bb..0000000000 --- a/cocos/scripting/javascript/bindings/js_bindings_chipmunk_manual.cpp +++ /dev/null @@ -1,1624 +0,0 @@ -/* - * JS Bindings: https://github.com/zynga/jsbindings - * - * Copyright (c) 2012 Zynga Inc. - * - * 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 "extensions/cocos-ext.h" -#include "js_bindings_config.h" -#ifdef JSB_INCLUDE_CHIPMUNK - -#include "jsapi.h" -#include "jsfriendapi.h" - -#include "js_bindings_chipmunk_manual.h" -#include "js_manual_conversions.h" - -USING_NS_CC_EXT; -// Function declarations -void static freeSpaceChildren(cpSpace *space); - -template -static JSBool dummy_constructor(JSContext *cx, uint32_t argc, jsval *vp) { - TypeTest t; - T* cobj = new T(); - cobj->autorelease(); - js_type_class_t *p; - uint32_t typeId = t.s_id(); - HASH_FIND_INT(_js_global_type_ht, &typeId, p); - assert(p); - JSObject *_tmp = JS_NewObject(cx, p->jsclass, p->proto, p->parentProto); - js_proxy_t *pp = jsb_new_proxy(cobj, _tmp); - JS_AddObjectRoot(cx, &pp->obj); - JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(_tmp)); - - return JS_TRUE; -} - -#pragma mark - convertions - -/* - * PhysicsSprite - */ -#pragma mark - PhysicsSprite - -JSClass* JSPROXY_CCPhysicsSprite_class = NULL; -JSObject* JSPROXY_CCPhysicsSprite_object = NULL; -// Constructor - -// Destructor -void JSPROXY_CCPhysicsSprite_finalize(JSFreeOp *fop, JSObject *obj) -{ - CCLOGINFO("jsbindings: finalizing JS object %p (PhysicsSprite)", obj); -} - -// Arguments: -// Ret value: cpBody* (N/A) -JSBool JSPROXY_CCPhysicsSprite_getCPBody(JSContext *cx, uint32_t argc, jsval *vp) { - - JSObject *obj = JS_THIS_OBJECT(cx, vp); - js_proxy_t *proxy = jsb_get_js_proxy(obj); - PhysicsSprite* real = (PhysicsSprite *)(proxy ? proxy->ptr : NULL); - TEST_NATIVE_OBJECT(cx, real) - cpBody* ret_val; - - ret_val = real->getCPBody(); - jsval ret_jsval = c_class_to_jsval( cx, ret_val, JSB_cpBody_object, JSB_cpBody_class, "cpBody" ); - JS_SET_RVAL(cx, vp, ret_jsval); - - return JS_TRUE; -} - -// Arguments: -// Ret value: BOOL (b) -JSBool JSPROXY_CCPhysicsSprite_ignoreBodyRotation(JSContext *cx, uint32_t argc, jsval *vp) { - - JSObject *obj = JS_THIS_OBJECT(cx, vp); - js_proxy_t *proxy = jsb_get_js_proxy(obj); - PhysicsSprite* real = (PhysicsSprite *)(proxy ? proxy->ptr : NULL); - TEST_NATIVE_OBJECT(cx, real) - - bool ret_val; - - ret_val = real->isIgnoreBodyRotation(); - JS_SET_RVAL(cx, vp, BOOLEAN_TO_JSVAL(ret_val)); - return JS_TRUE; -} - -// Arguments: cpBody* -// Ret value: void (None) -JSBool JSPROXY_CCPhysicsSprite_setCPBody_(JSContext *cx, uint32_t argc, jsval *vp) { - - JSObject *obj = JS_THIS_OBJECT(cx, vp); - js_proxy_t *proxy = jsb_get_js_proxy(obj); - PhysicsSprite* real = (PhysicsSprite *)(proxy ? proxy->ptr : NULL); - TEST_NATIVE_OBJECT(cx, real) - - jsval *argvp = JS_ARGV(cx,vp); - JSBool ok = JS_TRUE; - - cpBody* arg0; - - ok &= jsval_to_opaque( cx, *argvp++, (void**)&arg0 ); - if( ! ok ) return JS_FALSE; - - real->setCPBody((cpBody*)arg0); - JS_SET_RVAL(cx, vp, JSVAL_VOID); - return JS_TRUE; -} - -// Arguments: BOOL -// Ret value: void (None) -JSBool JSPROXY_CCPhysicsSprite_setIgnoreBodyRotation_(JSContext *cx, uint32_t argc, jsval *vp) { - - JSObject *obj = JS_THIS_OBJECT(cx, vp); - js_proxy_t *proxy = jsb_get_js_proxy(obj); - PhysicsSprite* real = (PhysicsSprite *)(proxy ? proxy->ptr : NULL); - TEST_NATIVE_OBJECT(cx, real) - - jsval *argvp = JS_ARGV(cx,vp); - JSBool ok = JS_TRUE; - JSBool arg0; - - ok &= JS_ValueToBoolean( cx, *argvp++, &arg0 ); - if( ! ok ) return JS_FALSE; - - real->setIgnoreBodyRotation((bool)arg0); - JS_SET_RVAL(cx, vp, JSVAL_VOID); - return JS_TRUE; -} - -/* - * PhysicsDebugNode - */ -//#pragma mark - PhysicsDebugNode - -JSClass* JSB_CCPhysicsDebugNode_class = NULL; -JSObject* JSB_CCPhysicsDebugNode_object = NULL; -extern JSObject *js_cocos2dx_CCDrawNode_prototype; - -// Constructor - -// Destructor -void JSB_CCPhysicsDebugNode_finalize(JSFreeOp *fop, JSObject *obj) -{ - CCLOGINFO("jsbindings: finalizing JS object %p (PhysicsDebugNode)", obj); -} - -// Arguments: cpSpace* -// Ret value: PhysicsDebugNode* (o) -JSBool JSB_CCPhysicsDebugNode_debugNodeForCPSpace__static(JSContext *cx, uint32_t argc, jsval *vp) { - JSB_PRECONDITION2( argc == 1, cx, JS_FALSE, "Invalid number of arguments" ); - jsval *argvp = JS_ARGV(cx,vp); - JSBool ok = JS_TRUE; - cpSpace* arg0; - - ok &= jsval_to_opaque( cx, *argvp++, (void**)&arg0 ); - JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments"); - - PhysicsDebugNode* ret = PhysicsDebugNode::create(arg0); - jsval jsret; - do { - if (ret) { - TypeTest t; - js_type_class_t *typeClass; - uint32_t typeId = t.s_id(); - HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass); - assert(typeClass); - JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto); - jsret = OBJECT_TO_JSVAL(obj); - js_proxy_t *p = jsb_new_proxy(ret, obj); - JS_AddNamedObjectRoot(cx, &p->obj, "CCDebugNode"); - } else { - jsret = JSVAL_NULL; - } - } while (0); - JS_SET_RVAL(cx, vp, jsret); - - return JS_TRUE; -} - -// Arguments: cpSpace* -// Ret value: void (None) -JSBool JSB_CCPhysicsDebugNode_setSpace_(JSContext *cx, uint32_t argc, jsval *vp) { - - JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp); - js_proxy_t *proxy = jsb_get_js_proxy(jsthis); - PhysicsDebugNode* real = (PhysicsDebugNode *)(proxy ? proxy->ptr : NULL); - TEST_NATIVE_OBJECT(cx, real) - - JSB_PRECONDITION2( argc == 1, cx, JS_FALSE, "Invalid number of arguments" ); - jsval *argvp = JS_ARGV(cx,vp); - JSBool ok = JS_TRUE; - cpSpace* arg0; - - ok &= jsval_to_opaque( cx, *argvp++, (void**)&arg0 ); - JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments"); - - real->setSpace(arg0); - JS_SET_RVAL(cx, vp, JSVAL_VOID); - return JS_TRUE; -} - -// Arguments: -// Ret value: cpSpace* (N/A) -JSBool JSB_CCPhysicsDebugNode_space(JSContext *cx, uint32_t argc, jsval *vp) { - - JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp); - js_proxy_t *proxy = jsb_get_js_proxy(jsthis); - PhysicsDebugNode* real = (PhysicsDebugNode *)(proxy ? proxy->ptr : NULL); - TEST_NATIVE_OBJECT(cx, real) - JSB_PRECONDITION2( argc == 0, cx, JS_FALSE, "Invalid number of arguments" ); - cpSpace* ret_val; - - ret_val = real->getSpace(); - - jsval ret_jsval = opaque_to_jsval( cx, ret_val ); - JS_SET_RVAL(cx, vp, ret_jsval); - - return JS_TRUE; -} - -void JSB_CCPhysicsDebugNode_createClass(JSContext *cx, JSObject* globalObj, const char* name ) -{ - JSB_CCPhysicsDebugNode_class = (JSClass *)calloc(1, sizeof(JSClass)); - JSB_CCPhysicsDebugNode_class->name = name; - JSB_CCPhysicsDebugNode_class->addProperty = JS_PropertyStub; - JSB_CCPhysicsDebugNode_class->delProperty = JS_DeletePropertyStub; - JSB_CCPhysicsDebugNode_class->getProperty = JS_PropertyStub; - JSB_CCPhysicsDebugNode_class->setProperty = JS_StrictPropertyStub; - JSB_CCPhysicsDebugNode_class->enumerate = JS_EnumerateStub; - JSB_CCPhysicsDebugNode_class->resolve = JS_ResolveStub; - JSB_CCPhysicsDebugNode_class->convert = JS_ConvertStub; - JSB_CCPhysicsDebugNode_class->finalize = JSB_CCPhysicsDebugNode_finalize; - JSB_CCPhysicsDebugNode_class->flags = 0; - - static JSPropertySpec properties[] = { - {0, 0, 0, 0, 0} - }; - static JSFunctionSpec funcs[] = { - JS_FN("_setSpace", JSB_CCPhysicsDebugNode_setSpace_, 1, JSPROP_PERMANENT | JSPROP_ENUMERATE), - JS_FN("getSpace", JSB_CCPhysicsDebugNode_space, 0, JSPROP_PERMANENT | JSPROP_ENUMERATE), - JS_FS_END - }; - static JSFunctionSpec st_funcs[] = { - JS_FN("_create", JSB_CCPhysicsDebugNode_debugNodeForCPSpace__static, 1, JSPROP_PERMANENT | JSPROP_ENUMERATE), - JS_FS_END - }; - - TypeTest t1; - js_type_class_t *typeClass; - uint32_t typeId = t1.s_id(); - HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass); - assert(typeClass); - - JSB_CCPhysicsDebugNode_object = JS_InitClass(cx, globalObj, typeClass->proto, JSB_CCPhysicsDebugNode_class, dummy_constructor, 0,properties,funcs,NULL,st_funcs); - - TypeTest t; - js_type_class_t *p; - typeId = t.s_id(); - HASH_FIND_INT(_js_global_type_ht, &typeId, p); - if (!p) { - p = (js_type_class_t *)malloc(sizeof(js_type_class_t)); - p->type = typeId; - p->jsclass = JSB_CCPhysicsDebugNode_class; - p->proto = JSB_CCPhysicsDebugNode_object; - p->parentProto = typeClass->proto; - HASH_ADD_INT(_js_global_type_ht, type, p); - } -} - -// Arguments: NSString*, CGRect -// Ret value: PhysicsSprite* (o) -JSBool JSPROXY_CCPhysicsSprite_spriteWithFile_rect__static(JSContext *cx, uint32_t argc, jsval *vp) { - - jsval *argv = JS_ARGV(cx, vp); - JSBool ok = JS_TRUE; - if (argc == 2) { - const char* arg0; - std::string arg0_tmp; ok &= jsval_to_std_string(cx, argv[0], &arg0_tmp); arg0 = arg0_tmp.c_str(); - cocos2d::Rect arg1; - ok &= jsval_to_ccrect(cx, argv[1], &arg1); - JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments"); - - PhysicsSprite* ret = PhysicsSprite::create(arg0, arg1); - - jsval jsret; - do { - if (ret) { - TypeTest t; - js_type_class_t *typeClass; - uint32_t typeId = t.s_id(); - HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass); - assert(typeClass); - JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto); - jsret = OBJECT_TO_JSVAL(obj); - js_proxy_t *p = jsb_new_proxy(ret, obj); - JS_AddNamedObjectRoot(cx, &p->obj, "CCPhysicsSprite"); - } else { - jsret = JSVAL_NULL; - } - } while (0); - JS_SET_RVAL(cx, vp, jsret); - return JS_TRUE; - } - if (argc == 1) { - const char* arg0; - std::string arg0_tmp; ok &= jsval_to_std_string(cx, argv[0], &arg0_tmp); arg0 = arg0_tmp.c_str(); - JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments"); - - PhysicsSprite* ret = PhysicsSprite::create(arg0); - - jsval jsret; - do { - if (ret) { - TypeTest t; - js_type_class_t *typeClass; - uint32_t typeId = t.s_id(); - HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass); - assert(typeClass); - JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto); - jsret = OBJECT_TO_JSVAL(obj); - js_proxy_t *p = jsb_new_proxy(ret, obj); - JS_AddNamedObjectRoot(cx, &p->obj, "CCPhysicsSprite"); - } else { - jsret = JSVAL_NULL; - } - } while (0); - JS_SET_RVAL(cx, vp, jsret); - return JS_TRUE; - } - return JS_FALSE; - -} - -// Arguments: SpriteFrame* -// Ret value: PhysicsSprite* (o) -JSBool JSPROXY_CCPhysicsSprite_spriteWithSpriteFrame__static(JSContext *cx, uint32_t argc, jsval *vp) { - jsval *argv = JS_ARGV(cx, vp); - cocos2d::SpriteFrame* arg0; - if (argc >= 1) { - do { - js_proxy_t *proxy; - JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]); - proxy = jsb_get_js_proxy(tmpObj); - arg0 = (cocos2d::SpriteFrame*)(proxy ? proxy->ptr : NULL); - TEST_NATIVE_OBJECT(cx, arg0) - } while (0); - } - PhysicsSprite* ret = PhysicsSprite::createWithSpriteFrame(arg0); - - jsval jsret; - do { - if (ret) { - TypeTest t; - js_type_class_t *typeClass; - uint32_t typeId = t.s_id(); - HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass); - assert(typeClass); - JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto); - jsret = OBJECT_TO_JSVAL(obj); - js_proxy_t *p = jsb_new_proxy(ret, obj); - JS_AddNamedObjectRoot(cx, &p->obj, "CCPhysicsSprite"); - } else { - jsret = JSVAL_NULL; - } - } while (0); - JS_SET_RVAL(cx, vp, jsret); - return JS_TRUE; -} - -// Arguments: NSString* -// Ret value: PhysicsSprite* (o) -JSBool JSPROXY_CCPhysicsSprite_spriteWithSpriteFrameName__static(JSContext *cx, uint32_t argc, jsval *vp) { - jsval *argv = JS_ARGV(cx, vp); - JSBool ok = JS_TRUE; - const char* arg0; - std::string arg0_tmp; - if (argc >= 1) { - ok &= jsval_to_std_string(cx, argv[0], &arg0_tmp); arg0 = arg0_tmp.c_str(); - } - PhysicsSprite* ret = PhysicsSprite::createWithSpriteFrameName(arg0); - - jsval jsret; - do { - if (ret) { - TypeTest t; - js_type_class_t *typeClass; - uint32_t typeId = t.s_id(); - HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass); - assert(typeClass); - JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto); - jsret = OBJECT_TO_JSVAL(obj); - js_proxy_t *p = jsb_new_proxy(ret, obj); - JS_AddNamedObjectRoot(cx, &p->obj, "CCPhysicsSprite"); - } else { - jsret = JSVAL_NULL; - } - } while (0); - JS_SET_RVAL(cx, vp, jsret); - return JS_TRUE; -} - -void JSPROXY_CCPhysicsSprite_createClass(JSContext *cx, JSObject* globalObj) -{ - JSPROXY_CCPhysicsSprite_class = (JSClass *)calloc(1, sizeof(JSClass)); - JSPROXY_CCPhysicsSprite_class->name = "PhysicsSprite"; - JSPROXY_CCPhysicsSprite_class->addProperty = JS_PropertyStub; - JSPROXY_CCPhysicsSprite_class->delProperty = JS_DeletePropertyStub; - JSPROXY_CCPhysicsSprite_class->getProperty = JS_PropertyStub; - JSPROXY_CCPhysicsSprite_class->setProperty = JS_StrictPropertyStub; - JSPROXY_CCPhysicsSprite_class->enumerate = JS_EnumerateStub; - JSPROXY_CCPhysicsSprite_class->resolve = JS_ResolveStub; - JSPROXY_CCPhysicsSprite_class->convert = JS_ConvertStub; - JSPROXY_CCPhysicsSprite_class->finalize = JSPROXY_CCPhysicsSprite_finalize; - JSPROXY_CCPhysicsSprite_class->flags = 0; - - static JSPropertySpec properties[] = { - {0, 0, 0, 0, 0} - }; - static JSFunctionSpec funcs[] = { - JS_FN("getCPBody", JSPROXY_CCPhysicsSprite_getCPBody, 0, JSPROP_PERMANENT | JSPROP_ENUMERATE), - JS_FN("getIgnoreBodyRotation", JSPROXY_CCPhysicsSprite_ignoreBodyRotation, 0, JSPROP_PERMANENT | JSPROP_ENUMERATE), - JS_FN("_setCPBody", JSPROXY_CCPhysicsSprite_setCPBody_, 1, JSPROP_PERMANENT | JSPROP_ENUMERATE), - JS_FN("setIgnoreBodyRotation", JSPROXY_CCPhysicsSprite_setIgnoreBodyRotation_, 1, JSPROP_PERMANENT | JSPROP_ENUMERATE), - JS_FS_END - }; - static JSFunctionSpec st_funcs[] = { - JS_FN("create", JSPROXY_CCPhysicsSprite_spriteWithFile_rect__static, 2, JSPROP_PERMANENT | JSPROP_ENUMERATE), - JS_FN("createWithSpriteFrame", JSPROXY_CCPhysicsSprite_spriteWithSpriteFrame__static, 1, JSPROP_PERMANENT | JSPROP_ENUMERATE), - JS_FN("createWithSpriteFrameName", JSPROXY_CCPhysicsSprite_spriteWithSpriteFrameName__static, 1, JSPROP_PERMANENT | JSPROP_ENUMERATE), - JS_FS_END - }; - - TypeTest t1; - js_type_class_t *typeClass; - uint32_t typeId = t1.s_id(); - HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass); - assert(typeClass); - - JSPROXY_CCPhysicsSprite_object = JS_InitClass(cx, globalObj, typeClass->proto, JSPROXY_CCPhysicsSprite_class, dummy_constructor, 0,properties,funcs,NULL,st_funcs); - - TypeTest t; - js_type_class_t *p; - typeId = t.s_id(); - HASH_FIND_INT(_js_global_type_ht, &typeId, p); - if (!p) { - p = (js_type_class_t *)malloc(sizeof(js_type_class_t)); - p->type = typeId; - p->jsclass = JSPROXY_CCPhysicsSprite_class; - p->proto = JSPROXY_CCPhysicsSprite_object; - p->parentProto = typeClass->proto; - HASH_ADD_INT(_js_global_type_ht, type, p); - } -} - - -void register_CCPhysicsSprite(JSContext *cx, JSObject *obj) { - jsval nsval; - JSObject *ns; - JS_GetProperty(cx, obj, "cc", &nsval); - if (nsval == JSVAL_VOID) { - ns = JS_NewObject(cx, NULL, NULL, NULL); - nsval = OBJECT_TO_JSVAL(ns); - JS_SetProperty(cx, obj, "cc", &nsval); - } else { - JS_ValueToObject(cx, nsval, &ns); - } - obj = ns; - JSPROXY_CCPhysicsSprite_createClass(cx, obj); -} - -void register_CCPhysicsDebugNode(JSContext *cx, JSObject *obj) { - jsval nsval; - JSObject *ns; - JS_GetProperty(cx, obj, "cc", &nsval); - if (nsval == JSVAL_VOID) { - ns = JS_NewObject(cx, NULL, NULL, NULL); - nsval = OBJECT_TO_JSVAL(ns); - JS_SetProperty(cx, obj, "cc", &nsval); - } else { - JS_ValueToObject(cx, nsval, &ns); - } - obj = ns; - JSB_CCPhysicsDebugNode_createClass(cx, obj, "PhysicsDebugNode"); -} - -JSBool jsval_to_cpBB( JSContext *cx, jsval vp, cpBB *ret ) -{ - JSObject *jsobj; - JSBool ok = JS_ValueToObject( cx, vp, &jsobj ); - JSB_PRECONDITION( ok, "Error converting value to object"); - JSB_PRECONDITION( jsobj, "Not a valid JS object"); - - jsval vall, valb, valr, valt; - ok = JS_TRUE; - ok &= JS_GetProperty(cx, jsobj, "l", &vall); - ok &= JS_GetProperty(cx, jsobj, "b", &valb); - ok &= JS_GetProperty(cx, jsobj, "r", &valr); - ok &= JS_GetProperty(cx, jsobj, "t", &valt); - JSB_PRECONDITION( ok, "Error obtaining point properties"); - - double l, b, r, t; - ok &= JS_ValueToNumber(cx, vall, &l); - ok &= JS_ValueToNumber(cx, valb, &b); - ok &= JS_ValueToNumber(cx, valr, &r); - ok &= JS_ValueToNumber(cx, valt, &t); - JSB_PRECONDITION( ok, "Error converting value to numbers"); - - ret->l = l; - ret->b = b; - ret->r = r; - ret->t = t; - - return JS_TRUE; -} - -jsval cpBB_to_jsval(JSContext *cx, cpBB bb ) -{ - JSObject *object = JS_NewObject(cx, NULL, NULL, NULL ); - if (!object) - return JSVAL_VOID; - - if (!JS_DefineProperty(cx, object, "l", DOUBLE_TO_JSVAL(bb.l), NULL, NULL, JSPROP_ENUMERATE | JSPROP_PERMANENT) || - !JS_DefineProperty(cx, object, "b", DOUBLE_TO_JSVAL(bb.b), NULL, NULL, JSPROP_ENUMERATE | JSPROP_PERMANENT) || - !JS_DefineProperty(cx, object, "r", DOUBLE_TO_JSVAL(bb.r), NULL, NULL, JSPROP_ENUMERATE | JSPROP_PERMANENT) || - !JS_DefineProperty(cx, object, "t", DOUBLE_TO_JSVAL(bb.t), NULL, NULL, JSPROP_ENUMERATE | JSPROP_PERMANENT) ) - return JSVAL_VOID; - - return OBJECT_TO_JSVAL(object); -} - -// In order to be compatible with Chipmunk-JS API, -// this function expect to receive an array of numbers, and not an array of vects -// OK: [1,2, 3,4, 5,6] <- expected -// BAD: [{x:1, y:2}, {x:3,y:4}, {x:5, y:6}] <- not expected -JSBool jsval_to_array_of_cpvect( JSContext *cx, jsval vp, cpVect**verts, int *numVerts) -{ - // Parsing sequence - JSObject *jsobj; - JSBool ok = JS_ValueToObject( cx, vp, &jsobj ); - JSB_PRECONDITION( ok, "Error converting value to object"); - - JSB_PRECONDITION( jsobj && JS_IsArrayObject( cx, jsobj), "Object must be an array"); - - uint32_t len; - JS_GetArrayLength(cx, jsobj, &len); - - JSB_PRECONDITION( len%2==0, "Array lenght should be even"); - - cpVect *array = (cpVect*)malloc( sizeof(cpVect) * len/2); - - for( uint32_t i=0; i< len;i++ ) { - jsval valarg; - JS_GetElement(cx, jsobj, i, &valarg); - - double value; - ok = JS_ValueToNumber(cx, valarg, &value); - JSB_PRECONDITION( ok, "Error converting value to nsobject"); - - if(i%2==0) - array[i/2].x = value; - else - array[i/2].y = value; - } - - *numVerts = len/2; - *verts = array; - - return JS_TRUE; -} - -#pragma mark - Collision Handler - -struct collision_handler { - cpCollisionType typeA; - cpCollisionType typeB; - - JSObject *begin; - JSObject *pre; - JSObject *post; - JSObject *separate; - JSObject *jsthis; - JSContext *cx; - - // "owner" of the collision handler - // Needed when the space goes out of scope, it will remove all the allocated collision handlers for him. - cpSpace *space; - - unsigned long hash_key; - - unsigned int is_oo; // Objected oriented API ? - UT_hash_handle hh; -}; - -// hash -struct collision_handler* collision_handler_hash = NULL; - -// helper pair -static unsigned long pair_ints( unsigned long A, unsigned long B ) -{ - // order is not important - unsigned long k1 = MIN(A, B ); - unsigned long k2 = MAX(A, B ); - - return (k1 + k2) * (k1 + k2 + 1) /2 + k2; -} - -static cpBool myCollisionBegin(cpArbiter *arb, cpSpace *space, void *data) -{ - struct collision_handler *handler = (struct collision_handler*) data; - - jsval args[2]; - if( handler->is_oo ) { - args[0] = c_class_to_jsval(handler->cx, arb, JSB_cpArbiter_object, JSB_cpArbiter_class, "cpArbiter"); - args[1] = c_class_to_jsval(handler->cx, space, JSB_cpSpace_object, JSB_cpSpace_class, "cpArbiter"); - } else { - args[0] = opaque_to_jsval( handler->cx, arb); - args[1] = opaque_to_jsval( handler->cx, space ); - } - - jsval rval; - JSBool ok = JS_CallFunctionValue( handler->cx, handler->jsthis, OBJECT_TO_JSVAL(handler->begin), 2, args, &rval); - JSB_PRECONDITION2(ok, handler->cx, cpFalse, "Error calling collision callback: begin"); - - if( JSVAL_IS_BOOLEAN(rval) ) { - JSBool ret = JSVAL_TO_BOOLEAN(rval); - return (cpBool)ret; - } - return cpTrue; -} - -static cpBool myCollisionPre(cpArbiter *arb, cpSpace *space, void *data) -{ - struct collision_handler *handler = (struct collision_handler*) data; - - jsval args[2]; - if( handler->is_oo ) { - args[0] = c_class_to_jsval(handler->cx, arb, JSB_cpArbiter_object, JSB_cpArbiter_class, "cpArbiter"); - args[1] = c_class_to_jsval(handler->cx, space, JSB_cpSpace_object, JSB_cpSpace_class, "cpArbiter"); - } else { - args[0] = opaque_to_jsval( handler->cx, arb); - args[1] = opaque_to_jsval( handler->cx, space ); - } - - jsval rval; - JSBool ok = JS_CallFunctionValue( handler->cx, handler->jsthis, OBJECT_TO_JSVAL(handler->pre), 2, args, &rval); - JSB_PRECONDITION2(ok, handler->cx, JS_FALSE, "Error calling collision callback: pre"); - - if( JSVAL_IS_BOOLEAN(rval) ) { - JSBool ret = JSVAL_TO_BOOLEAN(rval); - return (cpBool)ret; - } - return cpTrue; -} - -static void myCollisionPost(cpArbiter *arb, cpSpace *space, void *data) -{ - struct collision_handler *handler = (struct collision_handler*) data; - - jsval args[2]; - - if( handler->is_oo ) { - args[0] = c_class_to_jsval(handler->cx, arb, JSB_cpArbiter_object, JSB_cpArbiter_class, "cpArbiter"); - args[1] = c_class_to_jsval(handler->cx, space, JSB_cpSpace_object, JSB_cpSpace_class, "cpArbiter"); - } else { - args[0] = opaque_to_jsval( handler->cx, arb); - args[1] = opaque_to_jsval( handler->cx, space ); - } - - jsval ignore; - JSBool ok = JS_CallFunctionValue( handler->cx, handler->jsthis, OBJECT_TO_JSVAL(handler->post), 2, args, &ignore); - JSB_PRECONDITION2(ok, handler->cx, , "Error calling collision callback: Post"); -} - -static void myCollisionSeparate(cpArbiter *arb, cpSpace *space, void *data) -{ - struct collision_handler *handler = (struct collision_handler*) data; - - jsval args[2]; - if( handler->is_oo ) { - args[0] = c_class_to_jsval(handler->cx, arb, JSB_cpArbiter_object, JSB_cpArbiter_class, "cpArbiter"); - args[1] = c_class_to_jsval(handler->cx, space, JSB_cpSpace_object, JSB_cpSpace_class, "cpArbiter"); - } else { - args[0] = opaque_to_jsval( handler->cx, arb); - args[1] = opaque_to_jsval( handler->cx, space ); - } - - jsval ignore; - JSBool ok = JS_CallFunctionValue( handler->cx, handler->jsthis, OBJECT_TO_JSVAL(handler->separate), 2, args, &ignore); - JSB_PRECONDITION2(ok, handler->cx, , "Error calling collision callback: Separate");} - -#pragma mark - cpSpace - -#pragma mark constructor / destructor - -void JSB_cpSpace_finalize(JSFreeOp *fop, JSObject *jsthis) -{ - struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis); - if( proxy ) { - CCLOGINFO("jsbindings: finalizing JS object %p (cpSpace), handle: %p", jsthis, proxy->handle); - - // space - cpSpace *space = (cpSpace*) proxy->handle; - - - // Remove collision handlers, since the user might have forgotten to manually remove them - struct collision_handler *current, *tmp; - HASH_ITER(hh, collision_handler_hash, current, tmp) { - if( current->space == space ) { - - JSContext *cx = current->cx; - - // unroot it - if( current->begin ) { - JS_RemoveObjectRoot(cx, ¤t->begin); - } - if( current->pre ) - JS_RemoveObjectRoot(cx, ¤t->pre); - if( current->post ) - JS_RemoveObjectRoot(cx, ¤t->post); - if( current->separate ) - JS_RemoveObjectRoot(cx, ¤t->separate); - - HASH_DEL(collision_handler_hash,current); /* delete; users advances to next */ - free(current); /* optional- if you want to free */ - } - } - - // Free Space Children - freeSpaceChildren(space); - - jsb_del_jsobject_for_proxy(space); - if(proxy->flags == JSB_C_FLAG_CALL_FREE) - cpSpaceFree(space); - jsb_del_c_proxy_for_jsobject(jsthis); - } -} - - -#pragma mark addCollisionHandler - -static -JSBool __jsb_cpSpace_addCollisionHandler(JSContext *cx, jsval *vp, jsval *argvp, cpSpace *space, unsigned int is_oo) -{ - struct collision_handler *handler = (struct collision_handler*) malloc( sizeof(*handler) ); - - JSB_PRECONDITION(handler, "Error allocating memory"); - - JSBool ok = JS_TRUE; - - // args - ok &= jsval_to_int(cx, *argvp++, (int32_t*) &handler->typeA ); - ok &= jsval_to_int(cx, *argvp++, (int32_t*) &handler->typeB ); - - // this is no longer passed, so "this" is going to be "this". -// ok &= JS_ValueToObject(cx, *argvp++, &handler->jsthis ); - handler->jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp); - - handler->begin = !JSVAL_IS_NULL(*argvp) ? JSVAL_TO_OBJECT(*argvp) : NULL; - argvp++; - handler->pre = !JSVAL_IS_NULL(*argvp) ? JSVAL_TO_OBJECT(*argvp) : NULL; - argvp++; - handler->post = !JSVAL_IS_NULL(*argvp) ? JSVAL_TO_OBJECT(*argvp) : NULL; - argvp++; - handler->separate = !JSVAL_IS_NULL(*argvp) ? JSVAL_TO_OBJECT(*argvp) : NULL; - argvp++; - - JSB_PRECONDITION(ok, "Error parsing arguments"); - - // Object Oriented API ? - handler->is_oo = is_oo; - - // owner of the collision handler - handler->space = space; - - // Root it - if( handler->begin ) - JS_AddNamedObjectRoot(cx, &handler->begin, "begin collision_handler"); - if( handler->pre ) - JS_AddNamedObjectRoot(cx, &handler->pre, "pre collision_handler"); - if( handler->post ) - JS_AddNamedObjectRoot(cx, &handler->post, "post collision_handler"); - if( handler->separate ) - JS_AddNamedObjectRoot(cx, &handler->separate, "separate collision_handler"); - - handler->cx = cx; - - cpSpaceAddCollisionHandler(space, handler->typeA, handler->typeB, - !handler->begin ? NULL : &myCollisionBegin, - !handler->pre ? NULL : &myCollisionPre, - !handler->post ? NULL : &myCollisionPost, - !handler->separate ? NULL : &myCollisionSeparate, - handler ); - - - // - // Already added ? If so, remove it. - // Then add new entry - // - struct collision_handler *hashElement = NULL; - unsigned long paired_key = pair_ints(handler->typeA, handler->typeB ); - HASH_FIND_INT(collision_handler_hash, &paired_key, hashElement); - if( hashElement ) { - HASH_DEL( collision_handler_hash, hashElement ); - free( hashElement ); - } - - handler->hash_key = paired_key; - HASH_ADD_INT( collision_handler_hash, hash_key, handler ); - - - JS_SET_RVAL(cx, vp, JSVAL_VOID); - return JS_TRUE; -} - -JSBool JSB_cpSpaceAddCollisionHandler(JSContext *cx, uint32_t argc, jsval *vp) -{ - JSB_PRECONDITION2(argc==7, cx, JS_FALSE, "Invalid number of arguments"); - - - jsval *argvp = JS_ARGV(cx,vp); - - // args - cpSpace *space; - JSBool ok = jsval_to_opaque( cx, *argvp++, (void**)&space); - JSB_PRECONDITION(ok, "Error parsing arguments"); - - return __jsb_cpSpace_addCollisionHandler(cx, vp, argvp, space, 0); -} - -// method -JSBool JSB_cpSpace_addCollisionHandler(JSContext *cx, uint32_t argc, jsval *vp) -{ - JSB_PRECONDITION2(argc==6, cx, JS_FALSE, "Invalid number of arguments"); - JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp); - JSB_PRECONDITION( jsthis, "Invalid jsthis object"); - - struct jsb_c_proxy_s* proxy = jsb_get_c_proxy_for_jsobject(jsthis); - void *handle = proxy->handle; - - return __jsb_cpSpace_addCollisionHandler(cx, vp, JS_ARGV(cx,vp), (cpSpace*)handle, 1); -} - -#pragma mark removeCollisionHandler - -static -JSBool __jsb_cpSpace_removeCollisionHandler(JSContext *cx, jsval *vp, jsval *argvp, cpSpace *space) -{ - JSBool ok = JS_TRUE; - - cpCollisionType typeA; - cpCollisionType typeB; - ok &= jsval_to_int(cx, *argvp++, (int32_t*) &typeA ); - ok &= jsval_to_int(cx, *argvp++, (int32_t*) &typeB ); - - JSB_PRECONDITION(ok, "Error parsing arguments"); - - cpSpaceRemoveCollisionHandler(space, typeA, typeB ); - - // Remove it - struct collision_handler *hashElement = NULL; - unsigned long key = pair_ints(typeA, typeB ); - HASH_FIND_INT(collision_handler_hash, &key, hashElement); - if( hashElement ) { - - // unroot it - if( hashElement->begin ) - JS_RemoveObjectRoot(cx, &hashElement->begin); - if( hashElement->pre ) - JS_RemoveObjectRoot(cx, &hashElement->pre); - if( hashElement->post ) - JS_RemoveObjectRoot(cx, &hashElement->post); - if( hashElement->separate ) - JS_RemoveObjectRoot(cx, &hashElement->separate); - - HASH_DEL( collision_handler_hash, hashElement ); - free( hashElement ); - } - - JS_SET_RVAL(cx, vp, JSVAL_VOID); - return JS_TRUE; -} - -// Free function -JSBool JSB_cpSpaceRemoveCollisionHandler(JSContext *cx, uint32_t argc, jsval *vp) -{ - JSB_PRECONDITION2(argc==3, cx, JS_FALSE, "Invalid number of arguments"); - - jsval *argvp = JS_ARGV(cx,vp); - - cpSpace* space; - JSBool ok = jsval_to_opaque( cx, *argvp++, (void**)&space); - - JSB_PRECONDITION(ok, "Error parsing arguments"); - - return __jsb_cpSpace_removeCollisionHandler(cx, vp, argvp, space); -} - -// method -JSBool JSB_cpSpace_removeCollisionHandler(JSContext *cx, uint32_t argc, jsval *vp) -{ - JSB_PRECONDITION2(argc==2, cx, JS_FALSE, "Invalid number of arguments"); - - JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp); - JSB_PRECONDITION( jsthis, "Invalid jsthis object"); - - struct jsb_c_proxy_s* proxy = jsb_get_c_proxy_for_jsobject(jsthis); - void *handle = proxy->handle; - - return __jsb_cpSpace_removeCollisionHandler(cx, vp, JS_ARGV(cx,vp), (cpSpace*)handle); -} - -#pragma mark Add functios. Root JSObjects - -// Arguments: cpBody* -// Ret value: cpBody* -JSBool JSB_cpSpace_addBody(JSContext *cx, uint32_t argc, jsval *vp) { - JSB_PRECONDITION2(argc==1, cx, JS_FALSE, "Invalid number of arguments"); - - JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp); - struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis); - cpSpace* arg0 = (cpSpace*) proxy->handle; - jsval *argvp = JS_ARGV(cx,vp); - JSBool ok = JS_TRUE; - cpBody* arg1; - - jsval retval = *argvp; struct jsb_c_proxy_s *retproxy; - ok &= jsval_to_c_class( cx, *argvp++, (void**)&arg1, &retproxy ); - JSB_PRECONDITION(ok, "Error processing arguments"); - - cpSpaceAddBody((cpSpace*)arg0 , (cpBody*)arg1 ); - - // Root it: - JS_AddNamedObjectRoot(cx, &retproxy->jsobj, "cpBody"); - - // addBody returns the same object that was added, so return it without conversions - JS_SET_RVAL(cx, vp, retval); - - return JS_TRUE; -} - -// Arguments: cpConstraint* -// Ret value: cpConstraint* -JSBool JSB_cpSpace_addConstraint(JSContext *cx, uint32_t argc, jsval *vp) { - JSB_PRECONDITION2(argc==1, cx, JS_FALSE, "Invalid number of arguments"); - - JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp); - struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis); - cpSpace* arg0 = (cpSpace*) proxy->handle; - jsval *argvp = JS_ARGV(cx,vp); - JSBool ok = JS_TRUE; - cpConstraint* arg1; - - jsval retval = *argvp; struct jsb_c_proxy_s *retproxy; - ok &= jsval_to_c_class( cx, *argvp++, (void**)&arg1, &retproxy ); - JSB_PRECONDITION(ok, "Error processing arguments"); - - cpSpaceAddConstraint((cpSpace*)arg0 , (cpConstraint*)arg1 ); - - // Root it: - JS_AddNamedObjectRoot(cx, &retproxy->jsobj, "cpConstraint"); - - // addConstraint returns the same object that was added, so return it without conversions - JS_SET_RVAL(cx, vp, retval); - - return JS_TRUE; -} - -// Arguments: cpShape* -// Ret value: cpShape* -JSBool JSB_cpSpace_addShape(JSContext *cx, uint32_t argc, jsval *vp) { - JSB_PRECONDITION2(argc==1, cx, JS_FALSE, "Invalid number of arguments"); - - JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp); - struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis); - cpSpace* arg0 = (cpSpace*) proxy->handle; - jsval *argvp = JS_ARGV(cx,vp); - JSBool ok = JS_TRUE; - cpShape* arg1; - - jsval retval = *argvp; struct jsb_c_proxy_s *retproxy; - ok &= jsval_to_c_class( cx, *argvp++, (void**)&arg1, &retproxy ); - JSB_PRECONDITION(ok, "Error processing arguments"); - - cpSpaceAddShape((cpSpace*)arg0 , (cpShape*)arg1 ); - - // Root it: - JS_AddNamedObjectRoot(cx, &retproxy->jsobj, "cpShape"); - - // addShape returns the same object that was added, so return it without conversions - JS_SET_RVAL(cx, vp, retval); - - return JS_TRUE; -} - -// Arguments: cpShape* -// Ret value: cpShape* -JSBool JSB_cpSpace_addStaticShape(JSContext *cx, uint32_t argc, jsval *vp) { - JSB_PRECONDITION2(argc==1, cx, JS_FALSE, "Invalid number of arguments"); - - JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp); - struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis); - cpSpace* arg0 = (cpSpace*) proxy->handle; - jsval *argvp = JS_ARGV(cx,vp); - JSBool ok = JS_TRUE; - cpShape* arg1; - - jsval retval = *argvp; struct jsb_c_proxy_s *retproxy; - ok &= jsval_to_c_class( cx, *argvp++, (void**)&arg1, &retproxy ); - JSB_PRECONDITION(ok, "Error processing arguments"); - - cpSpaceAddStaticShape((cpSpace*)arg0 , (cpShape*)arg1 ); - - // Root it: - JS_AddNamedObjectRoot(cx, &retproxy->jsobj, "cpShape (static)"); - - // addStaticShape returns the same object that was added, so return it without conversions - JS_SET_RVAL(cx, vp, retval); - - return JS_TRUE; -} - -#pragma mark Remove functios. Untoot JSObjects - -// Arguments: cpBody* -// Ret value: void -JSBool JSB_cpSpace_removeBody(JSContext *cx, uint32_t argc, jsval *vp) { - JSB_PRECONDITION2(argc==1, cx, JS_FALSE, "Invalid number of arguments"); - - JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp); - struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis); - cpSpace* arg0 = (cpSpace*) proxy->handle; - jsval *argvp = JS_ARGV(cx,vp); - JSBool ok = JS_TRUE; - cpBody* arg1; - - struct jsb_c_proxy_s *retproxy; - ok &= jsval_to_c_class( cx, *argvp++, (void**)&arg1, &retproxy ); - JSB_PRECONDITION(ok, "Error processing arguments"); - - cpSpaceRemoveBody((cpSpace*)arg0 , (cpBody*)arg1 ); - JS_RemoveObjectRoot(cx, &retproxy->jsobj); - - JS_SET_RVAL(cx, vp, JSVAL_VOID); - return JS_TRUE; -} - -// Arguments: cpConstraint* -// Ret value: void -JSBool JSB_cpSpace_removeConstraint(JSContext *cx, uint32_t argc, jsval *vp) { - JSB_PRECONDITION2(argc==1, cx, JS_FALSE, "Invalid number of arguments"); - - JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp); - struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis); - cpSpace* arg0 = (cpSpace*) proxy->handle; - jsval *argvp = JS_ARGV(cx,vp); - JSBool ok = JS_TRUE; - cpConstraint* arg1; - - struct jsb_c_proxy_s *retproxy; - ok &= jsval_to_c_class( cx, *argvp++, (void**)&arg1, &retproxy ); - JSB_PRECONDITION(ok, "Error processing arguments"); - - cpSpaceRemoveConstraint((cpSpace*)arg0 , (cpConstraint*)arg1 ); - JS_RemoveObjectRoot(cx, &retproxy->jsobj); - - JS_SET_RVAL(cx, vp, JSVAL_VOID); - return JS_TRUE; -} - -// Arguments: cpShape* -// Ret value: void -JSBool JSB_cpSpace_removeShape(JSContext *cx, uint32_t argc, jsval *vp) { - JSB_PRECONDITION2(argc==1, cx, JS_FALSE, "Invalid number of arguments"); - - JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp); - struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis); - cpSpace* arg0 = (cpSpace*) proxy->handle; - jsval *argvp = JS_ARGV(cx,vp); - JSBool ok = JS_TRUE; - cpShape* arg1; - - struct jsb_c_proxy_s *retproxy; - ok &= jsval_to_c_class( cx, *argvp++, (void**)&arg1, &retproxy ); - JSB_PRECONDITION(ok, "Error processing arguments"); - - cpSpaceRemoveShape((cpSpace*)arg0 , (cpShape*)arg1 ); - JS_RemoveObjectRoot(cx, &retproxy->jsobj); - - JS_SET_RVAL(cx, vp, JSVAL_VOID); - return JS_TRUE; -} - -// Arguments: cpShape* -// Ret value: void -JSBool JSB_cpSpace_removeStaticShape(JSContext *cx, uint32_t argc, jsval *vp) { - JSB_PRECONDITION2(argc==1, cx, JS_FALSE, "Invalid number of arguments"); - - JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp); - struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis); - cpSpace* arg0 = (cpSpace*) proxy->handle; - jsval *argvp = JS_ARGV(cx,vp); - JSBool ok = JS_TRUE; - cpShape* arg1; - - struct jsb_c_proxy_s *retproxy; - ok &= jsval_to_c_class( cx, *argvp++, (void**)&arg1, &retproxy ); - JSB_PRECONDITION(ok, "Error processing arguments"); - - cpSpaceRemoveStaticShape((cpSpace*)arg0 , (cpShape*)arg1 ); - JS_RemoveObjectRoot(cx, &retproxy->jsobj); - - JS_SET_RVAL(cx, vp, JSVAL_VOID); - return JS_TRUE; -} -#pragma mark - Arbiter - -#pragma mark getBodies -static -JSBool __jsb_cpArbiter_getBodies(JSContext *cx, jsval *vp, jsval *argvp, cpArbiter *arbiter, unsigned int is_oo) -{ - cpBody *bodyA; - cpBody *bodyB; - cpArbiterGetBodies(arbiter, &bodyA, &bodyB); - - jsval valA, valB; - if( is_oo ) { - valA = c_class_to_jsval(cx, bodyA, JSB_cpBody_object, JSB_cpBody_class, "cpArbiter"); - valB = c_class_to_jsval(cx, bodyB, JSB_cpBody_object, JSB_cpBody_class, "cpArbiter"); - } else { - valA = opaque_to_jsval(cx, bodyA); - valB = opaque_to_jsval(cx, bodyB); - } - - JSObject *jsobj = JS_NewArrayObject(cx, 2, NULL); - JS_SetElement(cx, jsobj, 0, &valA); - JS_SetElement(cx, jsobj, 1, &valB); - - JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(jsobj)); - - return JS_TRUE; -} - -// Free function -JSBool JSB_cpArbiterGetBodies(JSContext *cx, uint32_t argc, jsval *vp) -{ - JSB_PRECONDITION2(argc==1, cx, JS_FALSE, "Invalid number of arguments"); - - jsval *argvp = JS_ARGV(cx,vp); - - cpArbiter* arbiter; - if( ! jsval_to_opaque( cx, *argvp++, (void**)&arbiter ) ) - return JS_FALSE; - - return __jsb_cpArbiter_getBodies(cx, vp, argvp, arbiter, 0); -} - -// Method -JSBool JSB_cpArbiter_getBodies(JSContext *cx, uint32_t argc, jsval *vp) -{ - JSB_PRECONDITION2(argc==0, cx, JS_FALSE, "Invalid number of arguments"); - - JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp); - JSB_PRECONDITION( jsthis, "Invalid jsthis object"); - - struct jsb_c_proxy_s* proxy = jsb_get_c_proxy_for_jsobject(jsthis); - JSB_PRECONDITION( proxy, "Invalid private object"); - void *handle = proxy->handle; - - return __jsb_cpArbiter_getBodies(cx, vp, JS_ARGV(cx,vp), (cpArbiter*)handle, 1); -} - -#pragma mark getShapes -static -JSBool __jsb_cpArbiter_getShapes(JSContext *cx, jsval *vp, jsval *argvp, cpArbiter *arbiter, unsigned int is_oo) -{ - cpShape *shapeA; - cpShape *shapeB; - cpArbiterGetShapes(arbiter, &shapeA, &shapeB); - - jsval valA, valB; - if( is_oo ) { - valA = c_class_to_jsval(cx, shapeA, JSB_cpShape_object, JSB_cpShape_class, "cpShape"); - valB = c_class_to_jsval(cx, shapeB, JSB_cpShape_object, JSB_cpShape_class, "cpShape"); - } else { - valA = opaque_to_jsval(cx, shapeA); - valB = opaque_to_jsval(cx, shapeB); - } - - JSObject *jsobj = JS_NewArrayObject(cx, 2, NULL); - JS_SetElement(cx, jsobj, 0, &valA); - JS_SetElement(cx, jsobj, 1, &valB); - - JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(jsobj)); - - return JS_TRUE; -} - -// function -JSBool JSB_cpArbiterGetShapes(JSContext *cx, uint32_t argc, jsval *vp) -{ - JSB_PRECONDITION2(argc==1, cx, JS_FALSE, "Invalid number of arguments"); - - jsval *argvp = JS_ARGV(cx,vp); - - cpArbiter* arbiter; - if( ! jsval_to_opaque( cx, *argvp++, (void**) &arbiter ) ) - return JS_FALSE; - - return __jsb_cpArbiter_getShapes(cx, vp, argvp, arbiter, 0); -} - -// method -JSBool JSB_cpArbiter_getShapes(JSContext *cx, uint32_t argc, jsval *vp) -{ - JSB_PRECONDITION2(argc==0, cx, JS_FALSE, "Invalid number of arguments"); - JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp); - JSB_PRECONDITION( jsthis, "Invalid jsthis object"); - - struct jsb_c_proxy_s* proxy = jsb_get_c_proxy_for_jsobject(jsthis); - void *handle = proxy->handle; - - return __jsb_cpArbiter_getShapes(cx, vp, JS_ARGV(cx,vp), (cpArbiter*)handle, 1); -} - -#pragma mark - Body - -#pragma mark constructor - -// Manually added to identify static vs dynamic bodies -JSBool JSB_cpBody_constructor(JSContext *cx, uint32_t argc, jsval *vp) -{ - JSB_PRECONDITION2(argc==2, cx, JS_FALSE, "Invalid number of arguments"); - JSObject *jsobj = JS_NewObject(cx, JSB_cpBody_class, JSB_cpBody_object, NULL); - jsval *argvp = JS_ARGV(cx,vp); - JSBool ok = JS_TRUE; - double m; double i; - - ok &= JS_ValueToNumber( cx, *argvp++, &m ); - ok &= JS_ValueToNumber( cx, *argvp++, &i ); - JSB_PRECONDITION(ok, "Error processing arguments"); - - cpBody *ret_body = NULL; - if( m == INFINITY && i == INFINITY) { - ret_body = cpBodyNewStatic(); - - // XXX: Hack. IT WILL LEAK "rogue" objects., But at least it prevents a crash. - // The thing is that "rogue" bodies needs to be freed after the its shape, and I am not sure - // how to do it in a "js" way. - jsb_set_c_proxy_for_jsobject(jsobj, ret_body, JSB_C_FLAG_DO_NOT_CALL_FREE); - } else { - ret_body = cpBodyNew((cpFloat)m , (cpFloat)i ); - jsb_set_c_proxy_for_jsobject(jsobj, ret_body, JSB_C_FLAG_CALL_FREE); - } - - jsb_set_jsobject_for_proxy(jsobj, ret_body); - - JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(jsobj)); - return JS_TRUE; -} - -#pragma mark getUserData - -static -JSBool __jsb_cpBody_getUserData(JSContext *cx, jsval *vp, jsval *argvp, cpBody *body) -{ - JSObject *data = (JSObject*) cpBodyGetUserData(body); - JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(data)); - - return JS_TRUE; -} - -// free function -JSBool JSB_cpBodyGetUserData(JSContext *cx, uint32_t argc, jsval *vp) -{ - JSB_PRECONDITION2(argc==1, cx, JS_FALSE, "Invalid number of arguments"); - - jsval *argvp = JS_ARGV(cx,vp); - cpBody *body; - if( ! jsval_to_opaque( cx, *argvp++, (void**) &body ) ) - return JS_FALSE; - - return __jsb_cpBody_getUserData(cx, vp, argvp, body); -} - -// method -JSBool JSB_cpBody_getUserData(JSContext *cx, uint32_t argc, jsval *vp) -{ - JSB_PRECONDITION2(argc==0, cx, JS_FALSE, "Invalid number of arguments"); - JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp); - JSB_PRECONDITION( jsthis, "Invalid jsthis object"); - - struct jsb_c_proxy_s* proxy = jsb_get_c_proxy_for_jsobject(jsthis); - void *handle = proxy->handle; - - return __jsb_cpBody_getUserData(cx, vp, JS_ARGV(cx,vp), (cpBody*)handle); -} - - -#pragma mark setUserData - -static -JSBool __jsb_cpBody_setUserData(JSContext *cx, jsval *vp, jsval *argvp, cpBody *body) -{ - JSObject *jsobj; - - JSBool ok = JS_ValueToObject(cx, *argvp++, &jsobj); - - JSB_PRECONDITION(ok, "Error parsing arguments"); - - cpBodySetUserData(body, jsobj); - JS_SET_RVAL(cx, vp, JSVAL_VOID); - - return JS_TRUE; -} - -// free function -JSBool JSB_cpBodySetUserData(JSContext *cx, uint32_t argc, jsval *vp) -{ - JSB_PRECONDITION2(argc==2, cx, JS_FALSE, "Invalid number of arguments"); - - jsval *argvp = JS_ARGV(cx,vp); - cpBody *body; - JSBool ok = jsval_to_opaque( cx, *argvp++, (void**) &body ); - JSB_PRECONDITION(ok, "Error parsing arguments"); - return __jsb_cpBody_setUserData(cx, vp, argvp, body); -} - -// method -JSBool JSB_cpBody_setUserData(JSContext *cx, uint32_t argc, jsval *vp) -{ - JSB_PRECONDITION2(argc==1, cx, JS_FALSE, "Invalid number of arguments"); - JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp); - JSB_PRECONDITION( jsthis, "Invalid jsthis object"); - - struct jsb_c_proxy_s* proxy = jsb_get_c_proxy_for_jsobject(jsthis); - void *handle = proxy->handle; - - return __jsb_cpBody_setUserData(cx, vp, JS_ARGV(cx,vp), (cpBody*)handle); -} - -#pragma mark - Poly related - -// cpFloat cpAreaForPoly(const int numVerts, const cpVect *verts); -JSBool JSB_cpAreaForPoly(JSContext *cx, uint32_t argc, jsval *vp) -{ - JSB_PRECONDITION2(argc==1, cx, JS_FALSE, "Invalid number of arguments"); - jsval *argvp = JS_ARGV(cx,vp); - JSBool ok = JS_TRUE; - cpVect *verts; - int numVerts; - - ok &= jsval_to_array_of_cpvect( cx, *argvp++, &verts, &numVerts); - JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error parsing array"); - - cpFloat area = cpAreaForPoly(numVerts, verts); - - free(verts); - - JS_SET_RVAL(cx, vp, DOUBLE_TO_JSVAL(area)); - return JS_TRUE; -} - -// cpFloat cpMomentForPoly(cpFloat m, int numVerts, const cpVect *verts, cpVect offset); -JSBool JSB_cpMomentForPoly(JSContext *cx, uint32_t argc, jsval *vp) -{ - JSB_PRECONDITION2(argc==3, cx, JS_FALSE, "Invalid number of arguments"); - jsval *argvp = JS_ARGV(cx,vp); - JSBool ok = JS_TRUE; - cpVect *verts; cpVect offset; - int numVerts; - double m; - - ok &= JS_ValueToNumber(cx, *argvp++, &m); - ok &= jsval_to_array_of_cpvect( cx, *argvp++, &verts, &numVerts); - ok &= jsval_to_cpVect( cx, *argvp++, (cpVect*) &offset ); - - JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error parsing args"); - - cpFloat moment = cpMomentForPoly((cpFloat)m, numVerts, verts, offset); - - free(verts); - - JS_SET_RVAL(cx, vp, DOUBLE_TO_JSVAL(moment)); - return JS_TRUE; -} - -// cpVect cpCentroidForPoly(const int numVerts, const cpVect *verts); -JSBool JSB_cpCentroidForPoly(JSContext *cx, uint32_t argc, jsval *vp) -{ - JSB_PRECONDITION2(argc==1, cx, JS_FALSE, "Invalid number of arguments"); - jsval *argvp = JS_ARGV(cx,vp); - JSBool ok = JS_TRUE; - cpVect *verts; - int numVerts; - - ok &= jsval_to_array_of_cpvect( cx, *argvp++, &verts, &numVerts); - JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error parsing args"); - - cpVect centroid = cpCentroidForPoly(numVerts, verts); - - free(verts); - - JS_SET_RVAL(cx, vp, cpVect_to_jsval(cx, (cpVect)centroid)); - return JS_TRUE; -} - -// void cpRecenterPoly(const int numVerts, cpVect *verts); -JSBool JSB_cpRecenterPoly(JSContext *cx, uint32_t argc, jsval *vp) -{ - CCASSERT(false, "NOT IMPLEMENTED"); - return JS_FALSE; -} - -#pragma mark - Object Oriented Chipmunk - -/* - * Chipmunk Base Object - */ - -JSClass* JSB_cpBase_class = NULL; -JSObject* JSB_cpBase_object = NULL; -// Constructor -JSBool JSB_cpBase_constructor(JSContext *cx, uint32_t argc, jsval *vp) -{ - JSB_PRECONDITION2( argc==1, cx, JS_FALSE, "Invalid arguments. Expecting 1"); - - JSObject *jsobj = JS_NewObject(cx, JSB_cpBase_class, JSB_cpBase_object, NULL); - - jsval *argvp = JS_ARGV(cx,vp); - JSBool ok = JS_TRUE; - - void *handle = NULL; - - ok = jsval_to_opaque(cx, *argvp++, &handle); - - JSB_PRECONDITION(ok, "Error converting arguments for JSB_cpBase_constructor"); - - jsb_set_c_proxy_for_jsobject(jsobj, handle, JSB_C_FLAG_DO_NOT_CALL_FREE); - jsb_set_jsobject_for_proxy(jsobj, handle); - - JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(jsobj)); - return JS_TRUE; -} - -// Destructor -void JSB_cpBase_finalize(JSFreeOp *fop, JSObject *obj) -{ - CCLOGINFO("jsbindings: finalizing JS object %p (cpBase)", obj); - - // should not delete the handle since it was manually added -} - -JSBool JSB_cpBase_getHandle(JSContext *cx, uint32_t argc, jsval *vp) -{ - JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp); - JSB_PRECONDITION( jsthis, "Invalid jsthis object"); - JSB_PRECONDITION2(argc==0, cx, JS_FALSE, "Invalid number of arguments"); - - struct jsb_c_proxy_s* proxy = jsb_get_c_proxy_for_jsobject(jsthis); - void *handle = proxy->handle; - - jsval ret_val = opaque_to_jsval(cx, handle); - JS_SET_RVAL(cx, vp, ret_val); - return JS_TRUE; -} - -JSBool JSB_cpBase_setHandle(JSContext *cx, uint32_t argc, jsval *vp) -{ - JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp); - JSB_PRECONDITION( jsthis, "Invalid jsthis object"); - JSB_PRECONDITION2(argc==1, cx, JS_FALSE, "Invalid number of arguments"); - - jsval *argvp = JS_ARGV(cx,vp); - - void *handle; - JSBool ok = jsval_to_opaque(cx, *argvp++, &handle); - JSB_PRECONDITION( ok, "Invalid parsing arguments"); - - jsb_set_c_proxy_for_jsobject(jsthis, handle, JSB_C_FLAG_DO_NOT_CALL_FREE); - jsb_set_jsobject_for_proxy(jsthis, handle); - - JS_SET_RVAL(cx, vp, JSVAL_VOID); - return JS_TRUE; -} - - -void JSB_cpBase_createClass(JSContext *cx, JSObject* globalObj, const char* name ) -{ - JSB_cpBase_class = (JSClass *)calloc(1, sizeof(JSClass)); - JSB_cpBase_class->name = name; - JSB_cpBase_class->addProperty = JS_PropertyStub; - JSB_cpBase_class->delProperty = JS_DeletePropertyStub; - JSB_cpBase_class->getProperty = JS_PropertyStub; - JSB_cpBase_class->setProperty = JS_StrictPropertyStub; - JSB_cpBase_class->enumerate = JS_EnumerateStub; - JSB_cpBase_class->resolve = JS_ResolveStub; - JSB_cpBase_class->convert = JS_ConvertStub; - JSB_cpBase_class->finalize = JSB_cpBase_finalize; - JSB_cpBase_class->flags = JSCLASS_HAS_PRIVATE; - - static JSPropertySpec properties[] = { - {0, 0, 0, 0, 0} - }; - static JSFunctionSpec funcs[] = { - JS_FN("getHandle", JSB_cpBase_getHandle, 0, JSPROP_PERMANENT | JSPROP_ENUMERATE), - JS_FN("setHandle", JSB_cpBase_setHandle, 1, JSPROP_PERMANENT | JSPROP_ENUMERATE), - JS_FS_END - }; - static JSFunctionSpec st_funcs[] = { - JS_FS_END - }; - - JSB_cpBase_object = JS_InitClass(cx, globalObj, NULL, JSB_cpBase_class, JSB_cpBase_constructor,0,properties,funcs,NULL,st_funcs); - JSBool found; - JS_SetPropertyAttributes(cx, globalObj, name, JSPROP_ENUMERATE | JSPROP_READONLY, &found); -} - -// Manual "methods" -// Constructor -JSBool JSB_cpPolyShape_constructor(JSContext *cx, uint32_t argc, jsval *vp) -{ - JSB_PRECONDITION2(argc==3, cx, JS_FALSE, "Invalid number of arguments"); - JSObject *jsobj = JS_NewObject(cx, JSB_cpPolyShape_class, JSB_cpPolyShape_object, NULL); - jsval *argvp = JS_ARGV(cx,vp); - JSBool ok = JS_TRUE; - cpBody* body; cpVect *verts; cpVect offset; - int numVerts; - - ok &= jsval_to_c_class( cx, *argvp++, (void**)&body, NULL ); - ok &= jsval_to_array_of_cpvect( cx, *argvp++, &verts, &numVerts); - ok &= jsval_to_cpVect( cx, *argvp++, (cpVect*) &offset ); - JSB_PRECONDITION(ok, "Error processing arguments"); - cpShape *shape = cpPolyShapeNew(body, numVerts, verts, offset); - - jsb_set_c_proxy_for_jsobject(jsobj, shape, JSB_C_FLAG_DO_NOT_CALL_FREE); - jsb_set_jsobject_for_proxy(jsobj, shape); - - JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(jsobj)); - - free(verts); - - return JS_TRUE; -} - - -#pragma mark Space Free functions -// -// When the space is removed, it should all remove its children. But not "free" them. -// "free" will be performed by the JS Garbage Collector -// -// Functions copied & pasted from ChipmunkDemo.c -// https://github.com/slembcke/Chipmunk-Physics/blob/master/Demo/ChipmunkDemo.c#L89 -// - -static void unroot_jsobject_from_handle(void *handle) -{ - JSObject *jsobj = jsb_get_jsobject_for_proxy(handle); - struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsobj); - - // HACK context from global - JSContext *cx = ScriptingCore::getInstance()->getGlobalContext(); - JS_RemoveObjectRoot(cx, &proxy->jsobj); - -} -static void shapeFreeWrap(cpSpace *space, cpShape *shape, void *unused){ - cpSpaceRemoveShape(space, shape); - unroot_jsobject_from_handle(shape); -// cpShapeFree(shape); -} - -static void postShapeFree(cpShape *shape, cpSpace *space){ - cpSpaceAddPostStepCallback(space, (cpPostStepFunc)shapeFreeWrap, shape, NULL); -} - -static void constraintFreeWrap(cpSpace *space, cpConstraint *constraint, void *unused){ - cpSpaceRemoveConstraint(space, constraint); - unroot_jsobject_from_handle(constraint); -// cpConstraintFree(constraint); -} - -static void postConstraintFree(cpConstraint *constraint, cpSpace *space){ - cpSpaceAddPostStepCallback(space, (cpPostStepFunc)constraintFreeWrap, constraint, NULL); -} - -static void bodyFreeWrap(cpSpace *space, cpBody *body, void *unused){ - cpSpaceRemoveBody(space, body); - unroot_jsobject_from_handle(body); -// cpBodyFree(body); -} - -static void postBodyFree(cpBody *body, cpSpace *space){ - cpSpaceAddPostStepCallback(space, (cpPostStepFunc)bodyFreeWrap, body, NULL); -} - -// Safe and future proof way to remove and free all objects that have been added to the space. -void static freeSpaceChildren(cpSpace *space) -{ - // Must remove these BEFORE freeing the body or you will access dangling pointers. - cpSpaceEachShape(space, (cpSpaceShapeIteratorFunc)postShapeFree, space); - cpSpaceEachConstraint(space, (cpSpaceConstraintIteratorFunc)postConstraintFree, space); - - cpSpaceEachBody(space, (cpSpaceBodyIteratorFunc)postBodyFree, space); -} - -#endif // JSB_INCLUDE_CHIPMUNK diff --git a/cocos/scripting/javascript/bindings/js_bindings_chipmunk_manual.h b/cocos/scripting/javascript/bindings/js_bindings_chipmunk_manual.h deleted file mode 100644 index c6b40ca757..0000000000 --- a/cocos/scripting/javascript/bindings/js_bindings_chipmunk_manual.h +++ /dev/null @@ -1,103 +0,0 @@ -/* - * JS Bindings: https://github.com/zynga/jsbindings - * - * Copyright (c) 2012 Zynga Inc. - * - * 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 __js_bindings_chipmunk_manual -#define __js_bindings_chipmunk_manual - -#include "js_bindings_config.h" -#include "cocosjs_manual_conversions.h" -#include "js_manual_conversions.h" -#include "ScriptingCore.h" -#ifdef JSB_INCLUDE_CHIPMUNK - -#include "chipmunk.h" -#include "jsapi.h" - -#include "js_bindings_chipmunk_auto_classes.h" - -// Free Functions -JSBool JSB_cpSpaceAddCollisionHandler(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpaceRemoveCollisionHandler(JSContext *cx, uint32_t argc, jsval *vp); - -JSBool JSB_cpArbiterGetBodies(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpArbiterGetShapes(JSContext *cx, uint32_t argc, jsval *vp); - -JSBool JSB_cpBodyGetUserData(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBodySetUserData(JSContext *cx, uint32_t argc, jsval *vp); - -// poly related -JSBool JSB_cpAreaForPoly(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpMomentForPoly(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpCentroidForPoly(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpRecenterPoly(JSContext *cx, uint32_t argc, jsval *vp); - -// "Methods" from the OO API -JSBool JSB_cpSpace_addCollisionHandler(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpace_removeCollisionHandler(JSContext *cx, uint32_t argc, jsval *vp); - -// manually wrapped for rooting/unrooting purposes -JSBool JSB_cpSpace_addBody(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpace_addConstraint(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpace_addShape(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpace_addStaticShape(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpace_removeBody(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpace_removeConstraint(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpace_removeShape(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpSpace_removeStaticShape(JSContext *cx, uint32_t argc, jsval *vp); - - -JSBool JSB_cpArbiter_getBodies(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpArbiter_getShapes(JSContext *cx, uint32_t argc, jsval *vp); - -JSBool JSB_cpBody_constructor(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBody_getUserData(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_cpBody_setUserData(JSContext *cx, uint32_t argc, jsval *vp); - - -// convertions - -jsval cpBB_to_jsval(JSContext *cx, cpBB bb ); -JSBool jsval_to_cpBB( JSContext *cx, jsval vp, cpBB *ret ); -JSBool jsval_to_array_of_cpvect( JSContext *cx, jsval vp, cpVect**verts, int *numVerts); - -// requires cocos2d -#define cpVect_to_jsval CGPoint_to_jsval -#define jsval_to_cpVect jsval_to_CGPoint - - -// Object Oriented Chipmunk -void JSB_cpBase_createClass(JSContext* cx, JSObject* globalObj, const char * name ); -extern JSObject* JSB_cpBase_object; -extern JSClass* JSB_cpBase_class; -extern void register_CCPhysicsSprite(JSContext *cx, JSObject *obj); -extern void register_CCPhysicsDebugNode(JSContext *cx, JSObject *obj); - -// Manual constructor / destructors -JSBool JSB_cpPolyShape_constructor(JSContext *cx, uint32_t argc, jsval *vp); -void JSB_cpSpace_finalize(JSFreeOp *fop, JSObject *obj); - -#endif // JSB_INCLUDE_CHIPMUNK - -#endif // __js_bindings_chipmunk_manual diff --git a/cocos/scripting/javascript/bindings/js_bindings_chipmunk_registration.cpp b/cocos/scripting/javascript/bindings/js_bindings_chipmunk_registration.cpp deleted file mode 100644 index a96434eace..0000000000 --- a/cocos/scripting/javascript/bindings/js_bindings_chipmunk_registration.cpp +++ /dev/null @@ -1,67 +0,0 @@ -/* - * JS Bindings: https://github.com/zynga/jsbindings - * - * Copyright (c) 2012 Zynga Inc. - * - * 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 JSB_INCLUDE_CHIPMUNK -#define JSB_INCLUDE_CHIPMUNK -#endif - -#include "js_bindings_config.h" -#include "ScriptingCore.h" - - -// chipmunk -#include "js_bindings_chipmunk_auto_classes.h" -#include "js_bindings_chipmunk_functions.h" -#include "js_bindings_chipmunk_manual.h" - - -void jsb_register_chipmunk(JSContext *_cx, JSObject *object) -{ - // - // Chipmunk - // - JSObject *chipmunk = JS_NewObject(_cx, NULL, NULL, NULL); - jsval chipmunkVal = OBJECT_TO_JSVAL(chipmunk); - JS_SetProperty(_cx, object, "cp", &chipmunkVal); - - JSB_cpBase_createClass(_cx, chipmunk, "Base"); // manual base class registration -#include "js_bindings_chipmunk_auto_classes_registration.h" -#include "js_bindings_chipmunk_functions_registration.h" - - // manual - JS_DefineFunction(_cx, chipmunk, "spaceAddCollisionHandler", JSB_cpSpaceAddCollisionHandler, 8, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); - JS_DefineFunction(_cx, chipmunk, "spaceRemoveCollisionHandler", JSB_cpSpaceRemoveCollisionHandler, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); - JS_DefineFunction(_cx, chipmunk, "arbiterGetBodies", JSB_cpArbiterGetBodies, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); - JS_DefineFunction(_cx, chipmunk, "arbiterGetShapes", JSB_cpArbiterGetShapes, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); - JS_DefineFunction(_cx, chipmunk, "bodyGetUserData", JSB_cpBodyGetUserData, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); - JS_DefineFunction(_cx, chipmunk, "bodySetUserData", JSB_cpBodySetUserData, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); - - JS_DefineFunction(_cx, chipmunk, "areaForPoly", JSB_cpAreaForPoly, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); - JS_DefineFunction(_cx, chipmunk, "momentForPoly", JSB_cpMomentForPoly, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); - JS_DefineFunction(_cx, chipmunk, "centroidForPoly", JSB_cpCentroidForPoly, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); - JS_DefineFunction(_cx, chipmunk, "recenterPoly", JSB_cpRecenterPoly, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); - register_CCPhysicsSprite(_cx, object); - register_CCPhysicsDebugNode(_cx, object); -} - diff --git a/cocos/scripting/javascript/bindings/js_bindings_chipmunk_registration.h b/cocos/scripting/javascript/bindings/js_bindings_chipmunk_registration.h deleted file mode 100644 index 90bc320b87..0000000000 --- a/cocos/scripting/javascript/bindings/js_bindings_chipmunk_registration.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * JS Bindings: https://github.com/zynga/jsbindings - * - * Copyright (c) 2012 Zynga Inc. - * - * 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 __JSB_CHIPMUNK_REGISTRATION -#define __JSB_CHIPMUNK_REGISTRATION - -void jsb_register_chipmunk( JSContext *globalC, JSObject *globalO); - -#endif // __JSB_CHIPMUNK_REGISTRATION diff --git a/cocos/scripting/javascript/bindings/js_bindings_core.cpp b/cocos/scripting/javascript/bindings/js_bindings_core.cpp index 295184cbb8..fbb6e808fb 100644 --- a/cocos/scripting/javascript/bindings/js_bindings_core.cpp +++ b/cocos/scripting/javascript/bindings/js_bindings_core.cpp @@ -26,7 +26,7 @@ // cocos2d + chipmunk registration files -#include "js_bindings_chipmunk_registration.h" +#include "chipmunk/js_bindings_chipmunk_registration.h" //#pragma mark - Hash diff --git a/cocos/scripting/javascript/bindings/js_bindings_system_functions.cpp b/cocos/scripting/javascript/bindings/js_bindings_system_functions.cpp deleted file mode 100644 index 7d1a819fc8..0000000000 --- a/cocos/scripting/javascript/bindings/js_bindings_system_functions.cpp +++ /dev/null @@ -1,75 +0,0 @@ -/* -* AUTOGENERATED FILE. DO NOT EDIT IT -* Generated by "generate_js_bindings.py -c system_jsb.ini" on 2012-12-17 -* Script version: v0.5 -*/ -#include "cocos2d.h" -#include "js_bindings_config.h" -//#ifdef JSB_INCLUDE_SYSTEM - -#include "local-storage/LocalStorage.h" - -#include "jsfriendapi.h" -#include "js_bindings_config.h" -#include "js_bindings_core.h" -#include "js_manual_conversions.h" -#include "js_bindings_system_functions.h" -#include "ScriptingCore.h" - -USING_NS_CC; - -// Arguments: char* -// Ret value: const char* -JSBool JSB_localStorageGetItem(JSContext *cx, uint32_t argc, jsval *vp) { - JSB_PRECONDITION2( argc == 1, cx, JS_FALSE, "Invalid number of arguments" ); - jsval *argvp = JS_ARGV(cx,vp); - JSBool ok = JS_TRUE; - const char* arg0; - - ok &= jsval_to_charptr( cx, *argvp++, &arg0 ); - JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments"); - const char* ret_val; - - ret_val = localStorageGetItem((char*)arg0 ); - - jsval ret_jsval = c_string_to_jsval(cx, ret_val ? ret_val : ""); - JS_SET_RVAL(cx, vp, ret_jsval ); - - return JS_TRUE; -} - -// Arguments: char* -// Ret value: void -JSBool JSB_localStorageRemoveItem(JSContext *cx, uint32_t argc, jsval *vp) { - JSB_PRECONDITION2( argc == 1, cx, JS_FALSE, "Invalid number of arguments" ); - jsval *argvp = JS_ARGV(cx,vp); - JSBool ok = JS_TRUE; - const char* arg0; - - ok &= jsval_to_charptr( cx, *argvp++, &arg0 ); - JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments"); - - localStorageRemoveItem((char*)arg0 ); - JS_SET_RVAL(cx, vp, JSVAL_VOID); - return JS_TRUE; -} - -// Arguments: char*, char* -// Ret value: void -JSBool JSB_localStorageSetItem(JSContext *cx, uint32_t argc, jsval *vp) { - JSB_PRECONDITION2( argc == 2, cx, JS_FALSE, "Invalid number of arguments" ); - jsval *argvp = JS_ARGV(cx,vp); - JSBool ok = JS_TRUE; - const char* arg0; const char* arg1; - - ok &= jsval_to_charptr( cx, *argvp++, &arg0 ); - ok &= jsval_to_charptr( cx, *argvp++, &arg1 ); - JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments"); - - localStorageSetItem((char*)arg0 , (char*)arg1 ); - JS_SET_RVAL(cx, vp, JSVAL_VOID); - return JS_TRUE; -} - - -//#endif // JSB_INCLUDE_SYSTEM diff --git a/cocos/scripting/javascript/bindings/js_bindings_system_functions.h b/cocos/scripting/javascript/bindings/js_bindings_system_functions.h deleted file mode 100644 index 26d4a97c99..0000000000 --- a/cocos/scripting/javascript/bindings/js_bindings_system_functions.h +++ /dev/null @@ -1,23 +0,0 @@ -/* -* AUTOGENERATED FILE. DO NOT EDIT IT -* Generated by "generate_js_bindings.py -c system_jsb.ini" on 2012-12-17 -* Script version: v0.5 -*/ -#include "js_bindings_config.h" -//#ifdef JSB_INCLUDE_SYSTEM - -//#include "LocalStorage.h" - -#ifdef __cplusplus -extern "C" { -#endif -JSBool JSB_localStorageGetItem(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_localStorageRemoveItem(JSContext *cx, uint32_t argc, jsval *vp); -JSBool JSB_localStorageSetItem(JSContext *cx, uint32_t argc, jsval *vp); - -#ifdef __cplusplus -} -#endif - - -//#endif // JSB_INCLUDE_SYSTEM diff --git a/cocos/scripting/javascript/bindings/js_bindings_system_functions_registration.h b/cocos/scripting/javascript/bindings/js_bindings_system_functions_registration.h deleted file mode 100644 index 5bce81d241..0000000000 --- a/cocos/scripting/javascript/bindings/js_bindings_system_functions_registration.h +++ /dev/null @@ -1,15 +0,0 @@ -/* -* AUTOGENERATED FILE. DO NOT EDIT IT -* Generated by "generate_js_bindings.py -c system_jsb.ini" on 2012-12-17 -* Script version: v0.5 -*/ -#include "js_bindings_config.h" -//#ifdef JSB_INCLUDE_SYSTEM - -//#include "LocalStorage.h" -JS_DefineFunction(_cx, system, "getItem", JSB_localStorageGetItem, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, system, "removeItem", JSB_localStorageRemoveItem, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); -JS_DefineFunction(_cx, system, "setItem", JSB_localStorageSetItem, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); - - -//#endif // JSB_INCLUDE_SYSTEM diff --git a/cocos/scripting/javascript/bindings/js_bindings_system_registration.cpp b/cocos/scripting/javascript/bindings/js_bindings_system_registration.cpp deleted file mode 100644 index bf55e188f0..0000000000 --- a/cocos/scripting/javascript/bindings/js_bindings_system_registration.cpp +++ /dev/null @@ -1,62 +0,0 @@ -/* - * JS Bindings: https://github.com/zynga/jsbindings - * - * Copyright (c) 2012 Zynga Inc. - * - * 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 "js_bindings_config.h" -#include "js_bindings_core.h" -#include "local-storage/LocalStorage.h" -#include "cocos2d.h" - -// system -#include "js_bindings_system_functions.h" - - -void jsb_register_system( JSContext *_cx, JSObject *object) -{ - // - // sys - // - JSObject *sys = JS_NewObject(_cx, NULL, NULL, NULL); - jsval systemVal = OBJECT_TO_JSVAL(sys); - JS_SetProperty(_cx, object, "sys", &systemVal); - - - // sys.localStorage - JSObject *ls = JS_NewObject(_cx, NULL, NULL, NULL); - jsval lsVal = OBJECT_TO_JSVAL(ls); - JS_SetProperty(_cx, sys, "localStorage", &lsVal); - - // sys.localStorage functions - JSObject *system = ls; -#include "js_bindings_system_functions_registration.h" - - - // Init DB with full path - //NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; - //NSString *fullpath = [path stringByAppendingPathComponent:@"jsb.sqlite"]; - std::string strFilePath = cocos2d::FileUtils::getInstance()->getWritablePath(); - strFilePath += "/jsb.sqlite"; - localStorageInit(strFilePath.c_str()); - -} - diff --git a/cocos/scripting/javascript/bindings/js_bindings_system_registration.h b/cocos/scripting/javascript/bindings/js_bindings_system_registration.h deleted file mode 100644 index 1afb1b1081..0000000000 --- a/cocos/scripting/javascript/bindings/js_bindings_system_registration.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * JS Bindings: https://github.com/zynga/jsbindings - * - * Copyright (c) 2012 Zynga Inc. - * - * 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 __JSB_SYSTEM_REGISTRATION -#define __JSB_SYSTEM_REGISTRATION - -void jsb_register_system( JSContext *globalC, JSObject *globalO); - -#endif // __JSB_CHIPMUNK_REGISTRATION diff --git a/cocos/scripting/javascript/bindings/jsb_cocos2dx_extension_manual.cpp b/cocos/scripting/javascript/bindings/jsb_cocos2dx_extension_manual.cpp deleted file mode 100644 index 413f941bca..0000000000 --- a/cocos/scripting/javascript/bindings/jsb_cocos2dx_extension_manual.cpp +++ /dev/null @@ -1,1015 +0,0 @@ -// -// jsb_cocos2d_extension_manual.cpp -// -// Created by James Chen on 3/11/13. -// -// - -#include "jsb_cocos2dx_extension_manual.h" -#include "extensions/cocos-ext.h" -#include "ScriptingCore.h" -#include "cocos2d_specifics.hpp" -#include "cocostudio/CocoStudio.h" - -USING_NS_CC; -USING_NS_CC_EXT; - - -class JSB_ScrollViewDelegate -: public Object -, public ScrollViewDelegate -{ -public: - JSB_ScrollViewDelegate() - : _JSDelegate(NULL) - , _needUnroot(false) - {} - - virtual ~JSB_ScrollViewDelegate() - { - if (_needUnroot) - { - JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); - JS_RemoveObjectRoot(cx, &_JSDelegate); - } - } - - virtual void scrollViewDidScroll(ScrollView* view) - { - js_proxy_t * p = jsb_get_native_proxy(view); - if (!p) return; - - jsval arg = OBJECT_TO_JSVAL(p->obj); - ScriptingCore::getInstance()->executeFunctionWithOwner(OBJECT_TO_JSVAL(_JSDelegate), "scrollViewDidScroll", 1, &arg, NULL); - } - - virtual void scrollViewDidZoom(ScrollView* view) - { - js_proxy_t * p = jsb_get_native_proxy(view); - if (!p) return; - - jsval arg = OBJECT_TO_JSVAL(p->obj); - ScriptingCore::getInstance()->executeFunctionWithOwner(OBJECT_TO_JSVAL(_JSDelegate), "scrollViewDidZoom", 1, &arg, NULL); - } - - void setJSDelegate(JSObject* pJSDelegate) - { - _JSDelegate = pJSDelegate; - - // Check whether the js delegate is a pure js object. - js_proxy_t* p = jsb_get_js_proxy(_JSDelegate); - if (!p) - { - _needUnroot = true; - JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); - JS_AddNamedObjectRoot(cx, &_JSDelegate, "TableViewDelegate"); - } - } -private: - JSObject* _JSDelegate; - bool _needUnroot; -}; - -static JSBool js_cocos2dx_CCScrollView_setDelegate(JSContext *cx, uint32_t argc, jsval *vp) -{ - jsval *argv = JS_ARGV(cx, vp); - JSObject *obj = JS_THIS_OBJECT(cx, vp); - js_proxy_t *proxy = jsb_get_js_proxy(obj); - cocos2d::extension::ScrollView* cobj = (cocos2d::extension::ScrollView *)(proxy ? proxy->ptr : NULL); - JSB_PRECONDITION2( cobj, cx, JS_FALSE, "Invalid Native Object"); - - if (argc == 1) - { - // save the delegate - JSObject *jsDelegate = JSVAL_TO_OBJECT(argv[0]); - JSB_ScrollViewDelegate* nativeDelegate = new JSB_ScrollViewDelegate(); - nativeDelegate->setJSDelegate(jsDelegate); - - cobj->setUserObject(nativeDelegate); - cobj->setDelegate(nativeDelegate); - - nativeDelegate->release(); - - JS_SET_RVAL(cx, vp, JSVAL_VOID); - return JS_TRUE; - } - JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1); - return JS_FALSE; -} - - -#define KEY_TABLEVIEW_DATA_SOURCE "TableViewDataSource" -#define KEY_TABLEVIEW_DELEGATE "TableViewDelegate" - -class JSB_TableViewDelegate -: public Object -, public TableViewDelegate -{ -public: - JSB_TableViewDelegate() - : _JSDelegate(NULL) - , _needUnroot(false) - {} - - virtual ~JSB_TableViewDelegate() - { - if (_needUnroot) - { - JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); - JS_RemoveObjectRoot(cx, &_JSDelegate); - } - } - - virtual void scrollViewDidScroll(ScrollView* view) - { - callJSDelegate(view, "scrollViewDidScroll"); - } - - virtual void scrollViewDidZoom(ScrollView* view) - { - callJSDelegate(view, "scrollViewDidZoom"); - } - - virtual void tableCellTouched(TableView* table, TableViewCell* cell) - { - callJSDelegate(table, cell, "tableCellTouched"); - } - - virtual void tableCellHighlight(TableView* table, TableViewCell* cell) - { - callJSDelegate(table, cell, "tableCellHighlight"); - } - - virtual void tableCellUnhighlight(TableView* table, TableViewCell* cell) - { - callJSDelegate(table, cell, "tableCellUnhighlight"); - } - - virtual void tableCellWillRecycle(TableView* table, TableViewCell* cell) - { - callJSDelegate(table, cell, "tableCellWillRecycle"); - } - - void setJSDelegate(JSObject* pJSDelegate) - { - _JSDelegate = pJSDelegate; - - // Check whether the js delegate is a pure js object. - js_proxy_t* p = jsb_get_js_proxy(_JSDelegate); - if (!p) - { - _needUnroot = true; - JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); - JS_AddNamedObjectRoot(cx, &_JSDelegate, "TableViewDelegate"); - } - } - - -private: - void callJSDelegate(ScrollView* view, std::string jsFunctionName) - { - js_proxy_t * p = jsb_get_native_proxy(view); - if (!p) return; - - jsval arg = OBJECT_TO_JSVAL(p->obj); - ScriptingCore::getInstance()->executeFunctionWithOwner(OBJECT_TO_JSVAL(_JSDelegate), jsFunctionName.c_str(), 1, &arg, NULL); - } - - void callJSDelegate(TableView* table, TableViewCell* cell, std::string jsFunctionName) - { - js_proxy_t * p = jsb_get_native_proxy(table); - if (!p) return; - - js_proxy_t * pCellProxy = jsb_get_native_proxy(cell); - if (!pCellProxy) return; - - jsval args[2]; - args[0] = OBJECT_TO_JSVAL(p->obj); - args[1] = OBJECT_TO_JSVAL(pCellProxy->obj); - - ScriptingCore::getInstance()->executeFunctionWithOwner(OBJECT_TO_JSVAL(_JSDelegate), jsFunctionName.c_str(), 2, args, NULL); - } - - JSObject* _JSDelegate; - bool _needUnroot; -}; - -static JSBool js_cocos2dx_CCTableView_setDelegate(JSContext *cx, uint32_t argc, jsval *vp) -{ - jsval *argv = JS_ARGV(cx, vp); - JSObject *obj = JS_THIS_OBJECT(cx, vp); - js_proxy_t *proxy = jsb_get_js_proxy(obj); - cocos2d::extension::TableView* cobj = (cocos2d::extension::TableView *)(proxy ? proxy->ptr : NULL); - JSB_PRECONDITION2( cobj, cx, JS_FALSE, "Invalid Native Object"); - - if (argc == 1) - { - // save the delegate - JSObject *jsDelegate = JSVAL_TO_OBJECT(argv[0]); - JSB_TableViewDelegate* nativeDelegate = new JSB_TableViewDelegate(); - nativeDelegate->setJSDelegate(jsDelegate); - - Dictionary* userDict = static_cast(cobj->getUserObject()); - if (NULL == userDict) - { - userDict = new Dictionary(); - cobj->setUserObject(userDict); - userDict->release(); - } - - userDict->setObject(nativeDelegate, KEY_TABLEVIEW_DELEGATE); - - cobj->setDelegate(nativeDelegate); - - nativeDelegate->release(); - - JS_SET_RVAL(cx, vp, JSVAL_VOID); - return JS_TRUE; - } - JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1); - return JS_FALSE; -} - -class JSB_TableViewDataSource -: public Object -, public TableViewDataSource -{ -public: - JSB_TableViewDataSource() - : _JSTableViewDataSource(NULL) - , _needUnroot(false) - {} - - virtual ~JSB_TableViewDataSource() - { - if (_needUnroot) - { - JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); - JS_RemoveObjectRoot(cx, &_JSTableViewDataSource); - } - } - - virtual Size tableCellSizeForIndex(TableView *table, unsigned int idx) - { - jsval ret; - bool ok = callJSDelegate(table, idx, "tableCellSizeForIndex", ret); - if (!ok) - { - ok = callJSDelegate(table, "cellSizeForTable", ret); - } - if (ok) - { - JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); - Size size; - JSBool isSucceed = jsval_to_ccsize(cx, ret, &size); - if (isSucceed) return size; - } - return Size::ZERO; - - } - - virtual TableViewCell* tableCellAtIndex(TableView *table, unsigned int idx) - { - jsval ret; - bool ok = callJSDelegate(table, idx, "tableCellAtIndex", ret); - if (ok) - { - JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); - cocos2d::extension::TableViewCell* arg0; - do { - js_proxy_t *proxy; - JSObject *tmpObj = JSVAL_TO_OBJECT(ret); - proxy = jsb_get_js_proxy(tmpObj); - arg0 = (cocos2d::extension::TableViewCell*)(proxy ? proxy->ptr : NULL); - JSB_PRECONDITION2( arg0, cx, NULL, "Invalid Native Object"); - } while (0); - return arg0; - } - return NULL; - } - - virtual unsigned int numberOfCellsInTableView(TableView *table) - { - jsval ret; - bool ok = callJSDelegate(table, "numberOfCellsInTableView", ret); - if (ok) - { - JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); - uint32_t count = 0; - JSBool isSucceed = jsval_to_uint32(cx, ret, &count); - if (isSucceed) return count; - } - return 0; - } - - - void setTableViewDataSource(JSObject* pJSSource) - { - _JSTableViewDataSource = pJSSource; - - // Check whether the js delegate is a pure js object. - js_proxy_t* p = jsb_get_js_proxy(_JSTableViewDataSource); - if (!p) - { - _needUnroot = true; - JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); - JS_AddNamedObjectRoot(cx, &_JSTableViewDataSource, "TableViewDataSource"); - } - } - -private: - bool callJSDelegate(TableView* table, std::string jsFunctionName, jsval& retVal) - { - js_proxy_t * p = jsb_get_native_proxy(table); - if (!p) return false; - - JSBool hasAction; - jsval temp_retval; - jsval dataVal = OBJECT_TO_JSVAL(p->obj); - - JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); - JSObject* obj = _JSTableViewDataSource; - - if (JS_HasProperty(cx, obj, jsFunctionName.c_str(), &hasAction) && hasAction) - { - if(!JS_GetProperty(cx, obj, jsFunctionName.c_str(), &temp_retval)) - { - return false; - } - if(temp_retval == JSVAL_VOID) - { - return false; - } - - JSAutoCompartment ac(cx, obj); - JS_CallFunctionName(cx, obj, jsFunctionName.c_str(), - 1, &dataVal, &retVal); - return true; - } - return false; - } - - bool callJSDelegate(TableView* table, int idx, std::string jsFunctionName, jsval& retVal) - { - js_proxy_t * p = jsb_get_native_proxy(table); - if (!p) return false; - - - JSBool hasAction; - jsval temp_retval; - jsval dataVal[2]; - dataVal[0] = OBJECT_TO_JSVAL(p->obj); - dataVal[1] = INT_TO_JSVAL(idx); - - JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); - JSObject* obj = _JSTableViewDataSource; - - if (JS_HasProperty(cx, obj, jsFunctionName.c_str(), &hasAction) && hasAction) - { - if(!JS_GetProperty(cx, obj, jsFunctionName.c_str(), &temp_retval)) - { - return false; - } - - if(temp_retval == JSVAL_VOID) - { - return false; - } - - JSAutoCompartment ac(cx, obj); - JS_CallFunctionName(cx, obj, jsFunctionName.c_str(), - 2, dataVal, &retVal); - return true; - } - return false; - } - -private: - JSObject* _JSTableViewDataSource; - bool _needUnroot; -}; - -static JSBool js_cocos2dx_CCTableView_setDataSource(JSContext *cx, uint32_t argc, jsval *vp) -{ - jsval *argv = JS_ARGV(cx, vp); - JSObject *obj = JS_THIS_OBJECT(cx, vp); - js_proxy_t *proxy = jsb_get_js_proxy(obj); - cocos2d::extension::TableView* cobj = (cocos2d::extension::TableView *)(proxy ? proxy->ptr : NULL); - JSB_PRECONDITION2( cobj, cx, JS_FALSE, "Invalid Native Object"); - if (argc == 1) - { - JSB_TableViewDataSource* pNativeSource = new JSB_TableViewDataSource(); - pNativeSource->setTableViewDataSource(JSVAL_TO_OBJECT(argv[0])); - - Dictionary* userDict = static_cast(cobj->getUserObject()); - if (NULL == userDict) - { - userDict = new Dictionary(); - cobj->setUserObject(userDict); - userDict->release(); - } - - userDict->setObject(pNativeSource, KEY_TABLEVIEW_DATA_SOURCE); - - cobj->setDataSource(pNativeSource); - - pNativeSource->release(); - - JS_SET_RVAL(cx, vp, JSVAL_VOID); - return JS_TRUE; - } - - JS_ReportError(cx, "wrong number of arguments"); - return JS_FALSE; -} - -static JSBool js_cocos2dx_CCTableView_create(JSContext *cx, uint32_t argc, jsval *vp) -{ - jsval *argv = JS_ARGV(cx, vp); - JSBool ok = JS_TRUE; - if (argc == 3 || argc == 2) - { - - JSB_TableViewDataSource* pNativeSource = new JSB_TableViewDataSource(); - pNativeSource->setTableViewDataSource(JSVAL_TO_OBJECT(argv[0])); - - cocos2d::Size arg1; - ok &= jsval_to_ccsize(cx, argv[1], &arg1); - cocos2d::extension::TableView* ret = NULL; - ret = new TableView(); - ret->autorelease(); - - ret->setDataSource(pNativeSource); - - jsval jsret; - do { - if (ret) - { - js_proxy_t *proxy = js_get_or_create_proxy(cx, ret); - jsret = OBJECT_TO_JSVAL(proxy->obj); - } - else - { - jsret = JSVAL_NULL; - } - } while (0); - - if (argc == 2) - { - ret->initWithViewSize(arg1); - } - else - { - cocos2d::Node* arg2; - do - { - js_proxy_t *proxy; - JSObject *tmpObj = JSVAL_TO_OBJECT(argv[2]); - proxy = jsb_get_js_proxy(tmpObj); - arg2 = (cocos2d::Node*)(proxy ? proxy->ptr : NULL); - JSB_PRECONDITION2( arg2, cx, JS_FALSE, "Invalid Native Object"); - } while (0); - JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments"); - ret->initWithViewSize(arg1, arg2); - } - ret->reloadData(); - - Dictionary* userDict = new Dictionary(); - userDict->setObject(pNativeSource, KEY_TABLEVIEW_DATA_SOURCE); - ret->setUserObject(userDict); - userDict->release(); - - pNativeSource->release(); - - JS_SET_RVAL(cx, vp, jsret); - return JS_TRUE; - } - - JS_ReportError(cx, "wrong number of arguments"); - return JS_FALSE; -} - -class JSB_EditBoxDelegate -: public Object -, public EditBoxDelegate -{ -public: - JSB_EditBoxDelegate() - : _JSDelegate(NULL) - , _needUnroot(false) - {} - - virtual ~JSB_EditBoxDelegate() - { - if (_needUnroot) - { - JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); - JS_RemoveObjectRoot(cx, &_JSDelegate); - } - } - - virtual void editBoxEditingDidBegin(EditBox* editBox) - { - js_proxy_t * p = jsb_get_native_proxy(editBox); - if (!p) return; - - jsval arg = OBJECT_TO_JSVAL(p->obj); - ScriptingCore::getInstance()->executeFunctionWithOwner(OBJECT_TO_JSVAL(_JSDelegate), "editBoxEditingDidBegin", 1, &arg, NULL); - } - - virtual void editBoxEditingDidEnd(EditBox* editBox) - { - js_proxy_t * p = jsb_get_native_proxy(editBox); - if (!p) return; - - jsval arg = OBJECT_TO_JSVAL(p->obj); - ScriptingCore::getInstance()->executeFunctionWithOwner(OBJECT_TO_JSVAL(_JSDelegate), "editBoxEditingDidEnd", 1, &arg, NULL); - } - - virtual void editBoxTextChanged(EditBox* editBox, const std::string& text) - { - js_proxy_t * p = jsb_get_native_proxy(editBox); - if (!p) return; - - jsval dataVal[2]; - dataVal[0] = OBJECT_TO_JSVAL(p->obj); - std::string arg1 = text; - dataVal[1] = std_string_to_jsval(ScriptingCore::getInstance()->getGlobalContext(), arg1); - - ScriptingCore::getInstance()->executeFunctionWithOwner(OBJECT_TO_JSVAL(_JSDelegate), "editBoxTextChanged", 2, dataVal, NULL); - } - - virtual void editBoxReturn(EditBox* editBox) - { - js_proxy_t * p = jsb_get_native_proxy(editBox); - if (!p) return; - - jsval arg = OBJECT_TO_JSVAL(p->obj); - ScriptingCore::getInstance()->executeFunctionWithOwner(OBJECT_TO_JSVAL(_JSDelegate), "editBoxReturn", 1, &arg, NULL); - } - - void setJSDelegate(JSObject* pJSDelegate) - { - _JSDelegate = pJSDelegate; - - // Check whether the js delegate is a pure js object. - js_proxy_t* p = jsb_get_js_proxy(_JSDelegate); - if (!p) - { - _needUnroot = true; - JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); - JS_AddNamedObjectRoot(cx, &_JSDelegate, "TableViewDelegate"); - } - } -private: - JSObject* _JSDelegate; - bool _needUnroot; -}; - -static JSBool js_cocos2dx_CCEditBox_setDelegate(JSContext *cx, uint32_t argc, jsval *vp) -{ - jsval *argv = JS_ARGV(cx, vp); - JSObject *obj = JS_THIS_OBJECT(cx, vp); - js_proxy_t *proxy = jsb_get_js_proxy(obj); - cocos2d::extension::EditBox* cobj = (cocos2d::extension::EditBox *)(proxy ? proxy->ptr : NULL); - JSB_PRECONDITION2( cobj, cx, JS_FALSE, "Invalid Native Object"); - - if (argc == 1) - { - // save the delegate - JSObject *jsDelegate = JSVAL_TO_OBJECT(argv[0]); - JSB_EditBoxDelegate* nativeDelegate = new JSB_EditBoxDelegate(); - nativeDelegate->setJSDelegate(jsDelegate); - - cobj->setUserObject(nativeDelegate); - cobj->setDelegate(nativeDelegate); - - nativeDelegate->release(); - - JS_SET_RVAL(cx, vp, JSVAL_VOID); - return JS_TRUE; - } - JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1); - return JS_FALSE; -} - - - -class JSB_ControlButtonTarget : public Object -{ -public: - JSB_ControlButtonTarget() - : _jsFunc(nullptr), - _type(Control::EventType::TOUCH_DOWN), - _jsTarget(nullptr), - _needUnroot(false) - {} - - virtual ~JSB_ControlButtonTarget() - { - CCLOGINFO("In the destruction of JSB_ControlButtonTarget ..."); - JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); - if (_needUnroot) - { - JS_RemoveObjectRoot(cx, &_jsTarget); - } - - JS_RemoveObjectRoot(cx, &_jsFunc); - - for (auto iter = _jsNativeTargetMap.begin(); iter != _jsNativeTargetMap.end(); ++iter) - { - if (this == iter->second) - { - _jsNativeTargetMap.erase(iter); - break; - } - } - } - - virtual void onEvent(Object *controlButton, Control::EventType event) - { - js_proxy_t * p; - JS_GET_PROXY(p, controlButton); - if (!p) - { - log("Failed to get proxy for control button"); - return; - } - - jsval dataVal[2]; - dataVal[0] = OBJECT_TO_JSVAL(p->obj); - int arg1 = (int)event; - dataVal[1] = INT_TO_JSVAL(arg1); - jsval jsRet; - - ScriptingCore::getInstance()->executeJSFunctionWithThisObj(OBJECT_TO_JSVAL(_jsTarget), OBJECT_TO_JSVAL(_jsFunc), 2, dataVal, &jsRet); - } - - void setJSTarget(JSObject* pJSTarget) - { - _jsTarget = pJSTarget; - - js_proxy_t* p = jsb_get_js_proxy(_jsTarget); - if (!p) - { - JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); - JS_AddNamedObjectRoot(cx, &_jsTarget, "JSB_ControlButtonTarget, target"); - _needUnroot = true; - } - } - - void setJSAction(JSObject* jsFunc) - { - _jsFunc = jsFunc; - - JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); - JS_AddNamedObjectRoot(cx, &_jsFunc, "JSB_ControlButtonTarget, func"); - } - - void setEventType(Control::EventType type) - { - _type = type; - } -public: - - static std::multimap _jsNativeTargetMap; - JSObject* _jsFunc; - Control::EventType _type; -private: - JSObject* _jsTarget; - bool _needUnroot; -}; - -std::multimap JSB_ControlButtonTarget::_jsNativeTargetMap; - -static JSBool js_cocos2dx_CCControl_addTargetWithActionForControlEvents(JSContext *cx, uint32_t argc, jsval *vp) -{ - jsval *argv = JS_ARGV(cx, vp); - JSObject *obj = JS_THIS_OBJECT(cx, vp); - js_proxy_t *proxy = jsb_get_js_proxy(obj); - cocos2d::extension::Control* cobj = (cocos2d::extension::Control *)(proxy ? proxy->ptr : NULL); - JSB_PRECONDITION2( cobj, cx, JS_FALSE, "Invalid Native Object"); - - JSBool ok = JS_TRUE; - if (argc == 3) - { - JSObject* jsDelegate = JSVAL_TO_OBJECT(argv[0]); - JSObject* jsFunc = JSVAL_TO_OBJECT(argv[1]); - Control::EventType arg2; - ok &= jsval_to_int32(cx, argv[2], (int32_t *)&arg2); - JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing control event"); - - // Check whether the target already exists. - auto range = JSB_ControlButtonTarget::_jsNativeTargetMap.equal_range(jsDelegate); - for (auto it = range.first; it != range.second; ++it) - { - if (it->second->_jsFunc == jsFunc && arg2 == it->second->_type) - { - // Return true directly. - JS_SET_RVAL(cx, vp, JSVAL_VOID); - return JS_TRUE; - } - } - - // save the delegate - JSB_ControlButtonTarget* nativeDelegate = new JSB_ControlButtonTarget(); - - nativeDelegate->setJSTarget(jsDelegate); - nativeDelegate->setJSAction(jsFunc); - nativeDelegate->setEventType(arg2); - - Array* nativeDelegateArray = static_cast(cobj->getUserObject()); - if (nullptr == nativeDelegateArray) - { - nativeDelegateArray = new Array(); - nativeDelegateArray->init(); - cobj->setUserObject(nativeDelegateArray); // The reference of nativeDelegateArray is added to 2 - nativeDelegateArray->release(); // Release nativeDelegateArray to make the reference to 1 - } - - nativeDelegateArray->addObject(nativeDelegate); // The reference of nativeDelegate is added to 2 - nativeDelegate->release(); // Release nativeDelegate to make the reference to 1 - - cobj->addTargetWithActionForControlEvents(nativeDelegate, cccontrol_selector(JSB_ControlButtonTarget::onEvent), arg2); - - JSB_ControlButtonTarget::_jsNativeTargetMap.insert(std::make_pair(jsDelegate, nativeDelegate)); - - JS_SET_RVAL(cx, vp, JSVAL_VOID); - - return JS_TRUE; - } - JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 3); - return JS_FALSE; -} - -static JSBool js_cocos2dx_CCControl_removeTargetWithActionForControlEvents(JSContext *cx, uint32_t argc, jsval *vp) -{ - jsval *argv = JS_ARGV(cx, vp); - JSObject *obj = JS_THIS_OBJECT(cx, vp); - js_proxy_t *proxy = jsb_get_js_proxy(obj); - cocos2d::extension::Control* cobj = (cocos2d::extension::Control *)(proxy ? proxy->ptr : NULL); - JSB_PRECONDITION2( cobj, cx, JS_FALSE, "Invalid Native Object"); - - JSBool ok = JS_TRUE; - if (argc == 3) - { - Control::EventType arg2; - ok &= jsval_to_int32(cx, argv[2], (int32_t *)&arg2); - JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing control event"); - - obj = JSVAL_TO_OBJECT(argv[0]); - JSObject* jsFunc = JSVAL_TO_OBJECT(argv[1]); - - JSB_ControlButtonTarget* nativeTargetToRemoved = nullptr; - - auto range = JSB_ControlButtonTarget::_jsNativeTargetMap.equal_range(obj); - for (auto it = range.first; it != range.second; ++it) - { - if (it->second->_jsFunc == jsFunc && arg2 == it->second->_type) - { - nativeTargetToRemoved = it->second; - JSB_ControlButtonTarget::_jsNativeTargetMap.erase(it); - break; - } - } - - cobj->removeTargetWithActionForControlEvents(nativeTargetToRemoved, cccontrol_selector(JSB_ControlButtonTarget::onEvent), arg2); - - return JS_TRUE; - } - JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 3); - return JS_FALSE; -} - -class JSArmatureWrapper: public JSCallbackWrapper { -public: - JSArmatureWrapper(); - virtual ~JSArmatureWrapper(); - - virtual void setJSCallbackThis(jsval thisObj); - - void movementCallbackFunc(cocostudio::Armature * pArmature, cocostudio::MovementEventType pMovementEventType, const char *pMovementId); - void frameCallbackFunc(cocostudio::Bone *pBone, const char *frameEventName, int originFrameIndex, int currentFrameIndex); - void addArmatureFileInfoAsyncCallbackFunc(float percent); - -private: - bool m_bNeedUnroot; -}; - -JSArmatureWrapper::JSArmatureWrapper() - : m_bNeedUnroot(false) -{ - -} - -JSArmatureWrapper::~JSArmatureWrapper() -{ - if (m_bNeedUnroot) - { - JSObject *thisObj = JSVAL_TO_OBJECT(_jsThisObj); - JSContext *cx = ScriptingCore::getInstance()->getGlobalContext(); - JS_RemoveObjectRoot(cx, &thisObj); - } -} - -void JSArmatureWrapper::setJSCallbackThis(jsval _jsThisObj) -{ - JSCallbackWrapper::setJSCallbackThis(_jsThisObj); - - JSObject *thisObj = JSVAL_TO_OBJECT(_jsThisObj); - js_proxy *p = jsb_get_js_proxy(thisObj); - if (!p) - { - JSContext *cx = ScriptingCore::getInstance()->getGlobalContext(); - JS_AddObjectRoot(cx, &thisObj); - m_bNeedUnroot = true; - } -} - -void JSArmatureWrapper::movementCallbackFunc(cocostudio::Armature *pArmature, cocostudio::MovementEventType pMovementEventType, const char *pMovementId) -{ - JSContext *cx = ScriptingCore::getInstance()->getGlobalContext(); - JSObject *thisObj = JSVAL_IS_VOID(_jsThisObj) ? NULL : JSVAL_TO_OBJECT(_jsThisObj); - js_proxy_t *proxy = js_get_or_create_proxy(cx, pArmature); - jsval retval; - if (_jsCallback != JSVAL_VOID) - { - int movementEventType = (int)pMovementEventType; - jsval movementVal = INT_TO_JSVAL(movementEventType); - - jsval idVal = c_string_to_jsval(cx, pMovementId); - - jsval valArr[3]; - valArr[0] = OBJECT_TO_JSVAL(proxy->obj); - valArr[1] = movementVal; - valArr[2] = idVal; - - JS_AddValueRoot(cx, valArr); - JS_CallFunctionValue(cx, thisObj, _jsCallback, 3, valArr, &retval); - JS_RemoveValueRoot(cx, valArr); - } -} - -void JSArmatureWrapper::addArmatureFileInfoAsyncCallbackFunc(float percent) -{ - JSContext *cx = ScriptingCore::getInstance()->getGlobalContext(); - JSObject *thisObj = JSVAL_IS_VOID(_jsThisObj) ? NULL : JSVAL_TO_OBJECT(_jsThisObj); - jsval retval; - if (_jsCallback != JSVAL_VOID) - { - jsval percentVal = DOUBLE_TO_JSVAL(percent); - - JS_AddValueRoot(cx, &percentVal); - JS_CallFunctionValue(cx, thisObj, _jsCallback, 1, &percentVal, &retval); - JS_RemoveValueRoot(cx, &percentVal); - } -} - - -void JSArmatureWrapper::frameCallbackFunc(cocostudio::Bone *pBone, const char *frameEventName, int originFrameIndex, int currentFrameIndex) -{ - JSContext *cx = ScriptingCore::getInstance()->getGlobalContext(); - JSObject *thisObj = JSVAL_IS_VOID(_jsThisObj) ? NULL : JSVAL_TO_OBJECT(_jsThisObj); - js_proxy_t *proxy = js_get_or_create_proxy(cx, pBone); - jsval retval; - if (_jsCallback != JSVAL_VOID) - { - jsval nameVal = c_string_to_jsval(cx, frameEventName); - jsval originIndexVal = INT_TO_JSVAL(originFrameIndex); - jsval currentIndexVal = INT_TO_JSVAL(currentFrameIndex); - - jsval valArr[4]; - valArr[0] = OBJECT_TO_JSVAL(proxy->obj); - valArr[1] = nameVal; - valArr[2] = originIndexVal; - valArr[3] = currentIndexVal; - - JS_AddValueRoot(cx, valArr); - JS_CallFunctionValue(cx, thisObj, _jsCallback, 4, valArr, &retval); - JS_RemoveValueRoot(cx, valArr); - } -} - -static JSBool js_cocos2dx_ArmatureAnimation_setMovementEventCallFunc(JSContext *cx, uint32_t argc, jsval *vp) -{ - JSObject *obj = JS_THIS_OBJECT(cx, vp); - js_proxy_t *proxy = jsb_get_js_proxy(obj); - cocostudio::ArmatureAnimation* cobj = (cocostudio::ArmatureAnimation *)(proxy ? proxy->ptr : NULL); - JSB_PRECONDITION2( cobj, cx, JS_FALSE, "Invalid Native Object"); - - if (argc == 2) { - jsval *argv = JS_ARGV(cx, vp); - - JSArmatureWrapper *tmpObj = new JSArmatureWrapper(); - tmpObj->autorelease(); - - tmpObj->setJSCallbackFunc(argv[0]); - tmpObj->setJSCallbackThis(argv[1]); - - cobj->setMovementEventCallFunc(tmpObj, movementEvent_selector(JSArmatureWrapper::movementCallbackFunc)); - - return JS_TRUE; - } - JS_ReportError(cx, "Invalid number of arguments"); - return JS_FALSE; -} - -static JSBool js_cocos2dx_ArmatureAnimation_setFrameEventCallFunc(JSContext *cx, uint32_t argc, jsval *vp) -{ - JSObject *obj = JS_THIS_OBJECT(cx, vp); - js_proxy_t *proxy = jsb_get_js_proxy(obj); - cocostudio::ArmatureAnimation* cobj = (cocostudio::ArmatureAnimation *)(proxy ? proxy->ptr : NULL); - JSB_PRECONDITION2( cobj, cx, JS_FALSE, "Invalid Native Object"); - - if (argc == 2) { - jsval *argv = JS_ARGV(cx, vp); - - JSArmatureWrapper *tmpObj = new JSArmatureWrapper(); - tmpObj->autorelease(); - - tmpObj->setJSCallbackFunc(argv[0]); - tmpObj->setJSCallbackThis(argv[1]); - - cobj->setFrameEventCallFunc(tmpObj, frameEvent_selector(JSArmatureWrapper::frameCallbackFunc)); - - return JS_TRUE; - } - JS_ReportError(cx, "Invalid number of arguments"); - return JS_FALSE; -} - -static JSBool jsb_Animation_addArmatureFileInfoAsyncCallFunc(JSContext *cx, uint32_t argc, jsval *vp) -{ - JSObject *obj = JS_THIS_OBJECT(cx, vp); - js_proxy_t *proxy = jsb_get_js_proxy(obj); - cocostudio::ArmatureDataManager* cobj = (cocostudio::ArmatureDataManager *)(proxy ? proxy->ptr : NULL); - JSB_PRECONDITION2( cobj, cx, JS_FALSE, "Invalid Native Object"); - - if (argc == 3) { - jsval *argv = JS_ARGV(cx, vp); - - JSArmatureWrapper *tmpObj = new JSArmatureWrapper(); - tmpObj->autorelease(); - - tmpObj->setJSCallbackFunc(argv[2]); - tmpObj->setJSCallbackThis(argv[1]); - - std::string ret; - jsval_to_std_string(cx, argv[0], &ret); - - cobj->addArmatureFileInfoAsync(ret.c_str(), tmpObj, schedule_selector(JSArmatureWrapper::addArmatureFileInfoAsyncCallbackFunc)); - - return JS_TRUE; - } - - if(argc == 5){ - jsval *argv = JS_ARGV(cx, vp); - - JSArmatureWrapper *tmpObj = new JSArmatureWrapper(); - tmpObj->autorelease(); - - tmpObj->setJSCallbackFunc(argv[4]); - tmpObj->setJSCallbackThis(argv[3]); - - std::string imagePath; - jsval_to_std_string(cx ,argv[0] , &imagePath); - - std::string plistPath; - jsval_to_std_string(cx ,argv[1] , &plistPath); - - std::string configFilePath; - jsval_to_std_string(cx ,argv[2] , &configFilePath); - - cobj->addArmatureFileInfoAsync(imagePath.c_str(), plistPath.c_str(), configFilePath.c_str(), tmpObj, schedule_selector(JSArmatureWrapper::addArmatureFileInfoAsyncCallbackFunc)); - - return JS_TRUE; - } - JS_ReportError(cx, "Invalid number of arguments"); - return JS_FALSE; -} - -extern JSObject* jsb_ScrollView_prototype; -extern JSObject* jsb_TableView_prototype; -extern JSObject* jsb_EditBox_prototype; -extern JSObject* jsb_ArmatureAnimation_prototype; -extern JSObject* jsb_ArmatureDataManager_prototype; -extern JSObject* jsb_Control_prototype; - -void register_all_cocos2dx_extension_manual(JSContext* cx, JSObject* global) -{ - JS_DefineFunction(cx, jsb_ScrollView_prototype, "setDelegate", js_cocos2dx_CCScrollView_setDelegate, 1, JSPROP_READONLY | JSPROP_PERMANENT); - JS_DefineFunction(cx, jsb_TableView_prototype, "setDelegate", js_cocos2dx_CCTableView_setDelegate, 1, JSPROP_READONLY | JSPROP_PERMANENT); - JS_DefineFunction(cx, jsb_TableView_prototype, "setDataSource", js_cocos2dx_CCTableView_setDataSource, 1, JSPROP_READONLY | JSPROP_PERMANENT); - JS_DefineFunction(cx, jsb_EditBox_prototype, "setDelegate", js_cocos2dx_CCEditBox_setDelegate, 1, JSPROP_READONLY | JSPROP_PERMANENT); - JS_DefineFunction(cx, jsb_Control_prototype, "addTargetWithActionForControlEvents", js_cocos2dx_CCControl_addTargetWithActionForControlEvents, 3, JSPROP_READONLY | JSPROP_PERMANENT); - JS_DefineFunction(cx, jsb_Control_prototype, "removeTargetWithActionForControlEvents", js_cocos2dx_CCControl_removeTargetWithActionForControlEvents, 3, JSPROP_READONLY | JSPROP_PERMANENT); - - JS_DefineFunction(cx, jsb_ArmatureAnimation_prototype, "setMovementEventCallFunc", js_cocos2dx_ArmatureAnimation_setMovementEventCallFunc, 2, JSPROP_READONLY | JSPROP_PERMANENT); - - JS_DefineFunction(cx, jsb_ArmatureAnimation_prototype, "setFrameEventCallFunc", js_cocos2dx_ArmatureAnimation_setFrameEventCallFunc, 2, JSPROP_READONLY | JSPROP_PERMANENT); - - JS_DefineFunction(cx, jsb_ArmatureDataManager_prototype, "addArmatureFileInfoAsync", jsb_Animation_addArmatureFileInfoAsyncCallFunc, 3, JSPROP_READONLY | JSPROP_PERMANENT); - - JSObject *tmpObj = JSVAL_TO_OBJECT(anonEvaluate(cx, global, "(function () { return cc.TableView; })()")); - JS_DefineFunction(cx, tmpObj, "create", js_cocos2dx_CCTableView_create, 3, JSPROP_READONLY | JSPROP_PERMANENT); -} \ No newline at end of file diff --git a/cocos/scripting/javascript/bindings/jsb_cocos2dx_extension_manual.h b/cocos/scripting/javascript/bindings/jsb_cocos2dx_extension_manual.h deleted file mode 100644 index e8822b1370..0000000000 --- a/cocos/scripting/javascript/bindings/jsb_cocos2dx_extension_manual.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// jsb_cocos2d_extension_manual.h -// -// Created by James Chen on 3/11/13. -// -// - -#ifndef __jsb_cocos2dx_extension_manual__ -#define __jsb_cocos2dx_extension_manual__ - -#include "jsapi.h" -#include "jsfriendapi.h" - -void register_all_cocos2dx_extension_manual(JSContext* cx, JSObject* global); - -#endif /* defined(__jsb_cocos2dx_extension_manual__) */ diff --git a/cocos/scripting/javascript/bindings/jsb_websocket.cpp b/cocos/scripting/javascript/bindings/jsb_websocket.cpp deleted file mode 100644 index b5083ad268..0000000000 --- a/cocos/scripting/javascript/bindings/jsb_websocket.cpp +++ /dev/null @@ -1,382 +0,0 @@ -/**************************************************************************** -Copyright (c) 2013 cocos2d-x.org -Copyright (c) 2013 James Chen - -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 "jsb_websocket.h" -#include "cocos2d.h" -#include "network/WebSocket.h" -#include "spidermonkey_specifics.h" -#include "ScriptingCore.h" -#include "cocos2d_specifics.hpp" - -using namespace network; - -/* - [Constructor(in DOMString url, in optional DOMString protocols)] - [Constructor(in DOMString url, in optional DOMString[] protocols)] - interface WebSocket { - readonly attribute DOMString url; - - // ready state - const unsigned short CONNECTING = 0; - const unsigned short OPEN = 1; - const unsigned short CLOSING = 2; - const unsigned short CLOSED = 3; - readonly attribute unsigned short readyState; - readonly attribute unsigned long bufferedAmount; - - // networking - attribute Function onopen; - attribute Function onmessage; - attribute Function onerror; - attribute Function onclose; - readonly attribute DOMString protocol; - void send(in DOMString data); - void close(); - }; - WebSocket implements EventTarget; - */ - -class JSB_WebSocketDelegate : public WebSocket::Delegate -{ -public: - - virtual void onOpen(WebSocket* ws) - { - js_proxy_t * p = jsb_get_native_proxy(ws); - if (!p) return; - - JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); - JSObject* jsobj = JS_NewObject(cx, NULL, NULL, NULL); - jsval vp = c_string_to_jsval(cx, "open"); - JS_SetProperty(cx, jsobj, "type", &vp); - - jsval args = OBJECT_TO_JSVAL(jsobj); - - ScriptingCore::getInstance()->executeFunctionWithOwner(OBJECT_TO_JSVAL(_JSDelegate), "onopen", 1, &args); - } - - virtual void onMessage(WebSocket* ws, const WebSocket::Data& data) - { - js_proxy_t * p = jsb_get_native_proxy(ws); - if (!p) return; - - JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); - JSObject* jsobj = JS_NewObject(cx, NULL, NULL, NULL); - jsval vp = c_string_to_jsval(cx, "message"); - JS_SetProperty(cx, jsobj, "type", &vp); - - jsval args = OBJECT_TO_JSVAL(jsobj); - - if (data.isBinary) - {// data is binary - JSObject* buffer = JS_NewArrayBuffer(cx, data.len); - uint8_t* bufdata = JS_GetArrayBufferData(buffer); - memcpy((void*)bufdata, (void*)data.bytes, data.len); - jsval dataVal = OBJECT_TO_JSVAL(buffer); - JS_SetProperty(cx, jsobj, "data", &dataVal); - } - else - {// data is string - jsval dataVal = c_string_to_jsval(cx, data.bytes); - JS_SetProperty(cx, jsobj, "data", &dataVal); - } - - ScriptingCore::getInstance()->executeFunctionWithOwner(OBJECT_TO_JSVAL(_JSDelegate), "onmessage", 1, &args); - } - - virtual void onClose(WebSocket* ws) - { - js_proxy_t * p = jsb_get_native_proxy(ws); - if (!p) return; - - JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); - JSObject* jsobj = JS_NewObject(cx, NULL, NULL, NULL); - jsval vp = c_string_to_jsval(cx, "close"); - JS_SetProperty(cx, jsobj, "type", &vp); - - jsval args = OBJECT_TO_JSVAL(jsobj); - ScriptingCore::getInstance()->executeFunctionWithOwner(OBJECT_TO_JSVAL(_JSDelegate), "onclose", 1, &args); - - js_proxy_t* jsproxy = jsb_get_js_proxy(p->obj); - JS_RemoveObjectRoot(cx, &jsproxy->obj); - jsb_remove_proxy(p, jsproxy); - CC_SAFE_DELETE(ws); - } - - virtual void onError(WebSocket* ws, const WebSocket::ErrorCode& error) - { - js_proxy_t * p = jsb_get_native_proxy(ws); - if (!p) return; - - JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); - JSObject* jsobj = JS_NewObject(cx, NULL, NULL, NULL); - jsval vp = c_string_to_jsval(cx, "error"); - JS_SetProperty(cx, jsobj, "type", &vp); - - jsval args = OBJECT_TO_JSVAL(jsobj); - - ScriptingCore::getInstance()->executeFunctionWithOwner(OBJECT_TO_JSVAL(_JSDelegate), "onerror", 1, &args); - } - - void setJSDelegate(JSObject* pJSDelegate) - { - _JSDelegate = pJSDelegate; - } -private: - JSObject* _JSDelegate; -}; - -JSClass *js_cocos2dx_websocket_class; -JSObject *js_cocos2dx_websocket_prototype; - -void js_cocos2dx_WebSocket_finalize(JSFreeOp *fop, JSObject *obj) { - CCLOG("jsbindings: finalizing JS object %p (WebSocket)", obj); -} - -JSBool js_cocos2dx_extension_WebSocket_send(JSContext *cx, uint32_t argc, jsval *vp) -{ - jsval *argv = JS_ARGV(cx, vp); - JSObject *obj = JS_THIS_OBJECT(cx, vp); - js_proxy_t *proxy = jsb_get_js_proxy(obj); - WebSocket* cobj = (WebSocket *)(proxy ? proxy->ptr : NULL); - JSB_PRECONDITION2( cobj, cx, JS_FALSE, "Invalid Native Object"); - - if(argc == 1){ - do - { - if (JSVAL_IS_STRING(argv[0])) - { - std::string data; - jsval_to_std_string(cx, argv[0], &data); - cobj->send(data); - break; - } - - if (argv[0].isObject()) - { - uint8_t *bufdata = NULL; - uint32_t len = 0; - - JSObject* jsobj = JSVAL_TO_OBJECT(argv[0]); - if (JS_IsArrayBufferObject(jsobj)) - { - bufdata = JS_GetArrayBufferData(jsobj); - len = JS_GetArrayBufferByteLength(jsobj); - } - else if (JS_IsArrayBufferViewObject(jsobj)) - { - bufdata = (uint8_t*)JS_GetArrayBufferViewData(jsobj); - len = JS_GetArrayBufferViewByteLength(jsobj); - } - - if (bufdata && len > 0) - { - cobj->send(bufdata, len); - break; - } - } - - JS_ReportError(cx, "data type to be sent is unsupported."); - - } while (0); - - JS_SET_RVAL(cx, vp, JSVAL_VOID); - - return JS_TRUE; - } - JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0); - return JS_TRUE; -} - -JSBool js_cocos2dx_extension_WebSocket_close(JSContext *cx, uint32_t argc, jsval *vp){ - JSObject *obj = JS_THIS_OBJECT(cx, vp); - js_proxy_t *proxy = jsb_get_js_proxy(obj); - WebSocket* cobj = (WebSocket *)(proxy ? proxy->ptr : NULL); - JSB_PRECONDITION2( cobj, cx, JS_FALSE, "Invalid Native Object"); - - if(argc == 0){ - cobj->close(); - JS_SET_RVAL(cx, vp, JSVAL_VOID); - return JS_TRUE; - } - JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0); - return JS_FALSE; -} - -JSBool js_cocos2dx_extension_WebSocket_constructor(JSContext *cx, uint32_t argc, jsval *vp) -{ - jsval *argv = JS_ARGV(cx, vp); - - if (argc == 1 || argc == 2) - { - - std::string url; - - do { - JSBool ok = jsval_to_std_string(cx, argv[0], &url); - JSB_PRECONDITION2( ok, cx, JS_FALSE, "Error processing arguments"); - } while (0); - - JSObject *obj = JS_NewObject(cx, js_cocos2dx_websocket_class, js_cocos2dx_websocket_prototype, NULL); - - - WebSocket* cobj = new WebSocket(); - JSB_WebSocketDelegate* delegate = new JSB_WebSocketDelegate(); - delegate->setJSDelegate(obj); - - if (argc == 2) - { - std::vector protocols; - - if (JSVAL_IS_STRING(argv[1])) - { - std::string protocol; - do { - JSBool ok = jsval_to_std_string(cx, argv[1], &protocol); - JSB_PRECONDITION2( ok, cx, JS_FALSE, "Error processing arguments"); - } while (0); - protocols.push_back(protocol); - } - else if (argv[1].isObject()) - { - JSBool ok = JS_TRUE; - JSObject* arg2 = JSVAL_TO_OBJECT(argv[1]); - JSB_PRECONDITION(JS_IsArrayObject( cx, arg2 ), "Object must be an array"); - - uint32_t len = 0; - JS_GetArrayLength(cx, arg2, &len); - - for( uint32_t i=0; i< len;i++ ) - { - jsval valarg; - JS_GetElement(cx, arg2, i, &valarg); - std::string protocol; - do { - ok = jsval_to_std_string(cx, valarg, &protocol); - JSB_PRECONDITION2( ok, cx, JS_FALSE, "Error processing arguments"); - } while (0); - - protocols.push_back(protocol); - } - } - cobj->init(*delegate, url, &protocols); - } - else - { - cobj->init(*delegate, url); - } - - - JS_DefineProperty(cx, obj, "URL", argv[0] - , NULL, NULL, JSPROP_ENUMERATE | JSPROP_PERMANENT | JSPROP_READONLY); - - //protocol not support yet (always return "") - JS_DefineProperty(cx, obj, "protocol", c_string_to_jsval(cx, "") - , NULL, NULL, JSPROP_ENUMERATE | JSPROP_PERMANENT | JSPROP_READONLY); - - // link the native object with the javascript object - js_proxy_t *p = jsb_new_proxy(cobj, obj); - JS_AddNamedObjectRoot(cx, &p->obj, "WebSocket"); - - JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj)); - return JS_TRUE; - } - - JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0); - return JS_FALSE; -} - -static JSBool js_cocos2dx_extension_WebSocket_get_readyState(JSContext *cx, JSHandleObject obj, JSHandleId id, JSMutableHandleValue vp) -{ - JSObject* jsobj = obj.get(); - js_proxy_t *proxy = jsb_get_js_proxy(jsobj); - WebSocket* cobj = (WebSocket *)(proxy ? proxy->ptr : NULL); - JSB_PRECONDITION2( cobj, cx, JS_FALSE, "Invalid Native Object"); - - if (cobj) { - vp.set(INT_TO_JSVAL((int)cobj->getReadyState())); - return JS_TRUE; - } else { - JS_ReportError(cx, "Error: WebSocket instance is invalid."); - return JS_FALSE; - } -} - -void register_jsb_websocket(JSContext *cx, JSObject *global) { - - js_cocos2dx_websocket_class = (JSClass *)calloc(1, sizeof(JSClass)); - js_cocos2dx_websocket_class->name = "WebSocket"; - js_cocos2dx_websocket_class->addProperty = JS_PropertyStub; - js_cocos2dx_websocket_class->delProperty = JS_DeletePropertyStub; - js_cocos2dx_websocket_class->getProperty = JS_PropertyStub; - js_cocos2dx_websocket_class->setProperty = JS_StrictPropertyStub; - js_cocos2dx_websocket_class->enumerate = JS_EnumerateStub; - js_cocos2dx_websocket_class->resolve = JS_ResolveStub; - js_cocos2dx_websocket_class->convert = JS_ConvertStub; - js_cocos2dx_websocket_class->finalize = js_cocos2dx_WebSocket_finalize; - js_cocos2dx_websocket_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2); - - static JSPropertySpec properties[] = { - {"readyState", 0, JSPROP_ENUMERATE | JSPROP_PERMANENT | JSPROP_SHARED, JSOP_WRAPPER(js_cocos2dx_extension_WebSocket_get_readyState), NULL}, - {0, 0, 0, 0, 0} - }; - - static JSFunctionSpec funcs[] = { - JS_FN("send",js_cocos2dx_extension_WebSocket_send, 1, JSPROP_PERMANENT | JSPROP_ENUMERATE), - JS_FN("close",js_cocos2dx_extension_WebSocket_close, 0, JSPROP_PERMANENT | JSPROP_ENUMERATE), - JS_FS_END - }; - - static JSFunctionSpec st_funcs[] = { - JS_FS_END - }; - - js_cocos2dx_websocket_prototype = JS_InitClass( - cx, global, - NULL, - js_cocos2dx_websocket_class, - js_cocos2dx_extension_WebSocket_constructor, 0, // constructor - properties, - funcs, - NULL, // no static properties - st_funcs); - - JSObject* jsclassObj = JSVAL_TO_OBJECT(anonEvaluate(cx, global, "(function () { return WebSocket; })()")); - - JS_DefineProperty(cx, jsclassObj, "CONNECTING", INT_TO_JSVAL((int)WebSocket::State::CONNECTING) - , NULL, NULL, JSPROP_ENUMERATE | JSPROP_PERMANENT | JSPROP_READONLY); - JS_DefineProperty(cx, jsclassObj, "OPEN", INT_TO_JSVAL((int)WebSocket::State::OPEN) - , NULL, NULL, JSPROP_ENUMERATE | JSPROP_PERMANENT | JSPROP_READONLY); - JS_DefineProperty(cx, jsclassObj, "CLOSING", INT_TO_JSVAL((int)WebSocket::State::CLOSING) - , NULL, NULL, JSPROP_ENUMERATE | JSPROP_PERMANENT | JSPROP_READONLY); - JS_DefineProperty(cx, jsclassObj, "CLOSED", INT_TO_JSVAL((int)WebSocket::State::CLOSED) - , NULL, NULL, JSPROP_ENUMERATE | JSPROP_PERMANENT | JSPROP_READONLY); - - // make the class enumerable in the registered namespace - JSBool found; - JS_SetPropertyAttributes(cx, global, "WebSocket", JSPROP_ENUMERATE | JSPROP_READONLY, &found); -} - - diff --git a/cocos/scripting/javascript/bindings/jsb_websocket.h b/cocos/scripting/javascript/bindings/jsb_websocket.h deleted file mode 100644 index cde0f40b2e..0000000000 --- a/cocos/scripting/javascript/bindings/jsb_websocket.h +++ /dev/null @@ -1,34 +0,0 @@ -/**************************************************************************** -Copyright (c) 2013 cocos2d-x.org -Copyright (c) 2013 James Chen - -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 __jsb_websocket__ -#define __jsb_websocket__ - -#include "jsapi.h" -#include "jsfriendapi.h" - -void register_jsb_websocket(JSContext* cx, JSObject* global); - -#endif /* defined(__jsb_websocket__) */ diff --git a/cocos/scripting/javascript/bindings/proj.win32/libJSBinding.vcxproj b/cocos/scripting/javascript/bindings/proj.win32/libJSBinding.vcxproj index df73497bd8..11085f336c 100644 --- a/cocos/scripting/javascript/bindings/proj.win32/libJSBinding.vcxproj +++ b/cocos/scripting/javascript/bindings/proj.win32/libJSBinding.vcxproj @@ -12,68 +12,41 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + {39379840-825A-45A0-B363-C09FFEF864BD} @@ -102,9 +75,11 @@ + + @@ -126,7 +101,7 @@ Level3 Disabled WIN32;_WINDOWS;_DEBUG;_LIB;DEBUG;COCOS2D_DEBUG=1;XP_WIN;JS_HAVE___INTN;JS_INTPTR_TYPE=int;COCOS2D_JAVASCRIPT=1;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - $(ProjectDir)..\..\..\..\cocos2dx;$(ProjectDir)..\..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32\pthread;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\..\..\audio\include;$(ProjectDir)..;$(ProjectDir)..\..\spidermonkey-win32\include;$(ProjectDir)..\..\..\auto-generated\js-bindings;$(ProjectDir)..\..\..\..\external\chipmunk\include\chipmunk;$(ProjectDir)..\..\..\..\external\libwebsockets\win32\include;$(ProjectDir)..\..\..\..\extensions;$(ProjectDir)..\..\..\..\extensions\LocalStorage;$(ProjectDir)..\..\..\..\extensions\network;%(AdditionalIncludeDirectories) + $(ProjectDir)..;$(EngineRoot);$(EngineRoot)cocos;$(EngineRoot)cocos\storage;$(EngineRoot)cocos\audio\include;$(EngineRoot)cocos\scripting\auto-generated\js-bindings;$(EngineRoot)external\spidermonkey\include\win32;$(EngineRoot)external\chipmunk\include\chipmunk;%(AdditionalIncludeDirectories) 4068;4101;4800;4251;4244;%(DisableSpecificWarnings) true false @@ -137,7 +112,7 @@ if not exist "$(OutDir)" mkdir "$(OutDir)" -xcopy /Y /Q "$(ProjectDir)..\..\..\..\external\sqlite3\libraries\win32\*.*" "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\..\..\..\external\sqlite3\libraries\win32\*.*" "$(OutDir)" @@ -149,7 +124,7 @@ xcopy /Y /Q "$(ProjectDir)..\..\..\..\external\sqlite3\libraries\win32\*.*" "$(O true true WIN32;_WINDOWS;NDEBUG;_LIB;XP_WIN;JS_HAVE___INTN;JS_INTPTR_TYPE=int;COCOS2D_JAVASCRIPT=1;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - $(ProjectDir)..\..\..\..\cocos2dx;$(ProjectDir)..\..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32\pthread;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\..\..\audio\include;$(ProjectDir)..;$(ProjectDir)..\..\spidermonkey-win32\include;$(ProjectDir)..\..\..\auto-generated\js-bindings;$(ProjectDir)..\..\..\..\external\chipmunk\include\chipmunk;$(ProjectDir)..\..\..\..\external\libwebsockets\win32\include;$(ProjectDir)..\..\..\..\extensions;$(ProjectDir)..\..\..\..\extensions\LocalStorage;$(ProjectDir)..\..\..\..\extensions\network;%(AdditionalIncludeDirectories) + $(ProjectDir)..;$(EngineRoot);$(EngineRoot)cocos;$(EngineRoot)cocos\storage;$(EngineRoot)cocos\audio\include;$(EngineRoot)cocos\scripting\auto-generated\js-bindings;$(EngineRoot)external\spidermonkey\include\win32;$(EngineRoot)external\chipmunk\include\chipmunk;%(AdditionalIncludeDirectories) 4068;4101;4800;4251;4244;%(DisableSpecificWarnings) true @@ -161,7 +136,7 @@ xcopy /Y /Q "$(ProjectDir)..\..\..\..\external\sqlite3\libraries\win32\*.*" "$(O if not exist "$(OutDir)" mkdir "$(OutDir)" -xcopy /Y /Q "$(ProjectDir)..\..\..\..\external\sqlite3\libraries\win32\*.*" "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\..\..\..\external\sqlite3\libraries\win32\*.*" "$(OutDir)" diff --git a/cocos/scripting/javascript/bindings/proj.win32/libJSBinding.vcxproj.filters b/cocos/scripting/javascript/bindings/proj.win32/libJSBinding.vcxproj.filters index 4fdf5413d2..1d1e1d400a 100644 --- a/cocos/scripting/javascript/bindings/proj.win32/libJSBinding.vcxproj.filters +++ b/cocos/scripting/javascript/bindings/proj.win32/libJSBinding.vcxproj.filters @@ -20,21 +20,6 @@ manual - - manual - - - manual - - - manual - - - manual - - - manual - manual @@ -44,15 +29,6 @@ manual - - manual - - - manual - - - manual - manual @@ -65,18 +41,9 @@ manual - - manual - - - manual - generated - - generated - @@ -85,27 +52,6 @@ manual - - manual - - - manual - - - manual - - - manual - - - manual - - - manual - - - manual - manual @@ -121,18 +67,6 @@ manual - - manual - - - manual - - - manual - - - manual - manual @@ -145,55 +79,40 @@ manual - - manual - - - manual - manual generated - - generated - - - js - - - js - - - js - - - js - - - js - - - js - - - js - - - js - - - js - generated - - generated + + js + + + js + + + js + + + js + + + js + + + js + + + js + + + js \ No newline at end of file diff --git a/cocos/scripting/lua/bindings/liblua.vcxproj b/cocos/scripting/lua/bindings/liblua.vcxproj index 84026e44fd..ed1ef534ed 100644 --- a/cocos/scripting/lua/bindings/liblua.vcxproj +++ b/cocos/scripting/lua/bindings/liblua.vcxproj @@ -35,9 +35,11 @@ + + @@ -62,7 +64,7 @@ Disabled - $(ProjectDir)..\..\..\cocos2dx;$(ProjectDir)..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\..\cocos2dx\platform\third_party\win32\pthread;$(ProjectDir)..\..\..\audio\include;$(ProjectDir)..\..\..\extensions;$(ProjectDir)..\..\..\extensions\network;$(ProjectDir)..\..\..\external\libwebsockets\win32\include;$(ProjectDir)..\tolua;$(ProjectDir)..\luajit\include;$(ProjectDir)..\..\auto-generated\lua-bindings;$(ProjectDir)..\cocos2dx_support;$(ProjectDir)..\..\..\external\chipmunk\include\chipmunk;%(AdditionalIncludeDirectories) + $(ProjectDir);$(ProjectDir)..\..\..;$(EngineRoot);$(EngineRoot)cocos\editor-support;$(EngineRoot)cocos\editor-support\cocostudio;$(EngineRoot)cocos\editor-support\cocosbuilder;$(EngineRoot)cocos\audio\include;$(EngineRoot)extensions;$(EngineRoot)extensions\network;$(EngineRoot)external;$(EngineRoot)external\libwebsockets\win32\include;$(EngineRoot)external\lua\tolua;$(EngineRoot)external\lua\luajit\include;$(EngineRoot)cocos\scripting\auto-generated\lua-bindings;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;COCOS2D_DEBUG=1;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) false EnableFastChecks @@ -87,14 +89,14 @@ if not exist "$(OutDir)" mkdir "$(OutDir)" -xcopy /Y /Q "$(ProjectDir)..\luajit\win32\*.*" "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\..\..\external\lua\luajit\prebuilt\win32\*.*" "$(OutDir)" MaxSpeed true - $(ProjectDir)..\..\..\cocos2dx;$(ProjectDir)..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\..\cocos2dx\platform\third_party\win32\pthread;$(ProjectDir)..\..\..\audio\include;$(ProjectDir)..\..\..\extensions;$(ProjectDir)..\..\..\extensions\network;$(ProjectDir)..\..\..\external\libwebsockets\win32\include;$(ProjectDir)..\tolua;$(ProjectDir)..\luajit\include;$(ProjectDir)..\..\auto-generated\lua-bindings;$(ProjectDir)..\cocos2dx_support;%(AdditionalIncludeDirectories) + $(ProjectDir);$(ProjectDir)..\..\..;$(EngineRoot);$(EngineRoot)cocos\editor-support;$(EngineRoot)cocos\editor-support\cocostudio;$(EngineRoot)cocos\editor-support\cocosbuilder;$(EngineRoot)cocos\audio\include;$(EngineRoot)extensions;$(EngineRoot)extensions\network;$(EngineRoot)external;$(EngineRoot)external\libwebsockets\win32\include;$(EngineRoot)external\lua\tolua;$(EngineRoot)external\lua\luajit\include;$(EngineRoot)cocos\scripting\auto-generated\lua-bindings;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;LIBLUA_EXPORTS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) MultiThreadedDLL true @@ -118,55 +120,55 @@ xcopy /Y /Q "$(ProjectDir)..\luajit\win32\*.*" "$(OutDir)" if not exist "$(OutDir)" mkdir "$(OutDir)" -xcopy /Y /Q "$(ProjectDir)..\luajit\win32\*.*" "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\..\..\external\lua\luajit\prebuilt\win32\*.*" "$(OutDir)" + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + diff --git a/cocos/scripting/lua/bindings/liblua.vcxproj.filters b/cocos/scripting/lua/bindings/liblua.vcxproj.filters index a65b18d1ac..56f49872c4 100644 --- a/cocos/scripting/lua/bindings/liblua.vcxproj.filters +++ b/cocos/scripting/lua/bindings/liblua.vcxproj.filters @@ -18,135 +18,135 @@ - - tolua - - - tolua - - - tolua - - - tolua - - - tolua - - - cocos2dx_support - - - cocos2dx_support - - - cocos2dx_support - - - cocos2dx_support - - - cocos2dx_support - - - cocos2dx_support - - - cocos2dx_support - - - cocos2dx_support - - - cocos2dx_support - - - cocos2dx_support - - - cocos2dx_support - - - cocos2dx_support - - - cocos2dx_support - cocos2dx_support\generated cocos2dx_support\generated - + + tolua + + + tolua + + + tolua + + + tolua + + + tolua + + + cocos2dx_support + + + cocos2dx_support + + + cocos2dx_support + + + cocos2dx_support + + + cocos2dx_support + + + cocos2dx_support + + + cocos2dx_support + + + cocos2dx_support + + + cocos2dx_support + + + cocos2dx_support + + + cocos2dx_support + + + cocos2dx_support + + + cocos2dx_support + + cocos2dx_support - - tolua - - - tolua - - - cocos2dx_support - - - cocos2dx_support - - - cocos2dx_support - - - cocos2dx_support - - - cocos2dx_support - - - cocos2dx_support - - - luajit\include - - - luajit\include - - - luajit\include - - - luajit\include - - - cocos2dx_support - - - cocos2dx_support - - - cocos2dx_support - - - cocos2dx_support - - - cocos2dx_support - - - cocos2dx_support - - - cocos2dx_support - cocos2dx_support\generated cocos2dx_support\generated - + + luajit\include + + + luajit\include + + + luajit\include + + + luajit\include + + + tolua + + + tolua + + + cocos2dx_support + + + cocos2dx_support + + + cocos2dx_support + + + cocos2dx_support + + + cocos2dx_support + + + cocos2dx_support + + + cocos2dx_support + + + cocos2dx_support + + + cocos2dx_support + + + cocos2dx_support + + + cocos2dx_support + + + cocos2dx_support + + + cocos2dx_support + + cocos2dx_support diff --git a/extensions/proj.win32/libExtensions.vcxproj b/extensions/proj.win32/libExtensions.vcxproj index 25597c43e3..7a3615643f 100644 --- a/extensions/proj.win32/libExtensions.vcxproj +++ b/extensions/proj.win32/libExtensions.vcxproj @@ -35,9 +35,11 @@ + + @@ -62,7 +64,7 @@ Disabled - $(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A\include;$(ProjectDir)..\..\external\chipmunk\include\chipmunk;$(ProjectDir)..\..\external\sqlite3\include;$(ProjectDir)..\..\external;$(ProjectDir)..\..\external\libwebsockets\win32\include;$(ProjectDir)..\..\cocos2dx;$(ProjectDir)..\..\cocos2dx\include;$(ProjectDir)..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\cocos2dx\platform\third_party\win32;$(ProjectDir)..\..\cocos2dx\platform\third_party\win32\pthread;$(ProjectDir)..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\cocos2dx\platform\third_party\win32\zlib;$(ProjectDir)..\..\audio\include;..\;%(AdditionalIncludeDirectories) + $(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A\include;$(EngineRoot);$(EngineRoot)cocos\audio\include;$(EngineRoot)external;$(EngineRoot)external\unzip;$(EngineRoot)external\chipmunk\include\chipmunk;$(EngineRoot)external\curl\include\win32;$(EngineRoot)external\sqlite3\include;$(EngineRoot)external\libwebsockets\win32\include;$(EngineRoot)external\win32-specific\zlib\include;..\;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_LIB;COCOS2D_DEBUG=1;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) false EnableFastChecks @@ -79,7 +81,7 @@ MaxSpeed true - $(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A\include;$(ProjectDir)..\..\external\chipmunk\include\chipmunk;$(ProjectDir)..\..\external\sqlite3\include;$(ProjectDir)..\..\external;$(ProjectDir)..\..\external\libwebsockets\win32\include;$(ProjectDir)..\..\cocos2dx;$(ProjectDir)..\..\cocos2dx\include;$(ProjectDir)..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\cocos2dx\platform\third_party\win32;$(ProjectDir)..\..\cocos2dx\platform\third_party\win32\pthread;$(ProjectDir)..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\cocos2dx\platform\third_party\win32\zlib;$(ProjectDir)..\..\audio\include;..\;%(AdditionalIncludeDirectories) + $(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A\include;$(EngineRoot);$(EngineRoot)cocos\audio\include;$(EngineRoot)external;$(EngineRoot)external\unzip;$(EngineRoot)external\chipmunk\include\chipmunk;$(EngineRoot)external\curl\include\win32;$(EngineRoot)external\sqlite3\include;$(EngineRoot)external\libwebsockets\win32\include;$(EngineRoot)external\win32-specific\zlib\include;..\;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_LIB;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) MultiThreadedDLL true @@ -92,89 +94,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -193,130 +113,12 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -339,44 +141,10 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - diff --git a/extensions/proj.win32/libExtensions.vcxproj.filters b/extensions/proj.win32/libExtensions.vcxproj.filters index 766af1001f..d43ac6197c 100644 --- a/extensions/proj.win32/libExtensions.vcxproj.filters +++ b/extensions/proj.win32/libExtensions.vcxproj.filters @@ -1,9 +1,6 @@  - - {d37545ef-285b-4315-9fca-40da6fc2a6c9} - {202b519b-b5e0-499f-b3b8-ed5da144b248} @@ -16,83 +13,17 @@ {d5806151-7ae1-4fef-af5a-2fa1d1c7377b} - - {4da8061d-80f3-45fd-aa7e-2c0a96701b79} - {5d186e3d-0aaf-4904-a5d8-e5cb0f35f4cc} {49487dbe-5758-436a-b014-8e2edc6b33ae} - - {ff4b5934-99d4-4ea7-9f50-a774192d9ca9} - - - {2a7741ff-87a5-41c8-8e51-d7a1cf0c8e4d} - - - {87250d95-2afd-45e7-bc9d-760478c4e709} - - - {5258a1e1-5d50-4fee-9216-da08d2ec19de} - - - {cf3469d5-421b-4990-a9be-4cd95129fb73} - - - {f48d1291-33fe-49a1-8f9f-4d203e782d4a} - - - {043f8489-822e-43c8-8d9d-5d171a701663} - - - {b8c65820-b5c9-4bd6-83c8-180fdc6100fb} - - - {fa9a165e-cc7c-45e9-ae4f-cae3c2f16e6a} - - - {5e5b3d7d-62a7-493e-a130-ed72ee7c65f2} - - - {d797adcd-2e59-4486-944e-b3e7f3a954b8} - - - {a824cea6-86d7-4230-8738-513a869a1882} - - - {d305abea-33cc-4ae8-b78d-b5fb59927e59} - - - {9af947f9-84cd-4051-953e-67291da6528c} - - - {9713ac75-d9ba-494a-8dcf-03e30f8ee2b2} - - - {2d6f3e38-bb46-4bec-9ec1-73d90cefb3ba} - - - {7556b22b-b7ca-4f3b-938d-0f9c8047892c} - - - {f66c34f1-f75a-4f06-9788-c48972bc0ff2} - - - {1c44450b-d06e-4638-9f0c-1ff62e67ec84} - - - {bec3cdd7-e05b-42d3-97b1-86e26a528a2d} - GUI\CCScrollView - - network - GUI\CCScrollView @@ -138,15 +69,6 @@ GUI\CCControlExtension - - physics_nodes - - - physics_nodes - - - LocalStorage - GUI\CCEditBox @@ -156,390 +78,14 @@ GUI\CCEditBox - - spine - - - spine - - - spine - - - spine - - - spine - - - spine - - - spine - - - spine - - - spine - - - spine - - - spine - - - spine - - - spine - - - spine - - - spine - - - spine - - - spine - - - spine - - - spine - - - spine - - - spine - - - network - - - network - - - - CocoStudio\Armature\animation - - - CocoStudio\Armature\animation - - - CocoStudio\Armature\animation - - - CocoStudio\Armature\datas - - - CocoStudio\Armature\display - - - CocoStudio\Armature\display - - - CocoStudio\Armature\display - - - CocoStudio\Armature\display - - - CocoStudio\Armature\display - - - CocoStudio\Armature\physics - - - CocoStudio\Armature\utils - - - CocoStudio\Armature\utils - - - CocoStudio\Armature\utils - - - CocoStudio\Armature\utils - - - CocoStudio\Armature\utils - - - CocoStudio\Armature\utils - - - CocoStudio\Armature - - - CocoStudio\Armature - - - CocoStudio\Armature\utils - - - CocoStudio\GUI\UIWidgets\ScrollWidget - - - CocoStudio\GUI\UIWidgets\ScrollWidget - - - CocoStudio\GUI\UIWidgets\ScrollWidget - - - CocoStudio\GUI\UIWidgets\ScrollWidget - - - CocoStudio\GUI\UIWidgets - - - CocoStudio\GUI\UIWidgets - - - CocoStudio\GUI\UIWidgets - - - CocoStudio\GUI\UIWidgets - - - CocoStudio\GUI\UIWidgets - - - CocoStudio\GUI\UIWidgets - - - CocoStudio\GUI\UIWidgets - - - CocoStudio\GUI\UIWidgets - - - CocoStudio\GUI\UIWidgets - - - CocoStudio\GUI\BaseClasses - - - CocoStudio\GUI\BaseClasses - - - CocoStudio\GUI\Layouts - - - CocoStudio\GUI\Layouts - - - CocoStudio\GUI\Layouts - - - CocoStudio\GUI\System - - - CocoStudio\GUI\System - - - CocoStudio\GUI\System - - - CocoStudio\GUI\System - - - CocoStudio\GUI\UIWidgets\ScrollWidget - - - CocoStudio\GUI\UIWidgets\ScrollWidget - - - CocoStudio\GUI\UIWidgets\ScrollWidget - - - CocoStudio\GUI\UIWidgets\ScrollWidget - - - CocoStudio\GUI\UIWidgets - - - CocoStudio\GUI\UIWidgets - - - CocoStudio\GUI\UIWidgets - - - CocoStudio\GUI\UIWidgets - - - CocoStudio\GUI\UIWidgets - - - CocoStudio\GUI\UIWidgets - - - CocoStudio\GUI\UIWidgets - - - CocoStudio\GUI\UIWidgets - - - CocoStudio\GUI\UIWidgets - - - CocoStudio\GUI\BaseClasses - - - CocoStudio\GUI\BaseClasses - - - CocoStudio\GUI\Layouts - - - CocoStudio\GUI\Layouts - - - CocoStudio\GUI\Layouts - - - CocoStudio\GUI\System - - - CocoStudio\GUI\System - - - CocoStudio\GUI\System - - - CocoStudio\GUI\System - - - CocoStudio\Reader - AssetsManager - - CCBReader + + physics_nodes - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CocoStudio\Action - - - CocoStudio\Action - - - CocoStudio\Action - - - CocoStudio\Action - - - CocoStudio\Action - - - CocoStudio\Components - - - CocoStudio\Components - - - CocoStudio\Components - - - CocoStudio\Components - - - CocoStudio\Components - - - CocoStudio\Reader - - - CocoStudio\Reader - - - CocoStudio\Json - - - CocoStudio\Json - - - CocoStudio\Json\lib_json - - - CocoStudio\Json\lib_json - - - CocoStudio\Json\lib_json + + physics_nodes @@ -548,15 +94,6 @@ - - network - - - network - - - network - GUI\CCScrollView @@ -605,15 +142,6 @@ GUI\CCControlExtension - - physics_nodes - - - physics_nodes - - - LocalStorage - GUI\CCEditBox @@ -626,373 +154,14 @@ GUI\CCEditBox - - spine - - - spine - - - spine - - - spine - - - spine - - - spine - - - spine - - - spine - - - spine - - - spine - - - spine - - - spine - - - spine - - - spine - - - spine - - - spine - - - spine - - - spine - - - spine - - - spine - - - spine - - - spine - - - network - - - network - - - CocoStudio\Armature\animation - - - CocoStudio\Armature\animation - - - CocoStudio\Armature\animation - - - CocoStudio\Armature\datas - - - CocoStudio\Armature\display - - - CocoStudio\Armature\display - - - CocoStudio\Armature\display - - - CocoStudio\Armature\display - - - CocoStudio\Armature\display - - - CocoStudio\Armature\physics - - - CocoStudio\Armature\utils - - - CocoStudio\Armature\utils - - - CocoStudio\Armature\utils - - - CocoStudio\Armature\utils - - - CocoStudio\Armature\utils - - - CocoStudio\Armature\utils - - - CocoStudio\Armature\utils - - - CocoStudio\Armature - - - CocoStudio\Armature - - - CocoStudio\GUI\UIWidgets\ScrollWidget - - - CocoStudio\GUI\UIWidgets\ScrollWidget - - - CocoStudio\GUI\UIWidgets\ScrollWidget - - - CocoStudio\GUI\UIWidgets\ScrollWidget - - - CocoStudio\GUI\UIWidgets\ScrollWidget - - - CocoStudio\GUI\UIWidgets - - - CocoStudio\GUI\UIWidgets - - - CocoStudio\GUI\UIWidgets - - - CocoStudio\GUI\UIWidgets - - - CocoStudio\GUI\UIWidgets - - - CocoStudio\GUI\UIWidgets - - - CocoStudio\GUI\UIWidgets - - - CocoStudio\GUI\UIWidgets - - - CocoStudio\GUI\UIWidgets - - - CocoStudio\GUI\BaseClasses - - - CocoStudio\GUI\BaseClasses - - - CocoStudio\GUI\Layouts - - - CocoStudio\GUI\Layouts - - - CocoStudio\GUI\Layouts - - - CocoStudio\GUI\System - - - CocoStudio\GUI\System - - - CocoStudio\GUI\System - - - CocoStudio\GUI\System - AssetsManager - - CCBReader + + physics_nodes - - CCBReader + + physics_nodes - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CCBReader - - - CocoStudio\Action - - - CocoStudio\Action - - - CocoStudio\Action - - - CocoStudio\Action - - - CocoStudio\Action - - - CocoStudio\Components - - - CocoStudio\Components - - - CocoStudio\Components - - - CocoStudio\Components - - - CocoStudio\Components - - - CocoStudio\Reader - - - CocoStudio\Reader - - - CocoStudio\Json - - - CocoStudio\Json - - - CocoStudio\Json\lib_json - - - CocoStudio\Json\lib_json - - - CocoStudio\Json\lib_json - - - CocoStudio\Json\lib_json - - - CocoStudio\Json\lib_json - - - CocoStudio\Json\lib_json - - - CocoStudio\Json\lib_json - - - CocoStudio\Json\lib_json - - - CocoStudio\Json\lib_json - - - CocoStudio\Json\lib_json - - - - - CocoStudio\Json\lib_json - - - CocoStudio\Json\lib_json - - - CocoStudio\Json\lib_json - - - CocoStudio\Json\lib_json - \ No newline at end of file diff --git a/samples/Cpp/AssetsManagerTest/Classes/AppDelegate.cpp b/samples/Cpp/AssetsManagerTest/Classes/AppDelegate.cpp index 8dadda36ac..31808c17b0 100644 --- a/samples/Cpp/AssetsManagerTest/Classes/AppDelegate.cpp +++ b/samples/Cpp/AssetsManagerTest/Classes/AppDelegate.cpp @@ -45,6 +45,7 @@ bool AppDelegate::applicationDidFinishLaunching() sc->addRegisterCallback(register_all_cocos2dx); sc->addRegisterCallback(register_cocos2dx_js_extensions); + sc->start(); auto scene = Scene::create(); diff --git a/samples/Cpp/AssetsManagerTest/proj.android/build_native.cmd b/samples/Cpp/AssetsManagerTest/proj.android/build_native.cmd index 253059b2f8..d397bbc901 100644 --- a/samples/Cpp/AssetsManagerTest/proj.android/build_native.cmd +++ b/samples/Cpp/AssetsManagerTest/proj.android/build_native.cmd @@ -54,7 +54,7 @@ exit /b 1 set COCOS2DX_ROOT=%~dp0..\..\..\.. set APP_ROOT=%~dp0.. set APP_ANDROID_ROOT=%~dp0 -set BINDINGS_JS_ROOT=%APP_ROOT%\..\..\scripting\javascript\bindings\js +set BINDINGS_JS_ROOT=%COCOS2DX_ROOT%\cocos\scripting\javascript\script if "%buildexternalsfromsource%"=="1" (goto :MODULE1) else (goto :MODULE2) :MODULE1 @@ -63,7 +63,7 @@ if "%buildexternalsfromsource%"=="1" (goto :MODULE1) else (goto :MODULE2) goto :COPY_RES :MODULE2 echo "Using prebuilt externals" - set NDK_MODULE_PATH=%COCOS2DX_ROOT%;%COCOS2DX_ROOT%\cocos2dx\platform\third_party\android\prebuilt + set NDK_MODULE_PATH=%COCOS2DX_ROOT%;%COCOS2DX_ROOT%\cocos;%COCOS2DX_ROOT%\external :COPY_RES echo NDK_ROOT = %NDK_ROOT% @@ -76,7 +76,6 @@ rem make sure assets is exist if exist %APP_ANDROID_ROOT%\assets rd /q /s %APP_ANDROID_ROOT%\assets mkdir %APP_ANDROID_ROOT%\assets -mkdir %APP_ANDROID_ROOT%\assets\res rem copy Resources/* into assets' root xcopy /e /q /r /y %APP_ROOT%\Resources\* %APP_ANDROID_ROOT%\assets @@ -84,5 +83,5 @@ xcopy /e /q /r /y %APP_ROOT%\Resources\* %APP_ANDROID_ROOT%\assets rem copy bindings/*.js into assets' root xcopy /e /q /r /y %BINDINGS_JS_ROOT%\* %APP_ANDROID_ROOT%\assets -call %NDK_ROOT%\ndk-build.cmd NDK_LOG=0 V=0 +call %NDK_ROOT%\ndk-build.cmd NDK_LOG=0 V=0 %* pause \ No newline at end of file diff --git a/samples/Cpp/AssetsManagerTest/proj.win32/AssetsManagerTest.vcxproj b/samples/Cpp/AssetsManagerTest/proj.win32/AssetsManagerTest.vcxproj index 9fdc714c49..b46bf264ae 100644 --- a/samples/Cpp/AssetsManagerTest/proj.win32/AssetsManagerTest.vcxproj +++ b/samples/Cpp/AssetsManagerTest/proj.win32/AssetsManagerTest.vcxproj @@ -34,11 +34,13 @@ - + + - + + @@ -77,7 +79,7 @@ Disabled - $(ProjectDir)..\Classes;$(ProjectDir)..\..\..\..\scripting\javascript\spidermonkey-win32\include;$(ProjectDir)..\..\..\..\external\chipmunk\include\chipmunk;$(ProjectDir)..\..\..\..\extensions;$(ProjectDir)..\..\..\..\scripting\auto-generated\js-bindings;$(ProjectDir)..\..\..\..\scripting\javascript\bindings;$(ProjectDir)..\..\..\..\cocos2dx;$(ProjectDir)..\..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32\pthread;$(ProjectDir)..\..\..\..\audio\include;%(AdditionalIncludeDirectories) + $(ProjectDir)..\Classes;$(EngineRoot);$(EngineRoot)external\spidermonkey\include\win32;$(EngineRoot)external\chipmunk\include\chipmunk;$(EngineRoot)extensions;$(EngineRoot)cocos\scripting\javascript\bindings;$(EngineRoot)cocos\scripting\auto-generated\js-bindings;$(EngineRoot)cocos\audio\include;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;STRICT;DEBUG;_DEBUG;XP_WIN;JS_HAVE___INTN;JS_INTPTR_TYPE=int;COCOS2D_DEBUG=1;COCOS2D_JAVASCRIPT=1;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) false EnableFastChecks @@ -96,11 +98,11 @@ if not exist "$(OutDir)" mkdir "$(OutDir)" -xcopy /Y /Q "$(ProjectDir)..\..\..\..\scripting\javascript\spidermonkey-win32\lib\*.*" "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\..\..\external\spidermonkey\prebuilt\win32\*.*" "$(OutDir)" - libcocos2d.lib;libExtensions.lib;libCocosDenshion.lib;libchipmunk.lib;libJSBinding.lib;mozjs-23.0.lib;ws2_32.lib;sqlite3.lib;libcurl_imp.lib;%(AdditionalDependencies) + mozjs-23.0.lib;ws2_32.lib;sqlite3.lib;libcurl_imp.lib;%(AdditionalDependencies) $(OutDir);%(AdditionalLibraryDirectories) true Windows @@ -110,7 +112,7 @@ xcopy /Y /Q "$(ProjectDir)..\..\..\..\scripting\javascript\spidermonkey-win32\li if not exist "$(OutDir)" mkdir "$(OutDir)" if exist "$(OutDir)\AssetsManagerTestRes" rd /s /q "$(OutDir)\AssetsManagerTestRes" mkdir "$(OutDir)\AssetsManagerTestRes" -xcopy "$(ProjectDir)..\..\..\..\scripting\javascript\bindings\js\*.js" "$(OutDir)\AssetsManagerTestRes\" /e /Y +xcopy "$(ProjectDir)..\..\..\..\cocos\scripting\javascript\script\*.js" "$(OutDir)\AssetsManagerTestRes\" /e /Y xcopy "$(ProjectDir)..\Resources" "$(OutDir)\AssetsManagerTestRes\" /e /Y @@ -131,7 +133,7 @@ xcopy "$(ProjectDir)..\Resources" "$(OutDir)\AssetsManagerTestRes\" /e /Yres_p.c - $(ProjectDir)..\Classes;$(ProjectDir)..\..\..\..\scripting\javascript\spidermonkey-win32\include;$(ProjectDir)..\..\..\..\external\chipmunk\include\chipmunk;$(ProjectDir)..\..\..\..\extensions;$(ProjectDir)..\..\..\..\scripting\auto-generated\js-bindings;$(ProjectDir)..\..\..\..\scripting\javascript\bindings;$(ProjectDir)..\..\..\..\cocos2dx;$(ProjectDir)..\..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32\pthread;$(ProjectDir)..\..\..\..\audio\include;%(AdditionalIncludeDirectories) + $(ProjectDir)..\Classes;$(EngineRoot);$(EngineRoot)external\spidermonkey\include\win32;$(EngineRoot)external\chipmunk\include\chipmunk;$(EngineRoot)extensions;$(EngineRoot)cocos\scripting\javascript\bindings;$(EngineRoot)cocos\scripting\auto-generated\js-bindings;$(EngineRoot)cocos\audio\include;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;STRICT;NDEBUG;XP_WIN;JS_HAVE___INTN;JS_INTPTR_TYPE=int;COCOS2D_JAVASCRIPT=1;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) @@ -151,20 +153,21 @@ xcopy "$(ProjectDir)..\Resources" "$(OutDir)\AssetsManagerTestRes\" /e /Y if not exist "$(OutDir)" mkdir "$(OutDir)" -xcopy /Y /Q "$(ProjectDir)..\..\..\..\scripting\javascript\spidermonkey-win32\lib\*.*" "$(OutDir)" +xcopy /Y /Q "$(EngineRoot)external\spidermonkey\prebuilt\win32\*.*" "$(OutDir)" - libcocos2d.lib;libExtensions.lib;libCocosDenshion.lib;libchipmunk.lib;libJSBinding.lib;mozjs-23.0.lib;ws2_32.lib;sqlite3.lib;libcurl_imp.lib;%(AdditionalDependencies) + mozjs-23.0.lib;ws2_32.lib;sqlite3.lib;libcurl_imp.lib;%(AdditionalDependencies) $(OutDir);%(AdditionalLibraryDirectories) Windows MachineX86 + true if not exist "$(OutDir)" mkdir "$(OutDir)" if exist "$(OutDir)\AssetsManagerTestRes" rd /s /q "$(OutDir)\AssetsManagerTestRes" mkdir "$(OutDir)\AssetsManagerTestRes" -xcopy "$(ProjectDir)..\..\..\..\scripting\javascript\bindings\js\*.js" "$(OutDir)\AssetsManagerTestRes\" /e /Y +xcopy "$(ProjectDir)..\..\..\..\cocos\scripting\javascript\script\*.js" "$(OutDir)\AssetsManagerTestRes\" /e /Y xcopy "$(ProjectDir)..\Resources" "$(OutDir)\AssetsManagerTestRes\" /e /Y Copy js and resource files. @@ -185,13 +188,27 @@ xcopy "$(ProjectDir)..\Resources" "$(OutDir)\AssetsManagerTestRes\" /e /Y - + {98a51ba8-fc3a-415b-ac8f-8c7bd464e93e} false - + {f8edd7fa-9a51-4e80-baeb-860825d2eac6} - false + + + {625f7391-9a91-48a1-8cfc-79508c822637} + + + {39379840-825a-45a0-b363-c09ffef864bd} + + + {632a8f38-d0f0-4d22-86b3-d69f5e6bf63a} + + + {21b2c324-891f-48ea-ad1a-5ae13de12e28} + + + {207bc7a9-ccf1-4f2f-a04d-45f72242ae25} diff --git a/samples/Cpp/HelloCpp/proj.android/build_native.cmd b/samples/Cpp/HelloCpp/proj.android/build_native.cmd index 041749c380..f18ac5f170 100644 --- a/samples/Cpp/HelloCpp/proj.android/build_native.cmd +++ b/samples/Cpp/HelloCpp/proj.android/build_native.cmd @@ -62,7 +62,7 @@ if "%buildexternalsfromsource%"=="1" (goto :MODULE1) else (goto :MODULE2) goto :COPY_RES :MODULE2 echo "Using prebuilt externals" - set NDK_MODULE_PATH=%COCOS2DX_ROOT%;%COCOS2DX_ROOT%\cocos2dx\platform\third_party\android\prebuilt + set NDK_MODULE_PATH=%COCOS2DX_ROOT%\external;%COCOS2DX_ROOT%\cocos :COPY_RES echo NDK_ROOT = %NDK_ROOT% @@ -75,10 +75,9 @@ rem make sure assets is exist if exist %APP_ANDROID_ROOT%\assets rd /q /s %APP_ANDROID_ROOT%\assets mkdir %APP_ANDROID_ROOT%\assets -mkdir %APP_ANDROID_ROOT%\assets\res rem copy Resources/* into assets' root xcopy /e /q /r /y %APP_ROOT%\Resources\* %APP_ANDROID_ROOT%\assets -call %NDK_ROOT%\ndk-build.cmd NDK_LOG=0 V=0 +call %NDK_ROOT%\ndk-build.cmd NDK_LOG=0 V=0 %* pause \ No newline at end of file diff --git a/samples/Cpp/HelloCpp/proj.win32/HelloCpp.vcxproj b/samples/Cpp/HelloCpp/proj.win32/HelloCpp.vcxproj index 233a21ce9c..6da099a164 100644 --- a/samples/Cpp/HelloCpp/proj.win32/HelloCpp.vcxproj +++ b/samples/Cpp/HelloCpp/proj.win32/HelloCpp.vcxproj @@ -37,9 +37,11 @@ + + @@ -66,7 +68,7 @@ Disabled - $(ProjectDir)..\..\..\..\cocos\2d;$(ProjectDir)..\..\..\..\cocos\base;$(ProjectDir)..\..\..\..\cocos\physics;$(ProjectDir)..\..\..\..\cocos\math\kazmath\include;$(ProjectDir)..\..\..\..\cocos\2d\platform\win32;$(ProjectDir)..\..\..\..\external\glfw3\include\win32;$(ProjectDir)..\..\..\..\external\win32-specific\gles\include\OGLES;..\Classes;$(ProjectDir)..\..\..\..\external\chipmunk\include\chipmunk;%(AdditionalIncludeDirectories) + ..\Classes;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;COCOS2D_DEBUG=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -94,7 +96,7 @@ MaxSpeed true - $(ProjectDir)..\..\..\..\cocos\2d;$(ProjectDir)..\..\..\..\cocos\2d\include;$(ProjectDir)..\..\..\..\cocos\math\kazmath\include;$(ProjectDir)..\..\..\..\cocos\2d\platform\win32;$(ProjectDir)..\..\..\..\external\win32-specific\gles\include\OGLES;..\Classes;%(AdditionalIncludeDirectories) + ..\Classes;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) MultiThreadedDLL true @@ -135,9 +137,8 @@ {98a51ba8-fc3a-415b-ac8f-8c7bd464e93e} false - - {f8edd7fa-9a51-4e80-baeb-860825d2eac6} - false + + {207bc7a9-ccf1-4f2f-a04d-45f72242ae25} diff --git a/samples/Cpp/SimpleGame/proj.android/build_native.cmd b/samples/Cpp/SimpleGame/proj.android/build_native.cmd index cb8929af5b..437e55298f 100644 --- a/samples/Cpp/SimpleGame/proj.android/build_native.cmd +++ b/samples/Cpp/SimpleGame/proj.android/build_native.cmd @@ -62,7 +62,7 @@ if "%buildexternalsfromsource%"=="1" (goto :MODULE1) else (goto :MODULE2) goto :COPY_RES :MODULE2 echo "Using prebuilt externals" - set NDK_MODULE_PATH=%COCOS2DX_ROOT%;%COCOS2DX_ROOT%\cocos2dx\platform\third_party\android\prebuilt + set NDK_MODULE_PATH=%COCOS2DX_ROOT%;%COCOS2DX_ROOT%\cocos;%COCOS2DX_ROOT%\external :COPY_RES echo NDK_ROOT = %NDK_ROOT% @@ -75,10 +75,9 @@ rem make sure assets is exist if exist %APP_ANDROID_ROOT%\assets rd /q /s %APP_ANDROID_ROOT%\assets mkdir %APP_ANDROID_ROOT%\assets -mkdir %APP_ANDROID_ROOT%\assets\res rem copy Resources/* into assets' root xcopy /e /q /r /y %APP_ROOT%\Resources\* %APP_ANDROID_ROOT%\assets -call %NDK_ROOT%\ndk-build.cmd NDK_LOG=0 V=0 +call %NDK_ROOT%\ndk-build.cmd NDK_LOG=0 V=0 %* pause \ No newline at end of file diff --git a/samples/Cpp/TestCpp/proj.android/build_native.cmd b/samples/Cpp/TestCpp/proj.android/build_native.cmd index 44e95cafe7..d8eaaea7c7 100644 --- a/samples/Cpp/TestCpp/proj.android/build_native.cmd +++ b/samples/Cpp/TestCpp/proj.android/build_native.cmd @@ -62,7 +62,7 @@ if "%buildexternalsfromsource%"=="1" (goto :MODULE1) else (goto :MODULE2) goto :COPY_RES :MODULE2 echo "Using prebuilt externals" - set NDK_MODULE_PATH=%COCOS2DX_ROOT%;%COCOS2DX_ROOT%\cocos2dx\platform\third_party\android\prebuilt + set NDK_MODULE_PATH=%COCOS2DX_ROOT%;%COCOS2DX_ROOT%\external;%COCOS2DX_ROOT%\cocos :COPY_RES echo NDK_ROOT = %NDK_ROOT% @@ -75,10 +75,16 @@ rem make sure assets is exist if exist %APP_ANDROID_ROOT%\assets rd /q /s %APP_ANDROID_ROOT%\assets mkdir %APP_ANDROID_ROOT%\assets -mkdir %APP_ANDROID_ROOT%\assets\res rem copy Resources/* into assets' root xcopy /e /q /r /y %APP_ROOT%\Resources\* %APP_ANDROID_ROOT%\assets -call %NDK_ROOT%\ndk-build.cmd NDK_LOG=0 V=0 +rem remove test_image_rgba4444.pvr.gz +del /f /q %APP_ANDROID_ROOT%\assets\Images\test_image_rgba4444.pvr.gz +del /f /q %APP_ANDROID_ROOT%\assets\Images\test_1021x1024_rgba8888.pvr.gz +del /f /q %APP_ANDROID_ROOT%\assets\Images\test_1021x1024_rgb888.pvr.gz +del /f /q %APP_ANDROID_ROOT%\assets\Images\test_1021x1024_rgba4444.pvr.gz +del /f /q %APP_ANDROID_ROOT%\assets\Images\test_1021x1024_a8.pvr.gz + +call %NDK_ROOT%\ndk-build.cmd NDK_LOG=0 V=0 %* pause \ No newline at end of file diff --git a/samples/Cpp/TestCpp/proj.win32/TestCpp.vcxproj b/samples/Cpp/TestCpp/proj.win32/TestCpp.vcxproj index d9227050c3..1dd1fe3146 100644 --- a/samples/Cpp/TestCpp/proj.win32/TestCpp.vcxproj +++ b/samples/Cpp/TestCpp/proj.win32/TestCpp.vcxproj @@ -37,10 +37,12 @@ + + @@ -67,7 +69,7 @@ Disabled - $(ProjectDir)..\..\..\..\cocos\physics;$(ProjectDir)..\..\..\..\cocos\base;$(ProjectDir)..\..\..\..\cocos\2d;$(ProjectDir)..\..\..\..\cocos\math\kazmath\include;$(ProjectDir)..\..\..\..\cocos\2d\platform\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32;$(ProjectDir)..\..\..\..\external\win32-specific\gles\include\OGLES;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32\pthread;$(ProjectDir)..\..\..\..\external;$(ProjectDir)..\..\..\..\external\chipmunk\include\chipmunk;$(ProjectDir)..\..\..\..\external\glfw3\include\win32;$(ProjectDir)..\..\..\..\external\websockets\win32\include;$(ProjectDir)..\..\..\..\cocos\audio\include;$(ProjectDir)..\..\..\..\extensions;$(ProjectDir)..\..\..\..\cocos\network;..\Classes;..;%(AdditionalIncludeDirectories) + ..\Classes;$(EngineRoot);$(EngineRoot)cocos;$(EngineRoot)cocos\editor-support;$(EngineRoot)cocos\audio\include;$(EngineRoot)cocos\network;$(EngineRoot)external;$(EngineRoot)external\chipmunk\include\chipmunk;$(EngineRoot)external\curl\include\win32;$(EngineRoot)external\websockets\win32\include;$(EngineRoot)extensions;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USE_MATH_DEFINES;GL_GLEXT_PROTOTYPES;CC_ENABLE_CHIPMUNK_INTEGRATION=1;COCOS2D_DEBUG=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebugDLL @@ -84,7 +86,7 @@ true Windows MachineX86 - libExtensions.lib;libcocos2d.lib;libCocosDenshion.lib;libBox2d.lib;libchipmunk.lib;libcurl_imp.lib;websockets.lib;%(AdditionalDependencies) + libcurl_imp.lib;websockets.lib;%(AdditionalDependencies) @@ -92,7 +94,7 @@ if not exist "$(OutDir)" mkdir "$(OutDir)" -xcopy /Y /Q "$(ProjectDir)..\..\..\..\external\libwebsockets\win32\lib\*.*" "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\..\..\external\websockets\prebuilt\win32\*.*" "$(OutDir)" @@ -100,7 +102,7 @@ xcopy /Y /Q "$(ProjectDir)..\..\..\..\external\libwebsockets\win32\lib\*.*" "$(O MaxSpeed true - $(ProjectDir)..\..\..\..\cocos2dx;$(ProjectDir)..\..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32\pthread;$(ProjectDir)..\..\..\..\external;$(ProjectDir)..\..\..\..\external\chipmunk\include\chipmunk;$(ProjectDir)..\..\..\..\external\libwebsockets\win32\include;$(ProjectDir)..\..\..\..\audio\include;$(ProjectDir)..\..\..\..\extensions;$(ProjectDir)..\..\..\..\extensions\network;..\Classes;..;%(AdditionalIncludeDirectories) + ..\Classes;$(EngineRoot);$(EngineRoot)cocos;$(EngineRoot)cocos\editor-support;$(EngineRoot)cocos\audio\include;$(EngineRoot)cocos\network;$(EngineRoot)external;$(EngineRoot)external\chipmunk\include\chipmunk;$(EngineRoot)external\curl\include\win32;$(EngineRoot)external\websockets\win32\include;$(EngineRoot)extensions;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USE_MATH_DEFINES;GL_GLEXT_PROTOTYPES;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) MultiThreadedDLL true @@ -112,7 +114,7 @@ xcopy /Y /Q "$(ProjectDir)..\..\..\..\external\libwebsockets\win32\lib\*.*" "$(O true - libExtensions.lib;libcocos2d.lib;libCocosDenshion.lib;libBox2d.lib;libchipmunk.lib;libcurl_imp.lib;websockets.lib;%(AdditionalDependencies) + libcurl_imp.lib;websockets.lib;%(AdditionalDependencies) $(OutDir)$(ProjectName).exe $(OutDir);%(AdditionalLibraryDirectories) true @@ -127,7 +129,7 @@ xcopy /Y /Q "$(ProjectDir)..\..\..\..\external\libwebsockets\win32\lib\*.*" "$(O if not exist "$(OutDir)" mkdir "$(OutDir)" -xcopy /Y /Q "$(ProjectDir)..\..\..\..\external\libwebsockets\win32\lib\*.*" "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\..\..\external\websockets\prebuilt\win32\*.*" "$(OutDir)" @@ -467,6 +469,24 @@ xcopy /Y /Q "$(ProjectDir)..\..\..\..\external\libwebsockets\win32\lib\*.*" "$(O {f8edd7fa-9a51-4e80-baeb-860825d2eac6} false + + {811c0dab-7b96-4bd3-a154-b7572b58e4ab} + + + {b57cf53f-2e49-4031-9822-047cc0e6bde2} + + + {b7c2a162-dec9-4418-972e-240ab3cbfcae} + + + {7e06e92c-537a-442b-9e4a-4761c84f8a1a} + + + {df2638c0-8128-4847-867c-6eafe3dee7b5} + + + {632a8f38-d0f0-4d22-86b3-d69f5e6bf63a} + {21b2c324-891f-48ea-ad1a-5ae13de12e28} false diff --git a/samples/Javascript/CocosDragonJS/Classes/AppDelegate.cpp b/samples/Javascript/CocosDragonJS/Classes/AppDelegate.cpp index 3276d5deda..f14e6df017 100644 --- a/samples/Javascript/CocosDragonJS/Classes/AppDelegate.cpp +++ b/samples/Javascript/CocosDragonJS/Classes/AppDelegate.cpp @@ -8,11 +8,12 @@ #include "ScriptingCore.h" #include "jsb_cocos2dx_auto.hpp" #include "jsb_cocos2dx_extension_auto.hpp" -#include "jsb_cocos2dx_extension_manual.h" +#include "jsb_cocos2dx_builder_auto.hpp" +#include "extension/jsb_cocos2dx_extension_manual.h" #include "cocos2d_specifics.hpp" -#include "js_bindings_ccbreader.h" -#include "js_bindings_system_registration.h" -#include "js_bindings_chipmunk_registration.h" +#include "cocosbuilder/js_bindings_ccbreader.h" +#include "localstorage/js_bindings_system_registration.h" +#include "chipmunk/js_bindings_chipmunk_registration.h" #include "jsb_opengl_registration.h" USING_NS_CC; @@ -124,6 +125,7 @@ bool AppDelegate::applicationDidFinishLaunching() sc->addRegisterCallback(register_all_cocos2dx_extension); sc->addRegisterCallback(register_cocos2dx_js_extensions); sc->addRegisterCallback(register_all_cocos2dx_extension_manual); + sc->addRegisterCallback(register_all_cocos2dx_builder); sc->addRegisterCallback(register_CCBuilderReader); sc->addRegisterCallback(jsb_register_system); sc->addRegisterCallback(JSB_register_opengl); diff --git a/samples/Javascript/CocosDragonJS/proj.android/build_native.cmd b/samples/Javascript/CocosDragonJS/proj.android/build_native.cmd index 349e2aa5d7..76a9a7138f 100644 --- a/samples/Javascript/CocosDragonJS/proj.android/build_native.cmd +++ b/samples/Javascript/CocosDragonJS/proj.android/build_native.cmd @@ -57,7 +57,7 @@ set COCOS2DX_ROOT=%~dp0..\..\..\.. set APP_ROOT=%~dp0.. set APP_ANDROID_ROOT=%~dp0 set RESROUCE_ROOT="%APP_ROOT%\..\Shared\games\CocosDragonJS\Published files Android" -set BINDINGS_JS_ROOT=%APP_ROOT%\..\..\..\scripting\javascript\bindings\js +set BINDINGS_JS_ROOT=%COCOS2DX_ROOT%\cocos\scripting\javascript\script if "%buildexternalsfromsource%"=="1" (goto :MODULE1) else (goto :MODULE2) :MODULE1 @@ -66,7 +66,7 @@ if "%buildexternalsfromsource%"=="1" (goto :MODULE1) else (goto :MODULE2) goto :COPY_RES :MODULE2 echo "Using prebuilt externals" - set NDK_MODULE_PATH=%COCOS2DX_ROOT%;%COCOS2DX_ROOT%\cocos2dx\platform\third_party\android\prebuilt + set NDK_MODULE_PATH=%COCOS2DX_ROOT%;%COCOS2DX_ROOT%\cocos;%COCOS2DX_ROOT%\external :COPY_RES echo NDK_ROOT = %NDK_ROOT% @@ -79,7 +79,6 @@ rem make sure assets is exist if exist %APP_ANDROID_ROOT%\assets rd /q /s %APP_ANDROID_ROOT%\assets mkdir %APP_ANDROID_ROOT%\assets -mkdir %APP_ANDROID_ROOT%\assets\res rem copy Resources/* into assets' root xcopy /e /q /r /y %RESROUCE_ROOT%\* %APP_ANDROID_ROOT%\assets @@ -87,5 +86,5 @@ xcopy /e /q /r /y %RESROUCE_ROOT%\* %APP_ANDROID_ROOT%\assets rem copy bindings/*.js into assets' root xcopy /e /q /r /y %BINDINGS_JS_ROOT%\* %APP_ANDROID_ROOT%\assets -call %NDK_ROOT%\ndk-build.cmd %PARALLEL_BUILD_FLAG% NDK_LOG=0 V=0 +call %NDK_ROOT%\ndk-build.cmd %PARALLEL_BUILD_FLAG% NDK_LOG=0 V=0 %* pause diff --git a/samples/Javascript/CocosDragonJS/proj.win32/CocosDragonJS.vcxproj b/samples/Javascript/CocosDragonJS/proj.win32/CocosDragonJS.vcxproj index e67d8d64eb..8483cb7237 100644 --- a/samples/Javascript/CocosDragonJS/proj.win32/CocosDragonJS.vcxproj +++ b/samples/Javascript/CocosDragonJS/proj.win32/CocosDragonJS.vcxproj @@ -34,11 +34,13 @@ - + + - + + @@ -77,7 +79,7 @@ Disabled - $(ProjectDir)..\Classes;$(ProjectDir)..\..\..\..\scripting\javascript\spidermonkey-win32\include;$(ProjectDir)..\..\..\..\external\chipmunk\include\chipmunk;$(ProjectDir)..\..\..\..\extensions;$(ProjectDir)..\..\..\..\scripting\auto-generated\js-bindings;$(ProjectDir)..\..\..\..\scripting\javascript\bindings;$(ProjectDir)..\..\..\..\cocos2dx;$(ProjectDir)..\..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\..\..\audio\include;%(AdditionalIncludeDirectories) + $(ProjectDir)..\Classes;$(EngineRoot);$(EngineRoot)cocos\editor-support;$(EngineRoot)cocos\scripting\auto-generated\js-bindings;$(EngineRoot)cocos\scripting\javascript\bindings;$(EngineRoot)cocos\audio\include;$(EngineRoot)external\spidermonkey\include\win32;$(EngineRoot)external\chipmunk\include\chipmunk;$(EngineRoot)extensions;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;STRICT;_DEBUG;DEBUG;XP_WIN;JS_HAVE___INTN;JS_INTPTR_TYPE=int;COCOS2D_DEBUG=1;COCOS2D_JAVASCRIPT=1;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) false EnableFastChecks @@ -96,11 +98,11 @@ if not exist "$(OutDir)" mkdir "$(OutDir)" -xcopy /Y /Q "$(ProjectDir)..\..\..\..\scripting\javascript\spidermonkey-win32\lib\*.*" "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\..\..\external\spidermonkey\prebuilt\win32\*.*" "$(OutDir)" - libcocos2d.lib;libExtensions.lib;libCocosDenshion.lib;libchipmunk.lib;libJSBinding.lib;libcurl_imp.lib;mozjs-23.0.lib;ws2_32.lib;sqlite3.lib;%(AdditionalDependencies) + libcurl_imp.lib;mozjs-23.0.lib;ws2_32.lib;sqlite3.lib;%(AdditionalDependencies) $(OutDir);%(AdditionalLibraryDirectories) true Windows @@ -110,7 +112,7 @@ xcopy /Y /Q "$(ProjectDir)..\..\..\..\scripting\javascript\spidermonkey-win32\li if not exist "$(OutDir)" mkdir "$(OutDir)" if exist "$(OutDir)\CocosDragonJSRes" rd /s /q "$(OutDir)\CocosDragonJSRes" mkdir "$(OutDir)\CocosDragonJSRes" -xcopy "$(ProjectDir)..\..\..\..\scripting\javascript\bindings\js\*.js" "$(OutDir)\CocosDragonJSRes" /e /Y +xcopy "$(ProjectDir)..\..\..\..\cocos\scripting\javascript\script\*.js" "$(OutDir)\CocosDragonJSRes" /e /Y xcopy "$(ProjectDir)..\..\Shared\games\CocosDragonJS\Published files Android" "$(OutDir)\CocosDragonJSRes\" /e /Y @@ -131,7 +133,7 @@ xcopy "$(ProjectDir)..\..\Shared\games\CocosDragonJS\Published files Android" "$ testjs_p.c - $(ProjectDir)..\Classes;$(ProjectDir)..\..\..\..\scripting\javascript\spidermonkey-win32\include;$(ProjectDir)..\..\..\..\external\chipmunk\include\chipmunk;$(ProjectDir)..\..\..\..\extensions;$(ProjectDir)..\..\..\..\scripting\auto-generated\js-bindings;$(ProjectDir)..\..\..\..\scripting\javascript\bindings;$(ProjectDir)..\..\..\..\cocos2dx;$(ProjectDir)..\..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\..\..\audio\include;%(AdditionalIncludeDirectories) + $(ProjectDir)..\Classes;$(EngineRoot);$(EngineRoot)cocos\editor-support;$(EngineRoot)cocos\scripting\auto-generated\js-bindings;$(EngineRoot)cocos\scripting\javascript\bindings;$(EngineRoot)cocos\audio\include;$(EngineRoot)external\spidermonkey\include\win32;$(EngineRoot)external\chipmunk\include\chipmunk;$(EngineRoot)extensions;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;STRICT;NDEBUG;XP_WIN;JS_HAVE___INTN;JS_INTPTR_TYPE=int;CC_ENABLE_CHIPMUNK_INTEGRATION=1;COCOS2D_JAVASCRIPT=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) @@ -151,20 +153,21 @@ xcopy "$(ProjectDir)..\..\Shared\games\CocosDragonJS\Published files Android" "$ if not exist "$(OutDir)" mkdir "$(OutDir)" -xcopy /Y /Q "$(ProjectDir)..\..\..\..\scripting\javascript\spidermonkey-win32\lib\*.*" "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\..\..\external\spidermonkey\prebuilt\win32\*.*" "$(OutDir)" - libcocos2d.lib;libExtensions.lib;libCocosDenshion.lib;libchipmunk.lib;libJSBinding.lib;libcurl_imp.lib;mozjs-23.0.lib;ws2_32.lib;sqlite3.lib;%(AdditionalDependencies) + libcurl_imp.lib;mozjs-23.0.lib;ws2_32.lib;sqlite3.lib;%(AdditionalDependencies) $(OutDir);%(AdditionalLibraryDirectories) Windows MachineX86 + true if not exist "$(OutDir)" mkdir "$(OutDir)" if exist "$(OutDir)\CocosDragonJSRes" rd /s /q "$(OutDir)\CocosDragonJSRes" mkdir "$(OutDir)\CocosDragonJSRes" -xcopy "$(ProjectDir)..\..\..\..\scripting\javascript\bindings\js\*.js" "$(OutDir)\CocosDragonJSRes" /e /Y +xcopy "$(ProjectDir)..\..\..\..\cocos\scripting\javascript\script\*.js" "$(OutDir)\CocosDragonJSRes" /e /Y xcopy "$(ProjectDir)..\..\Shared\games\CocosDragonJS\Published files Android" "$(OutDir)\CocosDragonJSRes\" /e /Y Copy js and resource files. @@ -185,13 +188,38 @@ xcopy "$(ProjectDir)..\..\Shared\games\CocosDragonJS\Published files Android" "$ - + {98a51ba8-fc3a-415b-ac8f-8c7bd464e93e} - false - + {f8edd7fa-9a51-4e80-baeb-860825d2eac6} - false + + + {811c0dab-7b96-4bd3-a154-b7572b58e4ab} + + + {21070e58-eec6-4e16-8b4f-6d083df55790} + + + {f9da0fc1-651b-457b-962e-a4d61cebf5fd} + + + {625f7391-9a91-48a1-8cfc-79508c822637} + + + {68f5f371-bd7b-4c30-ae5b-0b08f22e0cde} + + + {39379840-825a-45a0-b363-c09ffef864bd} + + + {632a8f38-d0f0-4d22-86b3-d69f5e6bf63a} + + + {21b2c324-891f-48ea-ad1a-5ae13de12e28} + + + {207bc7a9-ccf1-4f2f-a04d-45f72242ae25} diff --git a/samples/Javascript/CrystalCraze/Classes/AppDelegate.cpp b/samples/Javascript/CrystalCraze/Classes/AppDelegate.cpp index 27520db220..63f1c31aed 100644 --- a/samples/Javascript/CrystalCraze/Classes/AppDelegate.cpp +++ b/samples/Javascript/CrystalCraze/Classes/AppDelegate.cpp @@ -5,11 +5,12 @@ #include "ScriptingCore.h" #include "jsb_cocos2dx_auto.hpp" #include "jsb_cocos2dx_extension_auto.hpp" -#include "jsb_cocos2dx_extension_manual.h" +#include "jsb_cocos2dx_builder_auto.hpp" +#include "extension/jsb_cocos2dx_extension_manual.h" #include "cocos2d_specifics.hpp" -#include "js_bindings_ccbreader.h" -#include "js_bindings_system_registration.h" -#include "js_bindings_chipmunk_registration.h" +#include "cocosbuilder/js_bindings_ccbreader.h" +#include "localstorage/js_bindings_system_registration.h" +#include "chipmunk/js_bindings_chipmunk_registration.h" #include "jsb_opengl_registration.h" USING_NS_CC; @@ -106,6 +107,7 @@ bool AppDelegate::applicationDidFinishLaunching() sc->addRegisterCallback(register_cocos2dx_js_extensions); sc->addRegisterCallback(jsb_register_chipmunk); sc->addRegisterCallback(register_all_cocos2dx_extension_manual); + sc->addRegisterCallback(register_all_cocos2dx_builder); sc->addRegisterCallback(register_CCBuilderReader); sc->addRegisterCallback(jsb_register_system); sc->addRegisterCallback(JSB_register_opengl); diff --git a/samples/Javascript/CrystalCraze/proj.android/build_native.cmd b/samples/Javascript/CrystalCraze/proj.android/build_native.cmd index 6c248549ae..22f5ad4442 100644 --- a/samples/Javascript/CrystalCraze/proj.android/build_native.cmd +++ b/samples/Javascript/CrystalCraze/proj.android/build_native.cmd @@ -57,7 +57,7 @@ set COCOS2DX_ROOT=%~dp0..\..\..\.. set APP_ROOT=%~dp0.. set APP_ANDROID_ROOT=%~dp0 set RESROUCE_ROOT="%APP_ROOT%\..\Shared\games\CrystalCraze\Published-Android" -set BINDINGS_JS_ROOT=%APP_ROOT%\..\..\..\scripting\javascript\bindings\js +set BINDINGS_JS_ROOT=%COCOS2DX_ROOT%\cocos\scripting\javascript\script if "%buildexternalsfromsource%"=="1" (goto :MODULE1) else (goto :MODULE2) :MODULE1 @@ -66,7 +66,7 @@ if "%buildexternalsfromsource%"=="1" (goto :MODULE1) else (goto :MODULE2) goto :COPY_RES :MODULE2 echo "Using prebuilt externals" - set NDK_MODULE_PATH=%COCOS2DX_ROOT%;%COCOS2DX_ROOT%\cocos2dx\platform\third_party\android\prebuilt + set NDK_MODULE_PATH=%COCOS2DX_ROOT%;%COCOS2DX_ROOT%\cocos;%COCOS2DX_ROOT%\external :COPY_RES echo NDK_ROOT = %NDK_ROOT% @@ -79,7 +79,6 @@ rem make sure assets is exist if exist %APP_ANDROID_ROOT%\assets rd /q /s %APP_ANDROID_ROOT%\assets mkdir %APP_ANDROID_ROOT%\assets -mkdir %APP_ANDROID_ROOT%\assets\res rem copy Resources/* into assets' root xcopy /e /q /r /y %RESROUCE_ROOT%\* %APP_ANDROID_ROOT%\assets @@ -87,5 +86,5 @@ xcopy /e /q /r /y %RESROUCE_ROOT%\* %APP_ANDROID_ROOT%\assets rem copy bindings/*.js into assets' root xcopy /e /q /r /y %BINDINGS_JS_ROOT%\* %APP_ANDROID_ROOT%\assets -call %NDK_ROOT%\ndk-build.cmd %PARALLEL_BUILD_FLAG% NDK_LOG=0 V=0 +call %NDK_ROOT%\ndk-build.cmd %PARALLEL_BUILD_FLAG% NDK_LOG=0 V=0 %* pause diff --git a/samples/Javascript/CrystalCraze/proj.win32/CrystalCraze.vcxproj b/samples/Javascript/CrystalCraze/proj.win32/CrystalCraze.vcxproj index e2a144bff1..6194bc0354 100644 --- a/samples/Javascript/CrystalCraze/proj.win32/CrystalCraze.vcxproj +++ b/samples/Javascript/CrystalCraze/proj.win32/CrystalCraze.vcxproj @@ -34,11 +34,13 @@ - + + - + + @@ -77,7 +79,7 @@ Disabled - $(ProjectDir)..\Classes;$(ProjectDir)..\..\..\..\scripting\javascript\spidermonkey-win32\include;$(ProjectDir)..\..\..\..\external\chipmunk\include\chipmunk;$(ProjectDir)..\..\..\..\extensions;$(ProjectDir)..\..\..\..\scripting\auto-generated\js-bindings;$(ProjectDir)..\..\..\..\scripting\javascript\bindings;$(ProjectDir)..\..\..\..\cocos2dx;$(ProjectDir)..\..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\..\..\audio\include;%(AdditionalIncludeDirectories) + $(ProjectDir)..\Classes;$(EngineRoot);$(EngineRoot)cocos\editor-support;$(EngineRoot)cocos\scripting\auto-generated\js-bindings;$(EngineRoot)cocos\scripting\javascript\bindings;$(EngineRoot)cocos\audio\include;$(EngineRoot)external\spidermonkey\include\win32;$(EngineRoot)external\chipmunk\include\chipmunk;$(EngineRoot)extensions;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;STRICT;_DEBUG;DEBUG;XP_WIN;JS_HAVE___INTN;JS_INTPTR_TYPE=int;COCOS2D_DEBUG=1;COCOS2D_JAVASCRIPT=1;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) false EnableFastChecks @@ -96,11 +98,11 @@ if not exist "$(OutDir)" mkdir "$(OutDir)" -xcopy /Y /Q "$(ProjectDir)..\..\..\..\scripting\javascript\spidermonkey-win32\lib\*.*" "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\..\..\external\spidermonkey\prebuilt\win32\*.*" "$(OutDir)" - libcocos2d.lib;libExtensions.lib;libCocosDenshion.lib;libchipmunk.lib;libJSBinding.lib;libcurl_imp.lib;mozjs-23.0.lib;ws2_32.lib;sqlite3.lib;%(AdditionalDependencies) + libcurl_imp.lib;mozjs-23.0.lib;ws2_32.lib;sqlite3.lib;%(AdditionalDependencies) $(OutDir);%(AdditionalLibraryDirectories) true Windows @@ -110,7 +112,7 @@ xcopy /Y /Q "$(ProjectDir)..\..\..\..\scripting\javascript\spidermonkey-win32\li if not exist "$(OutDir)" mkdir "$(OutDir)" if exist "$(OutDir)\CrystalCrazeRes" rd /s /q "$(OutDir)\CrystalCrazeRes" mkdir "$(OutDir)\CrystalCrazeRes" -xcopy "$(ProjectDir)..\..\..\..\scripting\javascript\bindings\js\*.js" "$(OutDir)\CrystalCrazeRes" /e /Y +xcopy "$(ProjectDir)..\..\..\..\cocos\scripting\javascript\script\*.js" "$(OutDir)\CrystalCrazeRes" /e /Y xcopy "$(ProjectDir)..\..\Shared\games\CrystalCraze\Published-Android" "$(OutDir)\CrystalCrazeRes\" /e /Y @@ -131,7 +133,7 @@ xcopy "$(ProjectDir)..\..\Shared\games\CrystalCraze\Published-Android" "$(OutDir testjs_p.c - $(ProjectDir)..\Classes;$(ProjectDir)..\..\..\..\scripting\javascript\spidermonkey-win32\include;$(ProjectDir)..\..\..\..\external\chipmunk\include\chipmunk;$(ProjectDir)..\..\..\..\extensions;$(ProjectDir)..\..\..\..\scripting\auto-generated\js-bindings;$(ProjectDir)..\..\..\..\scripting\javascript\bindings;$(ProjectDir)..\..\..\..\cocos2dx;$(ProjectDir)..\..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\..\..\audio\include;%(AdditionalIncludeDirectories) + $(ProjectDir)..\Classes;$(EngineRoot);$(EngineRoot)cocos\editor-support;$(EngineRoot)cocos\scripting\auto-generated\js-bindings;$(EngineRoot)cocos\scripting\javascript\bindings;$(EngineRoot)cocos\audio\include;$(EngineRoot)external\spidermonkey\include\win32;$(EngineRoot)external\chipmunk\include\chipmunk;$(EngineRoot)extensions;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;STRICT;NDEBUG;XP_WIN;JS_HAVE___INTN;JS_INTPTR_TYPE=int;CC_ENABLE_CHIPMUNK_INTEGRATION=1;COCOS2D_JAVASCRIPT=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) @@ -151,20 +153,21 @@ xcopy "$(ProjectDir)..\..\Shared\games\CrystalCraze\Published-Android" "$(OutDir if not exist "$(OutDir)" mkdir "$(OutDir)" -xcopy /Y /Q "$(ProjectDir)..\..\..\..\scripting\javascript\spidermonkey-win32\lib\*.*" "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\..\..\external\spidermonkey\prebuilt\win32\*.*" "$(OutDir)" - libcocos2d.lib;libExtensions.lib;libCocosDenshion.lib;libchipmunk.lib;libJSBinding.lib;libcurl_imp.lib;mozjs-23.0.lib;ws2_32.lib;sqlite3.lib;%(AdditionalDependencies) + libcurl_imp.lib;mozjs-23.0.lib;ws2_32.lib;sqlite3.lib;%(AdditionalDependencies) $(OutDir);%(AdditionalLibraryDirectories) Windows MachineX86 + true if not exist "$(OutDir)" mkdir "$(OutDir)" if exist "$(OutDir)\CrystalCrazeRes" rd /s /q "$(OutDir)\CrystalCrazeRes" mkdir "$(OutDir)\CrystalCrazeRes" -xcopy "$(ProjectDir)..\..\..\..\scripting\javascript\bindings\js\*.js" "$(OutDir)\CrystalCrazeRes" /e /Y +xcopy "$(ProjectDir)..\..\..\..\cocos\scripting\javascript\script\*.js" "$(OutDir)\CrystalCrazeRes" /e /Y xcopy "$(ProjectDir)..\..\Shared\games\CrystalCraze\Published-Android" "$(OutDir)\CrystalCrazeRes\" /e /Y Copy js and resource files. @@ -185,13 +188,44 @@ xcopy "$(ProjectDir)..\..\Shared\games\CrystalCraze\Published-Android" "$(OutDir - + {98a51ba8-fc3a-415b-ac8f-8c7bd464e93e} - false - + {f8edd7fa-9a51-4e80-baeb-860825d2eac6} - false + + + {811c0dab-7b96-4bd3-a154-b7572b58e4ab} + + + {b57cf53f-2e49-4031-9822-047cc0e6bde2} + + + {df2638c0-8128-4847-867c-6eafe3dee7b5} + + + {21070e58-eec6-4e16-8b4f-6d083df55790} + + + {f9da0fc1-651b-457b-962e-a4d61cebf5fd} + + + {625f7391-9a91-48a1-8cfc-79508c822637} + + + {68f5f371-bd7b-4c30-ae5b-0b08f22e0cde} + + + {39379840-825a-45a0-b363-c09ffef864bd} + + + {632a8f38-d0f0-4d22-86b3-d69f5e6bf63a} + + + {21b2c324-891f-48ea-ad1a-5ae13de12e28} + + + {207bc7a9-ccf1-4f2f-a04d-45f72242ae25} diff --git a/samples/Javascript/MoonWarriors/Classes/AppDelegate.cpp b/samples/Javascript/MoonWarriors/Classes/AppDelegate.cpp index 7e7a33a156..c1406c1586 100644 --- a/samples/Javascript/MoonWarriors/Classes/AppDelegate.cpp +++ b/samples/Javascript/MoonWarriors/Classes/AppDelegate.cpp @@ -5,11 +5,12 @@ #include "ScriptingCore.h" #include "jsb_cocos2dx_auto.hpp" #include "jsb_cocos2dx_extension_auto.hpp" -#include "jsb_cocos2dx_extension_manual.h" +#include "jsb_cocos2dx_builder_auto.hpp" +#include "extension/jsb_cocos2dx_extension_manual.h" #include "cocos2d_specifics.hpp" -#include "js_bindings_ccbreader.h" -#include "js_bindings_system_registration.h" -#include "js_bindings_chipmunk_registration.h" +#include "cocosbuilder/js_bindings_ccbreader.h" +#include "localstorage/js_bindings_system_registration.h" +#include "chipmunk/js_bindings_chipmunk_registration.h" #include "jsb_opengl_registration.h" USING_NS_CC; @@ -48,6 +49,7 @@ bool AppDelegate::applicationDidFinishLaunching() sc->addRegisterCallback(register_cocos2dx_js_extensions); sc->addRegisterCallback(jsb_register_chipmunk); sc->addRegisterCallback(register_all_cocos2dx_extension_manual); + sc->addRegisterCallback(register_all_cocos2dx_builder); sc->addRegisterCallback(register_CCBuilderReader); sc->addRegisterCallback(jsb_register_system); sc->addRegisterCallback(JSB_register_opengl); diff --git a/samples/Javascript/MoonWarriors/proj.android/build_native.cmd b/samples/Javascript/MoonWarriors/proj.android/build_native.cmd index d2dbb3a7e8..e2c1c82c7e 100644 --- a/samples/Javascript/MoonWarriors/proj.android/build_native.cmd +++ b/samples/Javascript/MoonWarriors/proj.android/build_native.cmd @@ -57,7 +57,7 @@ set COCOS2DX_ROOT=%~dp0..\..\..\.. set APP_ROOT=%~dp0.. set APP_ANDROID_ROOT=%~dp0 set RESROUCE_ROOT="%APP_ROOT%\..\Shared\games\MoonWarriors\res" -set BINDINGS_JS_ROOT=%APP_ROOT%\..\..\..\scripting\javascript\bindings\js +set BINDINGS_JS_ROOT=%COCOS2DX_ROOT%\cocos\scripting\javascript\script if "%buildexternalsfromsource%"=="1" (goto :MODULE1) else (goto :MODULE2) :MODULE1 @@ -66,7 +66,7 @@ if "%buildexternalsfromsource%"=="1" (goto :MODULE1) else (goto :MODULE2) goto :COPY_RES :MODULE2 echo "Using prebuilt externals" - set NDK_MODULE_PATH=%COCOS2DX_ROOT%;%COCOS2DX_ROOT%\cocos2dx\platform\third_party\android\prebuilt + set NDK_MODULE_PATH=%COCOS2DX_ROOT%;%COCOS2DX_ROOT%\cocos;%COCOS2DX_ROOT%\external :COPY_RES echo NDK_ROOT = %NDK_ROOT% @@ -79,13 +79,12 @@ rem make sure assets is exist if exist %APP_ANDROID_ROOT%\assets rd /q /s %APP_ANDROID_ROOT%\assets mkdir %APP_ANDROID_ROOT%\assets -mkdir %APP_ANDROID_ROOT%\assets\res rem copy Resources/* into assets' root xcopy /e /q /r /y %RESROUCE_ROOT%\* %APP_ANDROID_ROOT%\assets rem copy MoonWarriors js -xcopy /e /q /r /y %RESROUCE_ROOT%\..\src\* %APP_ANDROID_ROOT%\assets +xcopy /e /q /r /y %RESROUCE_ROOT%\..\src %APP_ANDROID_ROOT%\assets rem copy MoonWarriors-native.js xcopy /e /q /r /y %RESROUCE_ROOT%\..\* %APP_ANDROID_ROOT%\assets @@ -93,5 +92,5 @@ xcopy /e /q /r /y %RESROUCE_ROOT%\..\* %APP_ANDROID_ROOT%\assets rem copy bindings/*.js into assets' root xcopy /e /q /r /y %BINDINGS_JS_ROOT%\* %APP_ANDROID_ROOT%\assets -call %NDK_ROOT%\ndk-build.cmd %PARALLEL_BUILD_FLAG% NDK_LOG=0 V=0 +call %NDK_ROOT%\ndk-build.cmd %PARALLEL_BUILD_FLAG% NDK_LOG=0 V=0 %* pause diff --git a/samples/Javascript/MoonWarriors/proj.win32/MoonWarriors.vcxproj b/samples/Javascript/MoonWarriors/proj.win32/MoonWarriors.vcxproj index 1b8d85f756..08efa5fdba 100644 --- a/samples/Javascript/MoonWarriors/proj.win32/MoonWarriors.vcxproj +++ b/samples/Javascript/MoonWarriors/proj.win32/MoonWarriors.vcxproj @@ -34,19 +34,21 @@ - + + - + + <_ProjectFileVersion>10.0.40219.1 - $(ProjectDir)..\..\..\..\$(Configuration).win32\ + $(SolutionDir)$(Configuration).win32\ $(Configuration).win32\ false - $(ProjectDir)..\..\..\..\$(Configuration).win32\ + $(SolutionDir)$(Configuration).win32\ $(Configuration).win32\ false AllRules.ruleset @@ -77,7 +79,7 @@ Disabled - .;..\Classes;$(ProjectDir)..\..\..\..\scripting\javascript\spidermonkey-win32\include;$(ProjectDir)..\..\..\..\external\chipmunk\include\chipmunk;$(ProjectDir)..\..\..\..\scripting\auto-generated\js-bindings;$(ProjectDir)..\..\..\..\scripting\javascript\bindings;$(ProjectDir)..\..\..\..\extensions;$(ProjectDir)..\..\..\..\cocos2dx;$(ProjectDir)..\..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\..\..\audio\include;%(AdditionalIncludeDirectories) + .;..\Classes;$(EngineRoot);$(EngineRoot)cocos\editor-support;$(EngineRoot)cocos\scripting\auto-generated\js-bindings;$(EngineRoot)cocos\scripting\javascript\bindings;$(EngineRoot)cocos\audio\include;$(EngineRoot)external\spidermonkey\include\win32;$(EngineRoot)external\chipmunk\include\chipmunk;$(EngineRoot)extensions;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;STRICT;_DEBUG;DEBUG;XP_WIN;JS_HAVE___INTN;JS_INTPTR_TYPE=int;COCOS2D_DEBUG=1;COCOS2D_JAVASCRIPT=1;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) false EnableFastChecks @@ -96,11 +98,11 @@ if not exist "$(OutDir)" mkdir "$(OutDir)" -xcopy /Y /Q "$(ProjectDir)..\..\..\..\scripting\javascript\spidermonkey-win32\lib\*.*" "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\..\..\external\spidermonkey\prebuilt\win32\*.*" "$(OutDir)" - libcocos2d.lib;libExtensions.lib;libCocosDenshion.lib;libchipmunk.lib;libJSBinding.lib;libcurl_imp.lib;mozjs-23.0.lib;ws2_32.lib;sqlite3.lib;%(AdditionalDependencies) + libcurl_imp.lib;mozjs-23.0.lib;ws2_32.lib;sqlite3.lib;%(AdditionalDependencies) $(OutDir);%(AdditionalLibraryDirectories) true Windows @@ -110,7 +112,7 @@ xcopy /Y /Q "$(ProjectDir)..\..\..\..\scripting\javascript\spidermonkey-win32\li if not exist "$(OutDir)" mkdir "$(OutDir)" if exist "$(OutDir)\MoonWarriorsRes" rd /s /q "$(OutDir)\MoonWarriorsRes" mkdir "$(OutDir)\MoonWarriorsRes" -xcopy "$(ProjectDir)..\..\..\..\scripting\javascript\bindings\js\*.js" "$(OutDir)\MoonWarriorsRes" /e /Y +xcopy "$(ProjectDir)..\..\..\..\cocos\scripting\javascript\script\*.js" "$(OutDir)\MoonWarriorsRes" /e /Y xcopy "$(ProjectDir)..\..\Shared\games\MoonWarriors" "$(OutDir)\MoonWarriorsRes\" /e /Y Copy js and resource files. @@ -129,7 +131,7 @@ xcopy "$(ProjectDir)..\..\Shared\games\MoonWarriors" "$(OutDir)\MoonWarriorsRes\ testjs_p.c - .;..\Classes;$(ProjectDir)..\..\..\..\scripting\javascript\spidermonkey-win32\include;$(ProjectDir)..\..\..\..\external\chipmunk\include\chipmunk;$(ProjectDir)..\..\..\..\scripting\auto-generated\js-bindings;$(ProjectDir)..\..\..\..\scripting\javascript\bindings;$(ProjectDir)..\..\..\..\extensions;$(ProjectDir)..\..\..\..\cocos2dx;$(ProjectDir)..\..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\..\..\audio\include;%(AdditionalIncludeDirectories) + .;..\Classes;$(EngineRoot);$(EngineRoot)cocos\editor-support;$(EngineRoot)cocos\scripting\auto-generated\js-bindings;$(EngineRoot)cocos\scripting\javascript\bindings;$(EngineRoot)cocos\audio\include;$(EngineRoot)external\spidermonkey\include\win32;$(EngineRoot)external\chipmunk\include\chipmunk;$(EngineRoot)extensions;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;STRICT;NDEBUG;XP_WIN;JS_HAVE___INTN;JS_INTPTR_TYPE=int;COCOS2D_JAVASCRIPT=1;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) @@ -149,20 +151,21 @@ xcopy "$(ProjectDir)..\..\Shared\games\MoonWarriors" "$(OutDir)\MoonWarriorsRes\ if not exist "$(OutDir)" mkdir "$(OutDir)" -xcopy /Y /Q "$(ProjectDir)..\..\..\..\scripting\javascript\spidermonkey-win32\lib\*.*" "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\..\..\external\spidermonkey\prebuilt\win32\*.*" "$(OutDir)" - libcocos2d.lib;libExtensions.lib;libCocosDenshion.lib;libchipmunk.lib;libJSBinding.lib;libcurl_imp.lib;mozjs-23.0.lib;ws2_32.lib;sqlite3.lib;%(AdditionalDependencies) + libcurl_imp.lib;mozjs-23.0.lib;ws2_32.lib;sqlite3.lib;%(AdditionalDependencies) $(OutDir);%(AdditionalLibraryDirectories) Windows MachineX86 + true if not exist "$(OutDir)" mkdir "$(OutDir)" if exist "$(OutDir)\MoonWarriorsRes" rd /s /q "$(OutDir)\MoonWarriorsRes" mkdir "$(OutDir)\MoonWarriorsRes" -xcopy "$(ProjectDir)..\..\..\..\scripting\javascript\bindings\js\*.js" "$(OutDir)\MoonWarriorsRes" /e /Y +xcopy "$(ProjectDir)..\..\..\..\cocos\scripting\javascript\script\*.js" "$(OutDir)\MoonWarriorsRes" /e /Y xcopy "$(ProjectDir)..\..\Shared\games\MoonWarriors" "$(OutDir)\MoonWarriorsRes\" /e /Y Copy js and resource files. @@ -183,13 +186,47 @@ xcopy "$(ProjectDir)..\..\Shared\games\MoonWarriors" "$(OutDir)\MoonWarriorsRes\ - + {98a51ba8-fc3a-415b-ac8f-8c7bd464e93e} - false - + {f8edd7fa-9a51-4e80-baeb-860825d2eac6} - false + + + {811c0dab-7b96-4bd3-a154-b7572b58e4ab} + + + {b57cf53f-2e49-4031-9822-047cc0e6bde2} + + + {7e06e92c-537a-442b-9e4a-4761c84f8a1a} + + + {df2638c0-8128-4847-867c-6eafe3dee7b5} + + + {21070e58-eec6-4e16-8b4f-6d083df55790} + + + {f9da0fc1-651b-457b-962e-a4d61cebf5fd} + + + {625f7391-9a91-48a1-8cfc-79508c822637} + + + {68f5f371-bd7b-4c30-ae5b-0b08f22e0cde} + + + {39379840-825a-45a0-b363-c09ffef864bd} + + + {632a8f38-d0f0-4d22-86b3-d69f5e6bf63a} + + + {21b2c324-891f-48ea-ad1a-5ae13de12e28} + + + {207bc7a9-ccf1-4f2f-a04d-45f72242ae25} diff --git a/samples/Javascript/TestJavascript/Classes/AppDelegate.cpp b/samples/Javascript/TestJavascript/Classes/AppDelegate.cpp index 51ebd8d85f..2a26806916 100644 --- a/samples/Javascript/TestJavascript/Classes/AppDelegate.cpp +++ b/samples/Javascript/TestJavascript/Classes/AppDelegate.cpp @@ -5,14 +5,18 @@ #include "ScriptingCore.h" #include "jsb_cocos2dx_auto.hpp" #include "jsb_cocos2dx_extension_auto.hpp" -#include "jsb_cocos2dx_extension_manual.h" +#include "jsb_cocos2dx_builder_auto.hpp" +#include "jsb_cocos2dx_studio_auto.hpp" +#include "extension/jsb_cocos2dx_extension_manual.h" +#include "cocostudio/jsb_cocos2dx_studio_manual.h" #include "cocos2d_specifics.hpp" -#include "js_bindings_chipmunk_registration.h" -#include "js_bindings_system_registration.h" +#include "cocosbuilder/cocosbuilder_specifics.hpp" +#include "chipmunk/js_bindings_chipmunk_registration.h" +#include "localstorage/js_bindings_system_registration.h" #include "jsb_opengl_registration.h" -#include "XMLHTTPRequest.h" -#include "jsb_websocket.h" -#include "js_bindings_ccbreader.h" +#include "network/XMLHTTPRequest.h" +#include "network/jsb_websocket.h" +#include "cocosbuilder/js_bindings_ccbreader.h" USING_NS_CC; USING_NS_CC_EXT; @@ -54,7 +58,12 @@ bool AppDelegate::applicationDidFinishLaunching() sc->addRegisterCallback(jsb_register_system); sc->addRegisterCallback(MinXmlHttpRequest::_js_register); sc->addRegisterCallback(register_jsb_websocket); + + sc->addRegisterCallback(register_all_cocos2dx_builder); sc->addRegisterCallback(register_CCBuilderReader); + + sc->addRegisterCallback(register_all_cocos2dx_studio); + sc->addRegisterCallback(register_all_cocos2dx_studio_manual); sc->start(); diff --git a/samples/Javascript/TestJavascript/proj.android/build_native.cmd b/samples/Javascript/TestJavascript/proj.android/build_native.cmd index 19ee06dd56..a0a5ec0785 100644 --- a/samples/Javascript/TestJavascript/proj.android/build_native.cmd +++ b/samples/Javascript/TestJavascript/proj.android/build_native.cmd @@ -56,7 +56,7 @@ exit /b 1 set COCOS2DX_ROOT=%~dp0..\..\..\.. set APP_ROOT=%~dp0.. set APP_ANDROID_ROOT=%~dp0 -set BINDINGS_JS_ROOT=%APP_ROOT%\..\..\..\scripting\javascript\bindings\js +set BINDINGS_JS_ROOT=%COCOS2DX_ROOT%\cocos\scripting\javascript\script if "%buildexternalsfromsource%"=="1" (goto :MODULE1) else (goto :MODULE2) :MODULE1 @@ -65,7 +65,7 @@ if "%buildexternalsfromsource%"=="1" (goto :MODULE1) else (goto :MODULE2) goto :COPY_RES :MODULE2 echo "Using prebuilt externals" - set NDK_MODULE_PATH=%COCOS2DX_ROOT%;%COCOS2DX_ROOT%\cocos2dx\platform\third_party\android\prebuilt + set NDK_MODULE_PATH=%COCOS2DX_ROOT%;%COCOS2DX_ROOT%\cocos;%COCOS2DX_ROOT%\external :COPY_RES echo NDK_ROOT = %NDK_ROOT% @@ -86,5 +86,5 @@ xcopy /e /q /r /y %APP_ROOT%\..\Shared\tests\* %APP_ANDROID_ROOT%\assets rem copy bindings/*.js into assets' root xcopy /e /q /r /y %BINDINGS_JS_ROOT%\* %APP_ANDROID_ROOT%\assets -call %NDK_ROOT%\ndk-build.cmd %PARALLEL_BUILD_FLAG% NDK_LOG=0 V=0 +call %NDK_ROOT%\ndk-build.cmd %PARALLEL_BUILD_FLAG% NDK_LOG=0 V=0 %* pause \ No newline at end of file diff --git a/samples/Javascript/TestJavascript/proj.win32/TestJavascript.vcxproj b/samples/Javascript/TestJavascript/proj.win32/TestJavascript.vcxproj index 6af44de033..1af52eccb0 100644 --- a/samples/Javascript/TestJavascript/proj.win32/TestJavascript.vcxproj +++ b/samples/Javascript/TestJavascript/proj.win32/TestJavascript.vcxproj @@ -34,11 +34,13 @@ - + + - + + @@ -77,7 +79,7 @@ Disabled - $(ProjectDir)..\Classes;$(ProjectDir)..\..\..\..\scripting\javascript\spidermonkey-win32\include;$(ProjectDir)..\..\..\..\external\chipmunk\include\chipmunk;$(ProjectDir)..\..\..\..\extensions;$(ProjectDir)..\..\..\..\scripting\javascript\bindings;$(ProjectDir)..\..\..\..\scripting\auto-generated\js-bindings;$(ProjectDir)..\..\..\..\cocos2dx;$(ProjectDir)..\..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\..\..\audio\include;%(AdditionalIncludeDirectories) + $(ProjectDir)..\Classes;$(EngineRoot);$(EngineRoot)cocos;$(EngineRoot)cocos\storage;$(EngineRoot)cocos\editor-support;$(EngineRoot)cocos\scripting\auto-generated\js-bindings;$(EngineRoot)cocos\scripting\javascript\bindings;$(EngineRoot)cocos\audio\include;$(EngineRoot)external\spidermonkey\include\win32;$(EngineRoot)external\chipmunk\include\chipmunk;$(EngineRoot)extensions;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;STRICT;DEBUG;_DEBUG;XP_WIN;JS_HAVE___INTN;JS_INTPTR_TYPE=int;COCOS2D_DEBUG=1;COCOS2D_JAVASCRIPT=1;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) false EnableFastChecks @@ -96,12 +98,12 @@ if not exist "$(OutDir)" mkdir "$(OutDir)" -xcopy /Y /Q "$(ProjectDir)..\..\..\..\scripting\javascript\spidermonkey-win32\lib\*.*" "$(OutDir)" -xcopy /Y /Q "$(ProjectDir)..\..\..\..\external\libwebsockets\win32\lib\*.*" "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\..\..\external\spidermonkey\prebuilt\win32\*.*" "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\..\..\external\websockets\prebuilt\win32\*.*" "$(OutDir)" - libcocos2d.lib;libExtensions.lib;libCocosDenshion.lib;libchipmunk.lib;libJSBinding.lib;libcurl_imp.lib;mozjs-23.0.lib;ws2_32.lib;sqlite3.lib;websockets.lib;%(AdditionalDependencies) + libcurl_imp.lib;mozjs-23.0.lib;ws2_32.lib;sqlite3.lib;websockets.lib;%(AdditionalDependencies) $(OutDir);%(AdditionalLibraryDirectories) true Windows @@ -111,7 +113,7 @@ xcopy /Y /Q "$(ProjectDir)..\..\..\..\external\libwebsockets\win32\lib\*.*" "$(O if not exist "$(OutDir)" mkdir "$(OutDir)" if exist "$(OutDir)\TestJavascriptRes" rd /s /q "$(OutDir)\TestJavascriptRes" mkdir "$(OutDir)\TestJavascriptRes" -xcopy "$(ProjectDir)..\..\..\..\scripting\javascript\bindings\js\*.js" "$(OutDir)\TestJavascriptRes\" /e /Y +xcopy "$(ProjectDir)..\..\..\..\cocos\scripting\javascript\script\*.js" "$(OutDir)\TestJavascriptRes\" /e /Y xcopy "$(ProjectDir)..\..\Shared\tests" "$(OutDir)\TestJavascriptRes\" /e /Y @@ -132,7 +134,7 @@ xcopy "$(ProjectDir)..\..\Shared\tests" "$(OutDir)\TestJavascriptRes\" /e /Ytestjs_p.c - $(ProjectDir)..\Classes;$(ProjectDir)..\..\..\..\scripting\javascript\spidermonkey-win32\include;$(ProjectDir)..\..\..\..\external\chipmunk\include\chipmunk;$(ProjectDir)..\..\..\..\extensions;$(ProjectDir)..\..\..\..\scripting\javascript\bindings;$(ProjectDir)..\..\..\..\scripting\auto-generated\js-bindings;$(ProjectDir)..\..\..\..\cocos2dx;$(ProjectDir)..\..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\..\..\audio\include;%(AdditionalIncludeDirectories) + $(ProjectDir)..\Classes;$(EngineRoot);$(EngineRoot)cocos;$(EngineRoot)cocos\storage;$(EngineRoot)cocos\editor-support;$(EngineRoot)cocos\scripting\auto-generated\js-bindings;$(EngineRoot)cocos\scripting\javascript\bindings;$(EngineRoot)cocos\audio\include;$(EngineRoot)external\spidermonkey\include\win32;$(EngineRoot)external\chipmunk\include\chipmunk;$(EngineRoot)extensions;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;STRICT;NDEBUG;XP_WIN;JS_HAVE___INTN;JS_INTPTR_TYPE=int;COCOS2D_JAVASCRIPT=1;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) @@ -152,21 +154,22 @@ xcopy "$(ProjectDir)..\..\Shared\tests" "$(OutDir)\TestJavascriptRes\" /e /Y if not exist "$(OutDir)" mkdir "$(OutDir)" -xcopy /Y /Q "$(ProjectDir)..\..\..\..\scripting\javascript\spidermonkey-win32\lib\*.*" "$(OutDir)" -xcopy /Y /Q "$(ProjectDir)..\..\..\..\external\libwebsockets\win32\lib\*.*" "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\..\..\external\spidermonkey\prebuilt\win32\*.*" "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\..\..\external\websockets\prebuilt\win32\*.*" "$(OutDir)" - libcocos2d.lib;libExtensions.lib;libCocosDenshion.lib;libchipmunk.lib;libJSBinding.lib;libcurl_imp.lib;mozjs-23.0.lib;ws2_32.lib;sqlite3.lib;websockets.lib;%(AdditionalDependencies) + libcurl_imp.lib;mozjs-23.0.lib;ws2_32.lib;sqlite3.lib;websockets.lib;%(AdditionalDependencies) $(OutDir);%(AdditionalLibraryDirectories) Windows MachineX86 + true if not exist "$(OutDir)" mkdir "$(OutDir)" if exist "$(OutDir)\TestJavascriptRes" rd /s /q "$(OutDir)\TestJavascriptRes" mkdir "$(OutDir)\TestJavascriptRes" -xcopy "$(ProjectDir)..\..\..\..\scripting\javascript\bindings\js\*.js" "$(OutDir)\TestJavascriptRes\" /e /Y +xcopy "$(ProjectDir)..\..\..\..\cocos\scripting\javascript\script\*.js" "$(OutDir)\TestJavascriptRes\" /e /Y xcopy "$(ProjectDir)..\..\Shared\tests" "$(OutDir)\TestJavascriptRes\" /e /Y Copy js and resource files. @@ -187,14 +190,62 @@ xcopy "$(ProjectDir)..\..\Shared\tests" "$(OutDir)\TestJavascriptRes\" /e /Y - + {98a51ba8-fc3a-415b-ac8f-8c7bd464e93e} false - + {f8edd7fa-9a51-4e80-baeb-860825d2eac6} false + + {811c0dab-7b96-4bd3-a154-b7572b58e4ab} + + + {b57cf53f-2e49-4031-9822-047cc0e6bde2} + + + {b7c2a162-dec9-4418-972e-240ab3cbfcae} + + + {7e06e92c-537a-442b-9e4a-4761c84f8a1a} + + + {df2638c0-8128-4847-867c-6eafe3dee7b5} + + + {21070e58-eec6-4e16-8b4f-6d083df55790} + + + {f9da0fc1-651b-457b-962e-a4d61cebf5fd} + + + {79d34511-e54e-410a-8bba-ef175ad6c695} + + + {625f7391-9a91-48a1-8cfc-79508c822637} + + + {68f5f371-bd7b-4c30-ae5b-0b08f22e0cde} + + + {3bec13f5-e227-4d80-bc77-1c857f83bcfc} + + + {39379840-825a-45a0-b363-c09ffef864bd} + + + {632a8f38-d0f0-4d22-86b3-d69f5e6bf63a} + + + {21b2c324-891f-48ea-ad1a-5ae13de12e28} + + + {929480e7-23c0-4df6-8456-096d71547116} + + + {207bc7a9-ccf1-4f2f-a04d-45f72242ae25} + diff --git a/samples/Javascript/WatermelonWithMe/Classes/AppDelegate.cpp b/samples/Javascript/WatermelonWithMe/Classes/AppDelegate.cpp index 3e9c616b35..663cd87769 100644 --- a/samples/Javascript/WatermelonWithMe/Classes/AppDelegate.cpp +++ b/samples/Javascript/WatermelonWithMe/Classes/AppDelegate.cpp @@ -5,11 +5,12 @@ #include "ScriptingCore.h" #include "jsb_cocos2dx_auto.hpp" #include "jsb_cocos2dx_extension_auto.hpp" -#include "jsb_cocos2dx_extension_manual.h" +#include "jsb_cocos2dx_builder_auto.hpp" +#include "extension/jsb_cocos2dx_extension_manual.h" #include "cocos2d_specifics.hpp" -#include "js_bindings_chipmunk_registration.h" -#include "js_bindings_ccbreader.h" -#include "js_bindings_system_registration.h" +#include "chipmunk/js_bindings_chipmunk_registration.h" +#include "cocosbuilder/js_bindings_ccbreader.h" +#include "localstorage/js_bindings_system_registration.h" #include "jsb_opengl_registration.h" USING_NS_CC; @@ -46,6 +47,7 @@ bool AppDelegate::applicationDidFinishLaunching() sc->addRegisterCallback(register_all_cocos2dx_extension_manual); sc->addRegisterCallback(register_cocos2dx_js_extensions); sc->addRegisterCallback(jsb_register_chipmunk); + sc->addRegisterCallback(register_all_cocos2dx_builder); sc->addRegisterCallback(register_CCBuilderReader); sc->addRegisterCallback(jsb_register_system); sc->addRegisterCallback(JSB_register_opengl); diff --git a/samples/Javascript/WatermelonWithMe/proj.android/build_native.cmd b/samples/Javascript/WatermelonWithMe/proj.android/build_native.cmd index 9594dada6b..a592025ff0 100644 --- a/samples/Javascript/WatermelonWithMe/proj.android/build_native.cmd +++ b/samples/Javascript/WatermelonWithMe/proj.android/build_native.cmd @@ -57,7 +57,7 @@ set COCOS2DX_ROOT=%~dp0..\..\..\.. set APP_ROOT=%~dp0.. set APP_ANDROID_ROOT=%~dp0 set RESROUCE_ROOT="%APP_ROOT%\..\Shared\games\WatermelonWithMe" -set BINDINGS_JS_ROOT=%APP_ROOT%\..\..\..\scripting\javascript\bindings\js +set BINDINGS_JS_ROOT=%COCOS2DX_ROOT%\cocos\scripting\javascript\script if "%buildexternalsfromsource%"=="1" (goto :MODULE1) else (goto :MODULE2) :MODULE1 @@ -66,7 +66,7 @@ if "%buildexternalsfromsource%"=="1" (goto :MODULE1) else (goto :MODULE2) goto :COPY_RES :MODULE2 echo "Using prebuilt externals" - set NDK_MODULE_PATH=%COCOS2DX_ROOT%;%COCOS2DX_ROOT%\cocos2dx\platform\third_party\android\prebuilt + set NDK_MODULE_PATH=%COCOS2DX_ROOT%;%COCOS2DX_ROOT%\cocos;%COCOS2DX_ROOT%\external :COPY_RES echo NDK_ROOT = %NDK_ROOT% @@ -79,7 +79,6 @@ rem make sure assets is exist if exist %APP_ANDROID_ROOT%\assets rd /q /s %APP_ANDROID_ROOT%\assets mkdir %APP_ANDROID_ROOT%\assets -mkdir %APP_ANDROID_ROOT%\assets\res rem copy Resources/* into assets' root xcopy /e /q /r /y %RESROUCE_ROOT%\* %APP_ANDROID_ROOT%\assets @@ -87,5 +86,5 @@ xcopy /e /q /r /y %RESROUCE_ROOT%\* %APP_ANDROID_ROOT%\assets rem copy bindings/*.js into assets' root xcopy /e /q /r /y %BINDINGS_JS_ROOT%\* %APP_ANDROID_ROOT%\assets -call %NDK_ROOT%\ndk-build.cmd %PARALLEL_BUILD_FLAG% NDK_LOG=0 V=0 +call %NDK_ROOT%\ndk-build.cmd %PARALLEL_BUILD_FLAG% NDK_LOG=0 V=0 %* pause diff --git a/samples/Javascript/WatermelonWithMe/proj.win32/WatermelonWithMe.vcxproj b/samples/Javascript/WatermelonWithMe/proj.win32/WatermelonWithMe.vcxproj index b6b8e34883..48f07febfb 100644 --- a/samples/Javascript/WatermelonWithMe/proj.win32/WatermelonWithMe.vcxproj +++ b/samples/Javascript/WatermelonWithMe/proj.win32/WatermelonWithMe.vcxproj @@ -34,11 +34,13 @@ - + + - + + @@ -77,7 +79,7 @@ Disabled - $(ProjectDir)..\Classes;$(ProjectDir)..\..\..\..\scripting\javascript\spidermonkey-win32\include;$(ProjectDir)..\..\..\..\external\chipmunk\include\chipmunk;$(ProjectDir)..\..\..\..\extensions;$(ProjectDir)..\..\..\..\scripting\auto-generated\js-bindings;$(ProjectDir)..\..\..\..\scripting\javascript\bindings;$(ProjectDir)..\..\..\..\cocos2dx;$(ProjectDir)..\..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\..\..\audio\include;%(AdditionalIncludeDirectories) + $(ProjectDir)..\Classes;$(EngineRoot);$(EngineRoot)cocos\editor-support;$(EngineRoot)cocos\scripting\auto-generated\js-bindings;$(EngineRoot)cocos\scripting\javascript\bindings;$(EngineRoot)cocos\audio\include;$(EngineRoot)external\spidermonkey\include\win32;$(EngineRoot)external\chipmunk\include\chipmunk;$(EngineRoot)extensions;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;STRICT;_DEBUG;DEBUG;XP_WIN;JS_HAVE___INTN;JS_INTPTR_TYPE=int;COCOS2D_DEBUG=1;COCOS2D_JAVASCRIPT=1;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) false EnableFastChecks @@ -96,11 +98,11 @@ if not exist "$(OutDir)" mkdir "$(OutDir)" -xcopy /Y /Q "$(ProjectDir)..\..\..\..\scripting\javascript\spidermonkey-win32\lib\*.*" "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\..\..\external\spidermonkey\prebuilt\win32\*.*" "$(OutDir)" - libcocos2d.lib;libExtensions.lib;libCocosDenshion.lib;libchipmunk.lib;libJSBinding.lib;libcurl_imp.lib;mozjs-23.0.lib;ws2_32.lib;sqlite3.lib;%(AdditionalDependencies) + libcurl_imp.lib;mozjs-23.0.lib;ws2_32.lib;sqlite3.lib;%(AdditionalDependencies) $(OutDir);%(AdditionalLibraryDirectories) true Windows @@ -110,7 +112,7 @@ xcopy /Y /Q "$(ProjectDir)..\..\..\..\scripting\javascript\spidermonkey-win32\li if not exist "$(OutDir)" mkdir "$(OutDir)" if exist "$(OutDir)\WatermelonWithMeRes" rd /s /q "$(OutDir)\WatermelonWithMeRes" mkdir "$(OutDir)\WatermelonWithMeRes" -xcopy "$(ProjectDir)..\..\..\..\scripting\javascript\bindings\js\*.js" "$(OutDir)\WatermelonWithMeRes" /e /Y +xcopy "$(ProjectDir)..\..\..\..\cocos\scripting\javascript\script\*.js" "$(OutDir)\WatermelonWithMeRes" /e /Y xcopy "$(ProjectDir)..\..\Shared\games\WatermelonWithMe" "$(OutDir)\WatermelonWithMeRes\" /e /Y @@ -131,7 +133,7 @@ xcopy "$(ProjectDir)..\..\Shared\games\WatermelonWithMe" "$(OutDir)\WatermelonWi testjs_p.c - $(ProjectDir)..\Classes;$(ProjectDir)..\..\..\..\scripting\javascript\spidermonkey-win32\include;$(ProjectDir)..\..\..\..\external\chipmunk\include\chipmunk;$(ProjectDir)..\..\..\..\extensions;$(ProjectDir)..\..\..\..\scripting\auto-generated\js-bindings;$(ProjectDir)..\..\..\..\scripting\javascript\bindings;$(ProjectDir)..\..\..\..\cocos2dx;$(ProjectDir)..\..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\..\..\audio\include;%(AdditionalIncludeDirectories) + $(ProjectDir)..\Classes;$(EngineRoot);$(EngineRoot)cocos\editor-support;$(EngineRoot)cocos\scripting\auto-generated\js-bindings;$(EngineRoot)cocos\scripting\javascript\bindings;$(EngineRoot)cocos\audio\include;$(EngineRoot)external\spidermonkey\include\win32;$(EngineRoot)external\chipmunk\include\chipmunk;$(EngineRoot)extensions;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;STRICT;NDEBUG;XP_WIN;JS_HAVE___INTN;JS_INTPTR_TYPE=int;COCOS2D_JAVASCRIPT=1;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) @@ -151,20 +153,21 @@ xcopy "$(ProjectDir)..\..\Shared\games\WatermelonWithMe" "$(OutDir)\WatermelonWi if not exist "$(OutDir)" mkdir "$(OutDir)" -xcopy /Y /Q "$(ProjectDir)..\..\..\..\scripting\javascript\spidermonkey-win32\lib\*.*" "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\..\..\external\spidermonkey\prebuilt\win32\*.*" "$(OutDir)" - libcocos2d.lib;libExtensions.lib;libCocosDenshion.lib;libchipmunk.lib;libJSBinding.lib;libcurl_imp.lib;mozjs-23.0.lib;ws2_32.lib;sqlite3.lib;%(AdditionalDependencies) + libcurl_imp.lib;mozjs-23.0.lib;ws2_32.lib;sqlite3.lib;%(AdditionalDependencies) $(OutDir);%(AdditionalLibraryDirectories) Windows MachineX86 + true if not exist "$(OutDir)" mkdir "$(OutDir)" if exist "$(OutDir)\WatermelonWithMeRes" rd /s /q "$(OutDir)\WatermelonWithMeRes" mkdir "$(OutDir)\WatermelonWithMeRes" -xcopy "$(ProjectDir)..\..\..\..\scripting\javascript\bindings\js\*.js" "$(OutDir)\WatermelonWithMeRes" /e /Y +xcopy "$(ProjectDir)..\..\..\..\cocos\scripting\javascript\script\*.js" "$(OutDir)\WatermelonWithMeRes" /e /Y xcopy "$(ProjectDir)..\..\Shared\games\WatermelonWithMe" "$(OutDir)\WatermelonWithMeRes\" /e /Y Copy js and resource files. @@ -185,13 +188,47 @@ xcopy "$(ProjectDir)..\..\Shared\games\WatermelonWithMe" "$(OutDir)\WatermelonWi - + {98a51ba8-fc3a-415b-ac8f-8c7bd464e93e} - false - + {f8edd7fa-9a51-4e80-baeb-860825d2eac6} - false + + + {811c0dab-7b96-4bd3-a154-b7572b58e4ab} + + + {b57cf53f-2e49-4031-9822-047cc0e6bde2} + + + {7e06e92c-537a-442b-9e4a-4761c84f8a1a} + + + {df2638c0-8128-4847-867c-6eafe3dee7b5} + + + {21070e58-eec6-4e16-8b4f-6d083df55790} + + + {f9da0fc1-651b-457b-962e-a4d61cebf5fd} + + + {625f7391-9a91-48a1-8cfc-79508c822637} + + + {68f5f371-bd7b-4c30-ae5b-0b08f22e0cde} + + + {39379840-825a-45a0-b363-c09ffef864bd} + + + {632a8f38-d0f0-4d22-86b3-d69f5e6bf63a} + + + {21b2c324-891f-48ea-ad1a-5ae13de12e28} + + + {207bc7a9-ccf1-4f2f-a04d-45f72242ae25} diff --git a/samples/Lua/HelloLua/proj.android/build_native.cmd b/samples/Lua/HelloLua/proj.android/build_native.cmd index 7daf57dd23..4116608669 100644 --- a/samples/Lua/HelloLua/proj.android/build_native.cmd +++ b/samples/Lua/HelloLua/proj.android/build_native.cmd @@ -62,7 +62,7 @@ if "%buildexternalsfromsource%"=="1" (goto :MODULE1) else (goto :MODULE2) goto :COPY_RES :MODULE2 echo "Using prebuilt externals" - set NDK_MODULE_PATH=%COCOS2DX_ROOT%;%COCOS2DX_ROOT%\cocos2dx\platform\third_party\android\prebuilt + set NDK_MODULE_PATH=%COCOS2DX_ROOT%;%COCOS2DX_ROOT%\cocos;%COCOS2DX_ROOT%\external :COPY_RES echo NDK_ROOT = %NDK_ROOT% @@ -75,13 +75,12 @@ rem make sure assets is exist if exist %APP_ANDROID_ROOT%\assets rd /q /s %APP_ANDROID_ROOT%\assets mkdir %APP_ANDROID_ROOT%\assets -mkdir %APP_ANDROID_ROOT%\assets\res rem copy Resources/* into assets' root xcopy /e /q /r /y %APP_ROOT%\Resources\* %APP_ANDROID_ROOT%\assets rem copy common luaScript -xcopy /e /q /r /y %APP_ROOT%\..\..\scripting\lua\script\* %APP_ANDROID_ROOT%\assets +xcopy /e /q /r /y %COCOS2DX_ROOT%\cocos\scripting\lua\script\* %APP_ANDROID_ROOT%\assets -call %NDK_ROOT%\ndk-build.cmd NDK_LOG=0 V=0 +call %NDK_ROOT%\ndk-build.cmd NDK_LOG=0 V=0 %* pause \ No newline at end of file diff --git a/samples/Lua/HelloLua/proj.win32/HelloLua.vcxproj b/samples/Lua/HelloLua/proj.win32/HelloLua.vcxproj index f01edcaf43..fb17ddfe2e 100644 --- a/samples/Lua/HelloLua/proj.win32/HelloLua.vcxproj +++ b/samples/Lua/HelloLua/proj.win32/HelloLua.vcxproj @@ -34,11 +34,13 @@ - + + - + + @@ -77,7 +79,7 @@ Disabled - $(ProjectDir)..\Classes;$(ProjectDir)..\..\..\..\scripting\auto-generated\lua-bindings;$(ProjectDir)..\..\..\..\scripting\lua\cocos2dx_support;$(ProjectDir)..\..\..\..\scripting\lua\lua;$(ProjectDir)..\..\..\..\scripting\lua\tolua;$(ProjectDir)..\..\..\..\scripting\lua\src;$(ProjectDir)..\..\..\..\cocos2dx;$(ProjectDir)..\..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\..\..\audio\include;$(ProjectDir)..\..\..\..\extensions;$(ProjectDir)..\..\..\..\external\chipmunk\include\chipmunk;%(AdditionalIncludeDirectories) + $(ProjectDir)..\Classes;$(EngineRoot)cocos\scripting\auto-generated\lua-bindings;$(EngineRoot)cocos\scripting\lua\bindings;$(EngineRoot)cocos\audio\include;$(EngineRoot)external\lua\lua;$(EngineRoot)external\lua\tolua;$(EngineRoot)external\chipmunk\include\chipmunk;$(EngineRoot)extensions;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;STRICT;_DEBUG;COCOS2D_DEBUG=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) false EnableFastChecks @@ -95,14 +97,14 @@ $(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A\include;$(IntDir);%(AdditionalIncludeDirectories) - libcocos2d.lib;libCocosDenshion.lib;liblua.lib;lua51.lib;libExtensions.lib;websockets.lib;libchipmunk.lib;%(AdditionalDependencies) + lua51.lib;websockets.lib;%(AdditionalDependencies) $(OutDir);%(AdditionalLibraryDirectories) true Windows MachineX86 - xcopy "$(ProjectDir)..\..\..\..\scripting\lua\script" "$(ProjectDir)..\..\HelloLua\Resources" /e /Y + xcopy "$(ProjectDir)..\..\..\..\cocos\scripting\lua\script" "$(ProjectDir)..\..\HelloLua\Resources" /e /Y @@ -119,7 +121,7 @@ HelloLua_p.c - $(ProjectDir)..\Classes;$(ProjectDir)..\..\..\..\scripting\auto-generated\lua-bindings;$(ProjectDir)..\..\..\..\scripting\lua\cocos2dx_support;$(ProjectDir)..\..\..\..\scripting\lua\lua;$(ProjectDir)..\..\..\..\scripting\lua\tolua;$(ProjectDir)..\..\..\..\scripting\lua\src;$(ProjectDir)..\..\..\..\cocos2dx;$(ProjectDir)..\..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\..\..\audio\include;%(AdditionalIncludeDirectories) + $(ProjectDir)..\Classes;$(EngineRoot)cocos\scripting\auto-generated\lua-bindings;$(EngineRoot)cocos\scripting\lua\bindings;$(EngineRoot)cocos\audio\include;$(EngineRoot)external\lua\lua;$(EngineRoot)external\lua\tolua;$(EngineRoot)external\chipmunk\include\chipmunk;$(EngineRoot)extensions;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;STRICT;NDEBUG;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) @@ -138,10 +140,11 @@ $(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A\include;$(IntDir);%(AdditionalIncludeDirectories) - libcocos2d.lib;libCocosDenshion.lib;liblua.lib;lua51.lib;libExtensions.lib;%(AdditionalDependencies) + lua51.lib;websockets.lib;%(AdditionalDependencies) $(OutDir);%(AdditionalLibraryDirectories) Windows MachineX86 + true @@ -153,17 +156,35 @@ - + {98a51ba8-fc3a-415b-ac8f-8c7bd464e93e} - false - + {f8edd7fa-9a51-4e80-baeb-860825d2eac6} - false - + + {811c0dab-7b96-4bd3-a154-b7572b58e4ab} + + + {b57cf53f-2e49-4031-9822-047cc0e6bde2} + + + {7e06e92c-537a-442b-9e4a-4761c84f8a1a} + + + {df2638c0-8128-4847-867c-6eafe3dee7b5} + + {ddc3e27f-004d-4dd4-9dd3-931a013d2159} - false + + + {632a8f38-d0f0-4d22-86b3-d69f5e6bf63a} + + + {21b2c324-891f-48ea-ad1a-5ae13de12e28} + + + {207bc7a9-ccf1-4f2f-a04d-45f72242ae25} diff --git a/samples/Lua/TestLua/proj.android/build_native.cmd b/samples/Lua/TestLua/proj.android/build_native.cmd index 5602f41812..fa1fc0ad75 100644 --- a/samples/Lua/TestLua/proj.android/build_native.cmd +++ b/samples/Lua/TestLua/proj.android/build_native.cmd @@ -62,7 +62,7 @@ if "%buildexternalsfromsource%"=="1" (goto :MODULE1) else (goto :MODULE2) goto :COPY_RES :MODULE2 echo "Using prebuilt externals" - set NDK_MODULE_PATH=%COCOS2DX_ROOT%;%COCOS2DX_ROOT%\cocos2dx\platform\third_party\android\prebuilt + set NDK_MODULE_PATH=%COCOS2DX_ROOT%;%COCOS2DX_ROOT%\cocos;%COCOS2DX_ROOT%\external :COPY_RES echo NDK_ROOT = %NDK_ROOT% @@ -75,13 +75,19 @@ rem make sure assets is exist if exist %APP_ANDROID_ROOT%\assets rd /q /s %APP_ANDROID_ROOT%\assets mkdir %APP_ANDROID_ROOT%\assets -mkdir %APP_ANDROID_ROOT%\assets\res rem copy Resources/* into assets' root xcopy /e /q /r /y %APP_ROOT%\Resources\* %APP_ANDROID_ROOT%\assets rem copy common luaScript -xcopy /e /q /r /y %APP_ROOT%\..\..\scripting\lua\script\* %APP_ANDROID_ROOT%\assets +xcopy /e /q /r /y %COCOS2DX_ROOT%\cocos\scripting\lua\script\* %APP_ANDROID_ROOT%\assets -call %NDK_ROOT%\ndk-build.cmd NDK_LOG=0 V=0 +rem remove test_image_rgba4444.pvr.gz +del /f /q %APP_ANDROID_ROOT%\assets\Images\test_image_rgba4444.pvr.gz +del /f /q %APP_ANDROID_ROOT%\assets\Images\test_1021x1024_rgba8888.pvr.gz +del /f /q %APP_ANDROID_ROOT%\assets\Images\test_1021x1024_rgb888.pvr.gz +del /f /q %APP_ANDROID_ROOT%\assets\Images\test_1021x1024_rgba4444.pvr.gz +del /f /q %APP_ANDROID_ROOT%\assets\Images\test_1021x1024_a8.pvr.gz + +call %NDK_ROOT%\ndk-build.cmd NDK_LOG=0 V=0 %* pause \ No newline at end of file diff --git a/samples/Lua/TestLua/proj.win32/TestLua.win32.vcxproj b/samples/Lua/TestLua/proj.win32/TestLua.win32.vcxproj index 1d7682a2d2..0a4ea9edbd 100644 --- a/samples/Lua/TestLua/proj.win32/TestLua.win32.vcxproj +++ b/samples/Lua/TestLua/proj.win32/TestLua.win32.vcxproj @@ -36,11 +36,13 @@ - + + - + + @@ -64,7 +66,7 @@ - $(ProjectDir)..\Classes;$(ProjectDir)..\..\..\..\scripting\auto-generated\lua-bindings;$(ProjectDir)..\..\..\..\scripting\lua\cocos2dx_support;$(ProjectDir)..\..\..\..\scripting\lua\lua;$(ProjectDir)..\..\..\..\scripting\lua\tolua;$(ProjectDir)..\..\..\..\scripting\lua\src;$(ProjectDir)..\..\..\..\cocos2dx;$(ProjectDir)..\..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\..\..\external;$(ProjectDir)..\..\..\..\external\libwebsockets\win32\include;$(ProjectDir)..\..\..\..\external\chipmunk\include\chipmunk;$(ProjectDir)..\..\..\..\audio\include;%(AdditionalIncludeDirectories) + $(ProjectDir)..\Classes;$(EngineRoot)cocos\scripting\auto-generated\lua-bindings;$(EngineRoot)cocos\scripting\lua\bindings;$(EngineRoot)cocos\audio\include;$(EngineRoot)external\lua\lua;$(EngineRoot)external\lua\tolua;$(EngineRoot)external\chipmunk\include\chipmunk;$(EngineRoot)extensions;%(AdditionalIncludeDirectories) Level3 @@ -82,7 +84,7 @@ MachineX86 true $(OutDir);%(AdditionalLibraryDirectories) - libcocos2d.lib;libExtensions.lib;libBox2d.lib;libchipmunk.lib;libCocosDenshion.lib;liblua.lib;lua51.lib;websockets.lib;%(AdditionalDependencies) + lua51.lib;websockets.lib;%(AdditionalDependencies) 0x0409 @@ -103,17 +105,17 @@ xcopy "$(ProjectDir)..\..\..\Cpp\TestCpp\Resources" "$(ProjectDir)..\..\TestLua\Resources" /e /Y -xcopy "$(ProjectDir)..\..\..\..\scripting\lua\script" "$(ProjectDir)..\..\TestLua\Resources" /e /Y +xcopy "$(EngineRoot)cocos\scripting\lua\script" "$(ProjectDir)..\..\TestLua\Resources" /e /Y copy files from TestCpp to TestLua if not exist "$(OutDir)" mkdir "$(OutDir)" -xcopy /Y /Q "$(ProjectDir)..\..\..\..\external\libwebsockets\win32\lib\*.*" "$(OutDir)" +xcopy /Y /Q "$(EngineRoot)external\websockets\prebuilt\\win32\*.*" "$(OutDir)" - $(ProjectDir)..\Classes;$(ProjectDir)..\..\..\..\scripting\auto-generated\lua-bindings;$(ProjectDir)..\..\..\..\scripting\lua\cocos2dx_support;$(ProjectDir)..\..\..\..\scripting\lua\lua;$(ProjectDir)..\..\..\..\scripting\lua\tolua;$(ProjectDir)..\..\..\..\scripting\lua\src;$(ProjectDir)..\..\..\..\cocos2dx;$(ProjectDir)..\..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\..\..\external;$(ProjectDir)..\..\..\..\external\libwebsockets\win32\include;$(ProjectDir)..\..\..\..\external\chipmunk\include\chipmunk;$(ProjectDir)..\..\..\..\audio\include;%(AdditionalIncludeDirectories) + $(ProjectDir)..\Classes;$(EngineRoot)cocos\scripting\auto-generated\lua-bindings;$(EngineRoot)cocos\scripting\lua\bindings;$(EngineRoot)cocos\audio\include;$(EngineRoot)external\lua\lua;$(EngineRoot)external\lua\tolua;$(EngineRoot)external\chipmunk\include\chipmunk;$(EngineRoot)extensions;%(AdditionalIncludeDirectories) Level3 @@ -129,7 +131,7 @@ xcopy /Y /Q "$(ProjectDir)..\..\..\..\external\libwebsockets\win32\lib\*.*" "$(O Windows MachineX86 $(OutDir);%(AdditionalLibraryDirectories) - libcocos2d.lib;libExtensions.lib;libBox2d.lib;libchipmunk.lib;libCocosDenshion.lib;liblua.lib;lua51.lib;websockets.lib;%(AdditionalDependencies) + lua51.lib;websockets.lib;%(AdditionalDependencies) true @@ -151,12 +153,12 @@ xcopy /Y /Q "$(ProjectDir)..\..\..\..\external\libwebsockets\win32\lib\*.*" "$(O xcopy "$(ProjectDir)..\..\..\Cpp\TestCpp\Resources" "$(ProjectDir)..\..\TestLua\Resources" /e /Y -xcopy "$(ProjectDir)..\..\..\..\scripting\lua\script" "$(ProjectDir)..\..\TestLua\Resources" /e /Y +xcopy "$(ProjectDir)..\..\..\..\cocos\scripting\lua\script" "$(ProjectDir)..\..\TestLua\Resources" /e /Y copy files from TestCpp to TestLua if not exist "$(OutDir)" mkdir "$(OutDir)" -xcopy /Y /Q "$(ProjectDir)..\..\..\..\external\libwebsockets\win32\lib\*.*" "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\..\..\external\websockets\prebuilt\win32\*.*" "$(OutDir)" @@ -167,6 +169,38 @@ xcopy /Y /Q "$(ProjectDir)..\..\..\..\external\libwebsockets\win32\lib\*.*" "$(O + + + {98a51ba8-fc3a-415b-ac8f-8c7bd464e93e} + + + {f8edd7fa-9a51-4e80-baeb-860825d2eac6} + + + {811c0dab-7b96-4bd3-a154-b7572b58e4ab} + + + {b57cf53f-2e49-4031-9822-047cc0e6bde2} + + + {7e06e92c-537a-442b-9e4a-4761c84f8a1a} + + + {df2638c0-8128-4847-867c-6eafe3dee7b5} + + + {ddc3e27f-004d-4dd4-9dd3-931a013d2159} + + + {632a8f38-d0f0-4d22-86b3-d69f5e6bf63a} + + + {21b2c324-891f-48ea-ad1a-5ae13de12e28} + + + {207bc7a9-ccf1-4f2f-a04d-45f72242ae25} + + diff --git a/template/multi-platform-cpp/proj.android/build_native.cmd b/template/multi-platform-cpp/proj.android/build_native.cmd index 68a56c815c..5b25ec4817 100644 --- a/template/multi-platform-cpp/proj.android/build_native.cmd +++ b/template/multi-platform-cpp/proj.android/build_native.cmd @@ -62,7 +62,7 @@ if "%buildexternalsfromsource%"=="1" (goto :MODULE1) else (goto :MODULE2) goto :COPY_RES :MODULE2 echo "Using prebuilt externals" - set NDK_MODULE_PATH=%COCOS2DX_ROOT%;%COCOS2DX_ROOT%\cocos2dx\platform\third_party\android\prebuilt + set NDK_MODULE_PATH=%COCOS2DX_ROOT%;%COCOS2DX_ROOT%\cocos;%COCOS2DX_ROOT%\external :COPY_RES echo NDK_ROOT = %NDK_ROOT% @@ -75,10 +75,9 @@ rem make sure assets is exist if exist %APP_ANDROID_ROOT%\assets rd /q /s %APP_ANDROID_ROOT%\assets mkdir %APP_ANDROID_ROOT%\assets -mkdir %APP_ANDROID_ROOT%\assets\res rem copy Resources/* into assets' root xcopy /e /q /r /y %APP_ROOT%\Resources\* %APP_ANDROID_ROOT%\assets -call %NDK_ROOT%\ndk-build.cmd NDK_LOG=0 V=0 +call %NDK_ROOT%\ndk-build.cmd NDK_LOG=0 V=0 %* pause \ No newline at end of file diff --git a/template/multi-platform-cpp/proj.win32/HelloCpp.sln b/template/multi-platform-cpp/proj.win32/HelloCpp.sln index 31c2e25053..774ee12d79 100644 --- a/template/multi-platform-cpp/proj.win32/HelloCpp.sln +++ b/template/multi-platform-cpp/proj.win32/HelloCpp.sln @@ -3,32 +3,17 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2012 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HelloCpp", "HelloCpp.vcxproj", "{76A39BB2-9B84-4C65-98A5-654D86B86F2A}" ProjectSection(ProjectDependencies) = postProject - {21B2C324-891F-48EA-AD1A-5AE13DE12E28} = {21B2C324-891F-48EA-AD1A-5AE13DE12E28} {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E} = {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E} {207BC7A9-CCF1-4F2F-A04D-45F72242AE25} = {207BC7A9-CCF1-4F2F-A04D-45F72242AE25} - {929480E7-23C0-4DF6-8456-096D71547116} = {929480E7-23C0-4DF6-8456-096D71547116} {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6} = {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcocos2d", "..\..\..\cocos2dx\proj.win32\cocos2d.vcxproj", "{98A51BA8-FC3A-415B-AC8F-8C7BD464E93E}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libCocosDenshion", "..\..\..\CocosDenshion\proj.win32\CocosDenshion.vcxproj", "{F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6}" - ProjectSection(ProjectDependencies) = postProject - {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E} = {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libExtensions", "..\..\..\extensions\proj.win32\libExtensions.vcxproj", "{21B2C324-891F-48EA-AD1A-5AE13DE12E28}" - ProjectSection(ProjectDependencies) = postProject - {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E} = {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E} - {207BC7A9-CCF1-4F2F-A04D-45F72242AE25} = {207BC7A9-CCF1-4F2F-A04D-45F72242AE25} - {929480E7-23C0-4DF6-8456-096D71547116} = {929480E7-23C0-4DF6-8456-096D71547116} - {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6} = {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libBox2D", "..\..\..\external\Box2D\proj.win32\Box2D.vcxproj", "{929480E7-23C0-4DF6-8456-096D71547116}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcocos2d", "..\..\..\cocos\2d\cocos2d.vcxproj", "{98A51BA8-FC3A-415B-AC8F-8C7BD464E93E}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libchipmunk", "..\..\..\external\chipmunk\proj.win32\chipmunk.vcxproj", "{207BC7A9-CCF1-4F2F-A04D-45F72242AE25}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libAudio", "..\..\..\cocos\audio\proj.win32\CocosDenshion.vcxproj", "{F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -43,22 +28,14 @@ Global {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E}.Debug|Win32.Build.0 = Debug|Win32 {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E}.Release|Win32.ActiveCfg = Release|Win32 {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E}.Release|Win32.Build.0 = Release|Win32 - {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6}.Debug|Win32.ActiveCfg = Debug|Win32 - {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6}.Debug|Win32.Build.0 = Debug|Win32 - {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6}.Release|Win32.ActiveCfg = Release|Win32 - {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6}.Release|Win32.Build.0 = Release|Win32 - {21B2C324-891F-48EA-AD1A-5AE13DE12E28}.Debug|Win32.ActiveCfg = Debug|Win32 - {21B2C324-891F-48EA-AD1A-5AE13DE12E28}.Debug|Win32.Build.0 = Debug|Win32 - {21B2C324-891F-48EA-AD1A-5AE13DE12E28}.Release|Win32.ActiveCfg = Release|Win32 - {21B2C324-891F-48EA-AD1A-5AE13DE12E28}.Release|Win32.Build.0 = Release|Win32 - {929480E7-23C0-4DF6-8456-096D71547116}.Debug|Win32.ActiveCfg = Debug|Win32 - {929480E7-23C0-4DF6-8456-096D71547116}.Debug|Win32.Build.0 = Debug|Win32 - {929480E7-23C0-4DF6-8456-096D71547116}.Release|Win32.ActiveCfg = Release|Win32 - {929480E7-23C0-4DF6-8456-096D71547116}.Release|Win32.Build.0 = Release|Win32 {207BC7A9-CCF1-4F2F-A04D-45F72242AE25}.Debug|Win32.ActiveCfg = Debug|Win32 {207BC7A9-CCF1-4F2F-A04D-45F72242AE25}.Debug|Win32.Build.0 = Debug|Win32 {207BC7A9-CCF1-4F2F-A04D-45F72242AE25}.Release|Win32.ActiveCfg = Release|Win32 {207BC7A9-CCF1-4F2F-A04D-45F72242AE25}.Release|Win32.Build.0 = Release|Win32 + {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6}.Debug|Win32.ActiveCfg = Debug|Win32 + {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6}.Debug|Win32.Build.0 = Debug|Win32 + {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6}.Release|Win32.ActiveCfg = Release|Win32 + {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/template/multi-platform-cpp/proj.win32/HelloCpp.vcxproj b/template/multi-platform-cpp/proj.win32/HelloCpp.vcxproj index 70a728fe8e..f2e35df259 100644 --- a/template/multi-platform-cpp/proj.win32/HelloCpp.vcxproj +++ b/template/multi-platform-cpp/proj.win32/HelloCpp.vcxproj @@ -36,11 +36,13 @@ - + + - + + @@ -67,7 +69,7 @@ Disabled - $(ProjectDir)..\..\..\cocos2dx;$(ProjectDir)..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\cocos2dx\platform\third_party\win32;$(ProjectDir)..\..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\..\external;$(ProjectDir)..\..\..\external\chipmunk\include\chipmunk;$(ProjectDir)..\..\..\audio\include;$(ProjectDir)..\..\..\extensions;..\Classes;..;%(AdditionalIncludeDirectories) + $(EngineRoot)cocos\audio\include;$(EngineRoot)external;$(EngineRoot)external\chipmunk\include\chipmunk;$(EngineRoot)extensions;..\Classes;..;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USE_MATH_DEFINES;GL_GLEXT_PROTOTYPES;CC_ENABLE_CHIPMUNK_INTEGRATION=1;COCOS2D_DEBUG=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) false EnableFastChecks @@ -80,7 +82,7 @@ true - libExtensions.lib;libcocos2d.lib;libCocosDenshion.lib;libBox2d.lib;libchipmunk.lib;libcurl_imp.lib;websockets.lib;%(AdditionalDependencies) + %(AdditionalDependencies) $(OutDir)$(ProjectName).exe $(OutDir);%(AdditionalLibraryDirectories) true @@ -93,14 +95,14 @@ if not exist "$(OutDir)" mkdir "$(OutDir)" -xcopy /Y /Q "$(ProjectDir)..\..\..\external\libwebsockets\win32\lib\*.*" "$(OutDir)" +xcopy /Y /Q "$(EngineRoot)external\websockets\prebuilt\win32\*.*" "$(OutDir)" MaxSpeed true - $(ProjectDir)..\..\..\cocos2dx;$(ProjectDir)..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\cocos2dx\platform\third_party\win32;$(ProjectDir)..\..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\..\external;$(ProjectDir)..\..\..\external\chipmunk\include\chipmunk;$(ProjectDir)..\..\..\audio\include;$(ProjectDir)..\..\..\extensions;..\Classes;..;%(AdditionalIncludeDirectories) + $(EngineRoot)cocos\audio\include;$(EngineRoot)external;$(EngineRoot)external\chipmunk\include\chipmunk;$(EngineRoot)extensions;..\Classes;..;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USE_MATH_DEFINES;GL_GLEXT_PROTOTYPES;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) MultiThreadedDLL true @@ -112,7 +114,7 @@ xcopy /Y /Q "$(ProjectDir)..\..\..\external\libwebsockets\win32\lib\*.*" "$(OutD true - libExtensions.lib;libcocos2d.lib;libCocosDenshion.lib;libBox2d.lib;libchipmunk.lib;libcurl_imp.lib;websockets.lib;%(AdditionalDependencies) + libcurl_imp.lib;websockets.lib;%(AdditionalDependencies) $(OutDir)$(ProjectName).exe $(OutDir);%(AdditionalLibraryDirectories) true @@ -127,7 +129,7 @@ xcopy /Y /Q "$(ProjectDir)..\..\..\external\libwebsockets\win32\lib\*.*" "$(OutD if not exist "$(OutDir)" mkdir "$(OutDir)" -xcopy /Y /Q "$(ProjectDir)..\..\..\external\libwebsockets\win32\lib\*.*" "$(OutDir)" +xcopy /Y /Q "$(EngineRoot)external\websockets\prebuilt\win32\*.*" "$(OutDir)" @@ -141,25 +143,15 @@ xcopy /Y /Q "$(ProjectDir)..\..\..\external\libwebsockets\win32\lib\*.*" "$(OutD - + {98a51ba8-fc3a-415b-ac8f-8c7bd464e93e} false - + {f8edd7fa-9a51-4e80-baeb-860825d2eac6} - false - - - {21b2c324-891f-48ea-ad1a-5ae13de12e28} - false - - - {929480e7-23c0-4df6-8456-096d71547116} - false {207bc7a9-ccf1-4f2f-a04d-45f72242ae25} - false diff --git a/template/multi-platform-js/Classes/AppDelegate.cpp b/template/multi-platform-js/Classes/AppDelegate.cpp index ec78d9f5ae..4c2fea3abf 100644 --- a/template/multi-platform-js/Classes/AppDelegate.cpp +++ b/template/multi-platform-js/Classes/AppDelegate.cpp @@ -5,14 +5,11 @@ #include "ScriptingCore.h" #include "jsb_cocos2dx_auto.hpp" #include "jsb_cocos2dx_extension_auto.hpp" -#include "jsb_cocos2dx_extension_manual.h" #include "cocos2d_specifics.hpp" -#include "js_bindings_chipmunk_registration.h" -#include "js_bindings_system_registration.h" -#include "js_bindings_ccbreader.h" +#include "extension/jsb_cocos2dx_extension_manual.h" +#include "chipmunk/js_bindings_chipmunk_registration.h" #include "jsb_opengl_registration.h" -#include "XMLHTTPRequest.h" -#include "jsb_websocket.h" +#include "localstorage/js_bindings_system_registration.h" USING_NS_CC; using namespace CocosDenshion; @@ -41,15 +38,11 @@ bool AppDelegate::applicationDidFinishLaunching() ScriptingCore* sc = ScriptingCore::getInstance(); sc->addRegisterCallback(register_all_cocos2dx); sc->addRegisterCallback(register_all_cocos2dx_extension); - sc->addRegisterCallback(register_all_cocos2dx_extension_manual); sc->addRegisterCallback(register_cocos2dx_js_extensions); - sc->addRegisterCallback(register_CCBuilderReader); + sc->addRegisterCallback(register_all_cocos2dx_extension_manual); sc->addRegisterCallback(jsb_register_chipmunk); - sc->addRegisterCallback(jsb_register_system); sc->addRegisterCallback(JSB_register_opengl); - sc->addRegisterCallback(MinXmlHttpRequest::_js_register); - sc->addRegisterCallback(register_jsb_websocket); - + sc->addRegisterCallback(jsb_register_system); sc->start(); ScriptEngineProtocol *engine = ScriptingCore::getInstance(); diff --git a/template/multi-platform-js/proj.android/build_native.cmd b/template/multi-platform-js/proj.android/build_native.cmd index 5934330044..82eb0151a5 100644 --- a/template/multi-platform-js/proj.android/build_native.cmd +++ b/template/multi-platform-js/proj.android/build_native.cmd @@ -56,7 +56,7 @@ exit /b 1 set COCOS2DX_ROOT=%~dp0..\..\.. set APP_ROOT=%~dp0.. set APP_ANDROID_ROOT=%~dp0 -set BINDINGS_JS_ROOT=%APP_ROOT%\..\..\scripting\javascript\bindings\js +set BINDINGS_JS_ROOT=%COCOS2DX_ROOT%\cocos\scripting\javascript\script if "%buildexternalsfromsource%"=="1" (goto :MODULE1) else (goto :MODULE2) :MODULE1 @@ -65,7 +65,7 @@ if "%buildexternalsfromsource%"=="1" (goto :MODULE1) else (goto :MODULE2) goto :COPY_RES :MODULE2 echo "Using prebuilt externals" - set NDK_MODULE_PATH=%COCOS2DX_ROOT%;%COCOS2DX_ROOT%\cocos2dx\platform\third_party\android\prebuilt + set NDK_MODULE_PATH=%COCOS2DX_ROOT%;%COCOS2DX_ROOT%\cocos;%COCOS2DX_ROOT%\external :COPY_RES echo NDK_ROOT = %NDK_ROOT% @@ -86,5 +86,5 @@ xcopy /e /q /r /y %APP_ROOT%\Resources\* %APP_ANDROID_ROOT%\assets rem copy bindings/*.js into assets' root xcopy /e /q /r /y %BINDINGS_JS_ROOT%\* %APP_ANDROID_ROOT%\assets -call %NDK_ROOT%\ndk-build.cmd %PARALLEL_BUILD_FLAG% NDK_LOG=0 V=0 +call %NDK_ROOT%\ndk-build.cmd %PARALLEL_BUILD_FLAG% NDK_LOG=0 V=0 %* pause \ No newline at end of file diff --git a/template/multi-platform-js/proj.win32/HelloJavascript.sln b/template/multi-platform-js/proj.win32/HelloJavascript.sln index 025d85dd02..5880df4c17 100644 --- a/template/multi-platform-js/proj.win32/HelloJavascript.sln +++ b/template/multi-platform-js/proj.win32/HelloJavascript.sln @@ -10,23 +10,16 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HelloJavascript", "HelloJav {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6} = {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcocos2d", "..\..\..\cocos2dx\proj.win32\cocos2d.vcxproj", "{98A51BA8-FC3A-415B-AC8F-8C7BD464E93E}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcocos2d", "..\..\..\cocos\2d\cocos2d.vcxproj", "{98A51BA8-FC3A-415B-AC8F-8C7BD464E93E}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libchipmunk", "..\..\..\external\chipmunk\proj.win32\chipmunk.vcxproj", "{207BC7A9-CCF1-4F2F-A04D-45F72242AE25}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libExtensions", "..\..\..\extensions\proj.win32\libExtensions.vcxproj", "{21B2C324-891F-48EA-AD1A-5AE13DE12E28}" - ProjectSection(ProjectDependencies) = postProject - {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E} = {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E} - {207BC7A9-CCF1-4F2F-A04D-45F72242AE25} = {207BC7A9-CCF1-4F2F-A04D-45F72242AE25} - {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6} = {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libCocosDenshion", "..\..\..\CocosDenshion\proj.win32\CocosDenshion.vcxproj", "{F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libAudio", "..\..\..\cocos\audio\proj.win32\CocosDenshion.vcxproj", "{F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6}" ProjectSection(ProjectDependencies) = postProject {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E} = {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libJSBinding", "..\..\..\scripting\javascript\bindings\proj.win32\libJSBinding.vcxproj", "{39379840-825A-45A0-B363-C09FFEF864BD}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libJSBinding", "..\..\..\cocos\scripting\javascript\bindings\proj.win32\libJSBinding.vcxproj", "{39379840-825A-45A0-B363-C09FFEF864BD}" ProjectSection(ProjectDependencies) = postProject {21B2C324-891F-48EA-AD1A-5AE13DE12E28} = {21B2C324-891F-48EA-AD1A-5AE13DE12E28} {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E} = {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E} @@ -34,6 +27,16 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libJSBinding", "..\..\..\sc {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6} = {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libJSBindingForChipmunk", "..\..\..\cocos\scripting\javascript\bindings\chipmunk\libJSBindingForChipmunk.vcxproj", "{21070E58-EEC6-4E16-8B4F-6D083DF55790}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libLocalStorage", "..\..\..\cocos\storage\local-storage\proj.win32\libLocalStorage.vcxproj", "{632A8F38-D0F0-4D22-86B3-D69F5E6BF63A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libJSBindingForLocalStorage", "..\..\..\cocos\scripting\javascript\bindings\localstorage\libJSBindingForLocalStorage.vcxproj", "{68F5F371-BD7B-4C30-AE5B-0B08F22E0CDE}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libJSBindingForExtension", "..\..\..\cocos\scripting\javascript\bindings\extension\libJSBindingForExtension.vcxproj", "{625F7391-9A91-48A1-8CFC-79508C822637}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libExtensions", "..\..\..\extensions\proj.win32\libExtensions.vcxproj", "{21B2C324-891F-48EA-AD1A-5AE13DE12E28}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -52,10 +55,6 @@ Global {207BC7A9-CCF1-4F2F-A04D-45F72242AE25}.Debug|Win32.Build.0 = Debug|Win32 {207BC7A9-CCF1-4F2F-A04D-45F72242AE25}.Release|Win32.ActiveCfg = Release|Win32 {207BC7A9-CCF1-4F2F-A04D-45F72242AE25}.Release|Win32.Build.0 = Release|Win32 - {21B2C324-891F-48EA-AD1A-5AE13DE12E28}.Debug|Win32.ActiveCfg = Debug|Win32 - {21B2C324-891F-48EA-AD1A-5AE13DE12E28}.Debug|Win32.Build.0 = Debug|Win32 - {21B2C324-891F-48EA-AD1A-5AE13DE12E28}.Release|Win32.ActiveCfg = Release|Win32 - {21B2C324-891F-48EA-AD1A-5AE13DE12E28}.Release|Win32.Build.0 = Release|Win32 {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6}.Debug|Win32.ActiveCfg = Debug|Win32 {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6}.Debug|Win32.Build.0 = Debug|Win32 {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6}.Release|Win32.ActiveCfg = Release|Win32 @@ -64,6 +63,26 @@ Global {39379840-825A-45A0-B363-C09FFEF864BD}.Debug|Win32.Build.0 = Debug|Win32 {39379840-825A-45A0-B363-C09FFEF864BD}.Release|Win32.ActiveCfg = Release|Win32 {39379840-825A-45A0-B363-C09FFEF864BD}.Release|Win32.Build.0 = Release|Win32 + {21070E58-EEC6-4E16-8B4F-6D083DF55790}.Debug|Win32.ActiveCfg = Debug|Win32 + {21070E58-EEC6-4E16-8B4F-6D083DF55790}.Debug|Win32.Build.0 = Debug|Win32 + {21070E58-EEC6-4E16-8B4F-6D083DF55790}.Release|Win32.ActiveCfg = Release|Win32 + {21070E58-EEC6-4E16-8B4F-6D083DF55790}.Release|Win32.Build.0 = Release|Win32 + {632A8F38-D0F0-4D22-86B3-D69F5E6BF63A}.Debug|Win32.ActiveCfg = Debug|Win32 + {632A8F38-D0F0-4D22-86B3-D69F5E6BF63A}.Debug|Win32.Build.0 = Debug|Win32 + {632A8F38-D0F0-4D22-86B3-D69F5E6BF63A}.Release|Win32.ActiveCfg = Release|Win32 + {632A8F38-D0F0-4D22-86B3-D69F5E6BF63A}.Release|Win32.Build.0 = Release|Win32 + {68F5F371-BD7B-4C30-AE5B-0B08F22E0CDE}.Debug|Win32.ActiveCfg = Debug|Win32 + {68F5F371-BD7B-4C30-AE5B-0B08F22E0CDE}.Debug|Win32.Build.0 = Debug|Win32 + {68F5F371-BD7B-4C30-AE5B-0B08F22E0CDE}.Release|Win32.ActiveCfg = Release|Win32 + {68F5F371-BD7B-4C30-AE5B-0B08F22E0CDE}.Release|Win32.Build.0 = Release|Win32 + {625F7391-9A91-48A1-8CFC-79508C822637}.Debug|Win32.ActiveCfg = Debug|Win32 + {625F7391-9A91-48A1-8CFC-79508C822637}.Debug|Win32.Build.0 = Debug|Win32 + {625F7391-9A91-48A1-8CFC-79508C822637}.Release|Win32.ActiveCfg = Release|Win32 + {625F7391-9A91-48A1-8CFC-79508C822637}.Release|Win32.Build.0 = Release|Win32 + {21B2C324-891F-48EA-AD1A-5AE13DE12E28}.Debug|Win32.ActiveCfg = Debug|Win32 + {21B2C324-891F-48EA-AD1A-5AE13DE12E28}.Debug|Win32.Build.0 = Debug|Win32 + {21B2C324-891F-48EA-AD1A-5AE13DE12E28}.Release|Win32.ActiveCfg = Release|Win32 + {21B2C324-891F-48EA-AD1A-5AE13DE12E28}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/template/multi-platform-js/proj.win32/HelloJavascript.vcxproj b/template/multi-platform-js/proj.win32/HelloJavascript.vcxproj index fb2ad0984c..26bab7731b 100644 --- a/template/multi-platform-js/proj.win32/HelloJavascript.vcxproj +++ b/template/multi-platform-js/proj.win32/HelloJavascript.vcxproj @@ -34,11 +34,13 @@ - + + - + + @@ -77,7 +79,7 @@ Disabled - $(ProjectDir)..\Classes;$(ProjectDir)..\..\..\scripting\javascript\spidermonkey-win32\include;$(ProjectDir)..\..\..\external\chipmunk\include\chipmunk;$(ProjectDir)..\..\..\extensions;$(ProjectDir)..\..\..\scripting\auto-generated\js-bindings;$(ProjectDir)..\..\..\scripting\javascript\bindings;$(ProjectDir)..\..\..\cocos2dx;$(ProjectDir)..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\cocos2dx\platform\third_party\win32;$(ProjectDir)..\..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\..\audio\include;%(AdditionalIncludeDirectories) + $(ProjectDir)..\Classes;$(EngineRoot);$(EngineRoot)cocos;$(EngineRoot)cocos\audio\include;$(EngineRoot)cocos\scripting\javascript\bindings;$(EngineRoot)cocos\scripting\auto-generated\js-bindings;$(EngineRoot)external\spidermonkey\include\win32;$(EngineRoot)external\chipmunk\include\chipmunk;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;STRICT;DEBUG;_DEBUG;XP_WIN;JS_HAVE___INTN;JS_INTPTR_TYPE=int;COCOS2D_DEBUG=1;COCOS2D_JAVASCRIPT=1;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) false EnableFastChecks @@ -96,11 +98,11 @@ if not exist "$(OutDir)" mkdir "$(OutDir)" -xcopy /Y /Q "$(ProjectDir)..\..\..\scripting\javascript\spidermonkey-win32\lib\*.*" "$(OutDir)" -xcopy /Y /Q "$(ProjectDir)..\..\..\external\libwebsockets\win32\lib\*.*" "$(OutDir)" +xcopy /Y /Q "$(EngineRoot)external\spidermonkey\prebuilt\win32\*.*" "$(OutDir)" +xcopy /Y /Q "$(EngineRoot)external\websockets\prebuilt\win32\*.*" "$(OutDir)" - libcocos2d.lib;libExtensions.lib;libCocosDenshion.lib;libchipmunk.lib;libJSBinding.lib;libcurl_imp.lib;mozjs-23.0.lib;ws2_32.lib;sqlite3.lib;websockets.lib;%(AdditionalDependencies) + libcurl_imp.lib;mozjs-23.0.lib;ws2_32.lib;sqlite3.lib;websockets.lib;%(AdditionalDependencies) $(OutDir);%(AdditionalLibraryDirectories) true Windows @@ -110,7 +112,7 @@ xcopy /Y /Q "$(ProjectDir)..\..\..\external\libwebsockets\win32\lib\*.*" "$(OutD if not exist "$(OutDir)" mkdir "$(OutDir)" if exist "$(OutDir)\HelloJavascriptRes" rd /s /q "$(OutDir)\HelloJavascriptRes" mkdir "$(OutDir)\HelloJavascriptRes" -xcopy "$(ProjectDir)..\..\..\scripting\javascript\bindings\js\*.js" "$(OutDir)\HelloJavascriptRes\" /e /Y +xcopy "$(EngineRoot)cocos\scripting\javascript\script\*.js" "$(OutDir)\HelloJavascriptRes\" /e /Y xcopy "$(ProjectDir)..\Resources" "$(OutDir)\HelloJavascriptRes\" /e /Y @@ -131,7 +133,7 @@ xcopy "$(ProjectDir)..\Resources" "$(OutDir)\HelloJavascriptRes\" /e /Ygame_p.c - $(ProjectDir)..\Classes;$(ProjectDir)..\..\..\scripting\javascript\spidermonkey-win32\include;$(ProjectDir)..\..\..\external\chipmunk\include\chipmunk;$(ProjectDir)..\..\..\extensions;$(ProjectDir)..\..\..\scripting\auto-generated\js-bindings;$(ProjectDir)..\..\..\scripting\javascript\bindings;$(ProjectDir)..\..\..\cocos2dx;$(ProjectDir)..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\cocos2dx\platform\third_party\win32;$(ProjectDir)..\..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\..\audio\include;%(AdditionalIncludeDirectories) + $(ProjectDir)..\Classes;$(EngineRoot);$(EngineRoot)cocos;$(EngineRoot)cocos\audio\include;$(EngineRoot)cocos\scripting\javascript\bindings;$(EngineRoot)cocos\scripting\auto-generated\js-bindings;$(EngineRoot)external\spidermonkey\include\win32;$(EngineRoot)external\chipmunk\include\chipmunk;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;STRICT;NDEBUG;XP_WIN;JS_HAVE___INTN;JS_INTPTR_TYPE=int;COCOS2D_JAVASCRIPT=1;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) @@ -151,20 +153,21 @@ xcopy "$(ProjectDir)..\Resources" "$(OutDir)\HelloJavascriptRes\" /e /Y if not exist "$(OutDir)" mkdir "$(OutDir)" -xcopy /Y /Q "$(ProjectDir)..\..\..\scripting\javascript\spidermonkey-win32\lib\*.*" "$(OutDir)" -xcopy /Y /Q "$(ProjectDir)..\..\..\external\libwebsockets\win32\lib\*.*" "$(OutDir)" +xcopy /Y /Q "$(EngineRoot)external\spidermonkey\prebuilt\win32\*.*" "$(OutDir)" +xcopy /Y /Q "$(EngineRoot)external\websockets\prebuilt\win32\*.*" "$(OutDir)" - libcocos2d.lib;libExtensions.lib;libCocosDenshion.lib;libchipmunk.lib;libJSBinding.lib;libcurl_imp.lib;mozjs-23.0.lib;ws2_32.lib;sqlite3.lib;websockets.lib;%(AdditionalDependencies) + libcurl_imp.lib;mozjs-23.0.lib;ws2_32.lib;sqlite3.lib;websockets.lib;%(AdditionalDependencies) $(OutDir);%(AdditionalLibraryDirectories) Windows MachineX86 + true if not exist "$(OutDir)" mkdir "$(OutDir)" if exist "$(OutDir)\HelloJavascriptRes" rd /s /q "$(OutDir)\HelloJavascriptRes" mkdir "$(OutDir)\HelloJavascriptRes" -xcopy "$(ProjectDir)..\..\..\scripting\javascript\bindings\js\*.js" "$(OutDir)\HelloJavascriptRes\" /e /Y +xcopy "$(EngineRoot)cocos\scripting\javascript\script\*.js" "$(OutDir)\HelloJavascriptRes\" /e /Y xcopy "$(ProjectDir)..\Resources" "$(OutDir)\HelloJavascriptRes\" /e /Y Copy js and resource files. @@ -181,13 +184,32 @@ xcopy "$(ProjectDir)..\Resources" "$(OutDir)\HelloJavascriptRes\" /e /Y - + {98a51ba8-fc3a-415b-ac8f-8c7bd464e93e} - false - + {f8edd7fa-9a51-4e80-baeb-860825d2eac6} - false + + + {21070e58-eec6-4e16-8b4f-6d083df55790} + + + {625f7391-9a91-48a1-8cfc-79508c822637} + + + {68f5f371-bd7b-4c30-ae5b-0b08f22e0cde} + + + {39379840-825a-45a0-b363-c09ffef864bd} + + + {632a8f38-d0f0-4d22-86b3-d69f5e6bf63a} + + + {21b2c324-891f-48ea-ad1a-5ae13de12e28} + + + {207bc7a9-ccf1-4f2f-a04d-45f72242ae25} diff --git a/template/multi-platform-lua/proj.android/build_native.cmd b/template/multi-platform-lua/proj.android/build_native.cmd index e8caf30dd1..0177685738 100644 --- a/template/multi-platform-lua/proj.android/build_native.cmd +++ b/template/multi-platform-lua/proj.android/build_native.cmd @@ -62,7 +62,7 @@ if "%buildexternalsfromsource%"=="1" (goto :MODULE1) else (goto :MODULE2) goto :COPY_RES :MODULE2 echo "Using prebuilt externals" - set NDK_MODULE_PATH=%COCOS2DX_ROOT%;%COCOS2DX_ROOT%\cocos2dx\platform\third_party\android\prebuilt + set NDK_MODULE_PATH=%COCOS2DX_ROOT%;%COCOS2DX_ROOT%\cocos;%COCOS2DX_ROOT%\external :COPY_RES echo NDK_ROOT = %NDK_ROOT% @@ -75,13 +75,12 @@ rem make sure assets is exist if exist %APP_ANDROID_ROOT%\assets rd /q /s %APP_ANDROID_ROOT%\assets mkdir %APP_ANDROID_ROOT%\assets -mkdir %APP_ANDROID_ROOT%\assets\res rem copy Resources/* into assets' root xcopy /e /q /r /y %APP_ROOT%\Resources\* %APP_ANDROID_ROOT%\assets rem copy common luaScript -xcopy /e /q /r /y %APP_ROOT%\..\..\scripting\lua\script\* %APP_ANDROID_ROOT%\assets +xcopy /e /q /r /y %COCOS2DX_ROOT%\cocos\scripting\lua\script\* %APP_ANDROID_ROOT%\assets -call %NDK_ROOT%\ndk-build.cmd NDK_LOG=0 V=0 +call %NDK_ROOT%\ndk-build.cmd NDK_LOG=0 V=0 %* pause \ No newline at end of file diff --git a/template/multi-platform-lua/proj.win32/HelloLua.sln b/template/multi-platform-lua/proj.win32/HelloLua.sln index ddd4ee62c8..5fdeacb7a4 100644 --- a/template/multi-platform-lua/proj.win32/HelloLua.sln +++ b/template/multi-platform-lua/proj.win32/HelloLua.sln @@ -11,13 +11,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HelloLua", "HelloLua.vcxpro {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6} = {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcocos2d", "..\..\..\cocos2dx\proj.win32\cocos2d.vcxproj", "{98A51BA8-FC3A-415B-AC8F-8C7BD464E93E}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libCocosDenshion", "..\..\..\CocosDenshion\proj.win32\CocosDenshion.vcxproj", "{F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6}" - ProjectSection(ProjectDependencies) = postProject - {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E} = {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E} - EndProjectSection -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libExtensions", "..\..\..\extensions\proj.win32\libExtensions.vcxproj", "{21B2C324-891F-48EA-AD1A-5AE13DE12E28}" ProjectSection(ProjectDependencies) = postProject {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E} = {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E} @@ -30,11 +23,17 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libBox2D", "..\..\..\extern EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libchipmunk", "..\..\..\external\chipmunk\proj.win32\chipmunk.vcxproj", "{207BC7A9-CCF1-4F2F-A04D-45F72242AE25}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "liblua", "..\..\..\scripting\lua\proj.win32\liblua.vcxproj", "{DDC3E27F-004D-4DD4-9DD3-931A013D2159}" - ProjectSection(ProjectDependencies) = postProject - {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E} = {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E} - {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6} = {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6} - EndProjectSection +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcocos2d", "..\..\..\cocos\2d\cocos2d.vcxproj", "{98A51BA8-FC3A-415B-AC8F-8C7BD464E93E}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libAudio", "..\..\..\cocos\audio\proj.win32\CocosDenshion.vcxproj", "{F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "liblua", "..\..\..\cocos\scripting\lua\bindings\liblua.vcxproj", "{DDC3E27F-004D-4DD4-9DD3-931A013D2159}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libNetwork", "..\..\..\cocos\network\proj.win32\libNetwork.vcxproj", "{DF2638C0-8128-4847-867C-6EAFE3DEE7B5}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libCocosBuilder", "..\..\..\cocos\editor-support\cocosbuilder\proj.win32\libCocosBuilder.vcxproj", "{811C0DAB-7B96-4BD3-A154-B7572B58E4AB}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libCocosStudio", "..\..\..\cocos\editor-support\cocostudio\proj.win32\libCocosStudio.vcxproj", "{B57CF53F-2E49-4031-9822-047CC0E6BDE2}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -46,14 +45,6 @@ Global {4E6A7A0E-DDD8-4BAA-8B22-C964069364ED}.Debug|Win32.Build.0 = Debug|Win32 {4E6A7A0E-DDD8-4BAA-8B22-C964069364ED}.Release|Win32.ActiveCfg = Release|Win32 {4E6A7A0E-DDD8-4BAA-8B22-C964069364ED}.Release|Win32.Build.0 = Release|Win32 - {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E}.Debug|Win32.ActiveCfg = Debug|Win32 - {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E}.Debug|Win32.Build.0 = Debug|Win32 - {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E}.Release|Win32.ActiveCfg = Release|Win32 - {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E}.Release|Win32.Build.0 = Release|Win32 - {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6}.Debug|Win32.ActiveCfg = Debug|Win32 - {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6}.Debug|Win32.Build.0 = Debug|Win32 - {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6}.Release|Win32.ActiveCfg = Release|Win32 - {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6}.Release|Win32.Build.0 = Release|Win32 {21B2C324-891F-48EA-AD1A-5AE13DE12E28}.Debug|Win32.ActiveCfg = Debug|Win32 {21B2C324-891F-48EA-AD1A-5AE13DE12E28}.Debug|Win32.Build.0 = Debug|Win32 {21B2C324-891F-48EA-AD1A-5AE13DE12E28}.Release|Win32.ActiveCfg = Release|Win32 @@ -66,10 +57,30 @@ Global {207BC7A9-CCF1-4F2F-A04D-45F72242AE25}.Debug|Win32.Build.0 = Debug|Win32 {207BC7A9-CCF1-4F2F-A04D-45F72242AE25}.Release|Win32.ActiveCfg = Release|Win32 {207BC7A9-CCF1-4F2F-A04D-45F72242AE25}.Release|Win32.Build.0 = Release|Win32 + {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E}.Debug|Win32.ActiveCfg = Debug|Win32 + {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E}.Debug|Win32.Build.0 = Debug|Win32 + {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E}.Release|Win32.ActiveCfg = Release|Win32 + {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E}.Release|Win32.Build.0 = Release|Win32 + {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6}.Debug|Win32.ActiveCfg = Debug|Win32 + {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6}.Debug|Win32.Build.0 = Debug|Win32 + {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6}.Release|Win32.ActiveCfg = Release|Win32 + {F8EDD7FA-9A51-4E80-BAEB-860825D2EAC6}.Release|Win32.Build.0 = Release|Win32 {DDC3E27F-004D-4DD4-9DD3-931A013D2159}.Debug|Win32.ActiveCfg = Debug|Win32 {DDC3E27F-004D-4DD4-9DD3-931A013D2159}.Debug|Win32.Build.0 = Debug|Win32 {DDC3E27F-004D-4DD4-9DD3-931A013D2159}.Release|Win32.ActiveCfg = Release|Win32 {DDC3E27F-004D-4DD4-9DD3-931A013D2159}.Release|Win32.Build.0 = Release|Win32 + {DF2638C0-8128-4847-867C-6EAFE3DEE7B5}.Debug|Win32.ActiveCfg = Debug|Win32 + {DF2638C0-8128-4847-867C-6EAFE3DEE7B5}.Debug|Win32.Build.0 = Debug|Win32 + {DF2638C0-8128-4847-867C-6EAFE3DEE7B5}.Release|Win32.ActiveCfg = Release|Win32 + {DF2638C0-8128-4847-867C-6EAFE3DEE7B5}.Release|Win32.Build.0 = Release|Win32 + {811C0DAB-7B96-4BD3-A154-B7572B58E4AB}.Debug|Win32.ActiveCfg = Debug|Win32 + {811C0DAB-7B96-4BD3-A154-B7572B58E4AB}.Debug|Win32.Build.0 = Debug|Win32 + {811C0DAB-7B96-4BD3-A154-B7572B58E4AB}.Release|Win32.ActiveCfg = Release|Win32 + {811C0DAB-7B96-4BD3-A154-B7572B58E4AB}.Release|Win32.Build.0 = Release|Win32 + {B57CF53F-2E49-4031-9822-047CC0E6BDE2}.Debug|Win32.ActiveCfg = Debug|Win32 + {B57CF53F-2E49-4031-9822-047CC0E6BDE2}.Debug|Win32.Build.0 = Debug|Win32 + {B57CF53F-2E49-4031-9822-047CC0E6BDE2}.Release|Win32.ActiveCfg = Release|Win32 + {B57CF53F-2E49-4031-9822-047CC0E6BDE2}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/template/multi-platform-lua/proj.win32/HelloLua.vcxproj b/template/multi-platform-lua/proj.win32/HelloLua.vcxproj index 2007e7db42..b15be7cabb 100644 --- a/template/multi-platform-lua/proj.win32/HelloLua.vcxproj +++ b/template/multi-platform-lua/proj.win32/HelloLua.vcxproj @@ -36,11 +36,13 @@ - + + - + + @@ -64,7 +66,7 @@ - $(ProjectDir)..\Classes;$(ProjectDir)..\..\..\scripting\auto-generated\js-bindings;$(ProjectDir)..\..\..\scripting\lua\cocos2dx_support;$(ProjectDir)..\..\..\scripting\lua\lua;$(ProjectDir)..\..\..\scripting\lua\tolua;$(ProjectDir)..\..\..\scripting\lua\src;$(ProjectDir)..\..\..\cocos2dx;$(ProjectDir)..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\cocos2dx\platform\third_party\win32;$(ProjectDir)..\..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\..\external;$(ProjectDir)..\..\..\external\chipmunk\include\chipmunk;$(ProjectDir)..\..\..\audio\include;%(AdditionalIncludeDirectories) + $(ProjectDir)..\Classes;$(EngineRoot)cocos\audio\include;$(EngineRoot)cocos\scripting\auto-generated\lua-bindings;$(EngineRoot)cocos\scripting\lua\bindings;$(EngineRoot)external;$(EngineRoot)external\lua\tolua;$(EngineRoot)external\lua\lua;$(EngineRoot)external\chipmunk\include\chipmunk;%(AdditionalIncludeDirectories) Level3 @@ -82,7 +84,7 @@ MachineX86 true $(OutDir);%(AdditionalLibraryDirectories) - libcocos2d.lib;libExtensions.lib;libBox2d.lib;libchipmunk.lib;libCocosDenshion.lib;liblua.lib;lua51.lib;websockets.lib;%(AdditionalDependencies) + lua51.lib;websockets.lib;%(AdditionalDependencies) 0x0409 @@ -102,18 +104,18 @@ - xcopy "$(ProjectDir)..\..\..\scripting\lua\script" "$(ProjectDir)..\Resources" /e /Y + xcopy "$(ProjectDir)..\..\..\cocos\scripting\lua\script" "$(ProjectDir)..\Resources" /e /Y if not exist "$(OutDir)" mkdir "$(OutDir)" -xcopy /Y /Q "$(ProjectDir)..\..\..\external\libwebsockets\win32\lib\*.*" "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\..\external\websockets\prebuilt\win32\*.*" "$(OutDir)" - $(ProjectDir)..\Classes;$(ProjectDir)..\..\..\scripting\lua\cocos2dx_support;$(ProjectDir)..\..\..\scripting\lua\lua;$(ProjectDir)..\..\..\scripting\lua\tolua;$(ProjectDir)..\..\..\scripting\lua\src;$(ProjectDir)..\..\..\cocos2dx;$(ProjectDir)..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\cocos2dx\platform\third_party\win32;$(ProjectDir)..\..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\..\external;$(ProjectDir)..\..\..\external\chipmunk\include\chipmunk;$(ProjectDir)..\..\..\audio\include;$(ProjectDir)..\..\..\scripting\lua\cocos2dx_support;$(ProjectDir)..\..\..\scripting\lua\tolua;$(ProjectDir)..\..\..\scripting\lua\lua;%(AdditionalIncludeDirectories) + $(ProjectDir)..\Classes;$(EngineRoot)cocos\audio\include;$(EngineRoot)cocos\scripting\auto-generated\lua-bindings;$(EngineRoot)cocos\scripting\lua\bindings;$(EngineRoot)external;$(EngineRoot)external\lua\tolua;$(EngineRoot)external\lua\lua;$(EngineRoot)external\chipmunk\include\chipmunk;%(AdditionalIncludeDirectories) Level3 @@ -130,7 +132,8 @@ xcopy /Y /Q "$(ProjectDir)..\..\..\external\libwebsockets\win32\lib\*.*" "$(OutD Windows MachineX86 $(OutDir);%(AdditionalLibraryDirectories) - libcocos2d.lib;libExtensions.lib;libBox2d.lib;libchipmunk.lib;libCocosDenshion.lib;liblua.lib;lua51.lib;websockets.lib;%(AdditionalDependencies) + lua51.lib;websockets.lib;%(AdditionalDependencies) + true 0x0409 @@ -157,7 +160,7 @@ xcopy /Y /Q "$(ProjectDir)..\..\..\external\libwebsockets\win32\lib\*.*" "$(OutD if not exist "$(OutDir)" mkdir "$(OutDir)" -xcopy /Y /Q "$(ProjectDir)..\..\..\external\libwebsockets\win32\lib\*.*" "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\..\external\websockets\prebuilt\win32\*.*" "$(OutDir)" @@ -171,6 +174,32 @@ xcopy /Y /Q "$(ProjectDir)..\..\..\external\libwebsockets\win32\lib\*.*" "$(OutD + + + {98a51ba8-fc3a-415b-ac8f-8c7bd464e93e} + + + {f8edd7fa-9a51-4e80-baeb-860825d2eac6} + + + {811c0dab-7b96-4bd3-a154-b7572b58e4ab} + + + {b57cf53f-2e49-4031-9822-047cc0e6bde2} + + + {df2638c0-8128-4847-867c-6eafe3dee7b5} + + + {ddc3e27f-004d-4dd4-9dd3-931a013d2159} + + + {21b2c324-891f-48ea-ad1a-5ae13de12e28} + + + {207bc7a9-ccf1-4f2f-a04d-45f72242ae25} + + diff --git a/tools/tojs/cocos2dx_extension.ini b/tools/tojs/cocos2dx_extension.ini index 1519b2eb92..a6475253f2 100644 --- a/tools/tojs/cocos2dx_extension.ini +++ b/tools/tojs/cocos2dx_extension.ini @@ -13,7 +13,7 @@ android_flags = -D_SIZE_T_DEFINED_ clang_headers = -I%(clangllvmdir)s/lib/clang/3.3/include clang_flags = -nostdinc -x c++ -std=c++11 -cocos_headers = -I%(cocosdir)s/cocos/2d -I%(cocosdir)s/cocos/base -I%(cocosdir)s/cocos/gui -I%(cocosdir)s/cocos/physics -I%(cocosdir)s/cocos/2d/platform -I%(cocosdir)s/cocos/2d/platform/android -I%(cocosdir)s/cocos/math/kazmath/include -I%(cocosdir)s/extensions -I%(cocosdir)s/external -I%(cocosdir)s/cocos/editor-support -I%(cocosdir)s +cocos_headers = -I%(cocosdir)s/cocos -I%(cocosdir)s/cocos/2d -I%(cocosdir)s/cocos/base -I%(cocosdir)s/cocos/gui -I%(cocosdir)s/cocos/physics -I%(cocosdir)s/cocos/2d/platform -I%(cocosdir)s/cocos/2d/platform/android -I%(cocosdir)s/cocos/math/kazmath/include -I%(cocosdir)s/extensions -I%(cocosdir)s/external -I%(cocosdir)s/cocos/editor-support -I%(cocosdir)s cocos_flags = -DANDROID -DCOCOS2D_JAVASCRIPT @@ -23,11 +23,11 @@ cxxgenerator_headers = extra_arguments = %(android_headers)s %(clang_headers)s %(cxxgenerator_headers)s %(cocos_headers)s %(android_flags)s %(clang_flags)s %(cocos_flags)s %(extra_flags)s # what headers to parse -headers = %(cocosdir)s/extensions/cocos-ext.h %(cocosdir)s/cocos/editor-support/cocosbuilder/CocosBuilder.h %(cocosdir)s/cocos/editor-support/cocostudio/CocoStudio.h +headers = %(cocosdir)s/extensions/cocos-ext.h # what classes to produce code for. You can use regular expressions here. When testing the regular # expression, it will be enclosed in "^$", like this: "^Menu*$". -classes = AssetsManager.* CCBReader.* CCBAnimationManager.* Scale9Sprite Control.* ControlButton.* ScrollView$ TableView$ TableViewCell$ EditBox$ Armature ArmatureAnimation Skin Bone ArmatureDataManager +classes = AssetsManager.* Scale9Sprite Control.* ControlButton.* ScrollView$ TableView$ TableViewCell$ EditBox$ # what should we skip? in the format ClassName::[function function] # ClassName is a regular expression, but will be used like this: "^ClassName$" functions are also @@ -36,9 +36,7 @@ classes = AssetsManager.* CCBReader.* CCBAnimationManager.* Scale9Sprite Control # will apply to all class names. This is a convenience wildcard to be able to skip similar named # functions from all classes. -skip = CCBReader::[^CCBReader$ addOwnerCallbackName isJSControlled readByte getCCBMemberVariableAssigner readFloat getCCBSelectorResolver toLowerCase lastPathComponent deletePathExtension endsWith concat getResolutionScale getAnimatedProperties readBool readInt addOwnerCallbackNode addDocumentCallbackName readCachedString readNodeGraphFromData addDocumentCallbackNode getLoadedSpriteSheet initWithData readFileWithCleanUp getOwner$ readNodeGraphFromFile createSceneWithNodeGraphFromFile getAnimationManagers$ setAnimationManagers], - CCBAnimationManager::[setAnimationCompletedCallback], - ScrollView::[(g|s)etDelegate$], +skip = ScrollView::[(g|s)etDelegate$], .*Delegate::[*], .*Loader.*::[*], *::[^visit$ copyWith.* onEnter.* onExit.* ^description$ getObjectType .*HSV onTouch.* onAcc.* onKey.* onRegisterTouchListener], @@ -48,15 +46,11 @@ skip = CCBReader::[^CCBReader$ addOwnerCallbackName isJSControlled readByte getC AssetsManagerDelegateProtocol::[*], Control::[removeHandleOfControlEvent addHandleOfControlEvent], ControlUtils::[*], - ControlSwitchSprite::[*], - Armature::[createBone updateBlendType getBody setBody getShapeList .*BlendFunc], - Skin::[getSkinData setSkinData], - ArmatureAnimation::[updateHandler updateFrameData frameEvent] + ControlSwitchSprite::[*] rename_functions = -rename_classes = CCBReader::_Reader, - CCBAnimationManager::BuilderAnimationManager +rename_classes = # for all class names, should we remove something when registering in the target VM? remove_prefix = @@ -65,11 +59,11 @@ remove_prefix = classes_have_no_parents = # base classes which will be skipped when their sub-classes found them. -base_classes_to_skip = Object ProcessBase +base_classes_to_skip = Object # classes that create no constructor # Set is special and we will use a hand-written constructor -abstract_classes = ArmatureDataManager +abstract_classes = # Determining whether to use script object(js object) to control the lifecycle of native(cpp) object or the other way around. Supported values are 'yes' or 'no'. script_control_cpp = no diff --git a/tools/tojs/genbindings.sh b/tools/tojs/genbindings.sh index 56b1b4500f..37d07f9d12 100755 --- a/tools/tojs/genbindings.sh +++ b/tools/tojs/genbindings.sh @@ -84,3 +84,9 @@ LD_LIBRARY_PATH=${CLANG_ROOT}/lib $PYTHON_BIN ${CXX_GENERATOR_ROOT}/generator.py echo "Generating bindings for cocos2dx_extension..." LD_LIBRARY_PATH=${CLANG_ROOT}/lib $PYTHON_BIN ${CXX_GENERATOR_ROOT}/generator.py ${TO_JS_ROOT}/cocos2dx_extension.ini -s cocos2dx_extension -t spidermonkey -o ${COCOS2DX_ROOT}/cocos/scripting/auto-generated/js-bindings -n jsb_cocos2dx_extension_auto + +echo "Generating bindings for cocos2dx_builder..." +LD_LIBRARY_PATH=${CLANG_ROOT}/lib $PYTHON_BIN ${CXX_GENERATOR_ROOT}/generator.py ${TO_JS_ROOT}/cocos2dx_builder.ini -s cocos2dx_builder -t spidermonkey -o ${COCOS2DX_ROOT}/cocos/scripting/auto-generated/js-bindings -n jsb_cocos2dx_builder_auto + +echo "Generating bindings for cocos2dx_studio..." +LD_LIBRARY_PATH=${CLANG_ROOT}/lib $PYTHON_BIN ${CXX_GENERATOR_ROOT}/generator.py ${TO_JS_ROOT}/cocos2dx_studio.ini -s cocos2dx_studio -t spidermonkey -o ${COCOS2DX_ROOT}/cocos/scripting/auto-generated/js-bindings -n jsb_cocos2dx_studio_auto \ No newline at end of file From 232f0d598b743c3ed678d1eb8d7a636573fc07e5 Mon Sep 17 00:00:00 2001 From: Dhilan007 Date: Mon, 21 Oct 2013 22:21:11 +0800 Subject: [PATCH 07/18] issues #2905:add new vs project --- .../proj.win32/libCocosBuilder.vcxproj | 142 ++ .../libCocosBuilder.vcxproj.filters | 170 ++ .../proj.win32/libCocosBuilder.vcxproj.user | 4 + .../proj.win32/libCocosStudio.vcxproj | 174 ++ .../proj.win32/libCocosStudio.vcxproj.filters | 290 +++ .../proj.win32/libCocosStudio.vcxproj.user | 4 + .../spine/proj.win32/libSpine.vcxproj | 134 ++ .../spine/proj.win32/libSpine.vcxproj.filters | 146 ++ .../spine/proj.win32/libSpine.vcxproj.user | 4 + cocos/gui/proj.win32/libGUI.vcxproj | 136 ++ cocos/gui/proj.win32/libGUI.vcxproj.filters | 159 ++ cocos/gui/proj.win32/libGUI.vcxproj.user | 4 + cocos/network/proj.win32/libNetwork.vcxproj | 131 ++ .../proj.win32/libNetwork.vcxproj.filters | 45 + .../proj.win32/libNetwork.vcxproj.user | 3 + ...s_chipmunk_auto_classes.cpp.REMOVED.git-id | 1 + .../js_bindings_chipmunk_auto_classes.h | 66 + ...dings_chipmunk_auto_classes_registration.h | 29 + ...ings_chipmunk_functions.cpp.REMOVED.git-id | 1 + .../chipmunk/js_bindings_chipmunk_functions.h | 292 +++ ...bindings_chipmunk_functions_registration.h | 285 +++ .../chipmunk/js_bindings_chipmunk_manual.cpp | 1624 +++++++++++++++++ .../chipmunk/js_bindings_chipmunk_manual.h | 103 ++ .../js_bindings_chipmunk_registration.cpp | 67 + .../js_bindings_chipmunk_registration.h | 31 + .../chipmunk/libJSBindingForChipmunk.vcxproj | 121 ++ .../libJSBindingForChipmunk.vcxproj.filters | 47 + .../libJSBindingForChipmunk.vcxproj.user | 6 + .../cocosbuilder/cocosbuilder_specifics.hpp | 23 + .../cocosbuilder/js_bindings_ccbreader.cpp | 324 ++++ .../cocosbuilder/js_bindings_ccbreader.h | 60 + .../libJSBindingForBuilder.vcxproj | 119 ++ .../libJSBindingForBuilder.vcxproj.filters | 37 + .../libJSBindingForBuilder.vcxproj.user | 6 + .../cocostudio/jsb_cocos2dx_studio_manual.cpp | 229 +++ .../cocostudio/jsb_cocos2dx_studio_manual.h | 16 + .../cocostudio/libJSBindingForStudio.vcxproj | 118 ++ .../libJSBindingForStudio.vcxproj.filters | 34 + .../libJSBindingForStudio.vcxproj.user | 6 + .../jsb_cocos2dx_extension_manual.cpp | 799 ++++++++ .../extension/jsb_cocos2dx_extension_manual.h | 16 + .../libJSBindingForExtension.vcxproj | 118 ++ .../libJSBindingForExtension.vcxproj.filters | 34 + .../libJSBindingForExtension.vcxproj.user | 6 + .../js_bindings_system_functions.cpp | 75 + .../js_bindings_system_functions.h | 23 + ...s_bindings_system_functions_registration.h | 15 + .../js_bindings_system_registration.cpp | 62 + .../js_bindings_system_registration.h | 31 + .../libJSBindingForLocalStorage.vcxproj | 116 ++ ...ibJSBindingForLocalStorage.vcxproj.filters | 32 + .../libJSBindingForLocalStorage.vcxproj.user | 6 + .../bindings/network/XMLHTTPRequest.cpp | 847 +++++++++ .../bindings/network/XMLHTTPRequest.h | 112 ++ .../bindings/network/jsb_websocket.cpp | 382 ++++ .../bindings/network/jsb_websocket.h | 34 + .../network/libJSBindingForNetwork.vcxproj | 115 ++ .../libJSBindingForNetwork.vcxproj.filters | 29 + .../libJSBindingForNetwork.vcxproj.user | 6 + .../proj.win32/libLocalStorage.vcxproj | 93 + .../libLocalStorage.vcxproj.filters | 21 + .../proj.win32/libLocalStorage.vcxproj.user | 4 + 62 files changed, 8167 insertions(+) create mode 100644 cocos/editor-support/cocosbuilder/proj.win32/libCocosBuilder.vcxproj create mode 100644 cocos/editor-support/cocosbuilder/proj.win32/libCocosBuilder.vcxproj.filters create mode 100644 cocos/editor-support/cocosbuilder/proj.win32/libCocosBuilder.vcxproj.user create mode 100644 cocos/editor-support/cocostudio/proj.win32/libCocosStudio.vcxproj create mode 100644 cocos/editor-support/cocostudio/proj.win32/libCocosStudio.vcxproj.filters create mode 100644 cocos/editor-support/cocostudio/proj.win32/libCocosStudio.vcxproj.user create mode 100644 cocos/editor-support/spine/proj.win32/libSpine.vcxproj create mode 100644 cocos/editor-support/spine/proj.win32/libSpine.vcxproj.filters create mode 100644 cocos/editor-support/spine/proj.win32/libSpine.vcxproj.user create mode 100644 cocos/gui/proj.win32/libGUI.vcxproj create mode 100644 cocos/gui/proj.win32/libGUI.vcxproj.filters create mode 100644 cocos/gui/proj.win32/libGUI.vcxproj.user create mode 100644 cocos/network/proj.win32/libNetwork.vcxproj create mode 100644 cocos/network/proj.win32/libNetwork.vcxproj.filters create mode 100644 cocos/network/proj.win32/libNetwork.vcxproj.user create mode 100644 cocos/scripting/javascript/bindings/chipmunk/js_bindings_chipmunk_auto_classes.cpp.REMOVED.git-id create mode 100644 cocos/scripting/javascript/bindings/chipmunk/js_bindings_chipmunk_auto_classes.h create mode 100644 cocos/scripting/javascript/bindings/chipmunk/js_bindings_chipmunk_auto_classes_registration.h create mode 100644 cocos/scripting/javascript/bindings/chipmunk/js_bindings_chipmunk_functions.cpp.REMOVED.git-id create mode 100644 cocos/scripting/javascript/bindings/chipmunk/js_bindings_chipmunk_functions.h create mode 100644 cocos/scripting/javascript/bindings/chipmunk/js_bindings_chipmunk_functions_registration.h create mode 100644 cocos/scripting/javascript/bindings/chipmunk/js_bindings_chipmunk_manual.cpp create mode 100644 cocos/scripting/javascript/bindings/chipmunk/js_bindings_chipmunk_manual.h create mode 100644 cocos/scripting/javascript/bindings/chipmunk/js_bindings_chipmunk_registration.cpp create mode 100644 cocos/scripting/javascript/bindings/chipmunk/js_bindings_chipmunk_registration.h create mode 100644 cocos/scripting/javascript/bindings/chipmunk/libJSBindingForChipmunk.vcxproj create mode 100644 cocos/scripting/javascript/bindings/chipmunk/libJSBindingForChipmunk.vcxproj.filters create mode 100644 cocos/scripting/javascript/bindings/chipmunk/libJSBindingForChipmunk.vcxproj.user create mode 100644 cocos/scripting/javascript/bindings/cocosbuilder/cocosbuilder_specifics.hpp create mode 100644 cocos/scripting/javascript/bindings/cocosbuilder/js_bindings_ccbreader.cpp create mode 100644 cocos/scripting/javascript/bindings/cocosbuilder/js_bindings_ccbreader.h create mode 100644 cocos/scripting/javascript/bindings/cocosbuilder/libJSBindingForBuilder.vcxproj create mode 100644 cocos/scripting/javascript/bindings/cocosbuilder/libJSBindingForBuilder.vcxproj.filters create mode 100644 cocos/scripting/javascript/bindings/cocosbuilder/libJSBindingForBuilder.vcxproj.user create mode 100644 cocos/scripting/javascript/bindings/cocostudio/jsb_cocos2dx_studio_manual.cpp create mode 100644 cocos/scripting/javascript/bindings/cocostudio/jsb_cocos2dx_studio_manual.h create mode 100644 cocos/scripting/javascript/bindings/cocostudio/libJSBindingForStudio.vcxproj create mode 100644 cocos/scripting/javascript/bindings/cocostudio/libJSBindingForStudio.vcxproj.filters create mode 100644 cocos/scripting/javascript/bindings/cocostudio/libJSBindingForStudio.vcxproj.user create mode 100644 cocos/scripting/javascript/bindings/extension/jsb_cocos2dx_extension_manual.cpp create mode 100644 cocos/scripting/javascript/bindings/extension/jsb_cocos2dx_extension_manual.h create mode 100644 cocos/scripting/javascript/bindings/extension/libJSBindingForExtension.vcxproj create mode 100644 cocos/scripting/javascript/bindings/extension/libJSBindingForExtension.vcxproj.filters create mode 100644 cocos/scripting/javascript/bindings/extension/libJSBindingForExtension.vcxproj.user create mode 100644 cocos/scripting/javascript/bindings/localstorage/js_bindings_system_functions.cpp create mode 100644 cocos/scripting/javascript/bindings/localstorage/js_bindings_system_functions.h create mode 100644 cocos/scripting/javascript/bindings/localstorage/js_bindings_system_functions_registration.h create mode 100644 cocos/scripting/javascript/bindings/localstorage/js_bindings_system_registration.cpp create mode 100644 cocos/scripting/javascript/bindings/localstorage/js_bindings_system_registration.h create mode 100644 cocos/scripting/javascript/bindings/localstorage/libJSBindingForLocalStorage.vcxproj create mode 100644 cocos/scripting/javascript/bindings/localstorage/libJSBindingForLocalStorage.vcxproj.filters create mode 100644 cocos/scripting/javascript/bindings/localstorage/libJSBindingForLocalStorage.vcxproj.user create mode 100644 cocos/scripting/javascript/bindings/network/XMLHTTPRequest.cpp create mode 100644 cocos/scripting/javascript/bindings/network/XMLHTTPRequest.h create mode 100644 cocos/scripting/javascript/bindings/network/jsb_websocket.cpp create mode 100644 cocos/scripting/javascript/bindings/network/jsb_websocket.h create mode 100644 cocos/scripting/javascript/bindings/network/libJSBindingForNetwork.vcxproj create mode 100644 cocos/scripting/javascript/bindings/network/libJSBindingForNetwork.vcxproj.filters create mode 100644 cocos/scripting/javascript/bindings/network/libJSBindingForNetwork.vcxproj.user create mode 100644 cocos/storage/local-storage/proj.win32/libLocalStorage.vcxproj create mode 100644 cocos/storage/local-storage/proj.win32/libLocalStorage.vcxproj.filters create mode 100644 cocos/storage/local-storage/proj.win32/libLocalStorage.vcxproj.user diff --git a/cocos/editor-support/cocosbuilder/proj.win32/libCocosBuilder.vcxproj b/cocos/editor-support/cocosbuilder/proj.win32/libCocosBuilder.vcxproj new file mode 100644 index 0000000000..2b44d72452 --- /dev/null +++ b/cocos/editor-support/cocosbuilder/proj.win32/libCocosBuilder.vcxproj @@ -0,0 +1,142 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {811C0DAB-7B96-4BD3-A154-B7572B58E4AB} + libCocosBuilder + + + + StaticLibrary + true + v110_xp + Unicode + + + StaticLibrary + false + v110_xp + true + Unicode + + + + + + + + + + + + + + + $(SolutionDir)$(Configuration).win32\ + $(Configuration).win32\ + + + $(SolutionDir)$(Configuration).win32\ + $(Configuration).win32\ + + + + Level3 + Disabled + + + $(EngineRoot);$(EngineRoot)extensions;$(EngineRoot)cocos\audio\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_LIB;COCOS2DXWIN32_EXPORTS;GL_GLEXT_PROTOTYPES;COCOS2D_DEBUG=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + 4267;4251;4244;%(DisableSpecificWarnings) + false + + + true + + + + + Level3 + MaxSpeed + true + true + + + $(EngineRoot);$(EngineRoot)extensions;$(EngineRoot)cocos\audio\include;%(AdditionalIncludeDirectories) + WIN32;_WINDOWS;_LIB;COCOS2DXWIN32_EXPORTS;GL_GLEXT_PROTOTYPES;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + + + true + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/cocos/editor-support/cocosbuilder/proj.win32/libCocosBuilder.vcxproj.filters b/cocos/editor-support/cocosbuilder/proj.win32/libCocosBuilder.vcxproj.filters new file mode 100644 index 0000000000..8dfedcc4bf --- /dev/null +++ b/cocos/editor-support/cocosbuilder/proj.win32/libCocosBuilder.vcxproj.filters @@ -0,0 +1,170 @@ + + + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + \ No newline at end of file diff --git a/cocos/editor-support/cocosbuilder/proj.win32/libCocosBuilder.vcxproj.user b/cocos/editor-support/cocosbuilder/proj.win32/libCocosBuilder.vcxproj.user new file mode 100644 index 0000000000..a375ae3527 --- /dev/null +++ b/cocos/editor-support/cocosbuilder/proj.win32/libCocosBuilder.vcxproj.user @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/cocos/editor-support/cocostudio/proj.win32/libCocosStudio.vcxproj b/cocos/editor-support/cocostudio/proj.win32/libCocosStudio.vcxproj new file mode 100644 index 0000000000..d52ce8d931 --- /dev/null +++ b/cocos/editor-support/cocostudio/proj.win32/libCocosStudio.vcxproj @@ -0,0 +1,174 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {B57CF53F-2E49-4031-9822-047CC0E6BDE2} + libCocosStudio + + + + StaticLibrary + true + v110_xp + Unicode + + + StaticLibrary + false + v110_xp + true + Unicode + + + + + + + + + + + + + + + $(SolutionDir)$(Configuration).win32\ + $(Configuration).win32\ + + + $(SolutionDir)$(Configuration).win32\ + $(Configuration).win32\ + + + + Level3 + Disabled + + + $(EngineRoot);$(EngineRoot)cocos;$(EngineRoot)cocos\audio\include;$(EngineRoot)cocos\editor-support;$(EngineRoot)external;$(EngineRoot)external\tinyxml2;$(EngineRoot)external\chipmunk\include\chipmunk;$(EngineRoot)extensions;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_LIB;COCOS2DXWIN32_EXPORTS;GL_GLEXT_PROTOTYPES;COCOS2D_DEBUG=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + 4267;4251;4244;%(DisableSpecificWarnings) + false + + + true + + + + + Level3 + MaxSpeed + true + true + true + WIN32;_WINDOWS;_LIB;COCOS2DXWIN32_EXPORTS;GL_GLEXT_PROTOTYPES;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + $(EngineRoot);$(EngineRoot)cocos;$(EngineRoot)cocos\audio\include;$(EngineRoot)cocos\editor-support;$(EngineRoot)external;$(EngineRoot)external\tinyxml2;$(EngineRoot)external\chipmunk\include\chipmunk;$(EngineRoot)extensions;%(AdditionalIncludeDirectories) + + + true + true + true + + + + + + \ No newline at end of file diff --git a/cocos/editor-support/cocostudio/proj.win32/libCocosStudio.vcxproj.filters b/cocos/editor-support/cocostudio/proj.win32/libCocosStudio.vcxproj.filters new file mode 100644 index 0000000000..10053f03e2 --- /dev/null +++ b/cocos/editor-support/cocostudio/proj.win32/libCocosStudio.vcxproj.filters @@ -0,0 +1,290 @@ + + + + + {d793b86c-0905-4c9b-b6bc-161e351c9eb2} + + + {855f2366-3429-4f77-a080-a41a39c99270} + + + {1a8c6b14-fb28-4485-8417-9b6838fbc4ef} + + + {42f1ce3f-46ab-4a16-a96e-9eb076c873f7} + + + {f8271f80-1663-4425-91c8-7365ec3af017} + + + {48f28446-ffe4-4aa1-a34c-8968c3367ae6} + + + {ad9b4fd1-dc17-4704-9c60-7709eb916f13} + + + {55c682b3-7a48-4fab-ad5a-eb979f3c305e} + + + {c6464479-e0ab-4afc-96fc-1ffc73e40232} + + + {023e3440-1259-4981-ba54-24390d1df447} + + + {e8d09ad5-8816-4724-a10b-04263868ed7c} + + + + + action + + + action + + + action + + + action + + + action + + + components + + + components + + + components + + + components + + + components + + + json + + + json + + + reader + + + reader + + + armature\animation + + + armature\animation + + + armature\animation + + + armature\datas + + + armature\display + + + armature\display + + + armature\display + + + armature\display + + + armature\display + + + armature\utils + + + armature\utils + + + armature\utils + + + armature\utils + + + armature\utils + + + armature\utils + + + armature\utils + + + armature\physics + + + armature + + + armature + + + json\libjson + + + json\libjson + + + json\libjson + + + + + action + + + action + + + action + + + action + + + action + + + components + + + components + + + components + + + components + + + components + + + json + + + json + + + reader + + + reader + + + armature\animation + + + armature\animation + + + armature\animation + + + armature\datas + + + armature\display + + + armature\display + + + armature\display + + + armature\display + + + armature\display + + + armature\utils + + + armature\utils + + + armature\utils + + + armature\utils + + + armature\utils + + + armature\utils + + + armature\utils + + + armature\physics + + + armature + + + armature + + + json\libjson + + + json\libjson + + + json\libjson + + + json\libjson + + + json\libjson + + + json\libjson + + + json\libjson + + + json\libjson + + + json\libjson + + + + + json\libjson + + + json\libjson + + + json\libjson + + + json\libjson + + + \ No newline at end of file diff --git a/cocos/editor-support/cocostudio/proj.win32/libCocosStudio.vcxproj.user b/cocos/editor-support/cocostudio/proj.win32/libCocosStudio.vcxproj.user new file mode 100644 index 0000000000..a375ae3527 --- /dev/null +++ b/cocos/editor-support/cocostudio/proj.win32/libCocosStudio.vcxproj.user @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/cocos/editor-support/spine/proj.win32/libSpine.vcxproj b/cocos/editor-support/spine/proj.win32/libSpine.vcxproj new file mode 100644 index 0000000000..b4fc436abf --- /dev/null +++ b/cocos/editor-support/spine/proj.win32/libSpine.vcxproj @@ -0,0 +1,134 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {B7C2A162-DEC9-4418-972E-240AB3CBFCAE} + libSpine + + + + StaticLibrary + true + v110_xp + Unicode + + + StaticLibrary + false + v110_xp + true + Unicode + + + + + + + + + + + + + + + $(SolutionDir)$(Configuration).win32\ + $(Configuration).win32\ + + + $(SolutionDir)$(Configuration).win32\ + $(Configuration).win32\ + + + + Level3 + Disabled + + + $(EngineRoot);$(EngineRoot)cocos\audio\include;$(EngineRoot)cocos\editor-support;$(EngineRoot)extensions;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_LIB;COCOS2DXWIN32_EXPORTS;GL_GLEXT_PROTOTYPES;COCOS2D_DEBUG=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + 4267;4251;4244;%(DisableSpecificWarnings) + false + + + true + + + + + Level3 + MaxSpeed + true + true + + + WIN32;_WINDOWS;_LIB;COCOS2DXWIN32_EXPORTS;GL_GLEXT_PROTOTYPES;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + $(EngineRoot);$(EngineRoot)cocos\audio\include;$(EngineRoot)cocos\editor-support;$(EngineRoot)extensions;%(AdditionalIncludeDirectories) + + + true + true + true + + + + + + \ No newline at end of file diff --git a/cocos/editor-support/spine/proj.win32/libSpine.vcxproj.filters b/cocos/editor-support/spine/proj.win32/libSpine.vcxproj.filters new file mode 100644 index 0000000000..d6ed5b1506 --- /dev/null +++ b/cocos/editor-support/spine/proj.win32/libSpine.vcxproj.filters @@ -0,0 +1,146 @@ + + + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + \ No newline at end of file diff --git a/cocos/editor-support/spine/proj.win32/libSpine.vcxproj.user b/cocos/editor-support/spine/proj.win32/libSpine.vcxproj.user new file mode 100644 index 0000000000..a375ae3527 --- /dev/null +++ b/cocos/editor-support/spine/proj.win32/libSpine.vcxproj.user @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/cocos/gui/proj.win32/libGUI.vcxproj b/cocos/gui/proj.win32/libGUI.vcxproj new file mode 100644 index 0000000000..1e483d4b85 --- /dev/null +++ b/cocos/gui/proj.win32/libGUI.vcxproj @@ -0,0 +1,136 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {7E06E92C-537A-442B-9E4A-4761C84F8A1A} + libGUI + + + + StaticLibrary + true + v110_xp + Unicode + + + StaticLibrary + false + v110_xp + true + Unicode + + + + + + + + + + + + + + + $(SolutionDir)$(Configuration).win32\ + $(Configuration).win32\ + + + $(SolutionDir)$(Configuration).win32\ + $(Configuration).win32\ + + + + Level3 + Disabled + + + $(EngineRoot);$(EngineRoot)cocos;$(EngineRoot)cocos\audio\include;$(EngineRoot)cocos\editor-support;$(EngineRoot)external;$(EngineRoot)extensions;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_LIB;COCOS2DXWIN32_EXPORTS;GL_GLEXT_PROTOTYPES;COCOS2D_DEBUG=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + 4267;4251;4244;%(DisableSpecificWarnings) + false + + + true + + + + + Level3 + MaxSpeed + true + true + + + WIN32;_WINDOWS;_LIB;COCOS2DXWIN32_EXPORTS;GL_GLEXT_PROTOTYPES;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + $(EngineRoot);$(EngineRoot)cocos;$(EngineRoot)cocos\audio\include;$(EngineRoot)cocos\editor-support;$(EngineRoot)external;$(EngineRoot)extensions;%(AdditionalIncludeDirectories) + + + true + true + true + + + + + + \ No newline at end of file diff --git a/cocos/gui/proj.win32/libGUI.vcxproj.filters b/cocos/gui/proj.win32/libGUI.vcxproj.filters new file mode 100644 index 0000000000..12f0d385ab --- /dev/null +++ b/cocos/gui/proj.win32/libGUI.vcxproj.filters @@ -0,0 +1,159 @@ + + + + + {e31ab7d3-b8b2-467f-9e08-fd5fe168b491} + + + {f9d13563-9e5e-4b35-b0e7-d41f587efa42} + + + {ed8a2ae0-5690-4d0d-829b-7c07164c0597} + + + {5f6e9e52-fbe7-4073-ac71-98632f9e6781} + + + {b59b178a-b7e0-4826-ba07-44c46cd29a10} + + + + + UIWidgets\ScrollWidget + + + UIWidgets\ScrollWidget + + + UIWidgets\ScrollWidget + + + UIWidgets\ScrollWidget + + + UIWidgets\ScrollWidget + + + UIWidgets + + + UIWidgets + + + UIWidgets + + + UIWidgets + + + UIWidgets + + + UIWidgets + + + UIWidgets + + + UIWidgets + + + UIWidgets + + + System + + + System + + + System + + + System + + + Layouts + + + Layouts + + + Layouts + + + BaseClasses + + + BaseClasses + + + + + UIWidgets\ScrollWidget + + + UIWidgets\ScrollWidget + + + UIWidgets\ScrollWidget + + + UIWidgets\ScrollWidget + + + UIWidgets + + + UIWidgets + + + UIWidgets + + + UIWidgets + + + UIWidgets + + + UIWidgets + + + UIWidgets + + + UIWidgets + + + UIWidgets + + + System + + + System + + + System + + + System + + + Layouts + + + Layouts + + + Layouts + + + BaseClasses + + + BaseClasses + + + \ No newline at end of file diff --git a/cocos/gui/proj.win32/libGUI.vcxproj.user b/cocos/gui/proj.win32/libGUI.vcxproj.user new file mode 100644 index 0000000000..a375ae3527 --- /dev/null +++ b/cocos/gui/proj.win32/libGUI.vcxproj.user @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/cocos/network/proj.win32/libNetwork.vcxproj b/cocos/network/proj.win32/libNetwork.vcxproj new file mode 100644 index 0000000000..088538dfed --- /dev/null +++ b/cocos/network/proj.win32/libNetwork.vcxproj @@ -0,0 +1,131 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + + + + + + + + + + + + + libNetwork + {DF2638C0-8128-4847-867C-6EAFE3DEE7B5} + network.win32 + Win32Proj + + + + StaticLibrary + Unicode + v100 + v110 + v110_xp + + + StaticLibrary + NotSet + v100 + v110 + v110_xp + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Configuration).win32\ + $(Configuration).win32\ + false + $(SolutionDir)$(Configuration).win32\ + $(Configuration).win32\ + false + AllRules.ruleset + + + AllRules.ruleset + + + + + $(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A\lib;$(LibraryPath) + + + $(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A\lib;$(LibraryPath) + + + + Disabled + $(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A\include;..\Include;$(EngineRoot)cocos;$(EngineRoot)external\websockets\include\win32;$(EngineRoot)external\curl\include\win32;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebugDLL + + + Level3 + EditAndContinue + 4251 + true + + + winmm.lib;libcocos2d.lib;%(AdditionalDependencies) + $(OutDir)$(ProjectName).dll + true + Windows + $(TargetDir)$(TargetName).lib + MachineX86 + $(OutDir) + + + + + $(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A\include;..\Include;$(EngineRoot)cocos;$(EngineRoot)external\websockets\include\win32;$(EngineRoot)external\curl\include\win32;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + MultiThreadedDLL + + + Level3 + ProgramDatabase + 4251 + true + + + winmm.lib;libcocos2d.lib;%(AdditionalDependencies) + $(OutDir)$(ProjectName).dll + true + Windows + true + true + $(TargetDir)$(TargetName).lib + MachineX86 + $(OutDir) + + + + + + \ No newline at end of file diff --git a/cocos/network/proj.win32/libNetwork.vcxproj.filters b/cocos/network/proj.win32/libNetwork.vcxproj.filters new file mode 100644 index 0000000000..bbfe567f42 --- /dev/null +++ b/cocos/network/proj.win32/libNetwork.vcxproj.filters @@ -0,0 +1,45 @@ + + + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + + + Source Files + + + Source Files + + + Source Files + + + \ No newline at end of file diff --git a/cocos/network/proj.win32/libNetwork.vcxproj.user b/cocos/network/proj.win32/libNetwork.vcxproj.user new file mode 100644 index 0000000000..ace9a86acb --- /dev/null +++ b/cocos/network/proj.win32/libNetwork.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/cocos/scripting/javascript/bindings/chipmunk/js_bindings_chipmunk_auto_classes.cpp.REMOVED.git-id b/cocos/scripting/javascript/bindings/chipmunk/js_bindings_chipmunk_auto_classes.cpp.REMOVED.git-id new file mode 100644 index 0000000000..c8c345c32c --- /dev/null +++ b/cocos/scripting/javascript/bindings/chipmunk/js_bindings_chipmunk_auto_classes.cpp.REMOVED.git-id @@ -0,0 +1 @@ +6558be4f421be9227dc4fabf1b682d479825bd18 \ No newline at end of file diff --git a/cocos/scripting/javascript/bindings/chipmunk/js_bindings_chipmunk_auto_classes.h b/cocos/scripting/javascript/bindings/chipmunk/js_bindings_chipmunk_auto_classes.h new file mode 100644 index 0000000000..42c8840236 --- /dev/null +++ b/cocos/scripting/javascript/bindings/chipmunk/js_bindings_chipmunk_auto_classes.h @@ -0,0 +1,66 @@ +/* +* AUTOGENERATED FILE. DO NOT EDIT IT +* Generated by "generate_js_bindings.py -c chipmunk_jsb.ini" on 2012-11-07 +* Script version: v0.3 +*/ +#include "js_bindings_config.h" +#ifdef JSB_INCLUDE_CHIPMUNK + +#include "js_bindings_chipmunk_manual.h" +extern JSObject *JSB_cpConstraint_object; +extern JSClass *JSB_cpConstraint_class; +void JSB_cpConstraint_createClass(JSContext *cx, JSObject* globalObj, const char* name ); +extern JSObject *JSB_cpGrooveJoint_object; +extern JSClass *JSB_cpGrooveJoint_class; +void JSB_cpGrooveJoint_createClass(JSContext *cx, JSObject* globalObj, const char* name ); +extern JSObject *JSB_cpSimpleMotor_object; +extern JSClass *JSB_cpSimpleMotor_class; +void JSB_cpSimpleMotor_createClass(JSContext *cx, JSObject* globalObj, const char* name ); +extern JSObject *JSB_cpPivotJoint_object; +extern JSClass *JSB_cpPivotJoint_class; +void JSB_cpPivotJoint_createClass(JSContext *cx, JSObject* globalObj, const char* name ); +extern JSObject *JSB_cpPinJoint_object; +extern JSClass *JSB_cpPinJoint_class; +void JSB_cpPinJoint_createClass(JSContext *cx, JSObject* globalObj, const char* name ); +extern JSObject *JSB_cpSlideJoint_object; +extern JSClass *JSB_cpSlideJoint_class; +void JSB_cpSlideJoint_createClass(JSContext *cx, JSObject* globalObj, const char* name ); +extern JSObject *JSB_cpGearJoint_object; +extern JSClass *JSB_cpGearJoint_class; +void JSB_cpGearJoint_createClass(JSContext *cx, JSObject* globalObj, const char* name ); +extern JSObject *JSB_cpDampedRotarySpring_object; +extern JSClass *JSB_cpDampedRotarySpring_class; +void JSB_cpDampedRotarySpring_createClass(JSContext *cx, JSObject* globalObj, const char* name ); +extern JSObject *JSB_cpDampedSpring_object; +extern JSClass *JSB_cpDampedSpring_class; +void JSB_cpDampedSpring_createClass(JSContext *cx, JSObject* globalObj, const char* name ); +extern JSObject *JSB_cpRatchetJoint_object; +extern JSClass *JSB_cpRatchetJoint_class; +void JSB_cpRatchetJoint_createClass(JSContext *cx, JSObject* globalObj, const char* name ); +extern JSObject *JSB_cpRotaryLimitJoint_object; +extern JSClass *JSB_cpRotaryLimitJoint_class; +void JSB_cpRotaryLimitJoint_createClass(JSContext *cx, JSObject* globalObj, const char* name ); +extern JSObject *JSB_cpArbiter_object; +extern JSClass *JSB_cpArbiter_class; +void JSB_cpArbiter_createClass(JSContext *cx, JSObject* globalObj, const char* name ); +extern JSObject *JSB_cpSpace_object; +extern JSClass *JSB_cpSpace_class; +void JSB_cpSpace_createClass(JSContext *cx, JSObject* globalObj, const char* name ); +extern JSObject *JSB_cpBody_object; +extern JSClass *JSB_cpBody_class; +void JSB_cpBody_createClass(JSContext *cx, JSObject* globalObj, const char* name ); +extern JSObject *JSB_cpShape_object; +extern JSClass *JSB_cpShape_class; +void JSB_cpShape_createClass(JSContext *cx, JSObject* globalObj, const char* name ); +extern JSObject *JSB_cpCircleShape_object; +extern JSClass *JSB_cpCircleShape_class; +void JSB_cpCircleShape_createClass(JSContext *cx, JSObject* globalObj, const char* name ); +extern JSObject *JSB_cpSegmentShape_object; +extern JSClass *JSB_cpSegmentShape_class; +void JSB_cpSegmentShape_createClass(JSContext *cx, JSObject* globalObj, const char* name ); +extern JSObject *JSB_cpPolyShape_object; +extern JSClass *JSB_cpPolyShape_class; +void JSB_cpPolyShape_createClass(JSContext *cx, JSObject* globalObj, const char* name ); + + +#endif // JSB_INCLUDE_CHIPMUNK diff --git a/cocos/scripting/javascript/bindings/chipmunk/js_bindings_chipmunk_auto_classes_registration.h b/cocos/scripting/javascript/bindings/chipmunk/js_bindings_chipmunk_auto_classes_registration.h new file mode 100644 index 0000000000..da26c49bb3 --- /dev/null +++ b/cocos/scripting/javascript/bindings/chipmunk/js_bindings_chipmunk_auto_classes_registration.h @@ -0,0 +1,29 @@ +/* +* AUTOGENERATED FILE. DO NOT EDIT IT +* Generated by "generate_js_bindings.py -c chipmunk_jsb.ini" on 2012-11-07 +* Script version: v0.3 +*/ +#include "js_bindings_config.h" +#ifdef JSB_INCLUDE_CHIPMUNK + +JSB_cpConstraint_createClass(_cx, chipmunk, "Constraint"); +JSB_cpGrooveJoint_createClass(_cx, chipmunk, "GrooveJoint"); +JSB_cpSimpleMotor_createClass(_cx, chipmunk, "SimpleMotor"); +JSB_cpPivotJoint_createClass(_cx, chipmunk, "PivotJoint"); +JSB_cpPinJoint_createClass(_cx, chipmunk, "PinJoint"); +JSB_cpSlideJoint_createClass(_cx, chipmunk, "SlideJoint"); +JSB_cpGearJoint_createClass(_cx, chipmunk, "GearJoint"); +JSB_cpDampedRotarySpring_createClass(_cx, chipmunk, "DampedRotarySpring"); +JSB_cpDampedSpring_createClass(_cx, chipmunk, "DampedSpring"); +JSB_cpRatchetJoint_createClass(_cx, chipmunk, "RatchetJoint"); +JSB_cpRotaryLimitJoint_createClass(_cx, chipmunk, "RotaryLimitJoint"); +JSB_cpArbiter_createClass(_cx, chipmunk, "Arbiter"); +JSB_cpSpace_createClass(_cx, chipmunk, "Space"); +JSB_cpBody_createClass(_cx, chipmunk, "Body"); +JSB_cpShape_createClass(_cx, chipmunk, "Shape"); +JSB_cpCircleShape_createClass(_cx, chipmunk, "CircleShape"); +JSB_cpSegmentShape_createClass(_cx, chipmunk, "SegmentShape"); +JSB_cpPolyShape_createClass(_cx, chipmunk, "PolyShape"); + + +#endif // JSB_INCLUDE_CHIPMUNK diff --git a/cocos/scripting/javascript/bindings/chipmunk/js_bindings_chipmunk_functions.cpp.REMOVED.git-id b/cocos/scripting/javascript/bindings/chipmunk/js_bindings_chipmunk_functions.cpp.REMOVED.git-id new file mode 100644 index 0000000000..5cf2a4495d --- /dev/null +++ b/cocos/scripting/javascript/bindings/chipmunk/js_bindings_chipmunk_functions.cpp.REMOVED.git-id @@ -0,0 +1 @@ +1c5eb9cd58c82de77374cdfa5c9ff647cc8b2f02 \ No newline at end of file diff --git a/cocos/scripting/javascript/bindings/chipmunk/js_bindings_chipmunk_functions.h b/cocos/scripting/javascript/bindings/chipmunk/js_bindings_chipmunk_functions.h new file mode 100644 index 0000000000..accf523d5e --- /dev/null +++ b/cocos/scripting/javascript/bindings/chipmunk/js_bindings_chipmunk_functions.h @@ -0,0 +1,292 @@ +/* +* AUTOGENERATED FILE. DO NOT EDIT IT +* Generated by "generate_js_bindings.py -c chipmunk_jsb.ini" on 2012-11-07 +* Script version: v0.3 +*/ +#include "js_bindings_config.h" +#ifdef JSB_INCLUDE_CHIPMUNK +#include "js_bindings_chipmunk_manual.h" + +#ifdef __cplusplus +extern "C" { +#endif +JSBool JSB_cpArbiterGetCount(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpArbiterGetDepth(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpArbiterGetElasticity(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpArbiterGetFriction(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpArbiterGetNormal(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpArbiterGetPoint(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpArbiterGetSurfaceVelocity(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpArbiterIgnore(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpArbiterIsFirstContact(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpArbiterSetElasticity(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpArbiterSetFriction(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpArbiterSetSurfaceVelocity(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpArbiterTotalImpulse(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpArbiterTotalImpulseWithFriction(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpArbiterTotalKE(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpAreaForCircle(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpAreaForSegment(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBBArea(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBBClampVect(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBBContainsBB(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBBContainsVect(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBBExpand(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBBIntersects(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBBIntersectsSegment(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBBMerge(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBBMergedArea(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBBNew(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBBNewForCircle(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBBSegmentQuery(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBBWrapVect(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodyActivate(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodyActivateStatic(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodyApplyForce(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodyApplyImpulse(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodyDestroy(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodyFree(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodyGetAngVel(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodyGetAngVelLimit(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodyGetAngle(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodyGetForce(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodyGetMass(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodyGetMoment(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodyGetPos(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodyGetRot(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodyGetSpace(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodyGetTorque(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodyGetVel(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodyGetVelAtLocalPoint(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodyGetVelAtWorldPoint(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodyGetVelLimit(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodyInit(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodyInitStatic(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodyIsRogue(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodyIsSleeping(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodyIsStatic(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodyKineticEnergy(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodyLocal2World(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodyNew(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodyNewStatic(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodyResetForces(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodySetAngVel(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodySetAngVelLimit(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodySetAngle(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodySetForce(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodySetMass(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodySetMoment(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodySetPos(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodySetTorque(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodySetVel(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodySetVelLimit(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodySleep(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodySleepWithGroup(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodyUpdatePosition(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodyUpdateVelocity(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodyWorld2Local(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBoxShapeNew(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBoxShapeNew2(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpCircleShapeGetOffset(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpCircleShapeGetRadius(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpCircleShapeNew(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpConstraintActivateBodies(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpConstraintDestroy(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpConstraintFree(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpConstraintGetA(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpConstraintGetB(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpConstraintGetErrorBias(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpConstraintGetImpulse(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpConstraintGetMaxBias(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpConstraintGetMaxForce(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpConstraintGetSpace(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpConstraintSetErrorBias(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpConstraintSetMaxBias(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpConstraintSetMaxForce(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpDampedRotarySpringGetDamping(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpDampedRotarySpringGetRestAngle(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpDampedRotarySpringGetStiffness(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpDampedRotarySpringNew(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpDampedRotarySpringSetDamping(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpDampedRotarySpringSetRestAngle(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpDampedRotarySpringSetStiffness(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpDampedSpringGetAnchr1(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpDampedSpringGetAnchr2(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpDampedSpringGetDamping(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpDampedSpringGetRestLength(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpDampedSpringGetStiffness(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpDampedSpringNew(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpDampedSpringSetAnchr1(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpDampedSpringSetAnchr2(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpDampedSpringSetDamping(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpDampedSpringSetRestLength(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpDampedSpringSetStiffness(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpGearJointGetPhase(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpGearJointGetRatio(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpGearJointNew(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpGearJointSetPhase(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpGearJointSetRatio(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpGrooveJointGetAnchr2(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpGrooveJointGetGrooveA(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpGrooveJointGetGrooveB(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpGrooveJointNew(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpGrooveJointSetAnchr2(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpGrooveJointSetGrooveA(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpGrooveJointSetGrooveB(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpInitChipmunk(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpMomentForBox(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpMomentForBox2(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpMomentForCircle(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpMomentForSegment(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpPinJointGetAnchr1(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpPinJointGetAnchr2(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpPinJointGetDist(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpPinJointNew(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpPinJointSetAnchr1(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpPinJointSetAnchr2(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpPinJointSetDist(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpPivotJointGetAnchr1(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpPivotJointGetAnchr2(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpPivotJointNew(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpPivotJointNew2(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpPivotJointSetAnchr1(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpPivotJointSetAnchr2(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpPolyShapeGetNumVerts(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpPolyShapeGetVert(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpRatchetJointGetAngle(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpRatchetJointGetPhase(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpRatchetJointGetRatchet(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpRatchetJointNew(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpRatchetJointSetAngle(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpRatchetJointSetPhase(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpRatchetJointSetRatchet(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpResetShapeIdCounter(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpRotaryLimitJointGetMax(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpRotaryLimitJointGetMin(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpRotaryLimitJointNew(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpRotaryLimitJointSetMax(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpRotaryLimitJointSetMin(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSegmentShapeGetA(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSegmentShapeGetB(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSegmentShapeGetNormal(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSegmentShapeGetRadius(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSegmentShapeNew(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSegmentShapeSetNeighbors(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpShapeCacheBB(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpShapeDestroy(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpShapeFree(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpShapeGetBB(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpShapeGetBody(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpShapeGetCollisionType(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpShapeGetElasticity(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpShapeGetFriction(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpShapeGetGroup(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpShapeGetLayers(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpShapeGetSensor(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpShapeGetSpace(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpShapeGetSurfaceVelocity(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpShapePointQuery(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpShapeSetBody(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpShapeSetCollisionType(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpShapeSetElasticity(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpShapeSetFriction(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpShapeSetGroup(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpShapeSetLayers(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpShapeSetSensor(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpShapeSetSurfaceVelocity(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpShapeUpdate(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSimpleMotorGetRate(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSimpleMotorNew(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSimpleMotorSetRate(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSlideJointGetAnchr1(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSlideJointGetAnchr2(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSlideJointGetMax(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSlideJointGetMin(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSlideJointNew(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSlideJointSetAnchr1(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSlideJointSetAnchr2(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSlideJointSetMax(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSlideJointSetMin(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpaceActivateShapesTouchingShape(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpaceAddBody(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpaceAddConstraint(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpaceAddShape(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpaceAddStaticShape(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpaceContainsBody(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpaceContainsConstraint(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpaceContainsShape(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpaceDestroy(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpaceFree(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpaceGetCollisionBias(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpaceGetCollisionPersistence(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpaceGetCollisionSlop(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpaceGetCurrentTimeStep(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpaceGetDamping(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpaceGetEnableContactGraph(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpaceGetGravity(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpaceGetIdleSpeedThreshold(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpaceGetIterations(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpaceGetSleepTimeThreshold(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpaceGetStaticBody(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpaceInit(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpaceIsLocked(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpaceNew(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpacePointQueryFirst(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpaceReindexShape(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpaceReindexShapesForBody(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpaceReindexStatic(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpaceRemoveBody(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpaceRemoveConstraint(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpaceRemoveShape(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpaceRemoveStaticShape(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpaceSetCollisionBias(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpaceSetCollisionPersistence(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpaceSetCollisionSlop(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpaceSetDamping(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpaceSetEnableContactGraph(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpaceSetGravity(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpaceSetIdleSpeedThreshold(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpaceSetIterations(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpaceSetSleepTimeThreshold(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpaceStep(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpaceUseSpatialHash(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpfabs(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpfclamp(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpfclamp01(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpflerp(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpflerpconst(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpfmax(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpfmin(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpvadd(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpvclamp(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpvcross(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpvdist(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpvdistsq(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpvdot(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpveql(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpvforangle(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpvlength(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpvlengthsq(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpvlerp(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpvlerpconst(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpvmult(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpvnear(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpvneg(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpvnormalize(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpvnormalize_safe(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpvperp(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpvproject(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpvrotate(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpvrperp(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpvslerp(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpvslerpconst(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpvsub(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpvtoangle(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpvunrotate(JSContext *cx, uint32_t argc, jsval *vp); + +#ifdef __cplusplus +} +#endif + + +#endif // JSB_INCLUDE_CHIPMUNK diff --git a/cocos/scripting/javascript/bindings/chipmunk/js_bindings_chipmunk_functions_registration.h b/cocos/scripting/javascript/bindings/chipmunk/js_bindings_chipmunk_functions_registration.h new file mode 100644 index 0000000000..2d84087c28 --- /dev/null +++ b/cocos/scripting/javascript/bindings/chipmunk/js_bindings_chipmunk_functions_registration.h @@ -0,0 +1,285 @@ +/* +* AUTOGENERATED FILE. DO NOT EDIT IT +* Generated by "generate_js_bindings.py -c chipmunk_jsb.ini" on 2012-10-18 +* Script version: v0.3 +*/ +#include "js_bindings_config.h" +#ifdef JSB_INCLUDE_CHIPMUNK + +#include "js_bindings_chipmunk_manual.h" +JS_DefineFunction(_cx, chipmunk, "arbiterGetCount", JSB_cpArbiterGetCount, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "arbiterGetDepth", JSB_cpArbiterGetDepth, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "arbiterGetElasticity", JSB_cpArbiterGetElasticity, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "arbiterGetFriction", JSB_cpArbiterGetFriction, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "arbiterGetNormal", JSB_cpArbiterGetNormal, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "arbiterGetPoint", JSB_cpArbiterGetPoint, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "arbiterGetSurfaceVelocity", JSB_cpArbiterGetSurfaceVelocity, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "arbiterIgnore", JSB_cpArbiterIgnore, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "arbiterIsFirstContact", JSB_cpArbiterIsFirstContact, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "arbiterSetElasticity", JSB_cpArbiterSetElasticity, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "arbiterSetFriction", JSB_cpArbiterSetFriction, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "arbiterSetSurfaceVelocity", JSB_cpArbiterSetSurfaceVelocity, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "arbiterTotalImpulse", JSB_cpArbiterTotalImpulse, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "arbiterTotalImpulseWithFriction", JSB_cpArbiterTotalImpulseWithFriction, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "arbiterTotalKE", JSB_cpArbiterTotalKE, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "areaForCircle", JSB_cpAreaForCircle, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "areaForSegment", JSB_cpAreaForSegment, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bBArea", JSB_cpBBArea, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bBClampVect", JSB_cpBBClampVect, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bBContainsBB", JSB_cpBBContainsBB, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bBContainsVect", JSB_cpBBContainsVect, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bBExpand", JSB_cpBBExpand, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bBIntersects", JSB_cpBBIntersects, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bBIntersectsSegment", JSB_cpBBIntersectsSegment, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bBMerge", JSB_cpBBMerge, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bBMergedArea", JSB_cpBBMergedArea, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bBNew", JSB_cpBBNew, 4, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bBNewForCircle", JSB_cpBBNewForCircle, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bBSegmentQuery", JSB_cpBBSegmentQuery, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bBWrapVect", JSB_cpBBWrapVect, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodyActivate", JSB_cpBodyActivate, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodyActivateStatic", JSB_cpBodyActivateStatic, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodyApplyForce", JSB_cpBodyApplyForce, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodyApplyImpulse", JSB_cpBodyApplyImpulse, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodyDestroy", JSB_cpBodyDestroy, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodyFree", JSB_cpBodyFree, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodyGetAngVel", JSB_cpBodyGetAngVel, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodyGetAngVelLimit", JSB_cpBodyGetAngVelLimit, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodyGetAngle", JSB_cpBodyGetAngle, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodyGetForce", JSB_cpBodyGetForce, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodyGetMass", JSB_cpBodyGetMass, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodyGetMoment", JSB_cpBodyGetMoment, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodyGetPos", JSB_cpBodyGetPos, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodyGetRot", JSB_cpBodyGetRot, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodyGetSpace", JSB_cpBodyGetSpace, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodyGetTorque", JSB_cpBodyGetTorque, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodyGetVel", JSB_cpBodyGetVel, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodyGetVelAtLocalPoint", JSB_cpBodyGetVelAtLocalPoint, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodyGetVelAtWorldPoint", JSB_cpBodyGetVelAtWorldPoint, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodyGetVelLimit", JSB_cpBodyGetVelLimit, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodyInit", JSB_cpBodyInit, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodyInitStatic", JSB_cpBodyInitStatic, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodyIsRogue", JSB_cpBodyIsRogue, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodyIsSleeping", JSB_cpBodyIsSleeping, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodyIsStatic", JSB_cpBodyIsStatic, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodyKineticEnergy", JSB_cpBodyKineticEnergy, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodyLocal2World", JSB_cpBodyLocal2World, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodyNew", JSB_cpBodyNew, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodyNewStatic", JSB_cpBodyNewStatic, 0, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodyResetForces", JSB_cpBodyResetForces, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodySetAngVel", JSB_cpBodySetAngVel, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodySetAngVelLimit", JSB_cpBodySetAngVelLimit, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodySetAngle", JSB_cpBodySetAngle, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodySetForce", JSB_cpBodySetForce, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodySetMass", JSB_cpBodySetMass, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodySetMoment", JSB_cpBodySetMoment, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodySetPos", JSB_cpBodySetPos, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodySetTorque", JSB_cpBodySetTorque, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodySetVel", JSB_cpBodySetVel, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodySetVelLimit", JSB_cpBodySetVelLimit, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodySleep", JSB_cpBodySleep, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodySleepWithGroup", JSB_cpBodySleepWithGroup, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodyUpdatePosition", JSB_cpBodyUpdatePosition, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodyUpdateVelocity", JSB_cpBodyUpdateVelocity, 4, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "bodyWorld2Local", JSB_cpBodyWorld2Local, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "boxShapeNew", JSB_cpBoxShapeNew, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "boxShapeNew2", JSB_cpBoxShapeNew2, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "circleShapeGetOffset", JSB_cpCircleShapeGetOffset, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "circleShapeGetRadius", JSB_cpCircleShapeGetRadius, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "circleShapeNew", JSB_cpCircleShapeNew, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "constraintActivateBodies", JSB_cpConstraintActivateBodies, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "constraintDestroy", JSB_cpConstraintDestroy, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "constraintFree", JSB_cpConstraintFree, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "constraintGetA", JSB_cpConstraintGetA, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "constraintGetB", JSB_cpConstraintGetB, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "constraintGetErrorBias", JSB_cpConstraintGetErrorBias, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "constraintGetImpulse", JSB_cpConstraintGetImpulse, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "constraintGetMaxBias", JSB_cpConstraintGetMaxBias, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "constraintGetMaxForce", JSB_cpConstraintGetMaxForce, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "constraintGetSpace", JSB_cpConstraintGetSpace, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "constraintSetErrorBias", JSB_cpConstraintSetErrorBias, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "constraintSetMaxBias", JSB_cpConstraintSetMaxBias, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "constraintSetMaxForce", JSB_cpConstraintSetMaxForce, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "dampedRotarySpringGetDamping", JSB_cpDampedRotarySpringGetDamping, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "dampedRotarySpringGetRestAngle", JSB_cpDampedRotarySpringGetRestAngle, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "dampedRotarySpringGetStiffness", JSB_cpDampedRotarySpringGetStiffness, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "dampedRotarySpringNew", JSB_cpDampedRotarySpringNew, 5, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "dampedRotarySpringSetDamping", JSB_cpDampedRotarySpringSetDamping, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "dampedRotarySpringSetRestAngle", JSB_cpDampedRotarySpringSetRestAngle, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "dampedRotarySpringSetStiffness", JSB_cpDampedRotarySpringSetStiffness, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "dampedSpringGetAnchr1", JSB_cpDampedSpringGetAnchr1, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "dampedSpringGetAnchr2", JSB_cpDampedSpringGetAnchr2, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "dampedSpringGetDamping", JSB_cpDampedSpringGetDamping, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "dampedSpringGetRestLength", JSB_cpDampedSpringGetRestLength, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "dampedSpringGetStiffness", JSB_cpDampedSpringGetStiffness, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "dampedSpringNew", JSB_cpDampedSpringNew, 7, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "dampedSpringSetAnchr1", JSB_cpDampedSpringSetAnchr1, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "dampedSpringSetAnchr2", JSB_cpDampedSpringSetAnchr2, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "dampedSpringSetDamping", JSB_cpDampedSpringSetDamping, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "dampedSpringSetRestLength", JSB_cpDampedSpringSetRestLength, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "dampedSpringSetStiffness", JSB_cpDampedSpringSetStiffness, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "gearJointGetPhase", JSB_cpGearJointGetPhase, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "gearJointGetRatio", JSB_cpGearJointGetRatio, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "gearJointNew", JSB_cpGearJointNew, 4, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "gearJointSetPhase", JSB_cpGearJointSetPhase, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "gearJointSetRatio", JSB_cpGearJointSetRatio, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "grooveJointGetAnchr2", JSB_cpGrooveJointGetAnchr2, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "grooveJointGetGrooveA", JSB_cpGrooveJointGetGrooveA, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "grooveJointGetGrooveB", JSB_cpGrooveJointGetGrooveB, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "grooveJointNew", JSB_cpGrooveJointNew, 5, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "grooveJointSetAnchr2", JSB_cpGrooveJointSetAnchr2, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "grooveJointSetGrooveA", JSB_cpGrooveJointSetGrooveA, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "grooveJointSetGrooveB", JSB_cpGrooveJointSetGrooveB, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "initChipmunk", JSB_cpInitChipmunk, 0, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "momentForBox", JSB_cpMomentForBox, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "momentForBox2", JSB_cpMomentForBox2, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "momentForCircle", JSB_cpMomentForCircle, 4, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "momentForSegment", JSB_cpMomentForSegment, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "pinJointGetAnchr1", JSB_cpPinJointGetAnchr1, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "pinJointGetAnchr2", JSB_cpPinJointGetAnchr2, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "pinJointGetDist", JSB_cpPinJointGetDist, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "pinJointNew", JSB_cpPinJointNew, 4, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "pinJointSetAnchr1", JSB_cpPinJointSetAnchr1, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "pinJointSetAnchr2", JSB_cpPinJointSetAnchr2, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "pinJointSetDist", JSB_cpPinJointSetDist, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "pivotJointGetAnchr1", JSB_cpPivotJointGetAnchr1, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "pivotJointGetAnchr2", JSB_cpPivotJointGetAnchr2, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "pivotJointNew", JSB_cpPivotJointNew, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "pivotJointNew2", JSB_cpPivotJointNew2, 4, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "pivotJointSetAnchr1", JSB_cpPivotJointSetAnchr1, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "pivotJointSetAnchr2", JSB_cpPivotJointSetAnchr2, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "polyShapeGetNumVerts", JSB_cpPolyShapeGetNumVerts, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "polyShapeGetVert", JSB_cpPolyShapeGetVert, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "ratchetJointGetAngle", JSB_cpRatchetJointGetAngle, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "ratchetJointGetPhase", JSB_cpRatchetJointGetPhase, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "ratchetJointGetRatchet", JSB_cpRatchetJointGetRatchet, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "ratchetJointNew", JSB_cpRatchetJointNew, 4, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "ratchetJointSetAngle", JSB_cpRatchetJointSetAngle, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "ratchetJointSetPhase", JSB_cpRatchetJointSetPhase, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "ratchetJointSetRatchet", JSB_cpRatchetJointSetRatchet, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "resetShapeIdCounter", JSB_cpResetShapeIdCounter, 0, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "rotaryLimitJointGetMax", JSB_cpRotaryLimitJointGetMax, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "rotaryLimitJointGetMin", JSB_cpRotaryLimitJointGetMin, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "rotaryLimitJointNew", JSB_cpRotaryLimitJointNew, 4, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "rotaryLimitJointSetMax", JSB_cpRotaryLimitJointSetMax, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "rotaryLimitJointSetMin", JSB_cpRotaryLimitJointSetMin, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "segmentShapeGetA", JSB_cpSegmentShapeGetA, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "segmentShapeGetB", JSB_cpSegmentShapeGetB, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "segmentShapeGetNormal", JSB_cpSegmentShapeGetNormal, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "segmentShapeGetRadius", JSB_cpSegmentShapeGetRadius, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "segmentShapeNew", JSB_cpSegmentShapeNew, 4, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "segmentShapeSetNeighbors", JSB_cpSegmentShapeSetNeighbors, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "shapeCacheBB", JSB_cpShapeCacheBB, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "shapeDestroy", JSB_cpShapeDestroy, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "shapeFree", JSB_cpShapeFree, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "shapeGetBB", JSB_cpShapeGetBB, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "shapeGetBody", JSB_cpShapeGetBody, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "shapeGetCollisionType", JSB_cpShapeGetCollisionType, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "shapeGetElasticity", JSB_cpShapeGetElasticity, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "shapeGetFriction", JSB_cpShapeGetFriction, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "shapeGetGroup", JSB_cpShapeGetGroup, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "shapeGetLayers", JSB_cpShapeGetLayers, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "shapeGetSensor", JSB_cpShapeGetSensor, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "shapeGetSpace", JSB_cpShapeGetSpace, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "shapeGetSurfaceVelocity", JSB_cpShapeGetSurfaceVelocity, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "shapePointQuery", JSB_cpShapePointQuery, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "shapeSetBody", JSB_cpShapeSetBody, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "shapeSetCollisionType", JSB_cpShapeSetCollisionType, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "shapeSetElasticity", JSB_cpShapeSetElasticity, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "shapeSetFriction", JSB_cpShapeSetFriction, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "shapeSetGroup", JSB_cpShapeSetGroup, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "shapeSetLayers", JSB_cpShapeSetLayers, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "shapeSetSensor", JSB_cpShapeSetSensor, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "shapeSetSurfaceVelocity", JSB_cpShapeSetSurfaceVelocity, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "shapeUpdate", JSB_cpShapeUpdate, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "simpleMotorGetRate", JSB_cpSimpleMotorGetRate, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "simpleMotorNew", JSB_cpSimpleMotorNew, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "simpleMotorSetRate", JSB_cpSimpleMotorSetRate, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "slideJointGetAnchr1", JSB_cpSlideJointGetAnchr1, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "slideJointGetAnchr2", JSB_cpSlideJointGetAnchr2, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "slideJointGetMax", JSB_cpSlideJointGetMax, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "slideJointGetMin", JSB_cpSlideJointGetMin, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "slideJointNew", JSB_cpSlideJointNew, 6, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "slideJointSetAnchr1", JSB_cpSlideJointSetAnchr1, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "slideJointSetAnchr2", JSB_cpSlideJointSetAnchr2, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "slideJointSetMax", JSB_cpSlideJointSetMax, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "slideJointSetMin", JSB_cpSlideJointSetMin, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "spaceActivateShapesTouchingShape", JSB_cpSpaceActivateShapesTouchingShape, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "spaceAddBody", JSB_cpSpaceAddBody, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "spaceAddConstraint", JSB_cpSpaceAddConstraint, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "spaceAddShape", JSB_cpSpaceAddShape, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "spaceAddStaticShape", JSB_cpSpaceAddStaticShape, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "spaceContainsBody", JSB_cpSpaceContainsBody, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "spaceContainsConstraint", JSB_cpSpaceContainsConstraint, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "spaceContainsShape", JSB_cpSpaceContainsShape, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "spaceDestroy", JSB_cpSpaceDestroy, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "spaceFree", JSB_cpSpaceFree, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "spaceGetCollisionBias", JSB_cpSpaceGetCollisionBias, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "spaceGetCollisionPersistence", JSB_cpSpaceGetCollisionPersistence, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "spaceGetCollisionSlop", JSB_cpSpaceGetCollisionSlop, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "spaceGetCurrentTimeStep", JSB_cpSpaceGetCurrentTimeStep, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "spaceGetDamping", JSB_cpSpaceGetDamping, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "spaceGetEnableContactGraph", JSB_cpSpaceGetEnableContactGraph, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "spaceGetGravity", JSB_cpSpaceGetGravity, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "spaceGetIdleSpeedThreshold", JSB_cpSpaceGetIdleSpeedThreshold, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "spaceGetIterations", JSB_cpSpaceGetIterations, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "spaceGetSleepTimeThreshold", JSB_cpSpaceGetSleepTimeThreshold, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "spaceGetStaticBody", JSB_cpSpaceGetStaticBody, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "spaceInit", JSB_cpSpaceInit, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "spaceIsLocked", JSB_cpSpaceIsLocked, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "spaceNew", JSB_cpSpaceNew, 0, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "spacePointQueryFirst", JSB_cpSpacePointQueryFirst, 4, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "spaceReindexShape", JSB_cpSpaceReindexShape, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "spaceReindexShapesForBody", JSB_cpSpaceReindexShapesForBody, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "spaceReindexStatic", JSB_cpSpaceReindexStatic, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "spaceRemoveBody", JSB_cpSpaceRemoveBody, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "spaceRemoveConstraint", JSB_cpSpaceRemoveConstraint, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "spaceRemoveShape", JSB_cpSpaceRemoveShape, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "spaceRemoveStaticShape", JSB_cpSpaceRemoveStaticShape, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "spaceSetCollisionBias", JSB_cpSpaceSetCollisionBias, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "spaceSetCollisionPersistence", JSB_cpSpaceSetCollisionPersistence, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "spaceSetCollisionSlop", JSB_cpSpaceSetCollisionSlop, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "spaceSetDamping", JSB_cpSpaceSetDamping, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "spaceSetEnableContactGraph", JSB_cpSpaceSetEnableContactGraph, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "spaceSetGravity", JSB_cpSpaceSetGravity, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "spaceSetIdleSpeedThreshold", JSB_cpSpaceSetIdleSpeedThreshold, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "spaceSetIterations", JSB_cpSpaceSetIterations, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "spaceSetSleepTimeThreshold", JSB_cpSpaceSetSleepTimeThreshold, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "spaceStep", JSB_cpSpaceStep, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "spaceUseSpatialHash", JSB_cpSpaceUseSpatialHash, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "fabs", JSB_cpfabs, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "fclamp", JSB_cpfclamp, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "fclamp01", JSB_cpfclamp01, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "flerp", JSB_cpflerp, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "flerpconst", JSB_cpflerpconst, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "fmax", JSB_cpfmax, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "fmin", JSB_cpfmin, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "vadd", JSB_cpvadd, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "vclamp", JSB_cpvclamp, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "vcross", JSB_cpvcross, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "vdist", JSB_cpvdist, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "vdistsq", JSB_cpvdistsq, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "vdot", JSB_cpvdot, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "veql", JSB_cpveql, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "vforangle", JSB_cpvforangle, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "vlength", JSB_cpvlength, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "vlengthsq", JSB_cpvlengthsq, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "vlerp", JSB_cpvlerp, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "vlerpconst", JSB_cpvlerpconst, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "vmult", JSB_cpvmult, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "vnear", JSB_cpvnear, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "vneg", JSB_cpvneg, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "vnormalize", JSB_cpvnormalize, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "vnormalize_safe", JSB_cpvnormalize_safe, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "vperp", JSB_cpvperp, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "vproject", JSB_cpvproject, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "vrotate", JSB_cpvrotate, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "vrperp", JSB_cpvrperp, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "vslerp", JSB_cpvslerp, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "vslerpconst", JSB_cpvslerpconst, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "vsub", JSB_cpvsub, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "vtoangle", JSB_cpvtoangle, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, chipmunk, "vunrotate", JSB_cpvunrotate, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); + + +#endif // JSB_INCLUDE_CHIPMUNK diff --git a/cocos/scripting/javascript/bindings/chipmunk/js_bindings_chipmunk_manual.cpp b/cocos/scripting/javascript/bindings/chipmunk/js_bindings_chipmunk_manual.cpp new file mode 100644 index 0000000000..14a88c87bb --- /dev/null +++ b/cocos/scripting/javascript/bindings/chipmunk/js_bindings_chipmunk_manual.cpp @@ -0,0 +1,1624 @@ +/* + * JS Bindings: https://github.com/zynga/jsbindings + * + * Copyright (c) 2012 Zynga Inc. + * + * 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 "extensions/cocos-ext.h" +#include "js_bindings_config.h" +#ifdef JSB_INCLUDE_CHIPMUNK + +#include "jsapi.h" +#include "jsfriendapi.h" + +#include "js_bindings_chipmunk_manual.h" +#include "js_manual_conversions.h" + +USING_NS_CC_EXT; +// Function declarations +void static freeSpaceChildren(cpSpace *space); + +template +static JSBool dummy_constructor(JSContext *cx, uint32_t argc, jsval *vp) { + TypeTest t; + T* cobj = new T(); + cobj->autorelease(); + js_type_class_t *p; + uint32_t typeId = t.s_id(); + HASH_FIND_INT(_js_global_type_ht, &typeId, p); + assert(p); + JSObject *_tmp = JS_NewObject(cx, p->jsclass, p->proto, p->parentProto); + js_proxy_t *pp = jsb_new_proxy(cobj, _tmp); + JS_AddObjectRoot(cx, &pp->obj); + JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(_tmp)); + + return JS_TRUE; +} + +#pragma mark - convertions + +/* + * PhysicsSprite + */ +#pragma mark - PhysicsSprite + +JSClass* JSPROXY_CCPhysicsSprite_class = NULL; +JSObject* JSPROXY_CCPhysicsSprite_object = NULL; +// Constructor + +// Destructor +void JSPROXY_CCPhysicsSprite_finalize(JSFreeOp *fop, JSObject *obj) +{ + CCLOGINFO("jsbindings: finalizing JS object %p (PhysicsSprite)", obj); +} + +// Arguments: +// Ret value: cpBody* (N/A) +JSBool JSPROXY_CCPhysicsSprite_getCPBody(JSContext *cx, uint32_t argc, jsval *vp) { + + JSObject *obj = JS_THIS_OBJECT(cx, vp); + js_proxy_t *proxy = jsb_get_js_proxy(obj); + PhysicsSprite* real = (PhysicsSprite *)(proxy ? proxy->ptr : NULL); + TEST_NATIVE_OBJECT(cx, real) + cpBody* ret_val; + + ret_val = real->getCPBody(); + jsval ret_jsval = c_class_to_jsval( cx, ret_val, JSB_cpBody_object, JSB_cpBody_class, "cpBody" ); + JS_SET_RVAL(cx, vp, ret_jsval); + + return JS_TRUE; +} + +// Arguments: +// Ret value: BOOL (b) +JSBool JSPROXY_CCPhysicsSprite_ignoreBodyRotation(JSContext *cx, uint32_t argc, jsval *vp) { + + JSObject *obj = JS_THIS_OBJECT(cx, vp); + js_proxy_t *proxy = jsb_get_js_proxy(obj); + PhysicsSprite* real = (PhysicsSprite *)(proxy ? proxy->ptr : NULL); + TEST_NATIVE_OBJECT(cx, real) + + bool ret_val; + + ret_val = real->isIgnoreBodyRotation(); + JS_SET_RVAL(cx, vp, BOOLEAN_TO_JSVAL(ret_val)); + return JS_TRUE; +} + +// Arguments: cpBody* +// Ret value: void (None) +JSBool JSPROXY_CCPhysicsSprite_setCPBody_(JSContext *cx, uint32_t argc, jsval *vp) { + + JSObject *obj = JS_THIS_OBJECT(cx, vp); + js_proxy_t *proxy = jsb_get_js_proxy(obj); + PhysicsSprite* real = (PhysicsSprite *)(proxy ? proxy->ptr : NULL); + TEST_NATIVE_OBJECT(cx, real) + + jsval *argvp = JS_ARGV(cx,vp); + JSBool ok = JS_TRUE; + + cpBody* arg0; + + ok &= jsval_to_opaque( cx, *argvp++, (void**)&arg0 ); + if( ! ok ) return JS_FALSE; + + real->setCPBody((cpBody*)arg0); + JS_SET_RVAL(cx, vp, JSVAL_VOID); + return JS_TRUE; +} + +// Arguments: BOOL +// Ret value: void (None) +JSBool JSPROXY_CCPhysicsSprite_setIgnoreBodyRotation_(JSContext *cx, uint32_t argc, jsval *vp) { + + JSObject *obj = JS_THIS_OBJECT(cx, vp); + js_proxy_t *proxy = jsb_get_js_proxy(obj); + PhysicsSprite* real = (PhysicsSprite *)(proxy ? proxy->ptr : NULL); + TEST_NATIVE_OBJECT(cx, real) + + jsval *argvp = JS_ARGV(cx,vp); + JSBool ok = JS_TRUE; + JSBool arg0; + + ok &= JS_ValueToBoolean( cx, *argvp++, &arg0 ); + if( ! ok ) return JS_FALSE; + + real->setIgnoreBodyRotation((bool)arg0); + JS_SET_RVAL(cx, vp, JSVAL_VOID); + return JS_TRUE; +} + +/* + * PhysicsDebugNode + */ +//#pragma mark - PhysicsDebugNode + +JSClass* JSB_CCPhysicsDebugNode_class = NULL; +JSObject* JSB_CCPhysicsDebugNode_object = NULL; +extern JSObject *js_cocos2dx_CCDrawNode_prototype; + +// Constructor + +// Destructor +void JSB_CCPhysicsDebugNode_finalize(JSFreeOp *fop, JSObject *obj) +{ + CCLOGINFO("jsbindings: finalizing JS object %p (PhysicsDebugNode)", obj); +} + +// Arguments: cpSpace* +// Ret value: PhysicsDebugNode* (o) +JSBool JSB_CCPhysicsDebugNode_debugNodeForCPSpace__static(JSContext *cx, uint32_t argc, jsval *vp) { + JSB_PRECONDITION2( argc == 1, cx, JS_FALSE, "Invalid number of arguments" ); + jsval *argvp = JS_ARGV(cx,vp); + JSBool ok = JS_TRUE; + cpSpace* arg0; + + ok &= jsval_to_opaque( cx, *argvp++, (void**)&arg0 ); + JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments"); + + PhysicsDebugNode* ret = PhysicsDebugNode::create(arg0); + jsval jsret; + do { + if (ret) { + TypeTest t; + js_type_class_t *typeClass; + uint32_t typeId = t.s_id(); + HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass); + assert(typeClass); + JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto); + jsret = OBJECT_TO_JSVAL(obj); + js_proxy_t *p = jsb_new_proxy(ret, obj); + JS_AddNamedObjectRoot(cx, &p->obj, "CCDebugNode"); + } else { + jsret = JSVAL_NULL; + } + } while (0); + JS_SET_RVAL(cx, vp, jsret); + + return JS_TRUE; +} + +// Arguments: cpSpace* +// Ret value: void (None) +JSBool JSB_CCPhysicsDebugNode_setSpace_(JSContext *cx, uint32_t argc, jsval *vp) { + + JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp); + js_proxy_t *proxy = jsb_get_js_proxy(jsthis); + PhysicsDebugNode* real = (PhysicsDebugNode *)(proxy ? proxy->ptr : NULL); + TEST_NATIVE_OBJECT(cx, real) + + JSB_PRECONDITION2( argc == 1, cx, JS_FALSE, "Invalid number of arguments" ); + jsval *argvp = JS_ARGV(cx,vp); + JSBool ok = JS_TRUE; + cpSpace* arg0; + + ok &= jsval_to_opaque( cx, *argvp++, (void**)&arg0 ); + JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments"); + + real->setSpace(arg0); + JS_SET_RVAL(cx, vp, JSVAL_VOID); + return JS_TRUE; +} + +// Arguments: +// Ret value: cpSpace* (N/A) +JSBool JSB_CCPhysicsDebugNode_space(JSContext *cx, uint32_t argc, jsval *vp) { + + JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp); + js_proxy_t *proxy = jsb_get_js_proxy(jsthis); + PhysicsDebugNode* real = (PhysicsDebugNode *)(proxy ? proxy->ptr : NULL); + TEST_NATIVE_OBJECT(cx, real) + JSB_PRECONDITION2( argc == 0, cx, JS_FALSE, "Invalid number of arguments" ); + cpSpace* ret_val; + + ret_val = real->getSpace(); + + jsval ret_jsval = opaque_to_jsval( cx, ret_val ); + JS_SET_RVAL(cx, vp, ret_jsval); + + return JS_TRUE; +} + +void JSB_CCPhysicsDebugNode_createClass(JSContext *cx, JSObject* globalObj, const char* name ) +{ + JSB_CCPhysicsDebugNode_class = (JSClass *)calloc(1, sizeof(JSClass)); + JSB_CCPhysicsDebugNode_class->name = name; + JSB_CCPhysicsDebugNode_class->addProperty = JS_PropertyStub; + JSB_CCPhysicsDebugNode_class->delProperty = JS_DeletePropertyStub; + JSB_CCPhysicsDebugNode_class->getProperty = JS_PropertyStub; + JSB_CCPhysicsDebugNode_class->setProperty = JS_StrictPropertyStub; + JSB_CCPhysicsDebugNode_class->enumerate = JS_EnumerateStub; + JSB_CCPhysicsDebugNode_class->resolve = JS_ResolveStub; + JSB_CCPhysicsDebugNode_class->convert = JS_ConvertStub; + JSB_CCPhysicsDebugNode_class->finalize = JSB_CCPhysicsDebugNode_finalize; + JSB_CCPhysicsDebugNode_class->flags = 0; + + static JSPropertySpec properties[] = { + {0, 0, 0, 0, 0} + }; + static JSFunctionSpec funcs[] = { + JS_FN("_setSpace", JSB_CCPhysicsDebugNode_setSpace_, 1, JSPROP_PERMANENT | JSPROP_ENUMERATE), + JS_FN("getSpace", JSB_CCPhysicsDebugNode_space, 0, JSPROP_PERMANENT | JSPROP_ENUMERATE), + JS_FS_END + }; + static JSFunctionSpec st_funcs[] = { + JS_FN("_create", JSB_CCPhysicsDebugNode_debugNodeForCPSpace__static, 1, JSPROP_PERMANENT | JSPROP_ENUMERATE), + JS_FS_END + }; + + TypeTest t1; + js_type_class_t *typeClass; + uint32_t typeId = t1.s_id(); + HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass); + assert(typeClass); + + JSB_CCPhysicsDebugNode_object = JS_InitClass(cx, globalObj, typeClass->proto, JSB_CCPhysicsDebugNode_class, dummy_constructor, 0,properties,funcs,NULL,st_funcs); + + TypeTest t; + js_type_class_t *p; + typeId = t.s_id(); + HASH_FIND_INT(_js_global_type_ht, &typeId, p); + if (!p) { + p = (js_type_class_t *)malloc(sizeof(js_type_class_t)); + p->type = typeId; + p->jsclass = JSB_CCPhysicsDebugNode_class; + p->proto = JSB_CCPhysicsDebugNode_object; + p->parentProto = typeClass->proto; + HASH_ADD_INT(_js_global_type_ht, type, p); + } +} + +// Arguments: NSString*, CGRect +// Ret value: PhysicsSprite* (o) +JSBool JSPROXY_CCPhysicsSprite_spriteWithFile_rect__static(JSContext *cx, uint32_t argc, jsval *vp) { + + jsval *argv = JS_ARGV(cx, vp); + JSBool ok = JS_TRUE; + if (argc == 2) { + const char* arg0; + std::string arg0_tmp; ok &= jsval_to_std_string(cx, argv[0], &arg0_tmp); arg0 = arg0_tmp.c_str(); + cocos2d::Rect arg1; + ok &= jsval_to_ccrect(cx, argv[1], &arg1); + JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments"); + + PhysicsSprite* ret = PhysicsSprite::create(arg0, arg1); + + jsval jsret; + do { + if (ret) { + TypeTest t; + js_type_class_t *typeClass; + uint32_t typeId = t.s_id(); + HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass); + assert(typeClass); + JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto); + jsret = OBJECT_TO_JSVAL(obj); + js_proxy_t *p = jsb_new_proxy(ret, obj); + JS_AddNamedObjectRoot(cx, &p->obj, "CCPhysicsSprite"); + } else { + jsret = JSVAL_NULL; + } + } while (0); + JS_SET_RVAL(cx, vp, jsret); + return JS_TRUE; + } + if (argc == 1) { + const char* arg0; + std::string arg0_tmp; ok &= jsval_to_std_string(cx, argv[0], &arg0_tmp); arg0 = arg0_tmp.c_str(); + JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments"); + + PhysicsSprite* ret = PhysicsSprite::create(arg0); + + jsval jsret; + do { + if (ret) { + TypeTest t; + js_type_class_t *typeClass; + uint32_t typeId = t.s_id(); + HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass); + assert(typeClass); + JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto); + jsret = OBJECT_TO_JSVAL(obj); + js_proxy_t *p = jsb_new_proxy(ret, obj); + JS_AddNamedObjectRoot(cx, &p->obj, "CCPhysicsSprite"); + } else { + jsret = JSVAL_NULL; + } + } while (0); + JS_SET_RVAL(cx, vp, jsret); + return JS_TRUE; + } + return JS_FALSE; + +} + +// Arguments: SpriteFrame* +// Ret value: PhysicsSprite* (o) +JSBool JSPROXY_CCPhysicsSprite_spriteWithSpriteFrame__static(JSContext *cx, uint32_t argc, jsval *vp) { + jsval *argv = JS_ARGV(cx, vp); + cocos2d::SpriteFrame* arg0; + if (argc >= 1) { + do { + js_proxy_t *proxy; + JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]); + proxy = jsb_get_js_proxy(tmpObj); + arg0 = (cocos2d::SpriteFrame*)(proxy ? proxy->ptr : NULL); + TEST_NATIVE_OBJECT(cx, arg0) + } while (0); + } + PhysicsSprite* ret = PhysicsSprite::createWithSpriteFrame(arg0); + + jsval jsret; + do { + if (ret) { + TypeTest t; + js_type_class_t *typeClass; + uint32_t typeId = t.s_id(); + HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass); + assert(typeClass); + JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto); + jsret = OBJECT_TO_JSVAL(obj); + js_proxy_t *p = jsb_new_proxy(ret, obj); + JS_AddNamedObjectRoot(cx, &p->obj, "CCPhysicsSprite"); + } else { + jsret = JSVAL_NULL; + } + } while (0); + JS_SET_RVAL(cx, vp, jsret); + return JS_TRUE; +} + +// Arguments: NSString* +// Ret value: PhysicsSprite* (o) +JSBool JSPROXY_CCPhysicsSprite_spriteWithSpriteFrameName__static(JSContext *cx, uint32_t argc, jsval *vp) { + jsval *argv = JS_ARGV(cx, vp); + JSBool ok = JS_TRUE; + const char* arg0; + std::string arg0_tmp; + if (argc >= 1) { + ok &= jsval_to_std_string(cx, argv[0], &arg0_tmp); arg0 = arg0_tmp.c_str(); + } + PhysicsSprite* ret = PhysicsSprite::createWithSpriteFrameName(arg0); + + jsval jsret; + do { + if (ret) { + TypeTest t; + js_type_class_t *typeClass; + uint32_t typeId = t.s_id(); + HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass); + assert(typeClass); + JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto); + jsret = OBJECT_TO_JSVAL(obj); + js_proxy_t *p = jsb_new_proxy(ret, obj); + JS_AddNamedObjectRoot(cx, &p->obj, "CCPhysicsSprite"); + } else { + jsret = JSVAL_NULL; + } + } while (0); + JS_SET_RVAL(cx, vp, jsret); + return JS_TRUE; +} + +void JSPROXY_CCPhysicsSprite_createClass(JSContext *cx, JSObject* globalObj) +{ + JSPROXY_CCPhysicsSprite_class = (JSClass *)calloc(1, sizeof(JSClass)); + JSPROXY_CCPhysicsSprite_class->name = "PhysicsSprite"; + JSPROXY_CCPhysicsSprite_class->addProperty = JS_PropertyStub; + JSPROXY_CCPhysicsSprite_class->delProperty = JS_DeletePropertyStub; + JSPROXY_CCPhysicsSprite_class->getProperty = JS_PropertyStub; + JSPROXY_CCPhysicsSprite_class->setProperty = JS_StrictPropertyStub; + JSPROXY_CCPhysicsSprite_class->enumerate = JS_EnumerateStub; + JSPROXY_CCPhysicsSprite_class->resolve = JS_ResolveStub; + JSPROXY_CCPhysicsSprite_class->convert = JS_ConvertStub; + JSPROXY_CCPhysicsSprite_class->finalize = JSPROXY_CCPhysicsSprite_finalize; + JSPROXY_CCPhysicsSprite_class->flags = 0; + + static JSPropertySpec properties[] = { + {0, 0, 0, 0, 0} + }; + static JSFunctionSpec funcs[] = { + JS_FN("getCPBody", JSPROXY_CCPhysicsSprite_getCPBody, 0, JSPROP_PERMANENT | JSPROP_ENUMERATE), + JS_FN("getIgnoreBodyRotation", JSPROXY_CCPhysicsSprite_ignoreBodyRotation, 0, JSPROP_PERMANENT | JSPROP_ENUMERATE), + JS_FN("_setCPBody", JSPROXY_CCPhysicsSprite_setCPBody_, 1, JSPROP_PERMANENT | JSPROP_ENUMERATE), + JS_FN("setIgnoreBodyRotation", JSPROXY_CCPhysicsSprite_setIgnoreBodyRotation_, 1, JSPROP_PERMANENT | JSPROP_ENUMERATE), + JS_FS_END + }; + static JSFunctionSpec st_funcs[] = { + JS_FN("create", JSPROXY_CCPhysicsSprite_spriteWithFile_rect__static, 2, JSPROP_PERMANENT | JSPROP_ENUMERATE), + JS_FN("createWithSpriteFrame", JSPROXY_CCPhysicsSprite_spriteWithSpriteFrame__static, 1, JSPROP_PERMANENT | JSPROP_ENUMERATE), + JS_FN("createWithSpriteFrameName", JSPROXY_CCPhysicsSprite_spriteWithSpriteFrameName__static, 1, JSPROP_PERMANENT | JSPROP_ENUMERATE), + JS_FS_END + }; + + TypeTest t1; + js_type_class_t *typeClass; + uint32_t typeId = t1.s_id(); + HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass); + assert(typeClass); + + JSPROXY_CCPhysicsSprite_object = JS_InitClass(cx, globalObj, typeClass->proto, JSPROXY_CCPhysicsSprite_class, dummy_constructor, 0,properties,funcs,NULL,st_funcs); + + TypeTest t; + js_type_class_t *p; + typeId = t.s_id(); + HASH_FIND_INT(_js_global_type_ht, &typeId, p); + if (!p) { + p = (js_type_class_t *)malloc(sizeof(js_type_class_t)); + p->type = typeId; + p->jsclass = JSPROXY_CCPhysicsSprite_class; + p->proto = JSPROXY_CCPhysicsSprite_object; + p->parentProto = typeClass->proto; + HASH_ADD_INT(_js_global_type_ht, type, p); + } +} + + +void register_CCPhysicsSprite(JSContext *cx, JSObject *obj) { + jsval nsval; + JSObject *ns; + JS_GetProperty(cx, obj, "cc", &nsval); + if (nsval == JSVAL_VOID) { + ns = JS_NewObject(cx, NULL, NULL, NULL); + nsval = OBJECT_TO_JSVAL(ns); + JS_SetProperty(cx, obj, "cc", &nsval); + } else { + JS_ValueToObject(cx, nsval, &ns); + } + obj = ns; + JSPROXY_CCPhysicsSprite_createClass(cx, obj); +} + +void register_CCPhysicsDebugNode(JSContext *cx, JSObject *obj) { + jsval nsval; + JSObject *ns; + JS_GetProperty(cx, obj, "cc", &nsval); + if (nsval == JSVAL_VOID) { + ns = JS_NewObject(cx, NULL, NULL, NULL); + nsval = OBJECT_TO_JSVAL(ns); + JS_SetProperty(cx, obj, "cc", &nsval); + } else { + JS_ValueToObject(cx, nsval, &ns); + } + obj = ns; + JSB_CCPhysicsDebugNode_createClass(cx, obj, "PhysicsDebugNode"); +} + +JSBool jsval_to_cpBB( JSContext *cx, jsval vp, cpBB *ret ) +{ + JSObject *jsobj; + JSBool ok = JS_ValueToObject( cx, vp, &jsobj ); + JSB_PRECONDITION( ok, "Error converting value to object"); + JSB_PRECONDITION( jsobj, "Not a valid JS object"); + + jsval vall, valb, valr, valt; + ok = JS_TRUE; + ok &= JS_GetProperty(cx, jsobj, "l", &vall); + ok &= JS_GetProperty(cx, jsobj, "b", &valb); + ok &= JS_GetProperty(cx, jsobj, "r", &valr); + ok &= JS_GetProperty(cx, jsobj, "t", &valt); + JSB_PRECONDITION( ok, "Error obtaining point properties"); + + double l, b, r, t; + ok &= JS_ValueToNumber(cx, vall, &l); + ok &= JS_ValueToNumber(cx, valb, &b); + ok &= JS_ValueToNumber(cx, valr, &r); + ok &= JS_ValueToNumber(cx, valt, &t); + JSB_PRECONDITION( ok, "Error converting value to numbers"); + + ret->l = l; + ret->b = b; + ret->r = r; + ret->t = t; + + return JS_TRUE; +} + +jsval cpBB_to_jsval(JSContext *cx, cpBB bb ) +{ + JSObject *object = JS_NewObject(cx, NULL, NULL, NULL ); + if (!object) + return JSVAL_VOID; + + if (!JS_DefineProperty(cx, object, "l", DOUBLE_TO_JSVAL(bb.l), NULL, NULL, JSPROP_ENUMERATE | JSPROP_PERMANENT) || + !JS_DefineProperty(cx, object, "b", DOUBLE_TO_JSVAL(bb.b), NULL, NULL, JSPROP_ENUMERATE | JSPROP_PERMANENT) || + !JS_DefineProperty(cx, object, "r", DOUBLE_TO_JSVAL(bb.r), NULL, NULL, JSPROP_ENUMERATE | JSPROP_PERMANENT) || + !JS_DefineProperty(cx, object, "t", DOUBLE_TO_JSVAL(bb.t), NULL, NULL, JSPROP_ENUMERATE | JSPROP_PERMANENT) ) + return JSVAL_VOID; + + return OBJECT_TO_JSVAL(object); +} + +// In order to be compatible with Chipmunk-JS API, +// this function expect to receive an array of numbers, and not an array of vects +// OK: [1,2, 3,4, 5,6] <- expected +// BAD: [{x:1, y:2}, {x:3,y:4}, {x:5, y:6}] <- not expected +JSBool jsval_to_array_of_cpvect( JSContext *cx, jsval vp, cpVect**verts, int *numVerts) +{ + // Parsing sequence + JSObject *jsobj; + JSBool ok = JS_ValueToObject( cx, vp, &jsobj ); + JSB_PRECONDITION( ok, "Error converting value to object"); + + JSB_PRECONDITION( jsobj && JS_IsArrayObject( cx, jsobj), "Object must be an array"); + + uint32_t len; + JS_GetArrayLength(cx, jsobj, &len); + + JSB_PRECONDITION( len%2==0, "Array lenght should be even"); + + cpVect *array = (cpVect*)malloc( sizeof(cpVect) * len/2); + + for( uint32_t i=0; i< len;i++ ) { + jsval valarg; + JS_GetElement(cx, jsobj, i, &valarg); + + double value; + ok = JS_ValueToNumber(cx, valarg, &value); + JSB_PRECONDITION( ok, "Error converting value to nsobject"); + + if(i%2==0) + array[i/2].x = value; + else + array[i/2].y = value; + } + + *numVerts = len/2; + *verts = array; + + return JS_TRUE; +} + +#pragma mark - Collision Handler + +struct collision_handler { + cpCollisionType typeA; + cpCollisionType typeB; + + JSObject *begin; + JSObject *pre; + JSObject *post; + JSObject *separate; + JSObject *jsthis; + JSContext *cx; + + // "owner" of the collision handler + // Needed when the space goes out of scope, it will remove all the allocated collision handlers for him. + cpSpace *space; + + unsigned long hash_key; + + unsigned int is_oo; // Objected oriented API ? + UT_hash_handle hh; +}; + +// hash +struct collision_handler* collision_handler_hash = NULL; + +// helper pair +static unsigned long pair_ints( unsigned long A, unsigned long B ) +{ + // order is not important + unsigned long k1 = MIN(A, B ); + unsigned long k2 = MAX(A, B ); + + return (k1 + k2) * (k1 + k2 + 1) /2 + k2; +} + +static cpBool myCollisionBegin(cpArbiter *arb, cpSpace *space, void *data) +{ + struct collision_handler *handler = (struct collision_handler*) data; + + jsval args[2]; + if( handler->is_oo ) { + args[0] = c_class_to_jsval(handler->cx, arb, JSB_cpArbiter_object, JSB_cpArbiter_class, "cpArbiter"); + args[1] = c_class_to_jsval(handler->cx, space, JSB_cpSpace_object, JSB_cpSpace_class, "cpArbiter"); + } else { + args[0] = opaque_to_jsval( handler->cx, arb); + args[1] = opaque_to_jsval( handler->cx, space ); + } + + jsval rval; + JSBool ok = JS_CallFunctionValue( handler->cx, handler->jsthis, OBJECT_TO_JSVAL(handler->begin), 2, args, &rval); + JSB_PRECONDITION2(ok, handler->cx, cpFalse, "Error calling collision callback: begin"); + + if( JSVAL_IS_BOOLEAN(rval) ) { + JSBool ret = JSVAL_TO_BOOLEAN(rval); + return (cpBool)ret; + } + return cpTrue; +} + +static cpBool myCollisionPre(cpArbiter *arb, cpSpace *space, void *data) +{ + struct collision_handler *handler = (struct collision_handler*) data; + + jsval args[2]; + if( handler->is_oo ) { + args[0] = c_class_to_jsval(handler->cx, arb, JSB_cpArbiter_object, JSB_cpArbiter_class, "cpArbiter"); + args[1] = c_class_to_jsval(handler->cx, space, JSB_cpSpace_object, JSB_cpSpace_class, "cpArbiter"); + } else { + args[0] = opaque_to_jsval( handler->cx, arb); + args[1] = opaque_to_jsval( handler->cx, space ); + } + + jsval rval; + JSBool ok = JS_CallFunctionValue( handler->cx, handler->jsthis, OBJECT_TO_JSVAL(handler->pre), 2, args, &rval); + JSB_PRECONDITION2(ok, handler->cx, JS_FALSE, "Error calling collision callback: pre"); + + if( JSVAL_IS_BOOLEAN(rval) ) { + JSBool ret = JSVAL_TO_BOOLEAN(rval); + return (cpBool)ret; + } + return cpTrue; +} + +static void myCollisionPost(cpArbiter *arb, cpSpace *space, void *data) +{ + struct collision_handler *handler = (struct collision_handler*) data; + + jsval args[2]; + + if( handler->is_oo ) { + args[0] = c_class_to_jsval(handler->cx, arb, JSB_cpArbiter_object, JSB_cpArbiter_class, "cpArbiter"); + args[1] = c_class_to_jsval(handler->cx, space, JSB_cpSpace_object, JSB_cpSpace_class, "cpArbiter"); + } else { + args[0] = opaque_to_jsval( handler->cx, arb); + args[1] = opaque_to_jsval( handler->cx, space ); + } + + jsval ignore; + JSBool ok = JS_CallFunctionValue( handler->cx, handler->jsthis, OBJECT_TO_JSVAL(handler->post), 2, args, &ignore); + JSB_PRECONDITION2(ok, handler->cx, , "Error calling collision callback: Post"); +} + +static void myCollisionSeparate(cpArbiter *arb, cpSpace *space, void *data) +{ + struct collision_handler *handler = (struct collision_handler*) data; + + jsval args[2]; + if( handler->is_oo ) { + args[0] = c_class_to_jsval(handler->cx, arb, JSB_cpArbiter_object, JSB_cpArbiter_class, "cpArbiter"); + args[1] = c_class_to_jsval(handler->cx, space, JSB_cpSpace_object, JSB_cpSpace_class, "cpArbiter"); + } else { + args[0] = opaque_to_jsval( handler->cx, arb); + args[1] = opaque_to_jsval( handler->cx, space ); + } + + jsval ignore; + JSBool ok = JS_CallFunctionValue( handler->cx, handler->jsthis, OBJECT_TO_JSVAL(handler->separate), 2, args, &ignore); + JSB_PRECONDITION2(ok, handler->cx, , "Error calling collision callback: Separate");} + +#pragma mark - cpSpace + +#pragma mark constructor / destructor + +void JSB_cpSpace_finalize(JSFreeOp *fop, JSObject *jsthis) +{ + struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis); + if( proxy ) { + CCLOGINFO("jsbindings: finalizing JS object %p (cpSpace), handle: %p", jsthis, proxy->handle); + + // space + cpSpace *space = (cpSpace*) proxy->handle; + + + // Remove collision handlers, since the user might have forgotten to manually remove them + struct collision_handler *current, *tmp; + HASH_ITER(hh, collision_handler_hash, current, tmp) { + if( current->space == space ) { + + JSContext *cx = current->cx; + + // unroot it + if( current->begin ) { + JS_RemoveObjectRoot(cx, ¤t->begin); + } + if( current->pre ) + JS_RemoveObjectRoot(cx, ¤t->pre); + if( current->post ) + JS_RemoveObjectRoot(cx, ¤t->post); + if( current->separate ) + JS_RemoveObjectRoot(cx, ¤t->separate); + + HASH_DEL(collision_handler_hash,current); /* delete; users advances to next */ + free(current); /* optional- if you want to free */ + } + } + + // Free Space Children + freeSpaceChildren(space); + + jsb_del_jsobject_for_proxy(space); + if(proxy->flags == JSB_C_FLAG_CALL_FREE) + cpSpaceFree(space); + jsb_del_c_proxy_for_jsobject(jsthis); + } +} + + +#pragma mark addCollisionHandler + +static +JSBool __jsb_cpSpace_addCollisionHandler(JSContext *cx, jsval *vp, jsval *argvp, cpSpace *space, unsigned int is_oo) +{ + struct collision_handler *handler = (struct collision_handler*) malloc( sizeof(*handler) ); + + JSB_PRECONDITION(handler, "Error allocating memory"); + + JSBool ok = JS_TRUE; + + // args + ok &= jsval_to_int(cx, *argvp++, (int32_t*) &handler->typeA ); + ok &= jsval_to_int(cx, *argvp++, (int32_t*) &handler->typeB ); + + // this is no longer passed, so "this" is going to be "this". +// ok &= JS_ValueToObject(cx, *argvp++, &handler->jsthis ); + handler->jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp); + + handler->begin = !JSVAL_IS_NULL(*argvp) ? JSVAL_TO_OBJECT(*argvp) : NULL; + argvp++; + handler->pre = !JSVAL_IS_NULL(*argvp) ? JSVAL_TO_OBJECT(*argvp) : NULL; + argvp++; + handler->post = !JSVAL_IS_NULL(*argvp) ? JSVAL_TO_OBJECT(*argvp) : NULL; + argvp++; + handler->separate = !JSVAL_IS_NULL(*argvp) ? JSVAL_TO_OBJECT(*argvp) : NULL; + argvp++; + + JSB_PRECONDITION(ok, "Error parsing arguments"); + + // Object Oriented API ? + handler->is_oo = is_oo; + + // owner of the collision handler + handler->space = space; + + // Root it + if( handler->begin ) + JS_AddNamedObjectRoot(cx, &handler->begin, "begin collision_handler"); + if( handler->pre ) + JS_AddNamedObjectRoot(cx, &handler->pre, "pre collision_handler"); + if( handler->post ) + JS_AddNamedObjectRoot(cx, &handler->post, "post collision_handler"); + if( handler->separate ) + JS_AddNamedObjectRoot(cx, &handler->separate, "separate collision_handler"); + + handler->cx = cx; + + cpSpaceAddCollisionHandler(space, handler->typeA, handler->typeB, + !handler->begin ? NULL : &myCollisionBegin, + !handler->pre ? NULL : &myCollisionPre, + !handler->post ? NULL : &myCollisionPost, + !handler->separate ? NULL : &myCollisionSeparate, + handler ); + + + // + // Already added ? If so, remove it. + // Then add new entry + // + struct collision_handler *hashElement = NULL; + unsigned long paired_key = pair_ints(handler->typeA, handler->typeB ); + HASH_FIND_INT(collision_handler_hash, &paired_key, hashElement); + if( hashElement ) { + HASH_DEL( collision_handler_hash, hashElement ); + free( hashElement ); + } + + handler->hash_key = paired_key; + HASH_ADD_INT( collision_handler_hash, hash_key, handler ); + + + JS_SET_RVAL(cx, vp, JSVAL_VOID); + return JS_TRUE; +} + +JSBool JSB_cpSpaceAddCollisionHandler(JSContext *cx, uint32_t argc, jsval *vp) +{ + JSB_PRECONDITION2(argc==7, cx, JS_FALSE, "Invalid number of arguments"); + + + jsval *argvp = JS_ARGV(cx,vp); + + // args + cpSpace *space; + JSBool ok = jsval_to_opaque( cx, *argvp++, (void**)&space); + JSB_PRECONDITION(ok, "Error parsing arguments"); + + return __jsb_cpSpace_addCollisionHandler(cx, vp, argvp, space, 0); +} + +// method +JSBool JSB_cpSpace_addCollisionHandler(JSContext *cx, uint32_t argc, jsval *vp) +{ + JSB_PRECONDITION2(argc==6, cx, JS_FALSE, "Invalid number of arguments"); + JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp); + JSB_PRECONDITION( jsthis, "Invalid jsthis object"); + + struct jsb_c_proxy_s* proxy = jsb_get_c_proxy_for_jsobject(jsthis); + void *handle = proxy->handle; + + return __jsb_cpSpace_addCollisionHandler(cx, vp, JS_ARGV(cx,vp), (cpSpace*)handle, 1); +} + +#pragma mark removeCollisionHandler + +static +JSBool __jsb_cpSpace_removeCollisionHandler(JSContext *cx, jsval *vp, jsval *argvp, cpSpace *space) +{ + JSBool ok = JS_TRUE; + + cpCollisionType typeA; + cpCollisionType typeB; + ok &= jsval_to_int(cx, *argvp++, (int32_t*) &typeA ); + ok &= jsval_to_int(cx, *argvp++, (int32_t*) &typeB ); + + JSB_PRECONDITION(ok, "Error parsing arguments"); + + cpSpaceRemoveCollisionHandler(space, typeA, typeB ); + + // Remove it + struct collision_handler *hashElement = NULL; + unsigned long key = pair_ints(typeA, typeB ); + HASH_FIND_INT(collision_handler_hash, &key, hashElement); + if( hashElement ) { + + // unroot it + if( hashElement->begin ) + JS_RemoveObjectRoot(cx, &hashElement->begin); + if( hashElement->pre ) + JS_RemoveObjectRoot(cx, &hashElement->pre); + if( hashElement->post ) + JS_RemoveObjectRoot(cx, &hashElement->post); + if( hashElement->separate ) + JS_RemoveObjectRoot(cx, &hashElement->separate); + + HASH_DEL( collision_handler_hash, hashElement ); + free( hashElement ); + } + + JS_SET_RVAL(cx, vp, JSVAL_VOID); + return JS_TRUE; +} + +// Free function +JSBool JSB_cpSpaceRemoveCollisionHandler(JSContext *cx, uint32_t argc, jsval *vp) +{ + JSB_PRECONDITION2(argc==3, cx, JS_FALSE, "Invalid number of arguments"); + + jsval *argvp = JS_ARGV(cx,vp); + + cpSpace* space; + JSBool ok = jsval_to_opaque( cx, *argvp++, (void**)&space); + + JSB_PRECONDITION(ok, "Error parsing arguments"); + + return __jsb_cpSpace_removeCollisionHandler(cx, vp, argvp, space); +} + +// method +JSBool JSB_cpSpace_removeCollisionHandler(JSContext *cx, uint32_t argc, jsval *vp) +{ + JSB_PRECONDITION2(argc==2, cx, JS_FALSE, "Invalid number of arguments"); + + JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp); + JSB_PRECONDITION( jsthis, "Invalid jsthis object"); + + struct jsb_c_proxy_s* proxy = jsb_get_c_proxy_for_jsobject(jsthis); + void *handle = proxy->handle; + + return __jsb_cpSpace_removeCollisionHandler(cx, vp, JS_ARGV(cx,vp), (cpSpace*)handle); +} + +#pragma mark Add functios. Root JSObjects + +// Arguments: cpBody* +// Ret value: cpBody* +JSBool JSB_cpSpace_addBody(JSContext *cx, uint32_t argc, jsval *vp) { + JSB_PRECONDITION2(argc==1, cx, JS_FALSE, "Invalid number of arguments"); + + JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp); + struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis); + cpSpace* arg0 = (cpSpace*) proxy->handle; + jsval *argvp = JS_ARGV(cx,vp); + JSBool ok = JS_TRUE; + cpBody* arg1; + + jsval retval = *argvp; struct jsb_c_proxy_s *retproxy; + ok &= jsval_to_c_class( cx, *argvp++, (void**)&arg1, &retproxy ); + JSB_PRECONDITION(ok, "Error processing arguments"); + + cpSpaceAddBody((cpSpace*)arg0 , (cpBody*)arg1 ); + + // Root it: + JS_AddNamedObjectRoot(cx, &retproxy->jsobj, "cpBody"); + + // addBody returns the same object that was added, so return it without conversions + JS_SET_RVAL(cx, vp, retval); + + return JS_TRUE; +} + +// Arguments: cpConstraint* +// Ret value: cpConstraint* +JSBool JSB_cpSpace_addConstraint(JSContext *cx, uint32_t argc, jsval *vp) { + JSB_PRECONDITION2(argc==1, cx, JS_FALSE, "Invalid number of arguments"); + + JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp); + struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis); + cpSpace* arg0 = (cpSpace*) proxy->handle; + jsval *argvp = JS_ARGV(cx,vp); + JSBool ok = JS_TRUE; + cpConstraint* arg1; + + jsval retval = *argvp; struct jsb_c_proxy_s *retproxy; + ok &= jsval_to_c_class( cx, *argvp++, (void**)&arg1, &retproxy ); + JSB_PRECONDITION(ok, "Error processing arguments"); + + cpSpaceAddConstraint((cpSpace*)arg0 , (cpConstraint*)arg1 ); + + // Root it: + JS_AddNamedObjectRoot(cx, &retproxy->jsobj, "cpConstraint"); + + // addConstraint returns the same object that was added, so return it without conversions + JS_SET_RVAL(cx, vp, retval); + + return JS_TRUE; +} + +// Arguments: cpShape* +// Ret value: cpShape* +JSBool JSB_cpSpace_addShape(JSContext *cx, uint32_t argc, jsval *vp) { + JSB_PRECONDITION2(argc==1, cx, JS_FALSE, "Invalid number of arguments"); + + JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp); + struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis); + cpSpace* arg0 = (cpSpace*) proxy->handle; + jsval *argvp = JS_ARGV(cx,vp); + JSBool ok = JS_TRUE; + cpShape* arg1; + + jsval retval = *argvp; struct jsb_c_proxy_s *retproxy; + ok &= jsval_to_c_class( cx, *argvp++, (void**)&arg1, &retproxy ); + JSB_PRECONDITION(ok, "Error processing arguments"); + + cpSpaceAddShape((cpSpace*)arg0 , (cpShape*)arg1 ); + + // Root it: + JS_AddNamedObjectRoot(cx, &retproxy->jsobj, "cpShape"); + + // addShape returns the same object that was added, so return it without conversions + JS_SET_RVAL(cx, vp, retval); + + return JS_TRUE; +} + +// Arguments: cpShape* +// Ret value: cpShape* +JSBool JSB_cpSpace_addStaticShape(JSContext *cx, uint32_t argc, jsval *vp) { + JSB_PRECONDITION2(argc==1, cx, JS_FALSE, "Invalid number of arguments"); + + JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp); + struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis); + cpSpace* arg0 = (cpSpace*) proxy->handle; + jsval *argvp = JS_ARGV(cx,vp); + JSBool ok = JS_TRUE; + cpShape* arg1; + + jsval retval = *argvp; struct jsb_c_proxy_s *retproxy; + ok &= jsval_to_c_class( cx, *argvp++, (void**)&arg1, &retproxy ); + JSB_PRECONDITION(ok, "Error processing arguments"); + + cpSpaceAddStaticShape((cpSpace*)arg0 , (cpShape*)arg1 ); + + // Root it: + JS_AddNamedObjectRoot(cx, &retproxy->jsobj, "cpShape (static)"); + + // addStaticShape returns the same object that was added, so return it without conversions + JS_SET_RVAL(cx, vp, retval); + + return JS_TRUE; +} + +#pragma mark Remove functios. Untoot JSObjects + +// Arguments: cpBody* +// Ret value: void +JSBool JSB_cpSpace_removeBody(JSContext *cx, uint32_t argc, jsval *vp) { + JSB_PRECONDITION2(argc==1, cx, JS_FALSE, "Invalid number of arguments"); + + JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp); + struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis); + cpSpace* arg0 = (cpSpace*) proxy->handle; + jsval *argvp = JS_ARGV(cx,vp); + JSBool ok = JS_TRUE; + cpBody* arg1; + + struct jsb_c_proxy_s *retproxy; + ok &= jsval_to_c_class( cx, *argvp++, (void**)&arg1, &retproxy ); + JSB_PRECONDITION(ok, "Error processing arguments"); + + cpSpaceRemoveBody((cpSpace*)arg0 , (cpBody*)arg1 ); + JS_RemoveObjectRoot(cx, &retproxy->jsobj); + + JS_SET_RVAL(cx, vp, JSVAL_VOID); + return JS_TRUE; +} + +// Arguments: cpConstraint* +// Ret value: void +JSBool JSB_cpSpace_removeConstraint(JSContext *cx, uint32_t argc, jsval *vp) { + JSB_PRECONDITION2(argc==1, cx, JS_FALSE, "Invalid number of arguments"); + + JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp); + struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis); + cpSpace* arg0 = (cpSpace*) proxy->handle; + jsval *argvp = JS_ARGV(cx,vp); + JSBool ok = JS_TRUE; + cpConstraint* arg1; + + struct jsb_c_proxy_s *retproxy; + ok &= jsval_to_c_class( cx, *argvp++, (void**)&arg1, &retproxy ); + JSB_PRECONDITION(ok, "Error processing arguments"); + + cpSpaceRemoveConstraint((cpSpace*)arg0 , (cpConstraint*)arg1 ); + JS_RemoveObjectRoot(cx, &retproxy->jsobj); + + JS_SET_RVAL(cx, vp, JSVAL_VOID); + return JS_TRUE; +} + +// Arguments: cpShape* +// Ret value: void +JSBool JSB_cpSpace_removeShape(JSContext *cx, uint32_t argc, jsval *vp) { + JSB_PRECONDITION2(argc==1, cx, JS_FALSE, "Invalid number of arguments"); + + JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp); + struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis); + cpSpace* arg0 = (cpSpace*) proxy->handle; + jsval *argvp = JS_ARGV(cx,vp); + JSBool ok = JS_TRUE; + cpShape* arg1; + + struct jsb_c_proxy_s *retproxy; + ok &= jsval_to_c_class( cx, *argvp++, (void**)&arg1, &retproxy ); + JSB_PRECONDITION(ok, "Error processing arguments"); + + cpSpaceRemoveShape((cpSpace*)arg0 , (cpShape*)arg1 ); + JS_RemoveObjectRoot(cx, &retproxy->jsobj); + + JS_SET_RVAL(cx, vp, JSVAL_VOID); + return JS_TRUE; +} + +// Arguments: cpShape* +// Ret value: void +JSBool JSB_cpSpace_removeStaticShape(JSContext *cx, uint32_t argc, jsval *vp) { + JSB_PRECONDITION2(argc==1, cx, JS_FALSE, "Invalid number of arguments"); + + JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp); + struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsthis); + cpSpace* arg0 = (cpSpace*) proxy->handle; + jsval *argvp = JS_ARGV(cx,vp); + JSBool ok = JS_TRUE; + cpShape* arg1; + + struct jsb_c_proxy_s *retproxy; + ok &= jsval_to_c_class( cx, *argvp++, (void**)&arg1, &retproxy ); + JSB_PRECONDITION(ok, "Error processing arguments"); + + cpSpaceRemoveStaticShape((cpSpace*)arg0 , (cpShape*)arg1 ); + JS_RemoveObjectRoot(cx, &retproxy->jsobj); + + JS_SET_RVAL(cx, vp, JSVAL_VOID); + return JS_TRUE; +} +#pragma mark - Arbiter + +#pragma mark getBodies +static +JSBool __jsb_cpArbiter_getBodies(JSContext *cx, jsval *vp, jsval *argvp, cpArbiter *arbiter, unsigned int is_oo) +{ + cpBody *bodyA; + cpBody *bodyB; + cpArbiterGetBodies(arbiter, &bodyA, &bodyB); + + jsval valA, valB; + if( is_oo ) { + valA = c_class_to_jsval(cx, bodyA, JSB_cpBody_object, JSB_cpBody_class, "cpArbiter"); + valB = c_class_to_jsval(cx, bodyB, JSB_cpBody_object, JSB_cpBody_class, "cpArbiter"); + } else { + valA = opaque_to_jsval(cx, bodyA); + valB = opaque_to_jsval(cx, bodyB); + } + + JSObject *jsobj = JS_NewArrayObject(cx, 2, NULL); + JS_SetElement(cx, jsobj, 0, &valA); + JS_SetElement(cx, jsobj, 1, &valB); + + JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(jsobj)); + + return JS_TRUE; +} + +// Free function +JSBool JSB_cpArbiterGetBodies(JSContext *cx, uint32_t argc, jsval *vp) +{ + JSB_PRECONDITION2(argc==1, cx, JS_FALSE, "Invalid number of arguments"); + + jsval *argvp = JS_ARGV(cx,vp); + + cpArbiter* arbiter; + if( ! jsval_to_opaque( cx, *argvp++, (void**)&arbiter ) ) + return JS_FALSE; + + return __jsb_cpArbiter_getBodies(cx, vp, argvp, arbiter, 0); +} + +// Method +JSBool JSB_cpArbiter_getBodies(JSContext *cx, uint32_t argc, jsval *vp) +{ + JSB_PRECONDITION2(argc==0, cx, JS_FALSE, "Invalid number of arguments"); + + JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp); + JSB_PRECONDITION( jsthis, "Invalid jsthis object"); + + struct jsb_c_proxy_s* proxy = jsb_get_c_proxy_for_jsobject(jsthis); + JSB_PRECONDITION( proxy, "Invalid private object"); + void *handle = proxy->handle; + + return __jsb_cpArbiter_getBodies(cx, vp, JS_ARGV(cx,vp), (cpArbiter*)handle, 1); +} + +#pragma mark getShapes +static +JSBool __jsb_cpArbiter_getShapes(JSContext *cx, jsval *vp, jsval *argvp, cpArbiter *arbiter, unsigned int is_oo) +{ + cpShape *shapeA; + cpShape *shapeB; + cpArbiterGetShapes(arbiter, &shapeA, &shapeB); + + jsval valA, valB; + if( is_oo ) { + valA = c_class_to_jsval(cx, shapeA, JSB_cpShape_object, JSB_cpShape_class, "cpShape"); + valB = c_class_to_jsval(cx, shapeB, JSB_cpShape_object, JSB_cpShape_class, "cpShape"); + } else { + valA = opaque_to_jsval(cx, shapeA); + valB = opaque_to_jsval(cx, shapeB); + } + + JSObject *jsobj = JS_NewArrayObject(cx, 2, NULL); + JS_SetElement(cx, jsobj, 0, &valA); + JS_SetElement(cx, jsobj, 1, &valB); + + JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(jsobj)); + + return JS_TRUE; +} + +// function +JSBool JSB_cpArbiterGetShapes(JSContext *cx, uint32_t argc, jsval *vp) +{ + JSB_PRECONDITION2(argc==1, cx, JS_FALSE, "Invalid number of arguments"); + + jsval *argvp = JS_ARGV(cx,vp); + + cpArbiter* arbiter; + if( ! jsval_to_opaque( cx, *argvp++, (void**) &arbiter ) ) + return JS_FALSE; + + return __jsb_cpArbiter_getShapes(cx, vp, argvp, arbiter, 0); +} + +// method +JSBool JSB_cpArbiter_getShapes(JSContext *cx, uint32_t argc, jsval *vp) +{ + JSB_PRECONDITION2(argc==0, cx, JS_FALSE, "Invalid number of arguments"); + JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp); + JSB_PRECONDITION( jsthis, "Invalid jsthis object"); + + struct jsb_c_proxy_s* proxy = jsb_get_c_proxy_for_jsobject(jsthis); + void *handle = proxy->handle; + + return __jsb_cpArbiter_getShapes(cx, vp, JS_ARGV(cx,vp), (cpArbiter*)handle, 1); +} + +#pragma mark - Body + +#pragma mark constructor + +// Manually added to identify static vs dynamic bodies +JSBool JSB_cpBody_constructor(JSContext *cx, uint32_t argc, jsval *vp) +{ + JSB_PRECONDITION2(argc==2, cx, JS_FALSE, "Invalid number of arguments"); + JSObject *jsobj = JS_NewObject(cx, JSB_cpBody_class, JSB_cpBody_object, NULL); + jsval *argvp = JS_ARGV(cx,vp); + JSBool ok = JS_TRUE; + double m; double i; + + ok &= JS_ValueToNumber( cx, *argvp++, &m ); + ok &= JS_ValueToNumber( cx, *argvp++, &i ); + JSB_PRECONDITION(ok, "Error processing arguments"); + + cpBody *ret_body = NULL; + if( m == INFINITY && i == INFINITY) { + ret_body = cpBodyNewStatic(); + + // XXX: Hack. IT WILL LEAK "rogue" objects., But at least it prevents a crash. + // The thing is that "rogue" bodies needs to be freed after the its shape, and I am not sure + // how to do it in a "js" way. + jsb_set_c_proxy_for_jsobject(jsobj, ret_body, JSB_C_FLAG_DO_NOT_CALL_FREE); + } else { + ret_body = cpBodyNew((cpFloat)m , (cpFloat)i ); + jsb_set_c_proxy_for_jsobject(jsobj, ret_body, JSB_C_FLAG_CALL_FREE); + } + + jsb_set_jsobject_for_proxy(jsobj, ret_body); + + JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(jsobj)); + return JS_TRUE; +} + +#pragma mark getUserData + +static +JSBool __jsb_cpBody_getUserData(JSContext *cx, jsval *vp, jsval *argvp, cpBody *body) +{ + JSObject *data = (JSObject*) cpBodyGetUserData(body); + JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(data)); + + return JS_TRUE; +} + +// free function +JSBool JSB_cpBodyGetUserData(JSContext *cx, uint32_t argc, jsval *vp) +{ + JSB_PRECONDITION2(argc==1, cx, JS_FALSE, "Invalid number of arguments"); + + jsval *argvp = JS_ARGV(cx,vp); + cpBody *body; + if( ! jsval_to_opaque( cx, *argvp++, (void**) &body ) ) + return JS_FALSE; + + return __jsb_cpBody_getUserData(cx, vp, argvp, body); +} + +// method +JSBool JSB_cpBody_getUserData(JSContext *cx, uint32_t argc, jsval *vp) +{ + JSB_PRECONDITION2(argc==0, cx, JS_FALSE, "Invalid number of arguments"); + JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp); + JSB_PRECONDITION( jsthis, "Invalid jsthis object"); + + struct jsb_c_proxy_s* proxy = jsb_get_c_proxy_for_jsobject(jsthis); + void *handle = proxy->handle; + + return __jsb_cpBody_getUserData(cx, vp, JS_ARGV(cx,vp), (cpBody*)handle); +} + + +#pragma mark setUserData + +static +JSBool __jsb_cpBody_setUserData(JSContext *cx, jsval *vp, jsval *argvp, cpBody *body) +{ + JSObject *jsobj; + + JSBool ok = JS_ValueToObject(cx, *argvp++, &jsobj); + + JSB_PRECONDITION(ok, "Error parsing arguments"); + + cpBodySetUserData(body, jsobj); + JS_SET_RVAL(cx, vp, JSVAL_VOID); + + return JS_TRUE; +} + +// free function +JSBool JSB_cpBodySetUserData(JSContext *cx, uint32_t argc, jsval *vp) +{ + JSB_PRECONDITION2(argc==2, cx, JS_FALSE, "Invalid number of arguments"); + + jsval *argvp = JS_ARGV(cx,vp); + cpBody *body; + JSBool ok = jsval_to_opaque( cx, *argvp++, (void**) &body ); + JSB_PRECONDITION(ok, "Error parsing arguments"); + return __jsb_cpBody_setUserData(cx, vp, argvp, body); +} + +// method +JSBool JSB_cpBody_setUserData(JSContext *cx, uint32_t argc, jsval *vp) +{ + JSB_PRECONDITION2(argc==1, cx, JS_FALSE, "Invalid number of arguments"); + JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp); + JSB_PRECONDITION( jsthis, "Invalid jsthis object"); + + struct jsb_c_proxy_s* proxy = jsb_get_c_proxy_for_jsobject(jsthis); + void *handle = proxy->handle; + + return __jsb_cpBody_setUserData(cx, vp, JS_ARGV(cx,vp), (cpBody*)handle); +} + +#pragma mark - Poly related + +// cpFloat cpAreaForPoly(const int numVerts, const cpVect *verts); +JSBool JSB_cpAreaForPoly(JSContext *cx, uint32_t argc, jsval *vp) +{ + JSB_PRECONDITION2(argc==1, cx, JS_FALSE, "Invalid number of arguments"); + jsval *argvp = JS_ARGV(cx,vp); + JSBool ok = JS_TRUE; + cpVect *verts; + int numVerts; + + ok &= jsval_to_array_of_cpvect( cx, *argvp++, &verts, &numVerts); + JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error parsing array"); + + cpFloat area = cpAreaForPoly(numVerts, verts); + + free(verts); + + JS_SET_RVAL(cx, vp, DOUBLE_TO_JSVAL(area)); + return JS_TRUE; +} + +// cpFloat cpMomentForPoly(cpFloat m, int numVerts, const cpVect *verts, cpVect offset); +JSBool JSB_cpMomentForPoly(JSContext *cx, uint32_t argc, jsval *vp) +{ + JSB_PRECONDITION2(argc==3, cx, JS_FALSE, "Invalid number of arguments"); + jsval *argvp = JS_ARGV(cx,vp); + JSBool ok = JS_TRUE; + cpVect *verts; cpVect offset; + int numVerts; + double m; + + ok &= JS_ValueToNumber(cx, *argvp++, &m); + ok &= jsval_to_array_of_cpvect( cx, *argvp++, &verts, &numVerts); + ok &= jsval_to_cpVect( cx, *argvp++, (cpVect*) &offset ); + + JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error parsing args"); + + cpFloat moment = cpMomentForPoly((cpFloat)m, numVerts, verts, offset); + + free(verts); + + JS_SET_RVAL(cx, vp, DOUBLE_TO_JSVAL(moment)); + return JS_TRUE; +} + +// cpVect cpCentroidForPoly(const int numVerts, const cpVect *verts); +JSBool JSB_cpCentroidForPoly(JSContext *cx, uint32_t argc, jsval *vp) +{ + JSB_PRECONDITION2(argc==1, cx, JS_FALSE, "Invalid number of arguments"); + jsval *argvp = JS_ARGV(cx,vp); + JSBool ok = JS_TRUE; + cpVect *verts; + int numVerts; + + ok &= jsval_to_array_of_cpvect( cx, *argvp++, &verts, &numVerts); + JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error parsing args"); + + cpVect centroid = cpCentroidForPoly(numVerts, verts); + + free(verts); + + JS_SET_RVAL(cx, vp, cpVect_to_jsval(cx, (cpVect)centroid)); + return JS_TRUE; +} + +// void cpRecenterPoly(const int numVerts, cpVect *verts); +JSBool JSB_cpRecenterPoly(JSContext *cx, uint32_t argc, jsval *vp) +{ + CCASSERT(false, "NOT IMPLEMENTED"); + return JS_FALSE; +} + +#pragma mark - Object Oriented Chipmunk + +/* + * Chipmunk Base Object + */ + +JSClass* JSB_cpBase_class = NULL; +JSObject* JSB_cpBase_object = NULL; +// Constructor +JSBool JSB_cpBase_constructor(JSContext *cx, uint32_t argc, jsval *vp) +{ + JSB_PRECONDITION2( argc==1, cx, JS_FALSE, "Invalid arguments. Expecting 1"); + + JSObject *jsobj = JS_NewObject(cx, JSB_cpBase_class, JSB_cpBase_object, NULL); + + jsval *argvp = JS_ARGV(cx,vp); + JSBool ok = JS_TRUE; + + void *handle = NULL; + + ok = jsval_to_opaque(cx, *argvp++, &handle); + + JSB_PRECONDITION(ok, "Error converting arguments for JSB_cpBase_constructor"); + + jsb_set_c_proxy_for_jsobject(jsobj, handle, JSB_C_FLAG_DO_NOT_CALL_FREE); + jsb_set_jsobject_for_proxy(jsobj, handle); + + JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(jsobj)); + return JS_TRUE; +} + +// Destructor +void JSB_cpBase_finalize(JSFreeOp *fop, JSObject *obj) +{ + CCLOGINFO("jsbindings: finalizing JS object %p (cpBase)", obj); + + // should not delete the handle since it was manually added +} + +JSBool JSB_cpBase_getHandle(JSContext *cx, uint32_t argc, jsval *vp) +{ + JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp); + JSB_PRECONDITION( jsthis, "Invalid jsthis object"); + JSB_PRECONDITION2(argc==0, cx, JS_FALSE, "Invalid number of arguments"); + + struct jsb_c_proxy_s* proxy = jsb_get_c_proxy_for_jsobject(jsthis); + void *handle = proxy->handle; + + jsval ret_val = opaque_to_jsval(cx, handle); + JS_SET_RVAL(cx, vp, ret_val); + return JS_TRUE; +} + +JSBool JSB_cpBase_setHandle(JSContext *cx, uint32_t argc, jsval *vp) +{ + JSObject* jsthis = (JSObject *)JS_THIS_OBJECT(cx, vp); + JSB_PRECONDITION( jsthis, "Invalid jsthis object"); + JSB_PRECONDITION2(argc==1, cx, JS_FALSE, "Invalid number of arguments"); + + jsval *argvp = JS_ARGV(cx,vp); + + void *handle; + JSBool ok = jsval_to_opaque(cx, *argvp++, &handle); + JSB_PRECONDITION( ok, "Invalid parsing arguments"); + + jsb_set_c_proxy_for_jsobject(jsthis, handle, JSB_C_FLAG_DO_NOT_CALL_FREE); + jsb_set_jsobject_for_proxy(jsthis, handle); + + JS_SET_RVAL(cx, vp, JSVAL_VOID); + return JS_TRUE; +} + + +void JSB_cpBase_createClass(JSContext *cx, JSObject* globalObj, const char* name ) +{ + JSB_cpBase_class = (JSClass *)calloc(1, sizeof(JSClass)); + JSB_cpBase_class->name = name; + JSB_cpBase_class->addProperty = JS_PropertyStub; + JSB_cpBase_class->delProperty = JS_DeletePropertyStub; + JSB_cpBase_class->getProperty = JS_PropertyStub; + JSB_cpBase_class->setProperty = JS_StrictPropertyStub; + JSB_cpBase_class->enumerate = JS_EnumerateStub; + JSB_cpBase_class->resolve = JS_ResolveStub; + JSB_cpBase_class->convert = JS_ConvertStub; + JSB_cpBase_class->finalize = JSB_cpBase_finalize; + JSB_cpBase_class->flags = JSCLASS_HAS_PRIVATE; + + static JSPropertySpec properties[] = { + {0, 0, 0, 0, 0} + }; + static JSFunctionSpec funcs[] = { + JS_FN("getHandle", JSB_cpBase_getHandle, 0, JSPROP_PERMANENT | JSPROP_ENUMERATE), + JS_FN("setHandle", JSB_cpBase_setHandle, 1, JSPROP_PERMANENT | JSPROP_ENUMERATE), + JS_FS_END + }; + static JSFunctionSpec st_funcs[] = { + JS_FS_END + }; + + JSB_cpBase_object = JS_InitClass(cx, globalObj, NULL, JSB_cpBase_class, JSB_cpBase_constructor,0,properties,funcs,NULL,st_funcs); + JSBool found; + JS_SetPropertyAttributes(cx, globalObj, name, JSPROP_ENUMERATE | JSPROP_READONLY, &found); +} + +// Manual "methods" +// Constructor +JSBool JSB_cpPolyShape_constructor(JSContext *cx, uint32_t argc, jsval *vp) +{ + JSB_PRECONDITION2(argc==3, cx, JS_FALSE, "Invalid number of arguments"); + JSObject *jsobj = JS_NewObject(cx, JSB_cpPolyShape_class, JSB_cpPolyShape_object, NULL); + jsval *argvp = JS_ARGV(cx,vp); + JSBool ok = JS_TRUE; + cpBody* body; cpVect *verts; cpVect offset; + int numVerts; + + ok &= jsval_to_c_class( cx, *argvp++, (void**)&body, NULL ); + ok &= jsval_to_array_of_cpvect( cx, *argvp++, &verts, &numVerts); + ok &= jsval_to_cpVect( cx, *argvp++, (cpVect*) &offset ); + JSB_PRECONDITION(ok, "Error processing arguments"); + cpShape *shape = cpPolyShapeNew(body, numVerts, verts, offset); + + jsb_set_c_proxy_for_jsobject(jsobj, shape, JSB_C_FLAG_DO_NOT_CALL_FREE); + jsb_set_jsobject_for_proxy(jsobj, shape); + + JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(jsobj)); + + free(verts); + + return JS_TRUE; +} + + +#pragma mark Space Free functions +// +// When the space is removed, it should all remove its children. But not "free" them. +// "free" will be performed by the JS Garbage Collector +// +// Functions copied & pasted from ChipmunkDemo.c +// https://github.com/slembcke/Chipmunk-Physics/blob/master/Demo/ChipmunkDemo.c#L89 +// + +static void unroot_jsobject_from_handle(void *handle) +{ + JSObject *jsobj = jsb_get_jsobject_for_proxy(handle); + struct jsb_c_proxy_s *proxy = jsb_get_c_proxy_for_jsobject(jsobj); + + // HACK context from global + JSContext *cx = ScriptingCore::getInstance()->getGlobalContext(); + JS_RemoveObjectRoot(cx, &proxy->jsobj); + +} +static void shapeFreeWrap(cpSpace *space, cpShape *shape, void *unused){ + cpSpaceRemoveShape(space, shape); + unroot_jsobject_from_handle(shape); +// cpShapeFree(shape); +} + +static void postShapeFree(cpShape *shape, cpSpace *space){ + cpSpaceAddPostStepCallback(space, (cpPostStepFunc)shapeFreeWrap, shape, NULL); +} + +static void constraintFreeWrap(cpSpace *space, cpConstraint *constraint, void *unused){ + cpSpaceRemoveConstraint(space, constraint); + unroot_jsobject_from_handle(constraint); +// cpConstraintFree(constraint); +} + +static void postConstraintFree(cpConstraint *constraint, cpSpace *space){ + cpSpaceAddPostStepCallback(space, (cpPostStepFunc)constraintFreeWrap, constraint, NULL); +} + +static void bodyFreeWrap(cpSpace *space, cpBody *body, void *unused){ + cpSpaceRemoveBody(space, body); + unroot_jsobject_from_handle(body); +// cpBodyFree(body); +} + +static void postBodyFree(cpBody *body, cpSpace *space){ + cpSpaceAddPostStepCallback(space, (cpPostStepFunc)bodyFreeWrap, body, NULL); +} + +// Safe and future proof way to remove and free all objects that have been added to the space. +void static freeSpaceChildren(cpSpace *space) +{ + // Must remove these BEFORE freeing the body or you will access dangling pointers. + cpSpaceEachShape(space, (cpSpaceShapeIteratorFunc)postShapeFree, space); + cpSpaceEachConstraint(space, (cpSpaceConstraintIteratorFunc)postConstraintFree, space); + + cpSpaceEachBody(space, (cpSpaceBodyIteratorFunc)postBodyFree, space); +} + +#endif // JSB_INCLUDE_CHIPMUNK diff --git a/cocos/scripting/javascript/bindings/chipmunk/js_bindings_chipmunk_manual.h b/cocos/scripting/javascript/bindings/chipmunk/js_bindings_chipmunk_manual.h new file mode 100644 index 0000000000..c6b40ca757 --- /dev/null +++ b/cocos/scripting/javascript/bindings/chipmunk/js_bindings_chipmunk_manual.h @@ -0,0 +1,103 @@ +/* + * JS Bindings: https://github.com/zynga/jsbindings + * + * Copyright (c) 2012 Zynga Inc. + * + * 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 __js_bindings_chipmunk_manual +#define __js_bindings_chipmunk_manual + +#include "js_bindings_config.h" +#include "cocosjs_manual_conversions.h" +#include "js_manual_conversions.h" +#include "ScriptingCore.h" +#ifdef JSB_INCLUDE_CHIPMUNK + +#include "chipmunk.h" +#include "jsapi.h" + +#include "js_bindings_chipmunk_auto_classes.h" + +// Free Functions +JSBool JSB_cpSpaceAddCollisionHandler(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpaceRemoveCollisionHandler(JSContext *cx, uint32_t argc, jsval *vp); + +JSBool JSB_cpArbiterGetBodies(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpArbiterGetShapes(JSContext *cx, uint32_t argc, jsval *vp); + +JSBool JSB_cpBodyGetUserData(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBodySetUserData(JSContext *cx, uint32_t argc, jsval *vp); + +// poly related +JSBool JSB_cpAreaForPoly(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpMomentForPoly(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpCentroidForPoly(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpRecenterPoly(JSContext *cx, uint32_t argc, jsval *vp); + +// "Methods" from the OO API +JSBool JSB_cpSpace_addCollisionHandler(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpace_removeCollisionHandler(JSContext *cx, uint32_t argc, jsval *vp); + +// manually wrapped for rooting/unrooting purposes +JSBool JSB_cpSpace_addBody(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpace_addConstraint(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpace_addShape(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpace_addStaticShape(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpace_removeBody(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpace_removeConstraint(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpace_removeShape(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpSpace_removeStaticShape(JSContext *cx, uint32_t argc, jsval *vp); + + +JSBool JSB_cpArbiter_getBodies(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpArbiter_getShapes(JSContext *cx, uint32_t argc, jsval *vp); + +JSBool JSB_cpBody_constructor(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBody_getUserData(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_cpBody_setUserData(JSContext *cx, uint32_t argc, jsval *vp); + + +// convertions + +jsval cpBB_to_jsval(JSContext *cx, cpBB bb ); +JSBool jsval_to_cpBB( JSContext *cx, jsval vp, cpBB *ret ); +JSBool jsval_to_array_of_cpvect( JSContext *cx, jsval vp, cpVect**verts, int *numVerts); + +// requires cocos2d +#define cpVect_to_jsval CGPoint_to_jsval +#define jsval_to_cpVect jsval_to_CGPoint + + +// Object Oriented Chipmunk +void JSB_cpBase_createClass(JSContext* cx, JSObject* globalObj, const char * name ); +extern JSObject* JSB_cpBase_object; +extern JSClass* JSB_cpBase_class; +extern void register_CCPhysicsSprite(JSContext *cx, JSObject *obj); +extern void register_CCPhysicsDebugNode(JSContext *cx, JSObject *obj); + +// Manual constructor / destructors +JSBool JSB_cpPolyShape_constructor(JSContext *cx, uint32_t argc, jsval *vp); +void JSB_cpSpace_finalize(JSFreeOp *fop, JSObject *obj); + +#endif // JSB_INCLUDE_CHIPMUNK + +#endif // __js_bindings_chipmunk_manual diff --git a/cocos/scripting/javascript/bindings/chipmunk/js_bindings_chipmunk_registration.cpp b/cocos/scripting/javascript/bindings/chipmunk/js_bindings_chipmunk_registration.cpp new file mode 100644 index 0000000000..a96434eace --- /dev/null +++ b/cocos/scripting/javascript/bindings/chipmunk/js_bindings_chipmunk_registration.cpp @@ -0,0 +1,67 @@ +/* + * JS Bindings: https://github.com/zynga/jsbindings + * + * Copyright (c) 2012 Zynga Inc. + * + * 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 JSB_INCLUDE_CHIPMUNK +#define JSB_INCLUDE_CHIPMUNK +#endif + +#include "js_bindings_config.h" +#include "ScriptingCore.h" + + +// chipmunk +#include "js_bindings_chipmunk_auto_classes.h" +#include "js_bindings_chipmunk_functions.h" +#include "js_bindings_chipmunk_manual.h" + + +void jsb_register_chipmunk(JSContext *_cx, JSObject *object) +{ + // + // Chipmunk + // + JSObject *chipmunk = JS_NewObject(_cx, NULL, NULL, NULL); + jsval chipmunkVal = OBJECT_TO_JSVAL(chipmunk); + JS_SetProperty(_cx, object, "cp", &chipmunkVal); + + JSB_cpBase_createClass(_cx, chipmunk, "Base"); // manual base class registration +#include "js_bindings_chipmunk_auto_classes_registration.h" +#include "js_bindings_chipmunk_functions_registration.h" + + // manual + JS_DefineFunction(_cx, chipmunk, "spaceAddCollisionHandler", JSB_cpSpaceAddCollisionHandler, 8, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); + JS_DefineFunction(_cx, chipmunk, "spaceRemoveCollisionHandler", JSB_cpSpaceRemoveCollisionHandler, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); + JS_DefineFunction(_cx, chipmunk, "arbiterGetBodies", JSB_cpArbiterGetBodies, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); + JS_DefineFunction(_cx, chipmunk, "arbiterGetShapes", JSB_cpArbiterGetShapes, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); + JS_DefineFunction(_cx, chipmunk, "bodyGetUserData", JSB_cpBodyGetUserData, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); + JS_DefineFunction(_cx, chipmunk, "bodySetUserData", JSB_cpBodySetUserData, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); + + JS_DefineFunction(_cx, chipmunk, "areaForPoly", JSB_cpAreaForPoly, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); + JS_DefineFunction(_cx, chipmunk, "momentForPoly", JSB_cpMomentForPoly, 3, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); + JS_DefineFunction(_cx, chipmunk, "centroidForPoly", JSB_cpCentroidForPoly, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); + JS_DefineFunction(_cx, chipmunk, "recenterPoly", JSB_cpRecenterPoly, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); + register_CCPhysicsSprite(_cx, object); + register_CCPhysicsDebugNode(_cx, object); +} + diff --git a/cocos/scripting/javascript/bindings/chipmunk/js_bindings_chipmunk_registration.h b/cocos/scripting/javascript/bindings/chipmunk/js_bindings_chipmunk_registration.h new file mode 100644 index 0000000000..90bc320b87 --- /dev/null +++ b/cocos/scripting/javascript/bindings/chipmunk/js_bindings_chipmunk_registration.h @@ -0,0 +1,31 @@ +/* + * JS Bindings: https://github.com/zynga/jsbindings + * + * Copyright (c) 2012 Zynga Inc. + * + * 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 __JSB_CHIPMUNK_REGISTRATION +#define __JSB_CHIPMUNK_REGISTRATION + +void jsb_register_chipmunk( JSContext *globalC, JSObject *globalO); + +#endif // __JSB_CHIPMUNK_REGISTRATION diff --git a/cocos/scripting/javascript/bindings/chipmunk/libJSBindingForChipmunk.vcxproj b/cocos/scripting/javascript/bindings/chipmunk/libJSBindingForChipmunk.vcxproj new file mode 100644 index 0000000000..9148f9376f --- /dev/null +++ b/cocos/scripting/javascript/bindings/chipmunk/libJSBindingForChipmunk.vcxproj @@ -0,0 +1,121 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + + + + + + + + + + + + + + + {21070E58-EEC6-4E16-8B4F-6D083DF55790} + Win32Proj + libJSBindingForChipmunk + + + + StaticLibrary + true + Unicode + v100 + v110 + v110_xp + + + StaticLibrary + false + Unicode + v100 + v110 + v110_xp + + + + + + + + + + + + + + + $(SolutionDir)$(Configuration).win32\ + + + $(Configuration).win32\ + + + $(SolutionDir)$(Configuration).win32\ + + + $(Configuration).win32\ + + + + + + Level3 + Disabled + WIN32;_WINDOWS;_DEBUG;_LIB;DEBUG;COCOS2D_DEBUG=1;XP_WIN;JS_HAVE___INTN;JS_INTPTR_TYPE=int;COCOS2D_JAVASCRIPT=1;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + $(ProjectDir)..;$(EngineRoot);$(EngineRoot)cocos\audio\include;$(EngineRoot)cocos\scripting\auto-generated\js-bindings;$(EngineRoot)external\spidermonkey\include\win32;$(EngineRoot)external\chipmunk\include\chipmunk;%(AdditionalIncludeDirectories) + 4068;4101;4800;4251;4244;%(DisableSpecificWarnings) + true + false + + + Windows + true + + + if not exist "$(OutDir)" mkdir "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\..\..\..\external\sqlite3\libraries\win32\*.*" "$(OutDir)" + + + + + Level3 + + + MaxSpeed + true + true + WIN32;_WINDOWS;NDEBUG;_LIB;XP_WIN;JS_HAVE___INTN;JS_INTPTR_TYPE=int;COCOS2D_JAVASCRIPT=1;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + $(ProjectDir)..;$(EngineRoot);$(EngineRoot)cocos\audio\include;$(EngineRoot)cocos\scripting\auto-generated\js-bindings;$(EngineRoot)external\spidermonkey\include\win32;$(EngineRoot)external\chipmunk\include\chipmunk;%(AdditionalIncludeDirectories) + 4068;4101;4800;4251;4244;%(DisableSpecificWarnings) + true + + + Windows + true + true + true + + + + + + + + + + \ No newline at end of file diff --git a/cocos/scripting/javascript/bindings/chipmunk/libJSBindingForChipmunk.vcxproj.filters b/cocos/scripting/javascript/bindings/chipmunk/libJSBindingForChipmunk.vcxproj.filters new file mode 100644 index 0000000000..43253970bc --- /dev/null +++ b/cocos/scripting/javascript/bindings/chipmunk/libJSBindingForChipmunk.vcxproj.filters @@ -0,0 +1,47 @@ + + + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + + + manual + + + manual + + + manual + + + manual + + + manual + + + manual + + + + + manual + + + manual + + + manual + + + manual + + + \ No newline at end of file diff --git a/cocos/scripting/javascript/bindings/chipmunk/libJSBindingForChipmunk.vcxproj.user b/cocos/scripting/javascript/bindings/chipmunk/libJSBindingForChipmunk.vcxproj.user new file mode 100644 index 0000000000..3f03091124 --- /dev/null +++ b/cocos/scripting/javascript/bindings/chipmunk/libJSBindingForChipmunk.vcxproj.user @@ -0,0 +1,6 @@ + + + + false + + \ No newline at end of file diff --git a/cocos/scripting/javascript/bindings/cocosbuilder/cocosbuilder_specifics.hpp b/cocos/scripting/javascript/bindings/cocosbuilder/cocosbuilder_specifics.hpp new file mode 100644 index 0000000000..f6b3252c57 --- /dev/null +++ b/cocos/scripting/javascript/bindings/cocosbuilder/cocosbuilder_specifics.hpp @@ -0,0 +1,23 @@ +#ifndef __JS_COCOSBUILDER_SPECIFICS_H__ +#define __JS_COCOSBUILDER_SPECIFICS_H__ + +#include "../cocos2d_specifics.hpp" + +class JSCCBAnimationWrapper: public JSCallbackWrapper { +public: + JSCCBAnimationWrapper() {} + virtual ~JSCCBAnimationWrapper() {} + + void animationCompleteCallback() { + + JSContext *cx = ScriptingCore::getInstance()->getGlobalContext(); + jsval retval = JSVAL_NULL; + + if(!JSVAL_IS_VOID(_jsCallback) && !JSVAL_IS_VOID(_jsThisObj)) { + JS_CallFunctionValue(cx, JSVAL_TO_OBJECT(_jsThisObj), _jsCallback, 0, NULL, &retval); + } + } + +}; + +#endif diff --git a/cocos/scripting/javascript/bindings/cocosbuilder/js_bindings_ccbreader.cpp b/cocos/scripting/javascript/bindings/cocosbuilder/js_bindings_ccbreader.cpp new file mode 100644 index 0000000000..733ac47b45 --- /dev/null +++ b/cocos/scripting/javascript/bindings/cocosbuilder/js_bindings_ccbreader.cpp @@ -0,0 +1,324 @@ +// +// js_bindings_ccbreader.cpp +// watermelon +// +// Created by Rohan Kuruvilla on 14/08/2012. +// +// + +#include "js_bindings_ccbreader.h" +#include "ScriptingCore.h" +#include "js_bindings_config.h" + +USING_NS_CC; +USING_NS_CC_EXT; +using namespace cocosbuilder; + +static void removeSelector(std::string &str) { + size_t found; + found = str.find(":"); + while (found!=std::string::npos){ + str.replace(found, found+1, ""); + found = str.find(":"); + } +} + +SEL_MenuHandler CCBScriptCallbackProxy::onResolveCCBCCMenuItemSelector(cocos2d::Object * pTarget, + const char * pSelectorName) { + this->callBackProp = pSelectorName; + removeSelector(this->callBackProp); + return menu_selector(CCBScriptCallbackProxy::menuItemCallback); +} + +Control::Handler CCBScriptCallbackProxy::onResolveCCBCCControlSelector(Object * pTarget, + const char * pSelectorName) { + + this->callBackProp = pSelectorName; + removeSelector(this->callBackProp); + return cccontrol_selector(CCBScriptCallbackProxy::controlCallback); +} + +bool CCBScriptCallbackProxy::onAssignCCBMemberVariable(Object * pTarget, + const char * pMemberVariableName, + Node * pNode) { + return true; +} + +void CCBScriptCallbackProxy::onNodeLoaded(Node * pNode, + NodeLoader * pNodeLoader) {} + +CCBSelectorResolver * CCBScriptCallbackProxy::createNew() { + CCBScriptCallbackProxy * ret = new CCBScriptCallbackProxy(); + ret->setJSOwner(this->owner); + return dynamic_cast(ret); +} + +void CCBScriptCallbackProxy::menuItemCallback(Object *pSender) { + ScriptingCore::getInstance()->executeFunctionWithOwner(owner, callBackProp.c_str() ); +} + +void CCBScriptCallbackProxy::controlCallback(Object *pSender, Control::EventType event) { + ScriptingCore::getInstance()->executeFunctionWithOwner(owner, callBackProp.c_str() ); +} + +void CCBScriptCallbackProxy::setCallbackProperty(const char *prop) { + callBackProp = prop; +} + +void CCBScriptCallbackProxy::setJSOwner(jsval ownr) { + owner = ownr; +} + +jsval CCBScriptCallbackProxy::getJSOwner() { + return owner; +} + +JSBool js_cocos2dx_CCBAnimationManager_animationCompleteCallback(JSContext *cx, uint32_t argc, jsval *vp) +{ + if (argc >= 1) { + jsval *argv = JS_ARGV(cx, vp); + + JSObject *obj = JS_THIS_OBJECT(cx, vp); + js_proxy_t *proxy = jsb_get_js_proxy(obj); + cocosbuilder::CCBAnimationManager *node = (cocosbuilder::CCBAnimationManager *)(proxy ? proxy->ptr : NULL); + + JSCCBAnimationWrapper *tmpCobj = new JSCCBAnimationWrapper(); + tmpCobj->autorelease(); + + tmpCobj->setJSCallbackThis(argv[0]); + if(argc >= 2) { + tmpCobj->setJSCallbackFunc(argv[1]); + } + + node->setAnimationCompletedCallback(tmpCobj, callfunc_selector(JSCCBAnimationWrapper::animationCompleteCallback)); + + JS_SetReservedSlot(proxy->obj, 0, argv[0]); + JS_SetReservedSlot(proxy->obj, 1, argv[1]); + return JS_TRUE; + } + return JS_FALSE; +} + +JSBool js_cocos2dx_CCBReader_readNodeGraphFromFile(JSContext *cx, uint32_t argc, jsval *vp) +{ + jsval *argv = JS_ARGV(cx, vp); + JSBool ok = JS_TRUE; + JSObject *obj; + cocosbuilder::CCBReader* cobj; + obj = JS_THIS_OBJECT(cx, vp); + js_proxy_t *proxy = jsb_get_js_proxy(obj); + cobj = (cocosbuilder::CCBReader *)(proxy ? proxy->ptr : NULL); + TEST_NATIVE_OBJECT(cx, cobj) + + if (argc == 2) { + const char* arg0; + std::string arg0_tmp; ok &= jsval_to_std_string(cx, argv[0], &arg0_tmp); arg0 = arg0_tmp.c_str(); + cocos2d::Object* arg1; + do { + js_proxy_t *proxy; + JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]); + proxy = jsb_get_js_proxy(tmpObj); + arg1 = (cocos2d::Object*)(proxy ? proxy->ptr : NULL); + TEST_NATIVE_OBJECT(cx, arg1) + } while (0); + + JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments"); + + cocos2d::Node* ret = cobj->readNodeGraphFromFile(arg0, arg1); + jsval jsret; do { + if (ret) { + js_proxy_t *proxy = js_get_or_create_proxy(cx, ret); + jsret = OBJECT_TO_JSVAL(proxy->obj); + } else { + jsret = JSVAL_NULL; + } + } while (0); + JS_SET_RVAL(cx, vp, jsret); + return JS_TRUE; + } + if (argc == 1) { + const char* arg0; + std::string arg0_tmp; ok &= jsval_to_std_string(cx, argv[0], &arg0_tmp); arg0 = arg0_tmp.c_str(); + JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments"); + + cocos2d::Node* ret = cobj->readNodeGraphFromFile(arg0); + jsval jsret; do { + if (ret) { + js_proxy_t *proxy = js_get_or_create_proxy(cx, ret); + jsret = OBJECT_TO_JSVAL(proxy->obj); + } else { + jsret = JSVAL_NULL; + } + } while (0); + JS_SET_RVAL(cx, vp, jsret); + return JS_TRUE; + } + if (argc == 3) { + const char* arg0; + std::string arg0_tmp; ok &= jsval_to_std_string(cx, argv[0], &arg0_tmp); arg0 = arg0_tmp.c_str(); + cocos2d::Object* arg1; + do { + js_proxy_t *proxy; + JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]); + proxy = jsb_get_js_proxy(tmpObj); + arg1 = (cocos2d::Object*)(proxy ? proxy->ptr : NULL); + TEST_NATIVE_OBJECT(cx, arg1) + } while (0); + cocos2d::Size arg2; + ok &= jsval_to_ccsize(cx, argv[2], &arg2); + + JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments"); + + cocos2d::Node* ret = cobj->readNodeGraphFromFile(arg0, arg1, arg2); + jsval jsret; do { + if (ret) { + js_proxy_t *proxy = js_get_or_create_proxy(cx, ret); + jsret = OBJECT_TO_JSVAL(proxy->obj); + } else { + jsret = JSVAL_NULL; + } + } while (0); + JS_SET_RVAL(cx, vp, jsret); + return JS_TRUE; + } + return JS_FALSE; +} + +JSBool js_cocos2dx_CCBReader_createSceneWithNodeGraphFromFile(JSContext *cx, uint32_t argc, jsval *vp) +{ + jsval *argv = JS_ARGV(cx, vp); + JSBool ok = JS_TRUE; + JSObject *obj; + cocosbuilder::CCBReader* cobj; + obj = JS_THIS_OBJECT(cx, vp); + js_proxy_t *proxy = jsb_get_js_proxy(obj); + cobj = (cocosbuilder::CCBReader *)(proxy ? proxy->ptr : NULL); + TEST_NATIVE_OBJECT(cx, cobj) + + if (argc == 2) { + const char* arg0; + std::string arg0_tmp; ok &= jsval_to_std_string(cx, argv[0], &arg0_tmp); arg0 = arg0_tmp.c_str(); + cocos2d::Object* arg1; + do { + js_proxy_t *proxy; + JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]); + proxy = jsb_get_js_proxy(tmpObj); + arg1 = (cocos2d::Object*)(proxy ? proxy->ptr : NULL); + TEST_NATIVE_OBJECT(cx, arg1) + } while (0); + + JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments"); + + cocos2d::Scene* ret = cobj->createSceneWithNodeGraphFromFile(arg0, arg1); + jsval jsret; do { + if (ret) { + js_proxy_t *proxy = js_get_or_create_proxy(cx, ret); + jsret = OBJECT_TO_JSVAL(proxy->obj); + } else { + jsret = JSVAL_NULL; + } + } while (0); + JS_SET_RVAL(cx, vp, jsret); + return JS_TRUE; + } + if (argc == 1) { + const char* arg0; + std::string arg0_tmp; ok &= jsval_to_std_string(cx, argv[0], &arg0_tmp); arg0 = arg0_tmp.c_str(); + JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments"); + + cocos2d::Scene* ret = cobj->createSceneWithNodeGraphFromFile(arg0); + jsval jsret; do { + if (ret) { + js_proxy_t *proxy = js_get_or_create_proxy(cx, ret); + jsret = OBJECT_TO_JSVAL(proxy->obj); + } else { + jsret = JSVAL_NULL; + } + } while (0); + JS_SET_RVAL(cx, vp, jsret); + return JS_TRUE; + } + if (argc == 3) { + const char* arg0; + std::string arg0_tmp; ok &= jsval_to_std_string(cx, argv[0], &arg0_tmp); arg0 = arg0_tmp.c_str(); + cocos2d::Object* arg1; + do { + js_proxy_t *proxy; + JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]); + proxy = jsb_get_js_proxy(tmpObj); + arg1 = (cocos2d::Object*)(proxy ? proxy->ptr : NULL); + TEST_NATIVE_OBJECT(cx, arg1) + } while (0); + cocos2d::Size arg2; + ok &= jsval_to_ccsize(cx, argv[2], &arg2); + + JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments"); + + cocos2d::Scene* ret = cobj->createSceneWithNodeGraphFromFile(arg0, arg1, arg2); + jsval jsret; do { + if (ret) { + js_proxy_t *proxy = js_get_or_create_proxy(cx, ret); + jsret = OBJECT_TO_JSVAL(proxy->obj); + } else { + jsret = JSVAL_NULL; + } + } while (0); + JS_SET_RVAL(cx, vp, jsret); + return JS_TRUE; + } + + return JS_FALSE; +} + + +JSBool js_CocosBuilder_create(JSContext *cx, uint32_t argc, jsval *vp) +{ + + NodeLoaderLibrary * ccNodeLoaderLibrary = NodeLoaderLibrary::getInstance(); + + ccNodeLoaderLibrary->registerNodeLoader("", JSLayerLoader::loader()); + + CCBReader * ret = new CCBReader(ccNodeLoaderLibrary); + ret->autorelease(); + + jsval jsret; + if (ret) { + js_proxy_t *proxy = jsb_get_native_proxy(ret); + if (proxy) { + jsret = OBJECT_TO_JSVAL(proxy->obj); + } else { + // create a new js obj of that class + proxy = js_get_or_create_proxy(cx, ret); + jsret = OBJECT_TO_JSVAL(proxy->obj); + } + } else { + jsret = JSVAL_NULL; + } + JS_SET_RVAL(cx, vp, jsret); + return JS_TRUE; + +} + +extern JSObject* jsb_CCBReader_prototype; +extern JSObject* jsb_CCBAnimationManager_prototype; + +void register_CCBuilderReader(JSContext *cx, JSObject *obj) { + jsval nsval; + JSObject *ns; + JS_GetProperty(cx, obj, "cc", &nsval); + if (nsval == JSVAL_VOID) { + ns = JS_NewObject(cx, NULL, NULL, NULL); + nsval = OBJECT_TO_JSVAL(ns); + JS_SetProperty(cx, obj, "cc", &nsval); + } else { + JS_ValueToObject(cx, nsval, &ns); + } + obj = ns; + + JSObject *tmpObj = JSVAL_TO_OBJECT(anonEvaluate(cx, obj, "(function () { return cc._Reader; })()")); + JS_DefineFunction(cx, tmpObj, "create", js_CocosBuilder_create, 2, JSPROP_READONLY | JSPROP_PERMANENT); + JS_DefineFunction(cx, tmpObj, "loadScene", js_cocos2dx_CCBReader_createSceneWithNodeGraphFromFile, 2, JSPROP_READONLY | JSPROP_PERMANENT); + + JS_DefineFunction(cx, jsb_CCBReader_prototype, "load", js_cocos2dx_CCBReader_readNodeGraphFromFile, 2, JSPROP_READONLY | JSPROP_PERMANENT); + JS_DefineFunction(cx, jsb_CCBAnimationManager_prototype, "setCompletedAnimationCallback", js_cocos2dx_CCBAnimationManager_animationCompleteCallback, 2, JSPROP_READONLY | JSPROP_PERMANENT); +} diff --git a/cocos/scripting/javascript/bindings/cocosbuilder/js_bindings_ccbreader.h b/cocos/scripting/javascript/bindings/cocosbuilder/js_bindings_ccbreader.h new file mode 100644 index 0000000000..b1b3b187cc --- /dev/null +++ b/cocos/scripting/javascript/bindings/cocosbuilder/js_bindings_ccbreader.h @@ -0,0 +1,60 @@ +// +// js_bindings_ccbreader.h +// watermelon +// +// Created by Rohan Kuruvilla on 14/08/2012. +// +// +#ifndef __JS_BINDINGS_CCBREADER_H__ +#define __JS_BINDINGS_CCBREADER_H__ + +#include "jsapi.h" +#include "cocosbuilder_specifics.hpp" +#include "cocosbuilder/CocosBuilder.h" + +class CCBScriptCallbackProxy: public cocos2d::Layer +, public cocosbuilder::CCBSelectorResolver +, public cocosbuilder::CCBMemberVariableAssigner { + + std::string callBackProp; + jsval owner; + +public: + + + CCBScriptCallbackProxy () {} + virtual ~CCBScriptCallbackProxy() {} + + CCB_STATIC_NEW_AUTORELEASE_OBJECT_WITH_INIT_METHOD(CCBScriptCallbackProxy, create); + virtual cocos2d::SEL_MenuHandler onResolveCCBCCMenuItemSelector(cocos2d::Object * pTarget, + const char * pSelectorName); + + virtual cocos2d::extension::Control::Handler onResolveCCBCCControlSelector(cocos2d::Object * pTarget, + const char * pSelectorName); + virtual bool onAssignCCBMemberVariable(cocos2d::Object * pTarget, const char * pMemberVariableName, + cocos2d::Node * pNode); + virtual void onNodeLoaded(cocos2d::Node * pNode, + cocosbuilder::NodeLoader * pNodeLoader); + + virtual CCBSelectorResolver * createNew(); + void menuItemCallback(Object *pSender); + void controlCallback(Object *pSender, cocos2d::extension::Control::EventType event); + void setCallbackProperty(const char *prop); + void setJSOwner(jsval ownr); + jsval getJSOwner(); +}; + + +class JSLayerLoader : public cocosbuilder::LayerLoader { +public: + CCB_STATIC_NEW_AUTORELEASE_OBJECT_METHOD(JSLayerLoader, loader); + +protected: + CCB_VIRTUAL_NEW_AUTORELEASE_CREATECCNODE_METHOD(CCBScriptCallbackProxy); +}; + +void register_CCBuilderReader(JSContext *cx, JSObject *global); +JSBool js_CocosBuilder_Run(JSContext *cx, uint32_t argc, jsval *vp); + +#endif /* __JS_BINDINGS_CCBREADER_H__ */ + diff --git a/cocos/scripting/javascript/bindings/cocosbuilder/libJSBindingForBuilder.vcxproj b/cocos/scripting/javascript/bindings/cocosbuilder/libJSBindingForBuilder.vcxproj new file mode 100644 index 0000000000..d6f2eb8d12 --- /dev/null +++ b/cocos/scripting/javascript/bindings/cocosbuilder/libJSBindingForBuilder.vcxproj @@ -0,0 +1,119 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + + + + + + + + + + + + + {F9DA0FC1-651B-457B-962E-A4D61CEBF5FD} + Win32Proj + libJSBindingForBuilder + + + + StaticLibrary + true + Unicode + v100 + v110 + v110_xp + + + StaticLibrary + false + Unicode + v100 + v110 + v110_xp + + + + + + + + + + + + + + + $(SolutionDir)$(Configuration).win32\ + + + $(Configuration).win32\ + + + $(SolutionDir)$(Configuration).win32\ + + + $(Configuration).win32\ + + + + + + Level3 + Disabled + WIN32;_WINDOWS;_DEBUG;_LIB;DEBUG;COCOS2D_DEBUG=1;XP_WIN;JS_HAVE___INTN;JS_INTPTR_TYPE=int;COCOS2D_JAVASCRIPT=1;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + $(ProjectDir)..;$(EngineRoot);$(EngineRoot)cocos;$(EngineRoot)cocos\editor-support;$(EngineRoot)cocos\editor-support\cocosbuilder;$(EngineRoot)cocos\audio\include;$(EngineRoot)cocos\scripting\auto-generated\js-bindings;$(EngineRoot)external\spidermonkey\include\win32;$(EngineRoot)external\chipmunk\include\chipmunk;%(AdditionalIncludeDirectories) + 4068;4101;4800;4251;4244;%(DisableSpecificWarnings) + true + false + + + Windows + true + + + if not exist "$(OutDir)" mkdir "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\..\..\..\external\sqlite3\libraries\win32\*.*" "$(OutDir)" + + + + + Level3 + + + MaxSpeed + true + true + WIN32;_WINDOWS;NDEBUG;_LIB;XP_WIN;JS_HAVE___INTN;JS_INTPTR_TYPE=int;COCOS2D_JAVASCRIPT=1;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + $(ProjectDir)..;$(EngineRoot);$(EngineRoot)cocos;$(EngineRoot)cocos\editor-support;$(EngineRoot)cocos\editor-support\cocosbuilder;$(EngineRoot)cocos\audio\include;$(EngineRoot)cocos\scripting\auto-generated\js-bindings;$(EngineRoot)external\spidermonkey\include\win32;$(EngineRoot)external\chipmunk\include\chipmunk;%(AdditionalIncludeDirectories) + 4068;4101;4800;4251;4244;%(DisableSpecificWarnings) + true + + + Windows + true + true + true + + + + + + + + + + \ No newline at end of file diff --git a/cocos/scripting/javascript/bindings/cocosbuilder/libJSBindingForBuilder.vcxproj.filters b/cocos/scripting/javascript/bindings/cocosbuilder/libJSBindingForBuilder.vcxproj.filters new file mode 100644 index 0000000000..6746ab6be9 --- /dev/null +++ b/cocos/scripting/javascript/bindings/cocosbuilder/libJSBindingForBuilder.vcxproj.filters @@ -0,0 +1,37 @@ + + + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + + + generated + + + manual + + + + + generated + + + manual + + + manual + + + + + generated + + + \ No newline at end of file diff --git a/cocos/scripting/javascript/bindings/cocosbuilder/libJSBindingForBuilder.vcxproj.user b/cocos/scripting/javascript/bindings/cocosbuilder/libJSBindingForBuilder.vcxproj.user new file mode 100644 index 0000000000..3f03091124 --- /dev/null +++ b/cocos/scripting/javascript/bindings/cocosbuilder/libJSBindingForBuilder.vcxproj.user @@ -0,0 +1,6 @@ + + + + false + + \ No newline at end of file diff --git a/cocos/scripting/javascript/bindings/cocostudio/jsb_cocos2dx_studio_manual.cpp b/cocos/scripting/javascript/bindings/cocostudio/jsb_cocos2dx_studio_manual.cpp new file mode 100644 index 0000000000..34ecbca985 --- /dev/null +++ b/cocos/scripting/javascript/bindings/cocostudio/jsb_cocos2dx_studio_manual.cpp @@ -0,0 +1,229 @@ +// +// jsb_cocos2dx_studio_manual.h +// +// Created by LinWenhai on 20/10/13. +// +// +#include "jsb_cocos2dx_studio_manual.h" +#include "ScriptingCore.h" +#include "cocos2d_specifics.hpp" +#include "cocostudio/CocoStudio.h" + +class JSArmatureWrapper: public JSCallbackWrapper { +public: + JSArmatureWrapper(); + virtual ~JSArmatureWrapper(); + + virtual void setJSCallbackThis(jsval thisObj); + + void movementCallbackFunc(cocostudio::Armature * pArmature, cocostudio::MovementEventType pMovementEventType, const char *pMovementId); + void frameCallbackFunc(cocostudio::Bone *pBone, const char *frameEventName, int originFrameIndex, int currentFrameIndex); + void addArmatureFileInfoAsyncCallbackFunc(float percent); + +private: + bool m_bNeedUnroot; +}; + +JSArmatureWrapper::JSArmatureWrapper() + : m_bNeedUnroot(false) +{ + +} + +JSArmatureWrapper::~JSArmatureWrapper() +{ + if (m_bNeedUnroot) + { + JSObject *thisObj = JSVAL_TO_OBJECT(_jsThisObj); + JSContext *cx = ScriptingCore::getInstance()->getGlobalContext(); + JS_RemoveObjectRoot(cx, &thisObj); + } +} + +void JSArmatureWrapper::setJSCallbackThis(jsval _jsThisObj) +{ + JSCallbackWrapper::setJSCallbackThis(_jsThisObj); + + JSObject *thisObj = JSVAL_TO_OBJECT(_jsThisObj); + js_proxy *p = jsb_get_js_proxy(thisObj); + if (!p) + { + JSContext *cx = ScriptingCore::getInstance()->getGlobalContext(); + JS_AddObjectRoot(cx, &thisObj); + m_bNeedUnroot = true; + } +} + +void JSArmatureWrapper::movementCallbackFunc(cocostudio::Armature *pArmature, cocostudio::MovementEventType pMovementEventType, const char *pMovementId) +{ + JSContext *cx = ScriptingCore::getInstance()->getGlobalContext(); + JSObject *thisObj = JSVAL_IS_VOID(_jsThisObj) ? NULL : JSVAL_TO_OBJECT(_jsThisObj); + js_proxy_t *proxy = js_get_or_create_proxy(cx, pArmature); + jsval retval; + if (_jsCallback != JSVAL_VOID) + { + int movementEventType = (int)pMovementEventType; + jsval movementVal = INT_TO_JSVAL(movementEventType); + + jsval idVal = c_string_to_jsval(cx, pMovementId); + + jsval valArr[3]; + valArr[0] = OBJECT_TO_JSVAL(proxy->obj); + valArr[1] = movementVal; + valArr[2] = idVal; + + JS_AddValueRoot(cx, valArr); + JS_CallFunctionValue(cx, thisObj, _jsCallback, 3, valArr, &retval); + JS_RemoveValueRoot(cx, valArr); + } +} + +void JSArmatureWrapper::addArmatureFileInfoAsyncCallbackFunc(float percent) +{ + JSContext *cx = ScriptingCore::getInstance()->getGlobalContext(); + JSObject *thisObj = JSVAL_IS_VOID(_jsThisObj) ? NULL : JSVAL_TO_OBJECT(_jsThisObj); + jsval retval; + if (_jsCallback != JSVAL_VOID) + { + jsval percentVal = DOUBLE_TO_JSVAL(percent); + + JS_AddValueRoot(cx, &percentVal); + JS_CallFunctionValue(cx, thisObj, _jsCallback, 1, &percentVal, &retval); + JS_RemoveValueRoot(cx, &percentVal); + } +} + + +void JSArmatureWrapper::frameCallbackFunc(cocostudio::Bone *pBone, const char *frameEventName, int originFrameIndex, int currentFrameIndex) +{ + JSContext *cx = ScriptingCore::getInstance()->getGlobalContext(); + JSObject *thisObj = JSVAL_IS_VOID(_jsThisObj) ? NULL : JSVAL_TO_OBJECT(_jsThisObj); + js_proxy_t *proxy = js_get_or_create_proxy(cx, pBone); + jsval retval; + if (_jsCallback != JSVAL_VOID) + { + jsval nameVal = c_string_to_jsval(cx, frameEventName); + jsval originIndexVal = INT_TO_JSVAL(originFrameIndex); + jsval currentIndexVal = INT_TO_JSVAL(currentFrameIndex); + + jsval valArr[4]; + valArr[0] = OBJECT_TO_JSVAL(proxy->obj); + valArr[1] = nameVal; + valArr[2] = originIndexVal; + valArr[3] = currentIndexVal; + + JS_AddValueRoot(cx, valArr); + JS_CallFunctionValue(cx, thisObj, _jsCallback, 4, valArr, &retval); + JS_RemoveValueRoot(cx, valArr); + } +} + +static JSBool js_cocos2dx_ArmatureAnimation_setMovementEventCallFunc(JSContext *cx, uint32_t argc, jsval *vp) +{ + JSObject *obj = JS_THIS_OBJECT(cx, vp); + js_proxy_t *proxy = jsb_get_js_proxy(obj); + cocostudio::ArmatureAnimation* cobj = (cocostudio::ArmatureAnimation *)(proxy ? proxy->ptr : NULL); + JSB_PRECONDITION2( cobj, cx, JS_FALSE, "Invalid Native Object"); + + if (argc == 2) { + jsval *argv = JS_ARGV(cx, vp); + + JSArmatureWrapper *tmpObj = new JSArmatureWrapper(); + tmpObj->autorelease(); + + tmpObj->setJSCallbackFunc(argv[0]); + tmpObj->setJSCallbackThis(argv[1]); + + cobj->setMovementEventCallFunc(tmpObj, movementEvent_selector(JSArmatureWrapper::movementCallbackFunc)); + + return JS_TRUE; + } + JS_ReportError(cx, "Invalid number of arguments"); + return JS_FALSE; +} + +static JSBool js_cocos2dx_ArmatureAnimation_setFrameEventCallFunc(JSContext *cx, uint32_t argc, jsval *vp) +{ + JSObject *obj = JS_THIS_OBJECT(cx, vp); + js_proxy_t *proxy = jsb_get_js_proxy(obj); + cocostudio::ArmatureAnimation* cobj = (cocostudio::ArmatureAnimation *)(proxy ? proxy->ptr : NULL); + JSB_PRECONDITION2( cobj, cx, JS_FALSE, "Invalid Native Object"); + + if (argc == 2) { + jsval *argv = JS_ARGV(cx, vp); + + JSArmatureWrapper *tmpObj = new JSArmatureWrapper(); + tmpObj->autorelease(); + + tmpObj->setJSCallbackFunc(argv[0]); + tmpObj->setJSCallbackThis(argv[1]); + + cobj->setFrameEventCallFunc(tmpObj, frameEvent_selector(JSArmatureWrapper::frameCallbackFunc)); + + return JS_TRUE; + } + JS_ReportError(cx, "Invalid number of arguments"); + return JS_FALSE; +} + +static JSBool jsb_Animation_addArmatureFileInfoAsyncCallFunc(JSContext *cx, uint32_t argc, jsval *vp) +{ + JSObject *obj = JS_THIS_OBJECT(cx, vp); + js_proxy_t *proxy = jsb_get_js_proxy(obj); + cocostudio::ArmatureDataManager* cobj = (cocostudio::ArmatureDataManager *)(proxy ? proxy->ptr : NULL); + JSB_PRECONDITION2( cobj, cx, JS_FALSE, "Invalid Native Object"); + + if (argc == 3) { + jsval *argv = JS_ARGV(cx, vp); + + JSArmatureWrapper *tmpObj = new JSArmatureWrapper(); + tmpObj->autorelease(); + + tmpObj->setJSCallbackFunc(argv[2]); + tmpObj->setJSCallbackThis(argv[1]); + + std::string ret; + jsval_to_std_string(cx, argv[0], &ret); + + cobj->addArmatureFileInfoAsync(ret.c_str(), tmpObj, schedule_selector(JSArmatureWrapper::addArmatureFileInfoAsyncCallbackFunc)); + + return JS_TRUE; + } + + if(argc == 5){ + jsval *argv = JS_ARGV(cx, vp); + + JSArmatureWrapper *tmpObj = new JSArmatureWrapper(); + tmpObj->autorelease(); + + tmpObj->setJSCallbackFunc(argv[4]); + tmpObj->setJSCallbackThis(argv[3]); + + std::string imagePath; + jsval_to_std_string(cx ,argv[0] , &imagePath); + + std::string plistPath; + jsval_to_std_string(cx ,argv[1] , &plistPath); + + std::string configFilePath; + jsval_to_std_string(cx ,argv[2] , &configFilePath); + + cobj->addArmatureFileInfoAsync(imagePath.c_str(), plistPath.c_str(), configFilePath.c_str(), tmpObj, schedule_selector(JSArmatureWrapper::addArmatureFileInfoAsyncCallbackFunc)); + + return JS_TRUE; + } + JS_ReportError(cx, "Invalid number of arguments"); + return JS_FALSE; +} + +extern JSObject* jsb_ArmatureAnimation_prototype; +extern JSObject* jsb_ArmatureDataManager_prototype; + +void register_all_cocos2dx_studio_manual(JSContext* cx, JSObject* global) +{ + JS_DefineFunction(cx, jsb_ArmatureAnimation_prototype, "setMovementEventCallFunc", js_cocos2dx_ArmatureAnimation_setMovementEventCallFunc, 2, JSPROP_READONLY | JSPROP_PERMANENT); + + JS_DefineFunction(cx, jsb_ArmatureAnimation_prototype, "setFrameEventCallFunc", js_cocos2dx_ArmatureAnimation_setFrameEventCallFunc, 2, JSPROP_READONLY | JSPROP_PERMANENT); + + JS_DefineFunction(cx, jsb_ArmatureDataManager_prototype, "addArmatureFileInfoAsync", jsb_Animation_addArmatureFileInfoAsyncCallFunc, 3, JSPROP_READONLY | JSPROP_PERMANENT); +} \ No newline at end of file diff --git a/cocos/scripting/javascript/bindings/cocostudio/jsb_cocos2dx_studio_manual.h b/cocos/scripting/javascript/bindings/cocostudio/jsb_cocos2dx_studio_manual.h new file mode 100644 index 0000000000..35ebd55755 --- /dev/null +++ b/cocos/scripting/javascript/bindings/cocostudio/jsb_cocos2dx_studio_manual.h @@ -0,0 +1,16 @@ +// +// jsb_cocos2dx_studio_manual.h +// +// Created by LinWenhai on 20/10/13. +// +// + +#ifndef __jsb_cocos2dx_studio_manual__ +#define __jsb_cocos2dx_studio_manual__ + +#include "jsapi.h" +#include "jsfriendapi.h" + +void register_all_cocos2dx_studio_manual(JSContext* cx, JSObject* global); + +#endif /* defined(__jsb_cocos2dx_studio_manual__) */ diff --git a/cocos/scripting/javascript/bindings/cocostudio/libJSBindingForStudio.vcxproj b/cocos/scripting/javascript/bindings/cocostudio/libJSBindingForStudio.vcxproj new file mode 100644 index 0000000000..2212730521 --- /dev/null +++ b/cocos/scripting/javascript/bindings/cocostudio/libJSBindingForStudio.vcxproj @@ -0,0 +1,118 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + + + + + + + + + + + + {79D34511-E54E-410A-8BBA-EF175AD6C695} + Win32Proj + libJSBindingForStudio + + + + StaticLibrary + true + Unicode + v100 + v110 + v110_xp + + + StaticLibrary + false + Unicode + v100 + v110 + v110_xp + + + + + + + + + + + + + + + $(SolutionDir)$(Configuration).win32\ + + + $(Configuration).win32\ + + + $(SolutionDir)$(Configuration).win32\ + + + $(Configuration).win32\ + + + + + + Level3 + Disabled + WIN32;_WINDOWS;_DEBUG;_LIB;DEBUG;COCOS2D_DEBUG=1;XP_WIN;JS_HAVE___INTN;JS_INTPTR_TYPE=int;COCOS2D_JAVASCRIPT=1;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + $(ProjectDir)..;$(EngineRoot);$(EngineRoot)cocos;$(EngineRoot)cocos\editor-support;$(EngineRoot)cocos\editor-support\cocostudio;$(EngineRoot)cocos\audio\include;$(EngineRoot)cocos\scripting\auto-generated\js-bindings;$(EngineRoot)external;$(EngineRoot)external\spidermonkey\include\win32;$(EngineRoot)external\chipmunk\include\chipmunk;%(AdditionalIncludeDirectories) + 4068;4101;4800;4251;4244;%(DisableSpecificWarnings) + true + false + + + Windows + true + + + if not exist "$(OutDir)" mkdir "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\..\..\..\external\sqlite3\libraries\win32\*.*" "$(OutDir)" + + + + + Level3 + + + MaxSpeed + true + true + WIN32;_WINDOWS;NDEBUG;_LIB;XP_WIN;JS_HAVE___INTN;JS_INTPTR_TYPE=int;COCOS2D_JAVASCRIPT=1;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + $(ProjectDir)..;$(EngineRoot);$(EngineRoot)cocos;$(EngineRoot)cocos\editor-support;$(EngineRoot)cocos\editor-support\cocostudio;$(EngineRoot)cocos\audio\include;$(EngineRoot)cocos\scripting\auto-generated\js-bindings;$(EngineRoot)external;$(EngineRoot)external\spidermonkey\include\win32;$(EngineRoot)external\chipmunk\include\chipmunk;%(AdditionalIncludeDirectories) + 4068;4101;4800;4251;4244;%(DisableSpecificWarnings) + true + + + Windows + true + true + true + + + + + + + + + + \ No newline at end of file diff --git a/cocos/scripting/javascript/bindings/cocostudio/libJSBindingForStudio.vcxproj.filters b/cocos/scripting/javascript/bindings/cocostudio/libJSBindingForStudio.vcxproj.filters new file mode 100644 index 0000000000..16be2bb316 --- /dev/null +++ b/cocos/scripting/javascript/bindings/cocostudio/libJSBindingForStudio.vcxproj.filters @@ -0,0 +1,34 @@ + + + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + + + generated + + + manual + + + + + generated + + + manual + + + + + generated + + + \ No newline at end of file diff --git a/cocos/scripting/javascript/bindings/cocostudio/libJSBindingForStudio.vcxproj.user b/cocos/scripting/javascript/bindings/cocostudio/libJSBindingForStudio.vcxproj.user new file mode 100644 index 0000000000..3f03091124 --- /dev/null +++ b/cocos/scripting/javascript/bindings/cocostudio/libJSBindingForStudio.vcxproj.user @@ -0,0 +1,6 @@ + + + + false + + \ No newline at end of file diff --git a/cocos/scripting/javascript/bindings/extension/jsb_cocos2dx_extension_manual.cpp b/cocos/scripting/javascript/bindings/extension/jsb_cocos2dx_extension_manual.cpp new file mode 100644 index 0000000000..9f2ab82470 --- /dev/null +++ b/cocos/scripting/javascript/bindings/extension/jsb_cocos2dx_extension_manual.cpp @@ -0,0 +1,799 @@ +// +// jsb_cocos2d_extension_manual.cpp +// +// Created by James Chen on 3/11/13. +// +// + +#include "jsb_cocos2dx_extension_manual.h" +#include "extensions/cocos-ext.h" +#include "ScriptingCore.h" +#include "cocos2d_specifics.hpp" + +USING_NS_CC; +USING_NS_CC_EXT; + + +class JSB_ScrollViewDelegate +: public Object +, public ScrollViewDelegate +{ +public: + JSB_ScrollViewDelegate() + : _JSDelegate(NULL) + , _needUnroot(false) + {} + + virtual ~JSB_ScrollViewDelegate() + { + if (_needUnroot) + { + JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); + JS_RemoveObjectRoot(cx, &_JSDelegate); + } + } + + virtual void scrollViewDidScroll(ScrollView* view) + { + js_proxy_t * p = jsb_get_native_proxy(view); + if (!p) return; + + jsval arg = OBJECT_TO_JSVAL(p->obj); + ScriptingCore::getInstance()->executeFunctionWithOwner(OBJECT_TO_JSVAL(_JSDelegate), "scrollViewDidScroll", 1, &arg, NULL); + } + + virtual void scrollViewDidZoom(ScrollView* view) + { + js_proxy_t * p = jsb_get_native_proxy(view); + if (!p) return; + + jsval arg = OBJECT_TO_JSVAL(p->obj); + ScriptingCore::getInstance()->executeFunctionWithOwner(OBJECT_TO_JSVAL(_JSDelegate), "scrollViewDidZoom", 1, &arg, NULL); + } + + void setJSDelegate(JSObject* pJSDelegate) + { + _JSDelegate = pJSDelegate; + + // Check whether the js delegate is a pure js object. + js_proxy_t* p = jsb_get_js_proxy(_JSDelegate); + if (!p) + { + _needUnroot = true; + JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); + JS_AddNamedObjectRoot(cx, &_JSDelegate, "TableViewDelegate"); + } + } +private: + JSObject* _JSDelegate; + bool _needUnroot; +}; + +static JSBool js_cocos2dx_CCScrollView_setDelegate(JSContext *cx, uint32_t argc, jsval *vp) +{ + jsval *argv = JS_ARGV(cx, vp); + JSObject *obj = JS_THIS_OBJECT(cx, vp); + js_proxy_t *proxy = jsb_get_js_proxy(obj); + cocos2d::extension::ScrollView* cobj = (cocos2d::extension::ScrollView *)(proxy ? proxy->ptr : NULL); + JSB_PRECONDITION2( cobj, cx, JS_FALSE, "Invalid Native Object"); + + if (argc == 1) + { + // save the delegate + JSObject *jsDelegate = JSVAL_TO_OBJECT(argv[0]); + JSB_ScrollViewDelegate* nativeDelegate = new JSB_ScrollViewDelegate(); + nativeDelegate->setJSDelegate(jsDelegate); + + cobj->setUserObject(nativeDelegate); + cobj->setDelegate(nativeDelegate); + + nativeDelegate->release(); + + JS_SET_RVAL(cx, vp, JSVAL_VOID); + return JS_TRUE; + } + JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1); + return JS_FALSE; +} + + +#define KEY_TABLEVIEW_DATA_SOURCE "TableViewDataSource" +#define KEY_TABLEVIEW_DELEGATE "TableViewDelegate" + +class JSB_TableViewDelegate +: public Object +, public TableViewDelegate +{ +public: + JSB_TableViewDelegate() + : _JSDelegate(NULL) + , _needUnroot(false) + {} + + virtual ~JSB_TableViewDelegate() + { + if (_needUnroot) + { + JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); + JS_RemoveObjectRoot(cx, &_JSDelegate); + } + } + + virtual void scrollViewDidScroll(ScrollView* view) + { + callJSDelegate(view, "scrollViewDidScroll"); + } + + virtual void scrollViewDidZoom(ScrollView* view) + { + callJSDelegate(view, "scrollViewDidZoom"); + } + + virtual void tableCellTouched(TableView* table, TableViewCell* cell) + { + callJSDelegate(table, cell, "tableCellTouched"); + } + + virtual void tableCellHighlight(TableView* table, TableViewCell* cell) + { + callJSDelegate(table, cell, "tableCellHighlight"); + } + + virtual void tableCellUnhighlight(TableView* table, TableViewCell* cell) + { + callJSDelegate(table, cell, "tableCellUnhighlight"); + } + + virtual void tableCellWillRecycle(TableView* table, TableViewCell* cell) + { + callJSDelegate(table, cell, "tableCellWillRecycle"); + } + + void setJSDelegate(JSObject* pJSDelegate) + { + _JSDelegate = pJSDelegate; + + // Check whether the js delegate is a pure js object. + js_proxy_t* p = jsb_get_js_proxy(_JSDelegate); + if (!p) + { + _needUnroot = true; + JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); + JS_AddNamedObjectRoot(cx, &_JSDelegate, "TableViewDelegate"); + } + } + + +private: + void callJSDelegate(ScrollView* view, std::string jsFunctionName) + { + js_proxy_t * p = jsb_get_native_proxy(view); + if (!p) return; + + jsval arg = OBJECT_TO_JSVAL(p->obj); + ScriptingCore::getInstance()->executeFunctionWithOwner(OBJECT_TO_JSVAL(_JSDelegate), jsFunctionName.c_str(), 1, &arg, NULL); + } + + void callJSDelegate(TableView* table, TableViewCell* cell, std::string jsFunctionName) + { + js_proxy_t * p = jsb_get_native_proxy(table); + if (!p) return; + + js_proxy_t * pCellProxy = jsb_get_native_proxy(cell); + if (!pCellProxy) return; + + jsval args[2]; + args[0] = OBJECT_TO_JSVAL(p->obj); + args[1] = OBJECT_TO_JSVAL(pCellProxy->obj); + + ScriptingCore::getInstance()->executeFunctionWithOwner(OBJECT_TO_JSVAL(_JSDelegate), jsFunctionName.c_str(), 2, args, NULL); + } + + JSObject* _JSDelegate; + bool _needUnroot; +}; + +static JSBool js_cocos2dx_CCTableView_setDelegate(JSContext *cx, uint32_t argc, jsval *vp) +{ + jsval *argv = JS_ARGV(cx, vp); + JSObject *obj = JS_THIS_OBJECT(cx, vp); + js_proxy_t *proxy = jsb_get_js_proxy(obj); + cocos2d::extension::TableView* cobj = (cocos2d::extension::TableView *)(proxy ? proxy->ptr : NULL); + JSB_PRECONDITION2( cobj, cx, JS_FALSE, "Invalid Native Object"); + + if (argc == 1) + { + // save the delegate + JSObject *jsDelegate = JSVAL_TO_OBJECT(argv[0]); + JSB_TableViewDelegate* nativeDelegate = new JSB_TableViewDelegate(); + nativeDelegate->setJSDelegate(jsDelegate); + + Dictionary* userDict = static_cast(cobj->getUserObject()); + if (NULL == userDict) + { + userDict = new Dictionary(); + cobj->setUserObject(userDict); + userDict->release(); + } + + userDict->setObject(nativeDelegate, KEY_TABLEVIEW_DELEGATE); + + cobj->setDelegate(nativeDelegate); + + nativeDelegate->release(); + + JS_SET_RVAL(cx, vp, JSVAL_VOID); + return JS_TRUE; + } + JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1); + return JS_FALSE; +} + +class JSB_TableViewDataSource +: public Object +, public TableViewDataSource +{ +public: + JSB_TableViewDataSource() + : _JSTableViewDataSource(NULL) + , _needUnroot(false) + {} + + virtual ~JSB_TableViewDataSource() + { + if (_needUnroot) + { + JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); + JS_RemoveObjectRoot(cx, &_JSTableViewDataSource); + } + } + + virtual Size tableCellSizeForIndex(TableView *table, unsigned int idx) + { + jsval ret; + bool ok = callJSDelegate(table, idx, "tableCellSizeForIndex", ret); + if (!ok) + { + ok = callJSDelegate(table, "cellSizeForTable", ret); + } + if (ok) + { + JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); + Size size; + JSBool isSucceed = jsval_to_ccsize(cx, ret, &size); + if (isSucceed) return size; + } + return Size::ZERO; + + } + + virtual TableViewCell* tableCellAtIndex(TableView *table, unsigned int idx) + { + jsval ret; + bool ok = callJSDelegate(table, idx, "tableCellAtIndex", ret); + if (ok) + { + JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); + cocos2d::extension::TableViewCell* arg0; + do { + js_proxy_t *proxy; + JSObject *tmpObj = JSVAL_TO_OBJECT(ret); + proxy = jsb_get_js_proxy(tmpObj); + arg0 = (cocos2d::extension::TableViewCell*)(proxy ? proxy->ptr : NULL); + JSB_PRECONDITION2( arg0, cx, NULL, "Invalid Native Object"); + } while (0); + return arg0; + } + return NULL; + } + + virtual unsigned int numberOfCellsInTableView(TableView *table) + { + jsval ret; + bool ok = callJSDelegate(table, "numberOfCellsInTableView", ret); + if (ok) + { + JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); + uint32_t count = 0; + JSBool isSucceed = jsval_to_uint32(cx, ret, &count); + if (isSucceed) return count; + } + return 0; + } + + + void setTableViewDataSource(JSObject* pJSSource) + { + _JSTableViewDataSource = pJSSource; + + // Check whether the js delegate is a pure js object. + js_proxy_t* p = jsb_get_js_proxy(_JSTableViewDataSource); + if (!p) + { + _needUnroot = true; + JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); + JS_AddNamedObjectRoot(cx, &_JSTableViewDataSource, "TableViewDataSource"); + } + } + +private: + bool callJSDelegate(TableView* table, std::string jsFunctionName, jsval& retVal) + { + js_proxy_t * p = jsb_get_native_proxy(table); + if (!p) return false; + + JSBool hasAction; + jsval temp_retval; + jsval dataVal = OBJECT_TO_JSVAL(p->obj); + + JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); + JSObject* obj = _JSTableViewDataSource; + + if (JS_HasProperty(cx, obj, jsFunctionName.c_str(), &hasAction) && hasAction) + { + if(!JS_GetProperty(cx, obj, jsFunctionName.c_str(), &temp_retval)) + { + return false; + } + if(temp_retval == JSVAL_VOID) + { + return false; + } + + JSAutoCompartment ac(cx, obj); + JS_CallFunctionName(cx, obj, jsFunctionName.c_str(), + 1, &dataVal, &retVal); + return true; + } + return false; + } + + bool callJSDelegate(TableView* table, int idx, std::string jsFunctionName, jsval& retVal) + { + js_proxy_t * p = jsb_get_native_proxy(table); + if (!p) return false; + + + JSBool hasAction; + jsval temp_retval; + jsval dataVal[2]; + dataVal[0] = OBJECT_TO_JSVAL(p->obj); + dataVal[1] = INT_TO_JSVAL(idx); + + JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); + JSObject* obj = _JSTableViewDataSource; + + if (JS_HasProperty(cx, obj, jsFunctionName.c_str(), &hasAction) && hasAction) + { + if(!JS_GetProperty(cx, obj, jsFunctionName.c_str(), &temp_retval)) + { + return false; + } + + if(temp_retval == JSVAL_VOID) + { + return false; + } + + JSAutoCompartment ac(cx, obj); + JS_CallFunctionName(cx, obj, jsFunctionName.c_str(), + 2, dataVal, &retVal); + return true; + } + return false; + } + +private: + JSObject* _JSTableViewDataSource; + bool _needUnroot; +}; + +static JSBool js_cocos2dx_CCTableView_setDataSource(JSContext *cx, uint32_t argc, jsval *vp) +{ + jsval *argv = JS_ARGV(cx, vp); + JSObject *obj = JS_THIS_OBJECT(cx, vp); + js_proxy_t *proxy = jsb_get_js_proxy(obj); + cocos2d::extension::TableView* cobj = (cocos2d::extension::TableView *)(proxy ? proxy->ptr : NULL); + JSB_PRECONDITION2( cobj, cx, JS_FALSE, "Invalid Native Object"); + if (argc == 1) + { + JSB_TableViewDataSource* pNativeSource = new JSB_TableViewDataSource(); + pNativeSource->setTableViewDataSource(JSVAL_TO_OBJECT(argv[0])); + + Dictionary* userDict = static_cast(cobj->getUserObject()); + if (NULL == userDict) + { + userDict = new Dictionary(); + cobj->setUserObject(userDict); + userDict->release(); + } + + userDict->setObject(pNativeSource, KEY_TABLEVIEW_DATA_SOURCE); + + cobj->setDataSource(pNativeSource); + + pNativeSource->release(); + + JS_SET_RVAL(cx, vp, JSVAL_VOID); + return JS_TRUE; + } + + JS_ReportError(cx, "wrong number of arguments"); + return JS_FALSE; +} + +static JSBool js_cocos2dx_CCTableView_create(JSContext *cx, uint32_t argc, jsval *vp) +{ + jsval *argv = JS_ARGV(cx, vp); + JSBool ok = JS_TRUE; + if (argc == 3 || argc == 2) + { + + JSB_TableViewDataSource* pNativeSource = new JSB_TableViewDataSource(); + pNativeSource->setTableViewDataSource(JSVAL_TO_OBJECT(argv[0])); + + cocos2d::Size arg1; + ok &= jsval_to_ccsize(cx, argv[1], &arg1); + cocos2d::extension::TableView* ret = NULL; + ret = new TableView(); + ret->autorelease(); + + ret->setDataSource(pNativeSource); + + jsval jsret; + do { + if (ret) + { + js_proxy_t *proxy = js_get_or_create_proxy(cx, ret); + jsret = OBJECT_TO_JSVAL(proxy->obj); + } + else + { + jsret = JSVAL_NULL; + } + } while (0); + + if (argc == 2) + { + ret->initWithViewSize(arg1); + } + else + { + cocos2d::Node* arg2; + do + { + js_proxy_t *proxy; + JSObject *tmpObj = JSVAL_TO_OBJECT(argv[2]); + proxy = jsb_get_js_proxy(tmpObj); + arg2 = (cocos2d::Node*)(proxy ? proxy->ptr : NULL); + JSB_PRECONDITION2( arg2, cx, JS_FALSE, "Invalid Native Object"); + } while (0); + JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments"); + ret->initWithViewSize(arg1, arg2); + } + ret->reloadData(); + + Dictionary* userDict = new Dictionary(); + userDict->setObject(pNativeSource, KEY_TABLEVIEW_DATA_SOURCE); + ret->setUserObject(userDict); + userDict->release(); + + pNativeSource->release(); + + JS_SET_RVAL(cx, vp, jsret); + return JS_TRUE; + } + + JS_ReportError(cx, "wrong number of arguments"); + return JS_FALSE; +} + +class JSB_EditBoxDelegate +: public Object +, public EditBoxDelegate +{ +public: + JSB_EditBoxDelegate() + : _JSDelegate(NULL) + , _needUnroot(false) + {} + + virtual ~JSB_EditBoxDelegate() + { + if (_needUnroot) + { + JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); + JS_RemoveObjectRoot(cx, &_JSDelegate); + } + } + + virtual void editBoxEditingDidBegin(EditBox* editBox) + { + js_proxy_t * p = jsb_get_native_proxy(editBox); + if (!p) return; + + jsval arg = OBJECT_TO_JSVAL(p->obj); + ScriptingCore::getInstance()->executeFunctionWithOwner(OBJECT_TO_JSVAL(_JSDelegate), "editBoxEditingDidBegin", 1, &arg, NULL); + } + + virtual void editBoxEditingDidEnd(EditBox* editBox) + { + js_proxy_t * p = jsb_get_native_proxy(editBox); + if (!p) return; + + jsval arg = OBJECT_TO_JSVAL(p->obj); + ScriptingCore::getInstance()->executeFunctionWithOwner(OBJECT_TO_JSVAL(_JSDelegate), "editBoxEditingDidEnd", 1, &arg, NULL); + } + + virtual void editBoxTextChanged(EditBox* editBox, const std::string& text) + { + js_proxy_t * p = jsb_get_native_proxy(editBox); + if (!p) return; + + jsval dataVal[2]; + dataVal[0] = OBJECT_TO_JSVAL(p->obj); + std::string arg1 = text; + dataVal[1] = std_string_to_jsval(ScriptingCore::getInstance()->getGlobalContext(), arg1); + + ScriptingCore::getInstance()->executeFunctionWithOwner(OBJECT_TO_JSVAL(_JSDelegate), "editBoxTextChanged", 2, dataVal, NULL); + } + + virtual void editBoxReturn(EditBox* editBox) + { + js_proxy_t * p = jsb_get_native_proxy(editBox); + if (!p) return; + + jsval arg = OBJECT_TO_JSVAL(p->obj); + ScriptingCore::getInstance()->executeFunctionWithOwner(OBJECT_TO_JSVAL(_JSDelegate), "editBoxReturn", 1, &arg, NULL); + } + + void setJSDelegate(JSObject* pJSDelegate) + { + _JSDelegate = pJSDelegate; + + // Check whether the js delegate is a pure js object. + js_proxy_t* p = jsb_get_js_proxy(_JSDelegate); + if (!p) + { + _needUnroot = true; + JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); + JS_AddNamedObjectRoot(cx, &_JSDelegate, "TableViewDelegate"); + } + } +private: + JSObject* _JSDelegate; + bool _needUnroot; +}; + +static JSBool js_cocos2dx_CCEditBox_setDelegate(JSContext *cx, uint32_t argc, jsval *vp) +{ + jsval *argv = JS_ARGV(cx, vp); + JSObject *obj = JS_THIS_OBJECT(cx, vp); + js_proxy_t *proxy = jsb_get_js_proxy(obj); + cocos2d::extension::EditBox* cobj = (cocos2d::extension::EditBox *)(proxy ? proxy->ptr : NULL); + JSB_PRECONDITION2( cobj, cx, JS_FALSE, "Invalid Native Object"); + + if (argc == 1) + { + // save the delegate + JSObject *jsDelegate = JSVAL_TO_OBJECT(argv[0]); + JSB_EditBoxDelegate* nativeDelegate = new JSB_EditBoxDelegate(); + nativeDelegate->setJSDelegate(jsDelegate); + + cobj->setUserObject(nativeDelegate); + cobj->setDelegate(nativeDelegate); + + nativeDelegate->release(); + + JS_SET_RVAL(cx, vp, JSVAL_VOID); + return JS_TRUE; + } + JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1); + return JS_FALSE; +} + + + +class JSB_ControlButtonTarget : public Object +{ +public: + JSB_ControlButtonTarget() + : _jsFunc(nullptr), + _type(Control::EventType::TOUCH_DOWN), + _jsTarget(nullptr), + _needUnroot(false) + {} + + virtual ~JSB_ControlButtonTarget() + { + CCLOGINFO("In the destruction of JSB_ControlButtonTarget ..."); + JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); + if (_needUnroot) + { + JS_RemoveObjectRoot(cx, &_jsTarget); + } + + JS_RemoveObjectRoot(cx, &_jsFunc); + + for (auto iter = _jsNativeTargetMap.begin(); iter != _jsNativeTargetMap.end(); ++iter) + { + if (this == iter->second) + { + _jsNativeTargetMap.erase(iter); + break; + } + } + } + + virtual void onEvent(Object *controlButton, Control::EventType event) + { + js_proxy_t * p; + JS_GET_PROXY(p, controlButton); + if (!p) + { + log("Failed to get proxy for control button"); + return; + } + + jsval dataVal[2]; + dataVal[0] = OBJECT_TO_JSVAL(p->obj); + int arg1 = (int)event; + dataVal[1] = INT_TO_JSVAL(arg1); + jsval jsRet; + + ScriptingCore::getInstance()->executeJSFunctionWithThisObj(OBJECT_TO_JSVAL(_jsTarget), OBJECT_TO_JSVAL(_jsFunc), 2, dataVal, &jsRet); + } + + void setJSTarget(JSObject* pJSTarget) + { + _jsTarget = pJSTarget; + + js_proxy_t* p = jsb_get_js_proxy(_jsTarget); + if (!p) + { + JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); + JS_AddNamedObjectRoot(cx, &_jsTarget, "JSB_ControlButtonTarget, target"); + _needUnroot = true; + } + } + + void setJSAction(JSObject* jsFunc) + { + _jsFunc = jsFunc; + + JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); + JS_AddNamedObjectRoot(cx, &_jsFunc, "JSB_ControlButtonTarget, func"); + } + + void setEventType(Control::EventType type) + { + _type = type; + } +public: + + static std::multimap _jsNativeTargetMap; + JSObject* _jsFunc; + Control::EventType _type; +private: + JSObject* _jsTarget; + bool _needUnroot; +}; + +std::multimap JSB_ControlButtonTarget::_jsNativeTargetMap; + +static JSBool js_cocos2dx_CCControl_addTargetWithActionForControlEvents(JSContext *cx, uint32_t argc, jsval *vp) +{ + jsval *argv = JS_ARGV(cx, vp); + JSObject *obj = JS_THIS_OBJECT(cx, vp); + js_proxy_t *proxy = jsb_get_js_proxy(obj); + cocos2d::extension::Control* cobj = (cocos2d::extension::Control *)(proxy ? proxy->ptr : NULL); + JSB_PRECONDITION2( cobj, cx, JS_FALSE, "Invalid Native Object"); + + JSBool ok = JS_TRUE; + if (argc == 3) + { + JSObject* jsDelegate = JSVAL_TO_OBJECT(argv[0]); + JSObject* jsFunc = JSVAL_TO_OBJECT(argv[1]); + Control::EventType arg2; + ok &= jsval_to_int32(cx, argv[2], (int32_t *)&arg2); + JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing control event"); + + // Check whether the target already exists. + auto range = JSB_ControlButtonTarget::_jsNativeTargetMap.equal_range(jsDelegate); + for (auto it = range.first; it != range.second; ++it) + { + if (it->second->_jsFunc == jsFunc && arg2 == it->second->_type) + { + // Return true directly. + JS_SET_RVAL(cx, vp, JSVAL_VOID); + return JS_TRUE; + } + } + + // save the delegate + JSB_ControlButtonTarget* nativeDelegate = new JSB_ControlButtonTarget(); + + nativeDelegate->setJSTarget(jsDelegate); + nativeDelegate->setJSAction(jsFunc); + nativeDelegate->setEventType(arg2); + + Array* nativeDelegateArray = static_cast(cobj->getUserObject()); + if (nullptr == nativeDelegateArray) + { + nativeDelegateArray = new Array(); + nativeDelegateArray->init(); + cobj->setUserObject(nativeDelegateArray); // The reference of nativeDelegateArray is added to 2 + nativeDelegateArray->release(); // Release nativeDelegateArray to make the reference to 1 + } + + nativeDelegateArray->addObject(nativeDelegate); // The reference of nativeDelegate is added to 2 + nativeDelegate->release(); // Release nativeDelegate to make the reference to 1 + + cobj->addTargetWithActionForControlEvents(nativeDelegate, cccontrol_selector(JSB_ControlButtonTarget::onEvent), arg2); + + JSB_ControlButtonTarget::_jsNativeTargetMap.insert(std::make_pair(jsDelegate, nativeDelegate)); + + JS_SET_RVAL(cx, vp, JSVAL_VOID); + + return JS_TRUE; + } + JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 3); + return JS_FALSE; +} + +static JSBool js_cocos2dx_CCControl_removeTargetWithActionForControlEvents(JSContext *cx, uint32_t argc, jsval *vp) +{ + jsval *argv = JS_ARGV(cx, vp); + JSObject *obj = JS_THIS_OBJECT(cx, vp); + js_proxy_t *proxy = jsb_get_js_proxy(obj); + cocos2d::extension::Control* cobj = (cocos2d::extension::Control *)(proxy ? proxy->ptr : NULL); + JSB_PRECONDITION2( cobj, cx, JS_FALSE, "Invalid Native Object"); + + JSBool ok = JS_TRUE; + if (argc == 3) + { + Control::EventType arg2; + ok &= jsval_to_int32(cx, argv[2], (int32_t *)&arg2); + JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing control event"); + + obj = JSVAL_TO_OBJECT(argv[0]); + JSObject* jsFunc = JSVAL_TO_OBJECT(argv[1]); + + JSB_ControlButtonTarget* nativeTargetToRemoved = nullptr; + + auto range = JSB_ControlButtonTarget::_jsNativeTargetMap.equal_range(obj); + for (auto it = range.first; it != range.second; ++it) + { + if (it->second->_jsFunc == jsFunc && arg2 == it->second->_type) + { + nativeTargetToRemoved = it->second; + JSB_ControlButtonTarget::_jsNativeTargetMap.erase(it); + break; + } + } + + cobj->removeTargetWithActionForControlEvents(nativeTargetToRemoved, cccontrol_selector(JSB_ControlButtonTarget::onEvent), arg2); + + return JS_TRUE; + } + JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 3); + return JS_FALSE; +} + +extern JSObject* jsb_ScrollView_prototype; +extern JSObject* jsb_TableView_prototype; +extern JSObject* jsb_EditBox_prototype; +extern JSObject* jsb_Control_prototype; + +void register_all_cocos2dx_extension_manual(JSContext* cx, JSObject* global) +{ + JS_DefineFunction(cx, jsb_ScrollView_prototype, "setDelegate", js_cocos2dx_CCScrollView_setDelegate, 1, JSPROP_READONLY | JSPROP_PERMANENT); + JS_DefineFunction(cx, jsb_TableView_prototype, "setDelegate", js_cocos2dx_CCTableView_setDelegate, 1, JSPROP_READONLY | JSPROP_PERMANENT); + JS_DefineFunction(cx, jsb_TableView_prototype, "setDataSource", js_cocos2dx_CCTableView_setDataSource, 1, JSPROP_READONLY | JSPROP_PERMANENT); + JS_DefineFunction(cx, jsb_EditBox_prototype, "setDelegate", js_cocos2dx_CCEditBox_setDelegate, 1, JSPROP_READONLY | JSPROP_PERMANENT); + JS_DefineFunction(cx, jsb_Control_prototype, "addTargetWithActionForControlEvents", js_cocos2dx_CCControl_addTargetWithActionForControlEvents, 3, JSPROP_READONLY | JSPROP_PERMANENT); + JS_DefineFunction(cx, jsb_Control_prototype, "removeTargetWithActionForControlEvents", js_cocos2dx_CCControl_removeTargetWithActionForControlEvents, 3, JSPROP_READONLY | JSPROP_PERMANENT); + + JSObject *tmpObj = JSVAL_TO_OBJECT(anonEvaluate(cx, global, "(function () { return cc.TableView; })()")); + JS_DefineFunction(cx, tmpObj, "create", js_cocos2dx_CCTableView_create, 3, JSPROP_READONLY | JSPROP_PERMANENT); +} \ No newline at end of file diff --git a/cocos/scripting/javascript/bindings/extension/jsb_cocos2dx_extension_manual.h b/cocos/scripting/javascript/bindings/extension/jsb_cocos2dx_extension_manual.h new file mode 100644 index 0000000000..e8822b1370 --- /dev/null +++ b/cocos/scripting/javascript/bindings/extension/jsb_cocos2dx_extension_manual.h @@ -0,0 +1,16 @@ +// +// jsb_cocos2d_extension_manual.h +// +// Created by James Chen on 3/11/13. +// +// + +#ifndef __jsb_cocos2dx_extension_manual__ +#define __jsb_cocos2dx_extension_manual__ + +#include "jsapi.h" +#include "jsfriendapi.h" + +void register_all_cocos2dx_extension_manual(JSContext* cx, JSObject* global); + +#endif /* defined(__jsb_cocos2dx_extension_manual__) */ diff --git a/cocos/scripting/javascript/bindings/extension/libJSBindingForExtension.vcxproj b/cocos/scripting/javascript/bindings/extension/libJSBindingForExtension.vcxproj new file mode 100644 index 0000000000..b9ea3695d9 --- /dev/null +++ b/cocos/scripting/javascript/bindings/extension/libJSBindingForExtension.vcxproj @@ -0,0 +1,118 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + + + + + + + + + + + + {625F7391-9A91-48A1-8CFC-79508C822637} + Win32Proj + libJSBindingForExtension + + + + StaticLibrary + true + Unicode + v100 + v110 + v110_xp + + + StaticLibrary + false + Unicode + v100 + v110 + v110_xp + + + + + + + + + + + + + + + $(SolutionDir)$(Configuration).win32\ + + + $(Configuration).win32\ + + + $(SolutionDir)$(Configuration).win32\ + + + $(Configuration).win32\ + + + + + + Level3 + Disabled + WIN32;_WINDOWS;_DEBUG;_LIB;DEBUG;COCOS2D_DEBUG=1;XP_WIN;JS_HAVE___INTN;JS_INTPTR_TYPE=int;COCOS2D_JAVASCRIPT=1;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + $(ProjectDir)..;$(EngineRoot);$(EngineRoot)cocos;$(EngineRoot)cocos\network;$(EngineRoot)cocos\audio\include;$(EngineRoot)cocos\scripting\auto-generated\js-bindings;$(EngineRoot)external\spidermonkey\include\win32;$(EngineRoot)external\chipmunk\include\chipmunk;$(EngineRoot)extensions;%(AdditionalIncludeDirectories) + 4068;4101;4800;4251;4244;%(DisableSpecificWarnings) + true + false + + + Windows + true + + + if not exist "$(OutDir)" mkdir "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\..\..\..\external\sqlite3\libraries\win32\*.*" "$(OutDir)" + + + + + Level3 + + + MaxSpeed + true + true + WIN32;_WINDOWS;NDEBUG;_LIB;XP_WIN;JS_HAVE___INTN;JS_INTPTR_TYPE=int;COCOS2D_JAVASCRIPT=1;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + $(ProjectDir)..;$(EngineRoot);$(EngineRoot)cocos;$(EngineRoot)cocos\network;$(EngineRoot)cocos\audio\include;$(EngineRoot)cocos\scripting\auto-generated\js-bindings;$(EngineRoot)external\spidermonkey\include\win32;$(EngineRoot)external\chipmunk\include\chipmunk;$(EngineRoot)extensions;%(AdditionalIncludeDirectories) + 4068;4101;4800;4251;4244;%(DisableSpecificWarnings) + true + + + Windows + true + true + true + + + + + + + + + + \ No newline at end of file diff --git a/cocos/scripting/javascript/bindings/extension/libJSBindingForExtension.vcxproj.filters b/cocos/scripting/javascript/bindings/extension/libJSBindingForExtension.vcxproj.filters new file mode 100644 index 0000000000..805e94fc71 --- /dev/null +++ b/cocos/scripting/javascript/bindings/extension/libJSBindingForExtension.vcxproj.filters @@ -0,0 +1,34 @@ + + + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + + + generated + + + manual + + + + + generated + + + manual + + + + + generated + + + \ No newline at end of file diff --git a/cocos/scripting/javascript/bindings/extension/libJSBindingForExtension.vcxproj.user b/cocos/scripting/javascript/bindings/extension/libJSBindingForExtension.vcxproj.user new file mode 100644 index 0000000000..3f03091124 --- /dev/null +++ b/cocos/scripting/javascript/bindings/extension/libJSBindingForExtension.vcxproj.user @@ -0,0 +1,6 @@ + + + + false + + \ No newline at end of file diff --git a/cocos/scripting/javascript/bindings/localstorage/js_bindings_system_functions.cpp b/cocos/scripting/javascript/bindings/localstorage/js_bindings_system_functions.cpp new file mode 100644 index 0000000000..7d1a819fc8 --- /dev/null +++ b/cocos/scripting/javascript/bindings/localstorage/js_bindings_system_functions.cpp @@ -0,0 +1,75 @@ +/* +* AUTOGENERATED FILE. DO NOT EDIT IT +* Generated by "generate_js_bindings.py -c system_jsb.ini" on 2012-12-17 +* Script version: v0.5 +*/ +#include "cocos2d.h" +#include "js_bindings_config.h" +//#ifdef JSB_INCLUDE_SYSTEM + +#include "local-storage/LocalStorage.h" + +#include "jsfriendapi.h" +#include "js_bindings_config.h" +#include "js_bindings_core.h" +#include "js_manual_conversions.h" +#include "js_bindings_system_functions.h" +#include "ScriptingCore.h" + +USING_NS_CC; + +// Arguments: char* +// Ret value: const char* +JSBool JSB_localStorageGetItem(JSContext *cx, uint32_t argc, jsval *vp) { + JSB_PRECONDITION2( argc == 1, cx, JS_FALSE, "Invalid number of arguments" ); + jsval *argvp = JS_ARGV(cx,vp); + JSBool ok = JS_TRUE; + const char* arg0; + + ok &= jsval_to_charptr( cx, *argvp++, &arg0 ); + JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments"); + const char* ret_val; + + ret_val = localStorageGetItem((char*)arg0 ); + + jsval ret_jsval = c_string_to_jsval(cx, ret_val ? ret_val : ""); + JS_SET_RVAL(cx, vp, ret_jsval ); + + return JS_TRUE; +} + +// Arguments: char* +// Ret value: void +JSBool JSB_localStorageRemoveItem(JSContext *cx, uint32_t argc, jsval *vp) { + JSB_PRECONDITION2( argc == 1, cx, JS_FALSE, "Invalid number of arguments" ); + jsval *argvp = JS_ARGV(cx,vp); + JSBool ok = JS_TRUE; + const char* arg0; + + ok &= jsval_to_charptr( cx, *argvp++, &arg0 ); + JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments"); + + localStorageRemoveItem((char*)arg0 ); + JS_SET_RVAL(cx, vp, JSVAL_VOID); + return JS_TRUE; +} + +// Arguments: char*, char* +// Ret value: void +JSBool JSB_localStorageSetItem(JSContext *cx, uint32_t argc, jsval *vp) { + JSB_PRECONDITION2( argc == 2, cx, JS_FALSE, "Invalid number of arguments" ); + jsval *argvp = JS_ARGV(cx,vp); + JSBool ok = JS_TRUE; + const char* arg0; const char* arg1; + + ok &= jsval_to_charptr( cx, *argvp++, &arg0 ); + ok &= jsval_to_charptr( cx, *argvp++, &arg1 ); + JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments"); + + localStorageSetItem((char*)arg0 , (char*)arg1 ); + JS_SET_RVAL(cx, vp, JSVAL_VOID); + return JS_TRUE; +} + + +//#endif // JSB_INCLUDE_SYSTEM diff --git a/cocos/scripting/javascript/bindings/localstorage/js_bindings_system_functions.h b/cocos/scripting/javascript/bindings/localstorage/js_bindings_system_functions.h new file mode 100644 index 0000000000..26d4a97c99 --- /dev/null +++ b/cocos/scripting/javascript/bindings/localstorage/js_bindings_system_functions.h @@ -0,0 +1,23 @@ +/* +* AUTOGENERATED FILE. DO NOT EDIT IT +* Generated by "generate_js_bindings.py -c system_jsb.ini" on 2012-12-17 +* Script version: v0.5 +*/ +#include "js_bindings_config.h" +//#ifdef JSB_INCLUDE_SYSTEM + +//#include "LocalStorage.h" + +#ifdef __cplusplus +extern "C" { +#endif +JSBool JSB_localStorageGetItem(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_localStorageRemoveItem(JSContext *cx, uint32_t argc, jsval *vp); +JSBool JSB_localStorageSetItem(JSContext *cx, uint32_t argc, jsval *vp); + +#ifdef __cplusplus +} +#endif + + +//#endif // JSB_INCLUDE_SYSTEM diff --git a/cocos/scripting/javascript/bindings/localstorage/js_bindings_system_functions_registration.h b/cocos/scripting/javascript/bindings/localstorage/js_bindings_system_functions_registration.h new file mode 100644 index 0000000000..5774403878 --- /dev/null +++ b/cocos/scripting/javascript/bindings/localstorage/js_bindings_system_functions_registration.h @@ -0,0 +1,15 @@ +/* +* AUTOGENERATED FILE. DO NOT EDIT IT +* Generated by "generate_js_bindings.py -c system_jsb.ini" on 2012-12-17 +* Script version: v0.5 +*/ +#include "../js_bindings_config.h" +//#ifdef JSB_INCLUDE_SYSTEM + +//#include "LocalStorage.h" +JS_DefineFunction(_cx, system, "getItem", JSB_localStorageGetItem, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, system, "removeItem", JSB_localStorageRemoveItem, 1, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); +JS_DefineFunction(_cx, system, "setItem", JSB_localStorageSetItem, 2, JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_ENUMERATE ); + + +//#endif // JSB_INCLUDE_SYSTEM diff --git a/cocos/scripting/javascript/bindings/localstorage/js_bindings_system_registration.cpp b/cocos/scripting/javascript/bindings/localstorage/js_bindings_system_registration.cpp new file mode 100644 index 0000000000..bf55e188f0 --- /dev/null +++ b/cocos/scripting/javascript/bindings/localstorage/js_bindings_system_registration.cpp @@ -0,0 +1,62 @@ +/* + * JS Bindings: https://github.com/zynga/jsbindings + * + * Copyright (c) 2012 Zynga Inc. + * + * 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 "js_bindings_config.h" +#include "js_bindings_core.h" +#include "local-storage/LocalStorage.h" +#include "cocos2d.h" + +// system +#include "js_bindings_system_functions.h" + + +void jsb_register_system( JSContext *_cx, JSObject *object) +{ + // + // sys + // + JSObject *sys = JS_NewObject(_cx, NULL, NULL, NULL); + jsval systemVal = OBJECT_TO_JSVAL(sys); + JS_SetProperty(_cx, object, "sys", &systemVal); + + + // sys.localStorage + JSObject *ls = JS_NewObject(_cx, NULL, NULL, NULL); + jsval lsVal = OBJECT_TO_JSVAL(ls); + JS_SetProperty(_cx, sys, "localStorage", &lsVal); + + // sys.localStorage functions + JSObject *system = ls; +#include "js_bindings_system_functions_registration.h" + + + // Init DB with full path + //NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; + //NSString *fullpath = [path stringByAppendingPathComponent:@"jsb.sqlite"]; + std::string strFilePath = cocos2d::FileUtils::getInstance()->getWritablePath(); + strFilePath += "/jsb.sqlite"; + localStorageInit(strFilePath.c_str()); + +} + diff --git a/cocos/scripting/javascript/bindings/localstorage/js_bindings_system_registration.h b/cocos/scripting/javascript/bindings/localstorage/js_bindings_system_registration.h new file mode 100644 index 0000000000..1afb1b1081 --- /dev/null +++ b/cocos/scripting/javascript/bindings/localstorage/js_bindings_system_registration.h @@ -0,0 +1,31 @@ +/* + * JS Bindings: https://github.com/zynga/jsbindings + * + * Copyright (c) 2012 Zynga Inc. + * + * 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 __JSB_SYSTEM_REGISTRATION +#define __JSB_SYSTEM_REGISTRATION + +void jsb_register_system( JSContext *globalC, JSObject *globalO); + +#endif // __JSB_CHIPMUNK_REGISTRATION diff --git a/cocos/scripting/javascript/bindings/localstorage/libJSBindingForLocalStorage.vcxproj b/cocos/scripting/javascript/bindings/localstorage/libJSBindingForLocalStorage.vcxproj new file mode 100644 index 0000000000..2f074d6c17 --- /dev/null +++ b/cocos/scripting/javascript/bindings/localstorage/libJSBindingForLocalStorage.vcxproj @@ -0,0 +1,116 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + + + + + + + + + + {68F5F371-BD7B-4C30-AE5B-0B08F22E0CDE} + Win32Proj + libJSBindingForLocalStorage + + + + StaticLibrary + true + Unicode + v100 + v110 + v110_xp + + + StaticLibrary + false + Unicode + v100 + v110 + v110_xp + + + + + + + + + + + + + + + $(SolutionDir)$(Configuration).win32\ + + + $(Configuration).win32\ + + + $(SolutionDir)$(Configuration).win32\ + + + $(Configuration).win32\ + + + + + + Level3 + Disabled + WIN32;_WINDOWS;_DEBUG;_LIB;DEBUG;COCOS2D_DEBUG=1;XP_WIN;JS_HAVE___INTN;JS_INTPTR_TYPE=int;COCOS2D_JAVASCRIPT=1;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + $(ProjectDir)..;$(EngineRoot);$(EngineRoot)cocos;$(EngineRoot)cocos\storage;$(EngineRoot)cocos\audio\include;$(EngineRoot)cocos\scripting\auto-generated\js-bindings;$(EngineRoot)external;$(EngineRoot)external\chipmunk\include\chipmunk;$(EngineRoot)external\spidermonkey\include\win32;%(AdditionalIncludeDirectories) + 4068;4101;4800;4251;4244;%(DisableSpecificWarnings) + true + false + + + Windows + true + + + if not exist "$(OutDir)" mkdir "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\..\..\..\external\sqlite3\libraries\win32\*.*" "$(OutDir)" + + + + + Level3 + + + MaxSpeed + true + true + WIN32;_WINDOWS;NDEBUG;_LIB;XP_WIN;JS_HAVE___INTN;JS_INTPTR_TYPE=int;COCOS2D_JAVASCRIPT=1;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + $(ProjectDir)..;$(EngineRoot);$(EngineRoot)cocos;$(EngineRoot)cocos\storage;$(EngineRoot)cocos\audio\include;$(EngineRoot)cocos\scripting\auto-generated\js-bindings;$(EngineRoot)external;$(EngineRoot)external\chipmunk\include\chipmunk;$(EngineRoot)external\spidermonkey\include\win32;%(AdditionalIncludeDirectories) + 4068;4101;4800;4251;4244;%(DisableSpecificWarnings) + true + + + Windows + true + true + true + + + + + + + + + + \ No newline at end of file diff --git a/cocos/scripting/javascript/bindings/localstorage/libJSBindingForLocalStorage.vcxproj.filters b/cocos/scripting/javascript/bindings/localstorage/libJSBindingForLocalStorage.vcxproj.filters new file mode 100644 index 0000000000..9fc0ee4734 --- /dev/null +++ b/cocos/scripting/javascript/bindings/localstorage/libJSBindingForLocalStorage.vcxproj.filters @@ -0,0 +1,32 @@ + + + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + + + manual + + + manual + + + + + manual + + + manual + + + manual + + + \ No newline at end of file diff --git a/cocos/scripting/javascript/bindings/localstorage/libJSBindingForLocalStorage.vcxproj.user b/cocos/scripting/javascript/bindings/localstorage/libJSBindingForLocalStorage.vcxproj.user new file mode 100644 index 0000000000..3f03091124 --- /dev/null +++ b/cocos/scripting/javascript/bindings/localstorage/libJSBindingForLocalStorage.vcxproj.user @@ -0,0 +1,6 @@ + + + + false + + \ No newline at end of file diff --git a/cocos/scripting/javascript/bindings/network/XMLHTTPRequest.cpp b/cocos/scripting/javascript/bindings/network/XMLHTTPRequest.cpp new file mode 100644 index 0000000000..cc7b72c586 --- /dev/null +++ b/cocos/scripting/javascript/bindings/network/XMLHTTPRequest.cpp @@ -0,0 +1,847 @@ +// +// XMLHTTPRequest.cpp +// XMLHttpRequest +// +// Created by Zynga 2013 +// +// Heavy based on: https://github.com/funkaster/FakeWebGL/blob/master/FakeWebGL/WebGL/XMLHTTPRequest.cpp +// Copyright (c) 2012 Rolando Abarca. All rights reserved. +// +// 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 "XMLHTTPRequest.h" +#include + +using namespace std; + +//#pragma mark - MinXmlHttpRequest + +/** + * @brief Implementation for header retrieving. + * @param header + */ +void MinXmlHttpRequest::_gotHeader(string header) +{ + // Get Header and Set StatusText + // Split String into Tokens + char * cstr = new char [header.length()+1]; + + // check for colon. + unsigned found_header_field = header.find_first_of(":"); + + if (found_header_field != std::string::npos) + { + // Found a header field. + string http_field; + string http_value; + + http_field = header.substr(0,found_header_field); + http_value = header.substr(found_header_field+1, header.length()); + + // Get rid of all \n + if (!http_value.empty() && http_value[http_value.size() - 1] == '\n') { + http_value.erase(http_value.size() - 1); + } + + _httpHeader[http_field] = http_value; + + } + else + { + // Seems like we have the response Code! Parse it and check for it. + char * pch; + strcpy(cstr, header.c_str()); + + pch = strtok(cstr," "); + while (pch != NULL) + { + + stringstream ss; + string val; + + ss << pch; + val = ss.str(); + unsigned found_http = val.find("HTTP"); + + // Check for HTTP Header to set statusText + if (found_http != std::string::npos) { + + stringstream mystream; + + // Get Response Status + pch = strtok (NULL, " "); + mystream << pch; + + pch = strtok (NULL, " "); + mystream << " " << pch; + + _statusText = mystream.str(); + + } + + pch = strtok (NULL, " "); + } + } + + CC_SAFE_DELETE_ARRAY(cstr); +} + +/** + * @brief Set Request header for next call. + * @param field Name of the Header to be set. + * @param value Value of the Headerfield + */ +void MinXmlHttpRequest::_setRequestHeader(const char* field, const char* value) +{ + stringstream header_s; + stringstream value_s; + string header; + + map::iterator iter = _requestHeader.find(field); + + // Concatenate values when header exists. + if (iter != _requestHeader.end()) + { + value_s << iter->second << "," << value; + } + else + { + value_s << value; + } + + _requestHeader[field] = value_s.str(); +} + +/** + * @brief If headers has been set, pass them to curl. + * + */ +void MinXmlHttpRequest::_setHttpRequestHeader() +{ + std::vector header; + + for (auto it = _requestHeader.begin(); it != _requestHeader.end(); ++it) + { + const char* first = it->first.c_str(); + const char* second = it->second.c_str(); + size_t len = sizeof(char) * (strlen(first) + 3 + strlen(second)); + char* test = (char*) malloc(len); + memset(test, 0,len); + + strcpy(test, first); + strcpy(test + strlen(first) , ": "); + strcpy(test + strlen(first) + 2, second); + + header.push_back(test); + + free(test); + + } + + if (!header.empty()) + { + _httpRequest->setHeaders(header); + } + +} + +/** + * @brief Callback for HTTPRequest. Handles the response and invokes Callback. + * @param sender Object which initialized callback + * @param respone Response object + */ +void MinXmlHttpRequest::handle_requestResponse(network::HttpClient *sender, network::HttpResponse *response) +{ + if (0 != strlen(response->getHttpRequest()->getTag())) + { + CCLOG("%s completed", response->getHttpRequest()->getTag()); + } + + int statusCode = response->getResponseCode(); + char statusString[64] = {}; + sprintf(statusString, "HTTP Status Code: %d, tag = %s", statusCode, response->getHttpRequest()->getTag()); + + if (!response->isSucceed()) + { + CCLOG("response failed"); + CCLOG("error buffer: %s", response->getErrorBuffer()); + return; + } + + // set header + std::vector *headers = response->getResponseHeader(); + + char* concatHeader = (char*) malloc(headers->size() + 1); + std::string header(headers->begin(), headers->end()); + strcpy(concatHeader, header.c_str()); + + std::istringstream stream(concatHeader); + std::string line; + while(std::getline(stream, line)) { + _gotHeader(line); + } + + /** get the response data **/ + std::vector *buffer = response->getResponseData(); + char* concatenated = (char*) malloc(buffer->size() + 1); + std::string s2(buffer->begin(), buffer->end()); + + strcpy(concatenated, s2.c_str()); + + if (statusCode == 200) + { + //Succeeded + _status = 200; + _readyState = DONE; + _data << concatenated; + _dataSize = buffer->size(); + } + else + { + _status = 0; + } + // Free Memory. + free((void*) concatHeader); + free((void*) concatenated); + + js_proxy_t * p; + void* ptr = (void*)this; + p = jsb_get_native_proxy(ptr); + + if(p) + { + JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); + + if (_onreadystateCallback) + { + //JS_IsExceptionPending(cx) && JS_ReportPendingException(cx); + jsval fval = OBJECT_TO_JSVAL(_onreadystateCallback); + jsval out; + JS_CallFunctionValue(cx, NULL, fval, 0, NULL, &out); + } + + } + +} +/** + * @brief Send out request and fire callback when done. + * @param cx Javascript context + */ +void MinXmlHttpRequest::_sendRequest(JSContext *cx) +{ + _httpRequest->setResponseCallback(this, httpresponse_selector(MinXmlHttpRequest::handle_requestResponse)); + network::HttpClient::getInstance()->send(_httpRequest); + _httpRequest->release(); +} + +/** + * @brief Constructor initializes cchttprequest and stuff + * + */ +MinXmlHttpRequest::MinXmlHttpRequest() : _onreadystateCallback(NULL), _isNetwork(true) +{ + _httpHeader.clear(); + _requestHeader.clear(); + _withCredentialsValue = true; + _cx = ScriptingCore::getInstance()->getGlobalContext(); + _httpRequest = new network::HttpRequest(); +} + +/** + * @brief Destructor cleans up _httpRequest and stuff + * + */ +MinXmlHttpRequest::~MinXmlHttpRequest() +{ + _httpHeader.clear(); + _requestHeader.clear(); + + if (_onreadystateCallback != NULL) + { + JS_RemoveObjectRoot(_cx, &_onreadystateCallback); + } + + if (_httpRequest) + { + // We don't need to release _httpRequest here since it will be released in the http callback. +// _httpRequest->release(); + } + +} + +/** + * @brief Initialize Object and needed properties. + * + */ +JS_BINDED_CLASS_GLUE_IMPL(MinXmlHttpRequest); + +/** + * @brief Implementation for the Javascript Constructor + * + */ +JS_BINDED_CONSTRUCTOR_IMPL(MinXmlHttpRequest) +{ + MinXmlHttpRequest* req = new MinXmlHttpRequest(); + req->autorelease(); + + js_proxy_t *p; + jsval out; + + JSObject *obj = JS_NewObject(cx, &MinXmlHttpRequest::js_class, MinXmlHttpRequest::js_proto, MinXmlHttpRequest::js_parent); + + if (obj) { + JS_SetPrivate(obj, req); + out = OBJECT_TO_JSVAL(obj); + } + + JS_SET_RVAL(cx, vp, out); + p =jsb_new_proxy(req, obj); + + JS_AddNamedObjectRoot(cx, &p->obj, "XMLHttpRequest"); + return JS_TRUE; +} + +/** + * @brief get Callback function for Javascript + * + */ +JS_BINDED_PROP_GET_IMPL(MinXmlHttpRequest, onreadystatechange) +{ + if (_onreadystateCallback) + { + JSString *tmpstr = JS_NewStringCopyZ(cx, "1"); + jsval tmpval = STRING_TO_JSVAL(tmpstr); + JS_SetProperty(cx, _onreadystateCallback, "readyState", &tmpval); + + jsval out = OBJECT_TO_JSVAL(_onreadystateCallback); + vp.set(out); + + } + else + { + vp.set(JSVAL_NULL); + } + return JS_TRUE; +} + +/** + * @brief Set Callback function coming from Javascript + * + * + */ +JS_BINDED_PROP_SET_IMPL(MinXmlHttpRequest, onreadystatechange) +{ + jsval callback = vp.get(); + if (callback != JSVAL_NULL) + { + _onreadystateCallback = JSVAL_TO_OBJECT(callback); + JS_AddNamedObjectRoot(cx, &_onreadystateCallback, "onreadystateCallback"); + } + return JS_TRUE; +} + +/** + * @brief upload getter - TODO + * + * Placeholder for further implementations!! + */ +JS_BINDED_PROP_GET_IMPL(MinXmlHttpRequest, upload) +{ + vp.set(JSVAL_NULL); + return JS_TRUE; +} + +/** + * @brief upload setter - TODO + * + * Placeholder for further implementations + */ +JS_BINDED_PROP_SET_IMPL(MinXmlHttpRequest, upload) +{ + vp.set(JSVAL_NULL); + return JS_TRUE; +} + +/** + * @brief timeout getter - TODO + * + * Placeholder for further implementations + */ +JS_BINDED_PROP_GET_IMPL(MinXmlHttpRequest, timeout) +{ + vp.set(INT_TO_JSVAL(_timeout)); + return JS_TRUE; +} + +/** + * @brief timeout setter - TODO + * + * Placeholder for further implementations + */ +JS_BINDED_PROP_SET_IMPL(MinXmlHttpRequest, timeout) +{ + jsval timeout_ms = vp.get(); + + _timeout = JSVAL_TO_INT(timeout_ms); + //curl_easy_setopt(curlHandle, CURLOPT_CONNECTTIMEOUT_MS, timeout); + return JS_TRUE; + +} + +/** + * @brief get response type for actual XHR + * + * + */ +JS_BINDED_PROP_GET_IMPL(MinXmlHttpRequest, responseType) +{ + JSString* str = JS_NewStringCopyN(cx, "", 0); + vp.set(STRING_TO_JSVAL(str)); + return JS_TRUE; +} + +/** + * @brief responseXML getter - TODO + * + * Placeholder for further implementation. + */ +JS_BINDED_PROP_GET_IMPL(MinXmlHttpRequest, responseXML) +{ + vp.set(JSVAL_NULL); + return JS_TRUE; +} + +/** + * @brief set response type for actual XHR + * + * + */ +JS_BINDED_PROP_SET_IMPL(MinXmlHttpRequest, responseType) +{ + jsval type = vp.get(); + if (type.isString()) { + JSString* str = type.toString(); + JSBool equal; + + JS_StringEqualsAscii(cx, str, "text", &equal); + if (equal) + { + _responseType = ResponseType::STRING; + return JS_TRUE; + } + + JS_StringEqualsAscii(cx, str, "arraybuffer", &equal); + if (equal) + { + _responseType = ResponseType::ARRAY_BUFFER; + return JS_TRUE; + } + + JS_StringEqualsAscii(cx, str, "json", &equal); + if (equal) + { + _responseType = ResponseType::JSON; + return JS_TRUE; + } + // ignore the rest of the response types for now + return JS_TRUE; + } + JS_ReportError(cx, "Invalid response type"); + return JS_FALSE; +} + +/** + * @brief get readyState for actual XHR + * + * + */ +JS_BINDED_PROP_GET_IMPL(MinXmlHttpRequest, readyState) +{ + vp.set(INT_TO_JSVAL(_readyState)); + return JS_TRUE; +} + +/** + * @brief get status for actual XHR + * + * + */ +JS_BINDED_PROP_GET_IMPL(MinXmlHttpRequest, status) +{ + vp.set(INT_TO_JSVAL(_status)); + return JS_TRUE; +} + +/** + * @brief get statusText for actual XHR + * + * + */ +JS_BINDED_PROP_GET_IMPL(MinXmlHttpRequest, statusText) +{ + jsval strVal = std_string_to_jsval(cx, _statusText); + + if (strVal != JSVAL_NULL) + { + vp.set(strVal); + return JS_TRUE; + } + else + { + JS_ReportError(cx, "Error trying to create JSString from data"); + return JS_FALSE; + } +} + +/** + * @brief get value of withCredentials property. + * + */ +JS_BINDED_PROP_GET_IMPL(MinXmlHttpRequest, withCredentials) +{ + vp.set(BOOLEAN_TO_JSVAL(_withCredentialsValue)); + return JS_TRUE; +} + +/** + * withCredentials - set value of withCredentials property. + * + */ +JS_BINDED_PROP_SET_IMPL(MinXmlHttpRequest, withCredentials) +{ + jsval credential = vp.get(); + if (credential != JSVAL_NULL) + { + _withCredentialsValue = JSVAL_TO_BOOLEAN(credential); + } + + return JS_TRUE; +} + +/** + * @brief get (raw) responseText + * + */ +JS_BINDED_PROP_GET_IMPL(MinXmlHttpRequest, responseText) +{ + jsval strVal = std_string_to_jsval(cx, _data.str()); + + if (strVal != JSVAL_NULL) + { + vp.set(strVal); + //JS_ReportError(cx, "Result: %s", data.str().c_str()); + return JS_TRUE; + } else { + JS_ReportError(cx, "Error trying to create JSString from data"); + return JS_FALSE; + } +} + +/** + * @brief get response of latest XHR + * + */ +JS_BINDED_PROP_GET_IMPL(MinXmlHttpRequest, response) +{ + + if (_responseType == ResponseType::JSON) + { + jsval outVal; + + jsval strVal = std_string_to_jsval(cx, _data.str()); + if (JS_ParseJSON(cx, JS_GetStringCharsZ(cx, JSVAL_TO_STRING(strVal)), _dataSize, &outVal)) + { + vp.set(outVal); + return JS_TRUE; + } + } + else if (_responseType == ResponseType::ARRAY_BUFFER) + { + JSObject* tmp = JS_NewArrayBuffer(cx, _dataSize); + uint8_t* tmpData = JS_GetArrayBufferData(tmp); + _data.read((char*)tmpData, _dataSize); + jsval outVal = OBJECT_TO_JSVAL(tmp); + + vp.set(outVal); + return JS_TRUE; + } + // by default, return text + return _js_get_responseText(cx, id, vp); +} + +/** + * @brief initialize new xhr. + * + */ +JS_BINDED_FUNC_IMPL(MinXmlHttpRequest, open) +{ + if (argc >= 2) + { + jsval* argv = JS_ARGV(cx, vp); + const char* method; + const char* urlstr; + JSBool async = true; + JSString* jsMethod = JS_ValueToString(cx, argv[0]); + JSString* jsURL = JS_ValueToString(cx, argv[1]); + + if (argc > 2) { + JS_ValueToBoolean(cx, argv[2], &async); + } + + JSStringWrapper w1(jsMethod); + JSStringWrapper w2(jsURL); + method = w1; + urlstr = w2; + + _url = urlstr; + _meth = method; + _readyState = 1; + _isAsync = async; + + if (_url.length() > 5 && _url.compare(_url.length() - 5, 5, ".json") == 0) + { + _responseType = ResponseType::JSON; + } + + if (_meth.compare("post") == 0 || _meth.compare("POST") == 0) + { + _httpRequest->setRequestType(network::HttpRequest::Type::POST); + } + else + { + _httpRequest->setRequestType(network::HttpRequest::Type::GET); + } + + _httpRequest->setUrl(_url.c_str()); + + _isNetwork = true; + _readyState = OPENED; + + return JS_TRUE; + } + + JS_ReportError(cx, "invalid call: %s", __FUNCTION__); + return JS_FALSE; + +} + +/** + * @brief send xhr + * + */ +JS_BINDED_FUNC_IMPL(MinXmlHttpRequest, send) +{ + JSString *str = NULL; + std::string data; + + // Clean up header map. New request, new headers! + _httpHeader.clear(); + + if (argc == 1) + { + if (!JS_ConvertArguments(cx, argc, JS_ARGV(cx, vp), "S", &str)) + { + return JS_FALSE; + } + JSStringWrapper strWrap(str); + data = strWrap.get(); + } + + + if (data.length() > 0 && (_meth.compare("post") == 0 || _meth.compare("POST") == 0)) + { + _httpRequest->setRequestData(data.c_str(), data.length()); + } + + _setHttpRequestHeader(); + _sendRequest(cx); + + return JS_TRUE; +} + +/** + * @brief abort function Placeholder! + * + */ +JS_BINDED_FUNC_IMPL(MinXmlHttpRequest, abort) +{ + return JS_TRUE; +} + +/** + * @brief Get all response headers as a string + * + */ +JS_BINDED_FUNC_IMPL(MinXmlHttpRequest, getAllResponseHeaders) +{ + stringstream responseheaders; + string responseheader; + + for (auto it = _httpHeader.begin(); it != _httpHeader.end(); ++it) + { + responseheaders << it->first << ": " << it->second << "\n"; + } + + responseheader = responseheaders.str(); + + jsval strVal = std_string_to_jsval(cx, responseheader); + if (strVal != JSVAL_NULL) + { + JS_SET_RVAL(cx, vp, strVal); + return JS_TRUE; + } + else + { + JS_ReportError(cx, "Error trying to create JSString from data"); + return JS_FALSE; + } + + return JS_TRUE; +} + +/** + * @brief Get all response headers as a string + * + */ +JS_BINDED_FUNC_IMPL(MinXmlHttpRequest, getResponseHeader) +{ + JSString *header_value; + + if (!JS_ConvertArguments(cx, argc, JS_ARGV(cx, vp), "S", &header_value)) { + return JS_FALSE; + }; + + std::string data; + JSStringWrapper strWrap(header_value); + data = strWrap.get(); + + stringstream streamdata; + + streamdata << data; + + string value = streamdata.str(); + + auto iter = _httpHeader.find(value); + if (iter != _httpHeader.end()) + { + jsval js_ret_val = std_string_to_jsval(cx, iter->second); + JS_SET_RVAL(cx, vp, js_ret_val); + return JS_TRUE; + } + else { + JS_SET_RVAL(cx, vp, JSVAL_NULL); + return JS_TRUE; + } +} + +/** + * @brief Set the given Fields to request Header. + * + * + */ +JS_BINDED_FUNC_IMPL(MinXmlHttpRequest, setRequestHeader) +{ + if (argc >= 2) + { + jsval* argv = JS_ARGV(cx, vp); + const char* field; + const char* value; + + JSString* jsField = JS_ValueToString(cx, argv[0]); + JSString* jsValue = JS_ValueToString(cx, argv[1]); + + JSStringWrapper w1(jsField); + JSStringWrapper w2(jsValue); + field = w1; + value = w2; + + // Populate the request_header map. + _setRequestHeader(field, value); + + return JS_TRUE; + } + + return JS_FALSE; + +} + +/** + * @brief overrideMimeType function - TODO! + * + * Just a placeholder for further implementations. + */ +JS_BINDED_FUNC_IMPL(MinXmlHttpRequest, overrideMimeType) +{ + return JS_TRUE; +} + +/** + * @brief destructor for Javascript + * + */ +static void basic_object_finalize(JSFreeOp *freeOp, JSObject *obj) +{ + CCLOG("basic_object_finalize %p ...", obj); +} + +/** + * @brief Register XMLHttpRequest to be usable in JS and add properties and Mehtods. + * @param cx Global Spidermonkey JS Context. + * @param global Global Spidermonkey Javascript object. + */ +void MinXmlHttpRequest::_js_register(JSContext *cx, JSObject *global) +{ + JSClass js_class = { + "XMLHttpRequest", JSCLASS_HAS_PRIVATE, JS_PropertyStub, + JS_DeletePropertyStub, JS_PropertyStub, JS_StrictPropertyStub, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, + basic_object_finalize, JSCLASS_NO_OPTIONAL_MEMBERS + }; + + MinXmlHttpRequest::js_class = js_class; + static JSPropertySpec props[] = { + JS_BINDED_PROP_DEF_ACCESSOR(MinXmlHttpRequest, onreadystatechange), + JS_BINDED_PROP_DEF_ACCESSOR(MinXmlHttpRequest, responseType), + JS_BINDED_PROP_DEF_ACCESSOR(MinXmlHttpRequest, withCredentials), + JS_BINDED_PROP_DEF_GETTER(MinXmlHttpRequest, readyState), + JS_BINDED_PROP_DEF_GETTER(MinXmlHttpRequest, status), + JS_BINDED_PROP_DEF_GETTER(MinXmlHttpRequest, statusText), + JS_BINDED_PROP_DEF_GETTER(MinXmlHttpRequest, responseText), + JS_BINDED_PROP_DEF_GETTER(MinXmlHttpRequest, responseXML), + JS_BINDED_PROP_DEF_GETTER(MinXmlHttpRequest, response), + {0, 0, 0, 0, 0} + }; + + static JSFunctionSpec funcs[] = { + JS_BINDED_FUNC_FOR_DEF(MinXmlHttpRequest, open), + JS_BINDED_FUNC_FOR_DEF(MinXmlHttpRequest, abort), + JS_BINDED_FUNC_FOR_DEF(MinXmlHttpRequest, send), + JS_BINDED_FUNC_FOR_DEF(MinXmlHttpRequest, setRequestHeader), + JS_BINDED_FUNC_FOR_DEF(MinXmlHttpRequest, getAllResponseHeaders), + JS_BINDED_FUNC_FOR_DEF(MinXmlHttpRequest, getResponseHeader), + JS_BINDED_FUNC_FOR_DEF(MinXmlHttpRequest, overrideMimeType), + JS_FS_END + }; + + MinXmlHttpRequest::js_parent = NULL; + MinXmlHttpRequest::js_proto = JS_InitClass(cx, global, NULL, &MinXmlHttpRequest::js_class , MinXmlHttpRequest::_js_constructor, 0, props, funcs, NULL, NULL); + +} + diff --git a/cocos/scripting/javascript/bindings/network/XMLHTTPRequest.h b/cocos/scripting/javascript/bindings/network/XMLHTTPRequest.h new file mode 100644 index 0000000000..861e0a2536 --- /dev/null +++ b/cocos/scripting/javascript/bindings/network/XMLHTTPRequest.h @@ -0,0 +1,112 @@ +// +// XMLHTTPRequest.h +// XMLHttpRequest +// +// Created by Zynga 2013 +// +// Heavy based on: https://github.com/funkaster/FakeWebGL/blob/master/FakeWebGL/WebGL/XMLHTTPRequest.h +// Copyright (c) 2012 Rolando Abarca. All rights reserved. +// +// 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 __FAKE_XMLHTTPREQUEST_H__ +#define __FAKE_XMLHTTPREQUEST_H__ + +#include "network/HttpClient.h" +#include "js_bindings_config.h" +#include "ScriptingCore.h" +#include "jstypes.h" +#include "jsapi.h" +#include "jsfriendapi.h" +#include "jsb_helper.h" + +class MinXmlHttpRequest : public cocos2d::Object +{ +public: + enum class ResponseType + { + STRING, + ARRAY_BUFFER, + BLOB, + DOCUMENT, + JSON + }; + + // Ready States (http://www.w3.org/TR/XMLHttpRequest/#interface-xmlhttprequest) + static const unsigned short UNSENT = 0; + static const unsigned short OPENED = 1; + static const unsigned short HEADERS_RECEIVED = 2; + static const unsigned short LOADING = 3; + static const unsigned short DONE = 4; + + MinXmlHttpRequest(); + ~MinXmlHttpRequest(); + + JS_BINDED_CLASS_GLUE(MinXmlHttpRequest); + JS_BINDED_CONSTRUCTOR(MinXmlHttpRequest); + JS_BINDED_PROP_ACCESSOR(MinXmlHttpRequest, onreadystatechange); + JS_BINDED_PROP_ACCESSOR(MinXmlHttpRequest, responseType); + JS_BINDED_PROP_ACCESSOR(MinXmlHttpRequest, withCredentials); + JS_BINDED_PROP_ACCESSOR(MinXmlHttpRequest, upload); + JS_BINDED_PROP_ACCESSOR(MinXmlHttpRequest, timeout); + JS_BINDED_PROP_GET(MinXmlHttpRequest, readyState); + JS_BINDED_PROP_GET(MinXmlHttpRequest, status); + JS_BINDED_PROP_GET(MinXmlHttpRequest, statusText); + JS_BINDED_PROP_GET(MinXmlHttpRequest, responseText); + JS_BINDED_PROP_GET(MinXmlHttpRequest, response); + JS_BINDED_PROP_GET(MinXmlHttpRequest, responseXML); + JS_BINDED_FUNC(MinXmlHttpRequest, open); + JS_BINDED_FUNC(MinXmlHttpRequest, send); + JS_BINDED_FUNC(MinXmlHttpRequest, abort); + JS_BINDED_FUNC(MinXmlHttpRequest, getAllResponseHeaders); + JS_BINDED_FUNC(MinXmlHttpRequest, getResponseHeader); + JS_BINDED_FUNC(MinXmlHttpRequest, setRequestHeader); + JS_BINDED_FUNC(MinXmlHttpRequest, overrideMimeType); + + void handle_requestResponse(network::HttpClient *sender, network::HttpResponse *response); + + +private: + void _gotHeader(std::string header); + void _setRequestHeader(const char* field, const char* value); + void _setHttpRequestHeader(); + void _sendRequest(JSContext *cx); + + std::string _url; + JSContext* _cx; + std::string _meth; + std::string _type; + std::stringstream _data; + size_t _dataSize; + JSObject* _onreadystateCallback; + int _readyState; + int _status; + std::string _statusText; + ResponseType _responseType; + unsigned _timeout; + bool _isAsync; + network::HttpRequest* _httpRequest; + bool _isNetwork; + bool _withCredentialsValue; + std::map _httpHeader; + std::map _requestHeader; +}; + +#endif diff --git a/cocos/scripting/javascript/bindings/network/jsb_websocket.cpp b/cocos/scripting/javascript/bindings/network/jsb_websocket.cpp new file mode 100644 index 0000000000..b5083ad268 --- /dev/null +++ b/cocos/scripting/javascript/bindings/network/jsb_websocket.cpp @@ -0,0 +1,382 @@ +/**************************************************************************** +Copyright (c) 2013 cocos2d-x.org +Copyright (c) 2013 James Chen + +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 "jsb_websocket.h" +#include "cocos2d.h" +#include "network/WebSocket.h" +#include "spidermonkey_specifics.h" +#include "ScriptingCore.h" +#include "cocos2d_specifics.hpp" + +using namespace network; + +/* + [Constructor(in DOMString url, in optional DOMString protocols)] + [Constructor(in DOMString url, in optional DOMString[] protocols)] + interface WebSocket { + readonly attribute DOMString url; + + // ready state + const unsigned short CONNECTING = 0; + const unsigned short OPEN = 1; + const unsigned short CLOSING = 2; + const unsigned short CLOSED = 3; + readonly attribute unsigned short readyState; + readonly attribute unsigned long bufferedAmount; + + // networking + attribute Function onopen; + attribute Function onmessage; + attribute Function onerror; + attribute Function onclose; + readonly attribute DOMString protocol; + void send(in DOMString data); + void close(); + }; + WebSocket implements EventTarget; + */ + +class JSB_WebSocketDelegate : public WebSocket::Delegate +{ +public: + + virtual void onOpen(WebSocket* ws) + { + js_proxy_t * p = jsb_get_native_proxy(ws); + if (!p) return; + + JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); + JSObject* jsobj = JS_NewObject(cx, NULL, NULL, NULL); + jsval vp = c_string_to_jsval(cx, "open"); + JS_SetProperty(cx, jsobj, "type", &vp); + + jsval args = OBJECT_TO_JSVAL(jsobj); + + ScriptingCore::getInstance()->executeFunctionWithOwner(OBJECT_TO_JSVAL(_JSDelegate), "onopen", 1, &args); + } + + virtual void onMessage(WebSocket* ws, const WebSocket::Data& data) + { + js_proxy_t * p = jsb_get_native_proxy(ws); + if (!p) return; + + JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); + JSObject* jsobj = JS_NewObject(cx, NULL, NULL, NULL); + jsval vp = c_string_to_jsval(cx, "message"); + JS_SetProperty(cx, jsobj, "type", &vp); + + jsval args = OBJECT_TO_JSVAL(jsobj); + + if (data.isBinary) + {// data is binary + JSObject* buffer = JS_NewArrayBuffer(cx, data.len); + uint8_t* bufdata = JS_GetArrayBufferData(buffer); + memcpy((void*)bufdata, (void*)data.bytes, data.len); + jsval dataVal = OBJECT_TO_JSVAL(buffer); + JS_SetProperty(cx, jsobj, "data", &dataVal); + } + else + {// data is string + jsval dataVal = c_string_to_jsval(cx, data.bytes); + JS_SetProperty(cx, jsobj, "data", &dataVal); + } + + ScriptingCore::getInstance()->executeFunctionWithOwner(OBJECT_TO_JSVAL(_JSDelegate), "onmessage", 1, &args); + } + + virtual void onClose(WebSocket* ws) + { + js_proxy_t * p = jsb_get_native_proxy(ws); + if (!p) return; + + JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); + JSObject* jsobj = JS_NewObject(cx, NULL, NULL, NULL); + jsval vp = c_string_to_jsval(cx, "close"); + JS_SetProperty(cx, jsobj, "type", &vp); + + jsval args = OBJECT_TO_JSVAL(jsobj); + ScriptingCore::getInstance()->executeFunctionWithOwner(OBJECT_TO_JSVAL(_JSDelegate), "onclose", 1, &args); + + js_proxy_t* jsproxy = jsb_get_js_proxy(p->obj); + JS_RemoveObjectRoot(cx, &jsproxy->obj); + jsb_remove_proxy(p, jsproxy); + CC_SAFE_DELETE(ws); + } + + virtual void onError(WebSocket* ws, const WebSocket::ErrorCode& error) + { + js_proxy_t * p = jsb_get_native_proxy(ws); + if (!p) return; + + JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); + JSObject* jsobj = JS_NewObject(cx, NULL, NULL, NULL); + jsval vp = c_string_to_jsval(cx, "error"); + JS_SetProperty(cx, jsobj, "type", &vp); + + jsval args = OBJECT_TO_JSVAL(jsobj); + + ScriptingCore::getInstance()->executeFunctionWithOwner(OBJECT_TO_JSVAL(_JSDelegate), "onerror", 1, &args); + } + + void setJSDelegate(JSObject* pJSDelegate) + { + _JSDelegate = pJSDelegate; + } +private: + JSObject* _JSDelegate; +}; + +JSClass *js_cocos2dx_websocket_class; +JSObject *js_cocos2dx_websocket_prototype; + +void js_cocos2dx_WebSocket_finalize(JSFreeOp *fop, JSObject *obj) { + CCLOG("jsbindings: finalizing JS object %p (WebSocket)", obj); +} + +JSBool js_cocos2dx_extension_WebSocket_send(JSContext *cx, uint32_t argc, jsval *vp) +{ + jsval *argv = JS_ARGV(cx, vp); + JSObject *obj = JS_THIS_OBJECT(cx, vp); + js_proxy_t *proxy = jsb_get_js_proxy(obj); + WebSocket* cobj = (WebSocket *)(proxy ? proxy->ptr : NULL); + JSB_PRECONDITION2( cobj, cx, JS_FALSE, "Invalid Native Object"); + + if(argc == 1){ + do + { + if (JSVAL_IS_STRING(argv[0])) + { + std::string data; + jsval_to_std_string(cx, argv[0], &data); + cobj->send(data); + break; + } + + if (argv[0].isObject()) + { + uint8_t *bufdata = NULL; + uint32_t len = 0; + + JSObject* jsobj = JSVAL_TO_OBJECT(argv[0]); + if (JS_IsArrayBufferObject(jsobj)) + { + bufdata = JS_GetArrayBufferData(jsobj); + len = JS_GetArrayBufferByteLength(jsobj); + } + else if (JS_IsArrayBufferViewObject(jsobj)) + { + bufdata = (uint8_t*)JS_GetArrayBufferViewData(jsobj); + len = JS_GetArrayBufferViewByteLength(jsobj); + } + + if (bufdata && len > 0) + { + cobj->send(bufdata, len); + break; + } + } + + JS_ReportError(cx, "data type to be sent is unsupported."); + + } while (0); + + JS_SET_RVAL(cx, vp, JSVAL_VOID); + + return JS_TRUE; + } + JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0); + return JS_TRUE; +} + +JSBool js_cocos2dx_extension_WebSocket_close(JSContext *cx, uint32_t argc, jsval *vp){ + JSObject *obj = JS_THIS_OBJECT(cx, vp); + js_proxy_t *proxy = jsb_get_js_proxy(obj); + WebSocket* cobj = (WebSocket *)(proxy ? proxy->ptr : NULL); + JSB_PRECONDITION2( cobj, cx, JS_FALSE, "Invalid Native Object"); + + if(argc == 0){ + cobj->close(); + JS_SET_RVAL(cx, vp, JSVAL_VOID); + return JS_TRUE; + } + JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0); + return JS_FALSE; +} + +JSBool js_cocos2dx_extension_WebSocket_constructor(JSContext *cx, uint32_t argc, jsval *vp) +{ + jsval *argv = JS_ARGV(cx, vp); + + if (argc == 1 || argc == 2) + { + + std::string url; + + do { + JSBool ok = jsval_to_std_string(cx, argv[0], &url); + JSB_PRECONDITION2( ok, cx, JS_FALSE, "Error processing arguments"); + } while (0); + + JSObject *obj = JS_NewObject(cx, js_cocos2dx_websocket_class, js_cocos2dx_websocket_prototype, NULL); + + + WebSocket* cobj = new WebSocket(); + JSB_WebSocketDelegate* delegate = new JSB_WebSocketDelegate(); + delegate->setJSDelegate(obj); + + if (argc == 2) + { + std::vector protocols; + + if (JSVAL_IS_STRING(argv[1])) + { + std::string protocol; + do { + JSBool ok = jsval_to_std_string(cx, argv[1], &protocol); + JSB_PRECONDITION2( ok, cx, JS_FALSE, "Error processing arguments"); + } while (0); + protocols.push_back(protocol); + } + else if (argv[1].isObject()) + { + JSBool ok = JS_TRUE; + JSObject* arg2 = JSVAL_TO_OBJECT(argv[1]); + JSB_PRECONDITION(JS_IsArrayObject( cx, arg2 ), "Object must be an array"); + + uint32_t len = 0; + JS_GetArrayLength(cx, arg2, &len); + + for( uint32_t i=0; i< len;i++ ) + { + jsval valarg; + JS_GetElement(cx, arg2, i, &valarg); + std::string protocol; + do { + ok = jsval_to_std_string(cx, valarg, &protocol); + JSB_PRECONDITION2( ok, cx, JS_FALSE, "Error processing arguments"); + } while (0); + + protocols.push_back(protocol); + } + } + cobj->init(*delegate, url, &protocols); + } + else + { + cobj->init(*delegate, url); + } + + + JS_DefineProperty(cx, obj, "URL", argv[0] + , NULL, NULL, JSPROP_ENUMERATE | JSPROP_PERMANENT | JSPROP_READONLY); + + //protocol not support yet (always return "") + JS_DefineProperty(cx, obj, "protocol", c_string_to_jsval(cx, "") + , NULL, NULL, JSPROP_ENUMERATE | JSPROP_PERMANENT | JSPROP_READONLY); + + // link the native object with the javascript object + js_proxy_t *p = jsb_new_proxy(cobj, obj); + JS_AddNamedObjectRoot(cx, &p->obj, "WebSocket"); + + JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj)); + return JS_TRUE; + } + + JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0); + return JS_FALSE; +} + +static JSBool js_cocos2dx_extension_WebSocket_get_readyState(JSContext *cx, JSHandleObject obj, JSHandleId id, JSMutableHandleValue vp) +{ + JSObject* jsobj = obj.get(); + js_proxy_t *proxy = jsb_get_js_proxy(jsobj); + WebSocket* cobj = (WebSocket *)(proxy ? proxy->ptr : NULL); + JSB_PRECONDITION2( cobj, cx, JS_FALSE, "Invalid Native Object"); + + if (cobj) { + vp.set(INT_TO_JSVAL((int)cobj->getReadyState())); + return JS_TRUE; + } else { + JS_ReportError(cx, "Error: WebSocket instance is invalid."); + return JS_FALSE; + } +} + +void register_jsb_websocket(JSContext *cx, JSObject *global) { + + js_cocos2dx_websocket_class = (JSClass *)calloc(1, sizeof(JSClass)); + js_cocos2dx_websocket_class->name = "WebSocket"; + js_cocos2dx_websocket_class->addProperty = JS_PropertyStub; + js_cocos2dx_websocket_class->delProperty = JS_DeletePropertyStub; + js_cocos2dx_websocket_class->getProperty = JS_PropertyStub; + js_cocos2dx_websocket_class->setProperty = JS_StrictPropertyStub; + js_cocos2dx_websocket_class->enumerate = JS_EnumerateStub; + js_cocos2dx_websocket_class->resolve = JS_ResolveStub; + js_cocos2dx_websocket_class->convert = JS_ConvertStub; + js_cocos2dx_websocket_class->finalize = js_cocos2dx_WebSocket_finalize; + js_cocos2dx_websocket_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2); + + static JSPropertySpec properties[] = { + {"readyState", 0, JSPROP_ENUMERATE | JSPROP_PERMANENT | JSPROP_SHARED, JSOP_WRAPPER(js_cocos2dx_extension_WebSocket_get_readyState), NULL}, + {0, 0, 0, 0, 0} + }; + + static JSFunctionSpec funcs[] = { + JS_FN("send",js_cocos2dx_extension_WebSocket_send, 1, JSPROP_PERMANENT | JSPROP_ENUMERATE), + JS_FN("close",js_cocos2dx_extension_WebSocket_close, 0, JSPROP_PERMANENT | JSPROP_ENUMERATE), + JS_FS_END + }; + + static JSFunctionSpec st_funcs[] = { + JS_FS_END + }; + + js_cocos2dx_websocket_prototype = JS_InitClass( + cx, global, + NULL, + js_cocos2dx_websocket_class, + js_cocos2dx_extension_WebSocket_constructor, 0, // constructor + properties, + funcs, + NULL, // no static properties + st_funcs); + + JSObject* jsclassObj = JSVAL_TO_OBJECT(anonEvaluate(cx, global, "(function () { return WebSocket; })()")); + + JS_DefineProperty(cx, jsclassObj, "CONNECTING", INT_TO_JSVAL((int)WebSocket::State::CONNECTING) + , NULL, NULL, JSPROP_ENUMERATE | JSPROP_PERMANENT | JSPROP_READONLY); + JS_DefineProperty(cx, jsclassObj, "OPEN", INT_TO_JSVAL((int)WebSocket::State::OPEN) + , NULL, NULL, JSPROP_ENUMERATE | JSPROP_PERMANENT | JSPROP_READONLY); + JS_DefineProperty(cx, jsclassObj, "CLOSING", INT_TO_JSVAL((int)WebSocket::State::CLOSING) + , NULL, NULL, JSPROP_ENUMERATE | JSPROP_PERMANENT | JSPROP_READONLY); + JS_DefineProperty(cx, jsclassObj, "CLOSED", INT_TO_JSVAL((int)WebSocket::State::CLOSED) + , NULL, NULL, JSPROP_ENUMERATE | JSPROP_PERMANENT | JSPROP_READONLY); + + // make the class enumerable in the registered namespace + JSBool found; + JS_SetPropertyAttributes(cx, global, "WebSocket", JSPROP_ENUMERATE | JSPROP_READONLY, &found); +} + + diff --git a/cocos/scripting/javascript/bindings/network/jsb_websocket.h b/cocos/scripting/javascript/bindings/network/jsb_websocket.h new file mode 100644 index 0000000000..cde0f40b2e --- /dev/null +++ b/cocos/scripting/javascript/bindings/network/jsb_websocket.h @@ -0,0 +1,34 @@ +/**************************************************************************** +Copyright (c) 2013 cocos2d-x.org +Copyright (c) 2013 James Chen + +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 __jsb_websocket__ +#define __jsb_websocket__ + +#include "jsapi.h" +#include "jsfriendapi.h" + +void register_jsb_websocket(JSContext* cx, JSObject* global); + +#endif /* defined(__jsb_websocket__) */ diff --git a/cocos/scripting/javascript/bindings/network/libJSBindingForNetwork.vcxproj b/cocos/scripting/javascript/bindings/network/libJSBindingForNetwork.vcxproj new file mode 100644 index 0000000000..e4ff3eed4b --- /dev/null +++ b/cocos/scripting/javascript/bindings/network/libJSBindingForNetwork.vcxproj @@ -0,0 +1,115 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + + + + + + + + + {3BEC13F5-E227-4D80-BC77-1C857F83BCFC} + Win32Proj + libJSBindingForNetwork + + + + StaticLibrary + true + Unicode + v100 + v110 + v110_xp + + + StaticLibrary + false + Unicode + v100 + v110 + v110_xp + + + + + + + + + + + + + + + $(SolutionDir)$(Configuration).win32\ + + + $(Configuration).win32\ + + + $(SolutionDir)$(Configuration).win32\ + + + $(Configuration).win32\ + + + + + + Level3 + Disabled + WIN32;_WINDOWS;_DEBUG;_LIB;DEBUG;COCOS2D_DEBUG=1;XP_WIN;JS_HAVE___INTN;JS_INTPTR_TYPE=int;COCOS2D_JAVASCRIPT=1;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + $(ProjectDir)..;$(EngineRoot);$(EngineRoot)cocos;$(EngineRoot)cocos\network;$(EngineRoot)cocos\audio\include;$(EngineRoot)cocos\scripting\auto-generated\js-bindings;$(EngineRoot)external\spidermonkey\include\win32;$(EngineRoot)external\chipmunk\include\chipmunk;$(EngineRoot)external\websockets\include\win32;%(AdditionalIncludeDirectories) + 4068;4101;4800;4251;4244;%(DisableSpecificWarnings) + true + false + + + Windows + true + + + if not exist "$(OutDir)" mkdir "$(OutDir)" +xcopy /Y /Q "$(ProjectDir)..\..\..\..\..\external\sqlite3\libraries\win32\*.*" "$(OutDir)" + + + + + Level3 + + + MaxSpeed + true + true + WIN32;_WINDOWS;NDEBUG;_LIB;XP_WIN;JS_HAVE___INTN;JS_INTPTR_TYPE=int;COCOS2D_JAVASCRIPT=1;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + $(ProjectDir)..;$(EngineRoot);$(EngineRoot)cocos;$(EngineRoot)cocos\network;$(EngineRoot)cocos\audio\include;$(EngineRoot)cocos\scripting\auto-generated\js-bindings;$(EngineRoot)external\spidermonkey\include\win32;$(EngineRoot)external\chipmunk\include\chipmunk;$(EngineRoot)external\websockets\include\win32;%(AdditionalIncludeDirectories) + 4068;4101;4800;4251;4244;%(DisableSpecificWarnings) + true + + + Windows + true + true + true + + + + + + + + + + \ No newline at end of file diff --git a/cocos/scripting/javascript/bindings/network/libJSBindingForNetwork.vcxproj.filters b/cocos/scripting/javascript/bindings/network/libJSBindingForNetwork.vcxproj.filters new file mode 100644 index 0000000000..3fd3c5a5d1 --- /dev/null +++ b/cocos/scripting/javascript/bindings/network/libJSBindingForNetwork.vcxproj.filters @@ -0,0 +1,29 @@ + + + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + + + manual + + + manual + + + + + manual + + + manual + + + \ No newline at end of file diff --git a/cocos/scripting/javascript/bindings/network/libJSBindingForNetwork.vcxproj.user b/cocos/scripting/javascript/bindings/network/libJSBindingForNetwork.vcxproj.user new file mode 100644 index 0000000000..3f03091124 --- /dev/null +++ b/cocos/scripting/javascript/bindings/network/libJSBindingForNetwork.vcxproj.user @@ -0,0 +1,6 @@ + + + + false + + \ No newline at end of file diff --git a/cocos/storage/local-storage/proj.win32/libLocalStorage.vcxproj b/cocos/storage/local-storage/proj.win32/libLocalStorage.vcxproj new file mode 100644 index 0000000000..d79eb7ce1c --- /dev/null +++ b/cocos/storage/local-storage/proj.win32/libLocalStorage.vcxproj @@ -0,0 +1,93 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + + + + + + + {632A8F38-D0F0-4D22-86B3-D69F5E6BF63A} + libLocalStorage + + + + StaticLibrary + true + v110_xp + Unicode + + + StaticLibrary + false + v110_xp + true + Unicode + + + + + + + + + + + + + + + $(SolutionDir)$(Configuration).win32\ + $(Configuration).win32\ + + + $(SolutionDir)$(Configuration).win32\ + $(Configuration).win32\ + + + + Level3 + Disabled + + + $(EngineRoot)external\sqlite3\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_LIB;COCOS2DXWIN32_EXPORTS;GL_GLEXT_PROTOTYPES;COCOS2D_DEBUG=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + 4267;4251;4244;%(DisableSpecificWarnings) + false + + + true + + + + + Level3 + MaxSpeed + true + true + + + $(EngineRoot)external\sqlite3\include;%(AdditionalIncludeDirectories) + WIN32;_WINDOWS;_LIB;COCOS2DXWIN32_EXPORTS;GL_GLEXT_PROTOTYPES;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + + + true + true + true + + + + + + \ No newline at end of file diff --git a/cocos/storage/local-storage/proj.win32/libLocalStorage.vcxproj.filters b/cocos/storage/local-storage/proj.win32/libLocalStorage.vcxproj.filters new file mode 100644 index 0000000000..b23d606b74 --- /dev/null +++ b/cocos/storage/local-storage/proj.win32/libLocalStorage.vcxproj.filters @@ -0,0 +1,21 @@ + + + + + {0310200c-b520-4f77-85f6-46f568b10f4d} + + + {69cfa37c-4b20-409e-ad74-a26314878d8a} + + + + + Source Files + + + + + Header Files + + + \ No newline at end of file diff --git a/cocos/storage/local-storage/proj.win32/libLocalStorage.vcxproj.user b/cocos/storage/local-storage/proj.win32/libLocalStorage.vcxproj.user new file mode 100644 index 0000000000..a375ae3527 --- /dev/null +++ b/cocos/storage/local-storage/proj.win32/libLocalStorage.vcxproj.user @@ -0,0 +1,4 @@ + + + + \ No newline at end of file From b56a9962a6f4334856bb79792244094255014944 Mon Sep 17 00:00:00 2001 From: James Chen Date: Tue, 22 Oct 2013 15:32:44 +0800 Subject: [PATCH 08/18] Update CHANGELOG --- CHANGELOG | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG b/CHANGELOG index 62169acdf3..b1708fabda 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -19,6 +19,7 @@ cocos2d-x-3.0alpha1 @??? 2013 [FIX] Fixed a memory leak in ScriptingCore::runScript() [FIX] sys.localStorage.getItem() does not support non-ascii string. [FIX] cc.Scheduler.schedule(target, func) without repeat argument couldn't repeat schedule forever on device. + [FIX] CCBReader can't play sequence automatically in JSB. [Lua Binding] [NEW] Added Armature lua binding and added test samples. From 7ef5bd81109facaeadc5cc2d1f639e5b9fedfc7c Mon Sep 17 00:00:00 2001 From: James Chen Date: Tue, 22 Oct 2013 15:34:32 +0800 Subject: [PATCH 09/18] Update AUTHORS --- AUTHORS | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index 71cba826b3..f416e6c39f 100644 --- a/AUTHORS +++ b/AUTHORS @@ -622,7 +622,10 @@ Developers: lettas A fix for multi-platform template. - + + HoGarfield (garfield_ho) + Fixed a bug that CCBReader can't play sequence automatically in JSB. + Retired Core Developers: WenSheng Yang Author of windows port, CCTextField, From 55d45081f68833473851617adce8d382ee30ed83 Mon Sep 17 00:00:00 2001 From: garfield_ho Date: Tue, 22 Oct 2013 15:41:43 +0800 Subject: [PATCH 10/18] Fixed name --- cocos/scripting/javascript/script/jsb_cocos2d.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cocos/scripting/javascript/script/jsb_cocos2d.js b/cocos/scripting/javascript/script/jsb_cocos2d.js index 6ed7e19cba..684eb386d9 100644 --- a/cocos/scripting/javascript/script/jsb_cocos2d.js +++ b/cocos/scripting/javascript/script/jsb_cocos2d.js @@ -7,10 +7,10 @@ var cc = cc || {}; cc.RESOLUTION_POLICY = { // The entire application is visible in the specified area without trying to preserve the original aspect ratio. // Distortion can occur, and the application may appear stretched or compressed. -EXACTFIT:0, +EXACT_FIT:0, // The entire application fills the specified area, without distortion but possibly with some cropping, // while maintaining the original aspect ratio of the application. -NOBORDER:1, +NO_BORDER:1, // The entire application is visible in the specified area without distortion while maintaining the original // aspect ratio of the application. Borders can appear on two sides of the application. SHOW_ALL:2, @@ -18,12 +18,12 @@ SHOW_ALL:2, // canvas so that it fits the aspect ratio of the device // no distortion will occur however you must make sure your application works on different // aspect ratios -HEIGHT:3, +FIXED_HEIGHT:3, // The application takes the width of the design resolution size and modifies the height of the internal // canvas so that it fits the aspect ratio of the device // no distortion will occur however you must make sure your application works on different // aspect ratios -WIDTH:4, +FIXED_WIDTH:4, UNKNOWN:5 }; From 31a2217178825e622d73f9f79e326041b3614ee1 Mon Sep 17 00:00:00 2001 From: Dhilan007 Date: Tue, 22 Oct 2013 15:56:08 +0800 Subject: [PATCH 11/18] issues #2905:add miss file --- cocos/2d/cocos2d_headers.props | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 cocos/2d/cocos2d_headers.props diff --git a/cocos/2d/cocos2d_headers.props b/cocos/2d/cocos2d_headers.props new file mode 100644 index 0000000000..a5d8616d03 --- /dev/null +++ b/cocos/2d/cocos2d_headers.props @@ -0,0 +1,19 @@ + + + + + $(MSBuildThisFileDirectory)..\..\ + + + + + $(EngineRoot)cocos\2d;$(EngineRoot)cocos\base;$(EngineRoot)cocos\physics;$(EngineRoot)cocos\math\kazmath\include;$(EngineRoot)cocos\2d\platform\win32;$(EngineRoot)external\glfw3\include\win32;$(EngineRoot)external\win32-specific\gles\include\OGLES; + + + + + $(EngineRoot) + true + + + \ No newline at end of file From 0002815acb3e276bb9a8d5b0860ec5e6459a640c Mon Sep 17 00:00:00 2001 From: garfield_ho Date: Tue, 22 Oct 2013 15:56:35 +0800 Subject: [PATCH 12/18] Modify the sequenceCompleted method in CCBAnimationManager,So it can set the next sequence in callback --- .../cocosbuilder/CCBAnimationManager.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/cocos/editor-support/cocosbuilder/CCBAnimationManager.cpp b/cocos/editor-support/cocosbuilder/CCBAnimationManager.cpp index 13b039dcac..0ca75e25ce 100644 --- a/cocos/editor-support/cocosbuilder/CCBAnimationManager.cpp +++ b/cocos/editor-support/cocosbuilder/CCBAnimationManager.cpp @@ -910,6 +910,11 @@ void CCBAnimationManager::sequenceCompleted() _lastCompletedSequenceName = runningSequenceName; } + if (nextSeqId != -1) + { + runAnimationsForSequenceIdTweenDuration(nextSeqId, 0); + } + if (_delegate) { // There may be another runAnimation() call in this delegate method @@ -920,11 +925,6 @@ void CCBAnimationManager::sequenceCompleted() if (_target && _animationCompleteCallbackFunc) { (_target->*_animationCompleteCallbackFunc)(); } - - if (nextSeqId != -1) - { - runAnimationsForSequenceIdTweenDuration(nextSeqId, 0); - } } // Custom actions From 7a1b6f2972939741b79248b8e605803dbc846f02 Mon Sep 17 00:00:00 2001 From: James Chen Date: Tue, 22 Oct 2013 16:33:41 +0800 Subject: [PATCH 13/18] Update CHANGELOG --- CHANGELOG | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG b/CHANGELOG index b1708fabda..7b81c3c5f9 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -7,6 +7,7 @@ cocos2d-x-3.0alpha1 @??? 2013 [FIX] removeSpriteFramesFromFile() crashes if file doesn't exist. [FIX] Avoid unnecessary object duplication for Scale9Sprite. [FIX] create_project.py does not rename/replace template projects completely. + [FIX] Could not set next animation in CCBAnimationCompleted callback. [Android] [FIX] Added EGL_RENDERABLE_TYPE to OpenGL attributes [NEW] Added Cocos2dxHelper.runOnGLThread(Runnable) again From c47d2b7ae287dc61137594c3eaaca2ccccb53182 Mon Sep 17 00:00:00 2001 From: James Chen Date: Tue, 22 Oct 2013 16:34:10 +0800 Subject: [PATCH 14/18] Update AUTHORS --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index f416e6c39f..4dff8c12b5 100644 --- a/AUTHORS +++ b/AUTHORS @@ -625,6 +625,7 @@ Developers: HoGarfield (garfield_ho) Fixed a bug that CCBReader can't play sequence automatically in JSB. + Could not set next animation in CCBAnimationCompleted callback. Retired Core Developers: WenSheng Yang From 6a664d480a870c0a46c923fcd15fcdf9a3d0a9ee Mon Sep 17 00:00:00 2001 From: minggo Date: Tue, 22 Oct 2013 18:01:56 +0800 Subject: [PATCH 15/18] issue #2905:samples build ok on linux --- build/Makefile | 101 ++++--- build/install-deps-linux.sh | 2 +- cocos/2d/Makefile | 302 +++++++++++---------- cocos/2d/cocos2dx.mk | 45 +-- cocos/2d/platform/linux/CCEGLView.cpp | 2 +- cocos/2d/platform/linux/CCEGLView.h | 2 +- cocos/audio/proj.linux/Makefile | 10 +- cocos/editor-support/cocosbuilder/Makefile | 44 +++ cocos/editor-support/cocostudio/Makefile | 69 +++++ cocos/editor-support/spine/Makefile | 42 +++ cocos/gui/Layout.cpp | 4 +- cocos/gui/Makefile | 44 +++ cocos/network/Makefile | 22 ++ cocos/physics/CCPhysicsBody.cpp | 10 +- cocos/physics/CCPhysicsContact.cpp | 2 +- cocos/physics/CCPhysicsJoint.cpp | 6 +- cocos/physics/CCPhysicsShape.cpp | 6 +- cocos/physics/CCPhysicsWorld.cpp | 10 +- cocos/scripting/lua/bindings/Makefile | 126 +++++---- extensions/proj.linux/Makefile | 166 ++--------- extensions/proj.linux/extensions.prf | 20 -- external/Box2D/proj.linux/Makefile | 2 +- external/chipmunk/proj.linux/Makefile | 2 +- samples/Cpp/HelloCpp/proj.linux/Makefile | 2 +- samples/Cpp/SimpleGame/proj.linux/Makefile | 5 +- samples/Cpp/TestCpp/proj.linux/Makefile | 24 +- samples/Lua/HelloLua/proj.linux/Makefile | 18 +- samples/Lua/TestLua/proj.linux/Makefile | 16 +- 28 files changed, 615 insertions(+), 489 deletions(-) create mode 100644 cocos/editor-support/cocosbuilder/Makefile create mode 100644 cocos/editor-support/cocostudio/Makefile create mode 100644 cocos/editor-support/spine/Makefile create mode 100644 cocos/gui/Makefile create mode 100644 cocos/network/Makefile delete mode 100644 extensions/proj.linux/extensions.prf diff --git a/build/Makefile b/build/Makefile index fbea65f3cd..761855d264 100644 --- a/build/Makefile +++ b/build/Makefile @@ -3,68 +3,89 @@ PLATFORM ?= linux all: chipmunk: - $(MAKE) -C external/chipmunk/proj.$(PLATFORM) + $(MAKE) -C ../external/chipmunk/proj.$(PLATFORM) chipmunk-clean: - $(MAKE) -C external/chipmunk/proj.$(PLATFORM) clean + $(MAKE) -C ../external/chipmunk/proj.$(PLATFORM) clean box2d: - $(MAKE) -C external/Box2D/proj.$(PLATFORM) + $(MAKE) -C ../external/Box2D/proj.$(PLATFORM) box2d-clean: - $(MAKE) -C external/Box2D/proj.$(PLATFORM) clean + $(MAKE) -C ../external/Box2D/proj.$(PLATFORM) clean -libextensions: chipmunk cocosdenshion box2d - $(MAKE) -C extensions/proj.$(PLATFORM) -libextensions-clean: - $(MAKE) -C extensions/proj.$(PLATFORM) clean +cocos2dx: chipmunk + $(MAKE) -C ../cocos/2d +cocos2dx-clean: + $(MAKE) -C ../cocos/2d clean -libcocos2dx: libextensions - $(MAKE) -C cocos2dx/proj.$(PLATFORM) -libcocos2dx-clean: - $(MAKE) -C cocos2dx/proj.$(PLATFORM) clean +audio: cocos2dx + $(MAKE) -C ../cocos/audio/proj.$(PLATFORM) +audio-clean: + $(MAKE) -C ../cocos/audio/proj.$(PLATFORM) clean -cocosdenshion: libcocos2dx - $(MAKE) -C audio/proj.$(PLATFORM) -cocosdenshion-clean: - $(MAKE) -C audio/proj.$(PLATFORM) clean +gui: + $(MAKE) -C ../cocos/gui +gui-clean: + $(MAKE) -C ../cocos/gui clean -lua: libextensions - $(MAKE) -C scripting/lua/proj.$(PLATFORM) +network: cocos2dx + $(MAKE) -C ../cocos/network +network-clean: + $(MAKE) -C ../cocos/network clean + +cocosbuilder: + $(MAKE) -C ../cocos/editor-support/cocosbuilder +cocosbuilder-clean: + $(MAKE) -C ../cocos/editor-support/cocosbuilder clean + +spine: + $(MAKE) -C ../cocos/editor-support/spine +spine-clean: + $(MAKE) -C ../cocos/editor-support/spine clean + +cocostudio: + $(MAKE) -C ../cocos/editor-support/cocostudio +cocostudio-clean: + $(MAKE) -C ../cocos/editor-support/cocostudio clean + +extensions: chipmunk audio box2d + $(MAKE) -C ../extensions/proj.$(PLATFORM) +extensions-clean: + $(MAKE) -C ../extensions/proj.$(PLATFORM) clean + +lua: extensions cocosbuilder cocostudio + $(MAKE) -C ../cocos/scripting/lua/bindings lua-clean: - $(MAKE) -C scripting/lua/proj.$(PLATFORM) clean + $(MAKE) -C ../cocos/scripting/lua/bindings clean -hellocpp: libcocos2dx - $(MAKE) -C samples/Cpp/HelloCpp/proj.$(PLATFORM) +hellocpp: cocos2dx + $(MAKE) -C ../samples/Cpp/HelloCpp/proj.$(PLATFORM) hellocpp-clean: - $(MAKE) -C samples/Cpp/HelloCpp/proj.$(PLATFORM) clean + $(MAKE) -C ../samples/Cpp/HelloCpp/proj.$(PLATFORM) clean -testcpp: libcocos2dx libextensions - $(MAKE) -C samples/Cpp/TestCpp/proj.$(PLATFORM) +testcpp: cocos2dx audio extensions cocostudio gui cocosbuilder spine network + $(MAKE) -C ../samples/Cpp/TestCpp/proj.$(PLATFORM) testcpp-clean: - $(MAKE) -C samples/Cpp/TestCpp/proj.$(PLATFORM) clean + $(MAKE) -C ../samples/Cpp/TestCpp/proj.$(PLATFORM) clean -simplegame: libcocos2dx - $(MAKE) -C samples/Cpp/SimpleGame/proj.$(PLATFORM) +simplegame: cocos2dx audio + $(MAKE) -C ../samples/Cpp/SimpleGame/proj.$(PLATFORM) simplegame-clean: - $(MAKE) -C samples/Cpp/SimpleGame/proj.$(PLATFORM) clean + $(MAKE) -C ../samples/Cpp/SimpleGame/proj.$(PLATFORM) clean -all: chipmunk cocosdenshion libextensions libcocos2dx lua hellocpp testcpp simplegame -clean: libcocos2dx-clean box2d-clean chipmunk-clean cocosdenshion-clean libextensions-clean lua-clean hellocpp-clean testcpp-clean simplegame-clean +all: chipmunk audio extensions cocos2dx lua hellocpp testcpp simplegame +clean: cocos2dx-clean box2d-clean chipmunk-clean audio-clean extensions-clean lua-clean hellocpp-clean testcpp-clean simplegame-clean -# Haven't yet got the lua projects working with emscripten -ifneq ($(PLATFORM),emscripten) - -hellolua: libcocos2dx lua - $(MAKE) -C samples/Lua/HelloLua/proj.$(PLATFORM) +hellolua: cocos2dx lua + $(MAKE) -C ../samples/Lua/HelloLua/proj.$(PLATFORM) hellolua-clean: - $(MAKE) -C samples/Lua/HelloLua/proj.$(PLATFORM) clean + $(MAKE) -C ../samples/Lua/HelloLua/proj.$(PLATFORM) clean -testlua: libcocos2dx lua - $(MAKE) -C samples/Lua/TestLua/proj.$(PLATFORM) +testlua: cocos2dx lua + $(MAKE) -C ../samples/Lua/TestLua/proj.$(PLATFORM) testlua-clean: - $(MAKE) -C samples/Lua/TestLua/proj.$(PLATFORM) clean + $(MAKE) -C ../samples/Lua/TestLua/proj.$(PLATFORM) clean all: hellolua testlua clean: hellolua-clean testlua-clean -endif .PHONY: all clean diff --git a/build/install-deps-linux.sh b/build/install-deps-linux.sh index f62c78a3e8..687b51926b 100755 --- a/build/install-deps-linux.sh +++ b/build/install-deps-linux.sh @@ -32,5 +32,5 @@ if [ -n "$MISSING" ]; then fi # install glfw -tools/travis-scripts/install_glfw.sh +../tools/travis-scripts/install_glfw.sh diff --git a/cocos/2d/Makefile b/cocos/2d/Makefile index fa3d1cb659..d88604b130 100644 --- a/cocos/2d/Makefile +++ b/cocos/2d/Makefile @@ -1,93 +1,83 @@ TARGET = libcocos2d.so -INCLUDES += \ - -I../platform/third_party/linux/libfreetype2 \ - -I../platform/third_party/common/etc \ - -I../platform/third_party/common/s3tc \ - -I../platform/third_party/common/atitc \ - -I../../extensions \ - -I../../extensions/CCBReader \ - -I../../extensions/GUI/CCControlExtension \ - -I../../extensions/GUI/CCControlExtension \ - -I../../external/chipmunk/include/chipmunk \ - -I../../extensions/network \ - -I../../extensions/Components +INCLUDES = -SOURCES = ../actions/CCAction.cpp \ -../actions/CCActionCamera.cpp \ -../actions/CCActionEase.cpp \ -../actions/CCActionGrid.cpp \ -../actions/CCActionGrid3D.cpp \ -../actions/CCActionInstant.cpp \ -../actions/CCActionInterval.cpp \ -../actions/CCActionManager.cpp \ -../actions/CCActionPageTurn3D.cpp \ -../actions/CCActionProgressTimer.cpp \ -../actions/CCActionTiledGrid.cpp \ -../actions/CCActionCatmullRom.cpp \ -../actions/CCActionTween.cpp \ -../base_nodes/CCAtlasNode.cpp \ -../base_nodes/CCNode.cpp \ -../cocoa/CCAffineTransform.cpp \ -../cocoa/CCAutoreleasePool.cpp \ -../cocoa/CCGeometry.cpp \ -../cocoa/CCNS.cpp \ -../cocoa/CCObject.cpp \ -../cocoa/CCSet.cpp \ -../cocoa/CCArray.cpp \ -../cocoa/CCDictionary.cpp \ -../cocoa/CCString.cpp \ -../cocoa/CCDataVisitor.cpp \ -../cocoa/CCData.cpp \ -../event_dispatcher/CCEventAcceleration.cpp \ -../event_dispatcher/CCEventListenerAcceleration.cpp \ -../event_dispatcher/CCEvent.cpp \ -../event_dispatcher/CCEventDispatcher.cpp \ -../event_dispatcher/CCEventListener.cpp \ -../event_dispatcher/CCEventKeyboard.cpp \ -../event_dispatcher/CCEventListenerKeyboard.cpp \ -../event_dispatcher/CCTouch.cpp \ -../event_dispatcher/CCEventTouch.cpp \ -../event_dispatcher/CCEventListenerTouch.cpp \ -../event_dispatcher/CCEventCustom.cpp \ -../event_dispatcher/CCEventListenerCustom.cpp \ -../draw_nodes/CCDrawingPrimitives.cpp \ -../draw_nodes/CCDrawNode.cpp \ -../effects/CCGrabber.cpp \ -../effects/CCGrid.cpp \ -../label_nodes/CCFont.cpp \ -../label_nodes/CCFontAtlas.cpp \ -../label_nodes/CCFontAtlasCache.cpp \ -../label_nodes/CCFontAtlasFactory.cpp \ -../label_nodes/CCFontDefinition.cpp \ -../label_nodes/CCFontFNT.cpp \ -../label_nodes/CCFontFreeType.cpp \ -../label_nodes/CCLabel.cpp \ -../label_nodes/CCLabelAtlas.cpp \ -../label_nodes/CCLabelBMFont.cpp \ -../label_nodes/CCLabelTTF.cpp \ -../label_nodes/CCLabelTextFormatter.cpp \ -../label_nodes/CCTextImage.cpp \ -../layers_scenes_transitions_nodes/CCLayer.cpp \ -../layers_scenes_transitions_nodes/CCScene.cpp \ -../layers_scenes_transitions_nodes/CCTransition.cpp \ -../layers_scenes_transitions_nodes/CCTransitionPageTurn.cpp \ -../layers_scenes_transitions_nodes/CCTransitionProgress.cpp \ -../menu_nodes/CCMenu.cpp \ -../menu_nodes/CCMenuItem.cpp \ -../misc_nodes/CCMotionStreak.cpp \ -../misc_nodes/CCProgressTimer.cpp \ -../misc_nodes/CCClippingNode.cpp \ -../misc_nodes/CCRenderTexture.cpp \ -../particle_nodes/CCParticleExamples.cpp \ -../particle_nodes/CCParticleSystem.cpp \ -../particle_nodes/CCParticleSystemQuad.cpp \ -../particle_nodes/CCParticleBatchNode.cpp \ -../physics/Box2D/CCPhysicsContactInfo.cpp \ -../physics/Box2D/CCPhysicsJointInfo.cpp \ -../physics/Box2D/CCPhysicsShapeInfo.cpp \ -../physics/Box2D/CCPhysicsBodyInfo.cpp \ -../physics/Box2D/CCPhysicsWorldInfo.cpp \ +SOURCES = \ +CCAction.cpp \ +CCActionCamera.cpp \ +CCActionEase.cpp \ +CCActionGrid.cpp \ +CCActionGrid3D.cpp \ +CCActionInstant.cpp \ +CCActionInterval.cpp \ +CCActionManager.cpp \ +CCActionPageTurn3D.cpp \ +CCActionProgressTimer.cpp \ +CCActionTiledGrid.cpp \ +CCActionCatmullRom.cpp \ +CCActionTween.cpp \ +CCAtlasNode.cpp \ +CCNode.cpp \ +../base/CCAffineTransform.cpp \ +../base/CCAutoreleasePool.cpp \ +../base/CCGeometry.cpp \ +../base/CCNS.cpp \ +../base/CCObject.cpp \ +../base/CCSet.cpp \ +../base/CCArray.cpp \ +../base/CCDictionary.cpp \ +../base/CCString.cpp \ +../base/CCDataVisitor.cpp \ +../base/CCData.cpp \ +CCEventAcceleration.cpp \ +CCEventListenerAcceleration.cpp \ +CCEvent.cpp \ +CCEventDispatcher.cpp \ +CCEventListener.cpp \ +CCEventKeyboard.cpp \ +CCEventListenerKeyboard.cpp \ +CCTouch.cpp \ +CCEventTouch.cpp \ +CCEventListenerTouch.cpp \ +CCEventCustom.cpp \ +CCEventListenerCustom.cpp \ +CCDrawingPrimitives.cpp \ +CCDrawNode.cpp \ +CCGrabber.cpp \ +CCGrid.cpp \ +CCFont.cpp \ +CCFontAtlas.cpp \ +CCFontAtlasCache.cpp \ +CCFontAtlasFactory.cpp \ +CCFontDefinition.cpp \ +CCFontFNT.cpp \ +CCFontFreeType.cpp \ +CCLabel.cpp \ +CCLabelAtlas.cpp \ +CCLabelBMFont.cpp \ +CCLabelTTF.cpp \ +CCLabelTextFormatter.cpp \ +CCTextImage.cpp \ +CCLayer.cpp \ +CCScene.cpp \ +CCTransition.cpp \ +CCTransitionPageTurn.cpp \ +CCTransitionProgress.cpp \ +CCMenu.cpp \ +CCMenuItem.cpp \ +CCMotionStreak.cpp \ +CCProgressTimer.cpp \ +CCClippingNode.cpp \ +CCRenderTexture.cpp \ +CCParticleExamples.cpp \ +CCParticleSystem.cpp \ +CCParticleSystemQuad.cpp \ +CCParticleBatchNode.cpp \ +../physics/box2d/CCPhysicsContactInfo.cpp \ +../physics/box2d/CCPhysicsJointInfo.cpp \ +../physics/box2d/CCPhysicsShapeInfo.cpp \ +../physics/box2d/CCPhysicsBodyInfo.cpp \ +../physics/box2d/CCPhysicsWorldInfo.cpp \ ../physics/chipmunk/CCPhysicsContactInfo.cpp \ ../physics/chipmunk/CCPhysicsJointInfo.cpp \ ../physics/chipmunk/CCPhysicsShapeInfo.cpp \ @@ -109,68 +99,68 @@ SOURCES = ../actions/CCAction.cpp \ ../platform/linux/CCEGLView.cpp \ ../platform/linux/CCImage.cpp \ ../platform/linux/CCDevice.cpp \ -../platform/third_party/common/etc/etc1.cpp \ -../platform/third_party/common/s3tc/s3tc.cpp \ -../platform/third_party/common/atitc/atitc.cpp \ -../script_support/CCScriptSupport.cpp \ -../sprite_nodes/CCAnimation.cpp \ -../sprite_nodes/CCAnimationCache.cpp \ -../sprite_nodes/CCSprite.cpp \ -../sprite_nodes/CCSpriteBatchNode.cpp \ -../sprite_nodes/CCSpriteFrame.cpp \ -../sprite_nodes/CCSpriteFrameCache.cpp \ -../support/ccUTF8.cpp \ -../support/CCProfiling.cpp \ -../support/user_default/CCUserDefault.cpp \ -../support/TransformUtils.cpp \ -../support/base64.cpp \ -../support/ccUtils.cpp \ -../support/CCVertex.cpp \ -../support/CCNotificationCenter.cpp \ -../support/image_support/TGAlib.cpp \ -../support/tinyxml2/tinyxml2.cpp \ -../support/zip_support/ZipUtils.cpp \ -../support/zip_support/ioapi.cpp \ -../support/zip_support/unzip.cpp \ -../support/data_support/ccCArray.cpp \ -../support/component/CCComponent.cpp \ -../support/component/CCComponentContainer.cpp \ -../text_input_node/CCIMEDispatcher.cpp \ -../text_input_node/CCTextFieldTTF.cpp \ -../textures/CCTexture2D.cpp \ -../textures/CCTextureAtlas.cpp \ -../textures/CCTextureCache.cpp \ -../tilemap_parallax_nodes/CCParallaxNode.cpp \ -../tilemap_parallax_nodes/CCTMXLayer.cpp \ -../tilemap_parallax_nodes/CCTMXObjectGroup.cpp \ -../tilemap_parallax_nodes/CCTMXTiledMap.cpp \ -../tilemap_parallax_nodes/CCTMXXMLParser.cpp \ -../tilemap_parallax_nodes/CCTileMapAtlas.cpp \ -../shaders/CCGLProgram.cpp \ -../shaders/ccGLStateCache.cpp \ -../shaders/CCShaderCache.cpp \ -../shaders/ccShaders.cpp \ -../kazmath/src/aabb.c \ -../kazmath/src/plane.c \ -../kazmath/src/vec2.c \ -../kazmath/src/mat3.c \ -../kazmath/src/quaternion.c \ -../kazmath/src/vec3.c \ -../kazmath/src/mat4.c \ -../kazmath/src/ray2.c \ -../kazmath/src/vec4.c \ -../kazmath/src/neon_matrix_impl.c \ -../kazmath/src/utility.c \ -../kazmath/src/GL/mat4stack.c \ -../kazmath/src/GL/matrix.c \ -../CCCamera.cpp \ -../CCConfiguration.cpp \ -../CCDirector.cpp \ -../CCScheduler.cpp \ -../ccFPSImages.c \ -../ccTypes.cpp \ -../cocos2d.cpp \ -../CCDeprecated.cpp +../base/etc1.cpp \ +../base/s3tc.cpp \ +../base/atitc.cpp \ +CCScriptSupport.cpp \ +CCAnimation.cpp \ +CCAnimationCache.cpp \ +CCSprite.cpp \ +CCSpriteBatchNode.cpp \ +CCSpriteFrame.cpp \ +CCSpriteFrameCache.cpp \ +ccUTF8.cpp \ +CCProfiling.cpp \ +CCUserDefault.cpp \ +TransformUtils.cpp \ +base64.cpp \ +ccUtils.cpp \ +CCVertex.cpp \ +CCNotificationCenter.cpp \ +TGAlib.cpp \ +../../external/tinyxml2/tinyxml2.cpp \ +ZipUtils.cpp \ +../../external/unzip/ioapi.cpp \ +../../external/unzip/unzip.cpp \ +ccCArray.cpp \ +CCComponent.cpp \ +CCComponentContainer.cpp \ +CCIMEDispatcher.cpp \ +CCTextFieldTTF.cpp \ +CCTexture2D.cpp \ +CCTextureAtlas.cpp \ +CCTextureCache.cpp \ +CCParallaxNode.cpp \ +CCTMXLayer.cpp \ +CCTMXObjectGroup.cpp \ +CCTMXTiledMap.cpp \ +CCTMXXMLParser.cpp \ +CCTileMapAtlas.cpp \ +CCGLProgram.cpp \ +ccGLStateCache.cpp \ +CCShaderCache.cpp \ +ccShaders.cpp \ +../math/kazmath/src/aabb.c \ +../math/kazmath/src/plane.c \ +../math/kazmath/src/vec2.c \ +../math/kazmath/src/mat3.c \ +../math/kazmath/src/quaternion.c \ +../math/kazmath/src/vec3.c \ +../math/kazmath/src/mat4.c \ +../math/kazmath/src/ray2.c \ +../math/kazmath/src/vec4.c \ +../math/kazmath/src/neon_matrix_impl.c \ +../math/kazmath/src/utility.c \ +../math/kazmath/src/GL/mat4stack.c \ +../math/kazmath/src/GL/matrix.c \ +CCCamera.cpp \ +CCConfiguration.cpp \ +CCDirector.cpp \ +CCScheduler.cpp \ +ccFPSImages.c \ +ccTypes.cpp \ +cocos2d.cpp \ +CCDeprecated.cpp COCOS_ROOT = ../.. @@ -189,10 +179,24 @@ $(TARGET): $(OBJECTS) $(CORE_MAKEFILE_LIST) @mkdir -p $(@D) $(LOG_LINK)$(CXX) $(CXXFLAGS) $(OBJECTS) -shared -o $@ $(SHAREDLIBS) $(STATICLIBS) $(LIBS) +$(OBJ_DIR)/%.o: %.cpp $(CORE_MAKEFILE_LIST) + @mkdir -p $(@D) + $(LOG_CXX)$(CXX) $(CXXFLAGS) $(INCLUDES) $(DEFINES) -c $< -o $@ + $(OBJ_DIR)/%.o: ../%.cpp $(CORE_MAKEFILE_LIST) @mkdir -p $(@D) $(LOG_CXX)$(CXX) $(CXXFLAGS) $(INCLUDES) $(DEFINES) -c $< -o $@ +$(OBJ_DIR)/%.o: ../../%.cpp $(CORE_MAKEFILE_LIST) + @mkdir -p $(@D) + $(LOG_CXX)$(CXX) $(CXXFLAGS) $(INCLUDES) $(DEFINES) -c $< -o $@ + +$(OBJ_DIR)/%.o: %.c $(CORE_MAKEFILE_LIST) + @mkdir -p $(@D) + $(LOG_CC)$(CC) $(CCFLAGS) $(INCLUDES) $(DEFINES) -c $< -o $@ + $(OBJ_DIR)/%.o: ../%.c $(CORE_MAKEFILE_LIST) @mkdir -p $(@D) $(LOG_CC)$(CC) $(CCFLAGS) $(INCLUDES) $(DEFINES) -c $< -o $@ + + diff --git a/cocos/2d/cocos2dx.mk b/cocos/2d/cocos2dx.mk index 0058e43bac..41ef87b631 100644 --- a/cocos/2d/cocos2dx.mk +++ b/cocos/2d/cocos2dx.mk @@ -45,28 +45,30 @@ THIS_MAKEFILE := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) ifndef COCOS_ROOT COCOS_ROOT := $(realpath $(dir $(THIS_MAKEFILE))/../..) endif -COCOS_SRC = $(COCOS_ROOT)/cocos2dx +COCOS_SRC = $(COCOS_ROOT)/cocos/2d OBJ_DIR ?= obj LIB_DIR = $(COCOS_ROOT)/lib/linux BIN_DIR = bin INCLUDES += \ - -I$(COCOS_SRC) \ - -I$(COCOS_SRC)/cocoa \ - -I$(COCOS_SRC)/include \ - -I$(COCOS_SRC)/kazmath/include \ + -I$(COCOS_SRC)/ \ + -I$(COCOS_SRC)/../math/kazmath/include \ -I$(COCOS_SRC)/platform/linux \ - -I$(COCOS_SRC)/platform/third_party/linux/libjpeg \ - -I$(COCOS_SRC)/platform/third_party/linux/libtiff \ - -I$(COCOS_SRC)/platform/third_party/linux/libwebp + -I$(COCOS_SRC)/../../external/jpeg/include/linux \ + -I$(COCOS_SRC)/../../external/tiff/include/linux \ + -I$(COCOS_SRC)/../../external/webp/include/linux \ + -I$(COCOS_SRC)/../../external/tinyxml2 \ + -I$(COCOS_SRC)/../../external/unzip \ + -I$(COCOS_SRC)/../../external/glfw3/include/linux \ + -I$(COCOS_SRC)/../physics \ + -I$(COCOS_SRC)/../base \ + -I$(COCOS_SRC)/../../external/chipmunk/include/chipmunk \ + -I$(COCOS_SRC)/../../external/freetype2/include/linux \ + -I$(COCOS_SRC)/../.. \ + -I$(COCOS_SRC)/../audio/include LBITS := $(shell getconf LONG_BIT) -ifeq ($(LBITS),64) -INCLUDES += -I$(COCOS_SRC)/platform/third_party/linux/include64 -else -INCLUDES += -I$(COCOS_SRC)/platform/third_party/linux -endif ifeq ($(DEBUG), 1) CCFLAGS += -g3 -O0 @@ -100,22 +102,23 @@ DEPS = $(OBJECTS:.o=.d) CORE_MAKEFILE_LIST := $(MAKEFILE_LIST) -include $(DEPS) +STATICLIBS_DIR = $(COCOS_ROOT)/external ifeq ($(LBITS),64) -STATICLIBS_DIR = $(COCOS_SRC)/platform/third_party/linux/libraries/lib64 +POSTFIX = 64-bit else -STATICLIBS_DIR = $(COCOS_SRC)/platform/third_party/linux/libraries +POSTFIX = 32-bit endif -STATICLIBS = $(STATICLIBS_DIR)/libfreetype.a \ - $(STATICLIBS_DIR)/libjpeg.a \ - $(STATICLIBS_DIR)/libtiff.a \ - $(STATICLIBS_DIR)/libwebp.a +STATICLIBS = $(STATICLIBS_DIR)/freetype2/prebuilt/linux/$(POSTFIX)/libfreetype.a \ + $(STATICLIBS_DIR)/jpeg/prebuilt/linux/$(POSTFIX)/libjpeg.a \ + $(STATICLIBS_DIR)/tiff/prebuilt/linux/$(POSTFIX)/libtiff.a \ + $(STATICLIBS_DIR)/webp/prebuilt/linux/$(POSTFIX)/libwebp.a ifneq ($(OPENAL),1) ifeq ($(LBITS),64) -FMOD_LIBDIR = $(COCOS_ROOT)/audio/third_party/fmod/lib64/api/lib +FMOD_LIBDIR = $(COCOS_ROOT)/cocos/audio/third-party/fmod/lib64/api/lib SHAREDLIBS += -lfmodex64 else -FMOD_LIBDIR = $(COCOS_ROOT)/audio/third_party/fmod/api/lib +FMOD_LIBDIR = $(COCOS_ROOT)/cocos/audio/third-party/fmod/api/lib SHAREDLIBS += -lfmodex endif endif diff --git a/cocos/2d/platform/linux/CCEGLView.cpp b/cocos/2d/platform/linux/CCEGLView.cpp index 452d5738a3..561fedcca8 100644 --- a/cocos/2d/platform/linux/CCEGLView.cpp +++ b/cocos/2d/platform/linux/CCEGLView.cpp @@ -10,7 +10,7 @@ #include "ccMacros.h" #include "CCDirector.h" #include "CCTouch.h" -#include "/CCIMEDispatcher.h" +#include "CCIMEDispatcher.h" #include "CCEventDispatcher.h" #include "CCEventKeyboard.h" #include diff --git a/cocos/2d/platform/linux/CCEGLView.h b/cocos/2d/platform/linux/CCEGLView.h index 9d29d9c188..ed4fc18245 100644 --- a/cocos/2d/platform/linux/CCEGLView.h +++ b/cocos/2d/platform/linux/CCEGLView.h @@ -11,7 +11,7 @@ #include "platform/CCCommon.h" #include "CCGeometry.h" #include "platform/CCEGLViewProtocol.h" -#include "platform/third_party/linux/glfw/glfw3.h" +#include "glfw3.h" #include bool initExtensions(); diff --git a/cocos/audio/proj.linux/Makefile b/cocos/audio/proj.linux/Makefile index 82dc89a6d6..e8b18e3972 100644 --- a/cocos/audio/proj.linux/Makefile +++ b/cocos/audio/proj.linux/Makefile @@ -1,6 +1,6 @@ TARGET = libcocosdenshion.so -INCLUDES += -I.. -I../include +INCLUDES = -I.. -I../include ##Using OpenAL ifeq ($(OPENAL),1) @@ -26,15 +26,15 @@ SOURCES = \ ../linux/FmodAudioPlayer.cpp ifeq ($(LBITS),64) -INCLUDES += -I../third_party/fmod/lib64/api/inc +INCLUDES += -I../third-party/fmod/lib64/api/inc else -INCLUDES += -I../third_party/fmod/api/inc +INCLUDES += -I../third-party/fmod/api/inc endif endif -COCOS_ROOT = ../.. -include $(COCOS_ROOT)/cocos2dx/proj.linux/cocos2dx.mk +COCOS_ROOT = ../../.. +include $(COCOS_ROOT)/cocos/2d/cocos2dx.mk TARGET := $(LIB_DIR)/$(TARGET) diff --git a/cocos/editor-support/cocosbuilder/Makefile b/cocos/editor-support/cocosbuilder/Makefile new file mode 100644 index 0000000000..688c5d49d5 --- /dev/null +++ b/cocos/editor-support/cocosbuilder/Makefile @@ -0,0 +1,44 @@ +TARGET = libcocosbuilder.a + +INCLUDES = + +SOURCES = CCBFileLoader.cpp \ +CCMenuItemImageLoader.cpp \ +CCBReader.cpp \ +CCMenuItemLoader.cpp \ +CCControlButtonLoader.cpp \ +CCNodeLoader.cpp \ +CCControlLoader.cpp \ +CCNodeLoaderLibrary.cpp \ +CCLabelBMFontLoader.cpp \ +CCParticleSystemQuadLoader.cpp \ +CCLabelTTFLoader.cpp \ +CCScale9SpriteLoader.cpp \ +CCLayerColorLoader.cpp \ +CCScrollViewLoader.cpp \ +CCLayerGradientLoader.cpp \ +CCSpriteLoader.cpp \ +CCLayerLoader.cpp \ +CCBAnimationManager.cpp \ +CCBKeyframe.cpp \ +CCBSequence.cpp \ +CCBSequenceProperty.cpp \ +CCBValue.cpp \ +CCNode+CCBRelativePositioning.cpp + +include ../../2d/cocos2dx.mk + +CXXFLAGS += -Wno-multichar + +TARGET := $(LIB_DIR)/$(TARGET) + +all: $(TARGET) + +$(TARGET): $(OBJECTS) $(CORE_MAKEFILE_LIST) + @mkdir -p $(@D) + $(LOG_AR)$(AR) $(ARFLAGS) $@ $(OBJECTS) + +$(OBJ_DIR)/%.o: %.cpp $(CORE_MAKEFILE_LIST) + @mkdir -p $(@D) + $(LOG_CXX)$(CXX) $(CXXFLAGS) $(INCLUDES) $(DEFINES) -c $< -o $@ + diff --git a/cocos/editor-support/cocostudio/Makefile b/cocos/editor-support/cocostudio/Makefile new file mode 100644 index 0000000000..810c28372e --- /dev/null +++ b/cocos/editor-support/cocostudio/Makefile @@ -0,0 +1,69 @@ +TARGET = libcocostudio.a + +COCOS_ROOT=../../.. + +INCLUDES = -I../../2d \ +-I../../../external \ +-I.. \ +-I../.. \ + +SOURCES = CCActionFrame.cpp \ +CCActionFrameEasing.cpp \ +CCActionManagerEx.cpp \ +CCActionNode.cpp \ +CCActionObject.cpp \ +CCArmature.cpp \ +CCBone.cpp \ +CCArmatureAnimation.cpp \ +CCProcessBase.cpp \ +CCTween.cpp \ +CCDatas.cpp \ +CCBatchNode.cpp \ +CCDecorativeDisplay.cpp \ +CCDisplayFactory.cpp \ +CCDisplayManager.cpp \ +CCSkin.cpp \ +CCColliderDetector.cpp \ +CCArmatureDataManager.cpp \ +CCArmatureDefine.cpp \ +CCDataReaderHelper.cpp \ +CCSpriteFrameCacheHelper.cpp \ +CCTransformHelp.cpp \ +CCTweenFunction.cpp \ +CCUtilMath.cpp \ +CCComAttribute.cpp \ +CCComAudio.cpp \ +CCComController.cpp \ +CCComRender.cpp \ +CCInputDelegate.cpp \ +CSContentJsonDictionary.cpp \ +DictionaryHelper.cpp \ +CCSGUIReader.cpp \ +CCSSceneReader.cpp \ +../../../external/json/json_reader.cpp \ +../../../external/json/json_value.cpp \ +../../../external/json/json_writer.cpp + +include ../../2d/cocos2dx.mk + +CXXFLAGS += -Wno-multichar + +TARGET := $(LIB_DIR)/$(TARGET) + +all: $(TARGET) + +$(TARGET): $(OBJECTS) $(CORE_MAKEFILE_LIST) + @mkdir -p $(@D) + $(LOG_AR)$(AR) $(ARFLAGS) $@ $(OBJECTS) + +$(OBJ_DIR)/%.o: %.cpp $(CORE_MAKEFILE_LIST) + @mkdir -p $(@D) + $(LOG_CXX)$(CXX) $(CXXFLAGS) $(INCLUDES) $(DEFINES) -c $< -o $@ + +$(OBJ_DIR)/%.o: ../../../%.cpp $(CORE_MAKEFILE_LIST) + @mkdir -p $(@D) + $(LOG_CXX)$(CXX) $(CXXFLAGS) $(INCLUDES) $(DEFINES) -c $< -o $@ + +$(OBJ_DIR)/%.o: %.c $(CORE_MAKEFILE_LIST) + @mkdir -p $(@D) + $(LOG_CC)$(CC) $(CCFLAGS) $(INCLUDES) $(DEFINES) -c $< -o $@ diff --git a/cocos/editor-support/spine/Makefile b/cocos/editor-support/spine/Makefile new file mode 100644 index 0000000000..88514a824e --- /dev/null +++ b/cocos/editor-support/spine/Makefile @@ -0,0 +1,42 @@ +TARGET = libspine.a + +INCLUDES = -I.. + +SOURCES = Animation.cpp \ +AnimationState.cpp \ +AnimationStateData.cpp \ +Atlas.cpp \ +AtlasAttachmentLoader.cpp \ +Attachment.cpp \ +AttachmentLoader.cpp \ +Bone.cpp \ +BoneData.cpp \ +Json.cpp \ +RegionAttachment.cpp \ +Skeleton.cpp \ +SkeletonData.cpp \ +SkeletonJson.cpp \ +Skin.cpp \ +Slot.cpp \ +SlotData.cpp \ +extension.cpp \ +spine-cocos2dx.cpp \ +CCSkeleton.cpp \ +CCSkeletonAnimation.cpp + +include ../../2d/cocos2dx.mk + +CXXFLAGS += -Wno-multichar + +TARGET := $(LIB_DIR)/$(TARGET) + +all: $(TARGET) + +$(TARGET): $(OBJECTS) $(CORE_MAKEFILE_LIST) + @mkdir -p $(@D) + $(LOG_AR)$(AR) $(ARFLAGS) $@ $(OBJECTS) + +$(OBJ_DIR)/%.o: %.cpp $(CORE_MAKEFILE_LIST) + @mkdir -p $(@D) + $(LOG_CXX)$(CXX) $(CXXFLAGS) $(INCLUDES) $(DEFINES) -c $< -o $@ + diff --git a/cocos/gui/Layout.cpp b/cocos/gui/Layout.cpp index b7014ac1ed..a9e4f75a30 100644 --- a/cocos/gui/Layout.cpp +++ b/cocos/gui/Layout.cpp @@ -22,7 +22,7 @@ THE SOFTWARE. ****************************************************************************/ -#include "gui/layout.h" +#include "gui/Layout.h" #include "gui/UILayer.h" #include "gui/UIHelper.h" #include "extensions/GUI/CCControlExtension/CCScale9Sprite.h" @@ -782,4 +782,4 @@ bool RectClippingNode::isEnabled() const return _enabled; } -} \ No newline at end of file +} diff --git a/cocos/gui/Makefile b/cocos/gui/Makefile new file mode 100644 index 0000000000..0e8501cc63 --- /dev/null +++ b/cocos/gui/Makefile @@ -0,0 +1,44 @@ +TARGET = libgui.a + +INCLUDES = -I../ \ +-I../editor-support \ +-I../../external + +SOURCES = UIRootWidget.cpp \ +UIWidget.cpp \ +Layout.cpp \ +LayoutParameter.cpp \ +UILayoutDefine.cpp \ +CocosGUI.cpp \ +UIHelper.cpp \ +UIInputManager.cpp \ +UILayer.cpp \ +UIDragPanel.cpp \ +UIListView.cpp \ +UIPageView.cpp \ +UIScrollView.cpp \ +UIButton.cpp \ +UICheckBox.cpp \ +UIImageView.cpp \ +UILabel.cpp \ +UILabelAtlas.cpp \ +UILabelBMFont.cpp \ +UILoadingBar.cpp \ +UISlider.cpp \ +UITextField.cpp + +include ../2d/cocos2dx.mk + +CXXFLAGS += -Wno-multichar + +TARGET := $(LIB_DIR)/$(TARGET) + +all: $(TARGET) + +$(TARGET): $(OBJECTS) $(CORE_MAKEFILE_LIST) + @mkdir -p $(@D) + $(LOG_AR)$(AR) $(ARFLAGS) $@ $(OBJECTS) + +$(OBJ_DIR)/%.o: %.cpp $(CORE_MAKEFILE_LIST) + @mkdir -p $(@D) + $(LOG_CXX)$(CXX) $(CXXFLAGS) $(INCLUDES) $(DEFINES) -c $< -o $@ diff --git a/cocos/network/Makefile b/cocos/network/Makefile new file mode 100644 index 0000000000..029078722d --- /dev/null +++ b/cocos/network/Makefile @@ -0,0 +1,22 @@ +TARGET = libnetwork.a + +INCLUDES = -I.. + +SOURCES = HttpClient.cpp \ +SocketIO.cpp + +include ../2d/cocos2dx.mk + +CXXFLAGS += -Wno-multichar + +TARGET := $(LIB_DIR)/$(TARGET) + +all: $(TARGET) + +$(TARGET): $(OBJECTS) $(CORE_MAKEFILE_LIST) + @mkdir -p $(@D) + $(LOG_AR)$(AR) $(ARFLAGS) $@ $(OBJECTS) + +$(OBJ_DIR)/%.o: %.cpp $(CORE_MAKEFILE_LIST) + @mkdir -p $(@D) + $(LOG_CXX)$(CXX) $(CXXFLAGS) $(INCLUDES) $(DEFINES) -c $< -o $@ diff --git a/cocos/physics/CCPhysicsBody.cpp b/cocos/physics/CCPhysicsBody.cpp index 2dc38bf286..2fb6c4458b 100644 --- a/cocos/physics/CCPhysicsBody.cpp +++ b/cocos/physics/CCPhysicsBody.cpp @@ -37,16 +37,16 @@ #include "CCPhysicsWorld.h" #include "chipmunk/CCPhysicsBodyInfo.h" -#include "Box2D/CCPhysicsBodyInfo.h" +#include "box2d/CCPhysicsBodyInfo.h" #include "chipmunk/CCPhysicsJointInfo.h" -#include "Box2D/CCPhysicsJointInfo.h" +#include "box2d/CCPhysicsJointInfo.h" #include "chipmunk/CCPhysicsWorldInfo.h" -#include "Box2D/CCPhysicsWorldInfo.h" +#include "box2d/CCPhysicsWorldInfo.h" #include "chipmunk/CCPhysicsShapeInfo.h" -#include "Box2D/CCPhysicsShapeInfo.h" +#include "box2d/CCPhysicsShapeInfo.h" #include "chipmunk/CCPhysicsHelper.h" -#include "Box2D/CCPhysicsHelper.h" +#include "box2d/CCPhysicsHelper.h" NS_CC_BEGIN diff --git a/cocos/physics/CCPhysicsContact.cpp b/cocos/physics/CCPhysicsContact.cpp index 928c8c9e59..1ec9667d6f 100644 --- a/cocos/physics/CCPhysicsContact.cpp +++ b/cocos/physics/CCPhysicsContact.cpp @@ -31,7 +31,7 @@ #endif #include "chipmunk/CCPhysicsContactInfo.h" -#include "Box2D/CCPhysicsContactInfo.h" +#include "box2d/CCPhysicsContactInfo.h" NS_CC_BEGIN diff --git a/cocos/physics/CCPhysicsJoint.cpp b/cocos/physics/CCPhysicsJoint.cpp index 63b6ac052e..b2742720e4 100644 --- a/cocos/physics/CCPhysicsJoint.cpp +++ b/cocos/physics/CCPhysicsJoint.cpp @@ -34,11 +34,11 @@ #include "CCPhysicsBody.h" #include "chipmunk/CCPhysicsJointInfo.h" -#include "Box2D/CCPhysicsJointInfo.h" +#include "box2d/CCPhysicsJointInfo.h" #include "chipmunk/CCPhysicsBodyInfo.h" -#include "Box2D/CCPhysicsBodyInfo.h" +#include "box2d/CCPhysicsBodyInfo.h" #include "chipmunk/CCPhysicsHelper.h" -#include "Box2D/CCPhysicsHelper.h" +#include "box2d/CCPhysicsHelper.h" NS_CC_BEGIN diff --git a/cocos/physics/CCPhysicsShape.cpp b/cocos/physics/CCPhysicsShape.cpp index b373e0710e..15e0a82ca0 100644 --- a/cocos/physics/CCPhysicsShape.cpp +++ b/cocos/physics/CCPhysicsShape.cpp @@ -35,9 +35,9 @@ #include "CCPhysicsWorld.h" #include "chipmunk/CCPhysicsBodyInfo.h" -#include "Box2D/CCPhysicsBodyInfo.h" +#include "box2d/CCPhysicsBodyInfo.h" #include "chipmunk/CCPhysicsShapeInfo.h" -#include "Box2D/CCPhysicsShapeInfo.h" +#include "box2d/CCPhysicsShapeInfo.h" #include "chipmunk/CCPhysicsHelper.h" NS_CC_BEGIN @@ -518,4 +518,4 @@ bool PhysicsShapeEdgeChain::init(Point* points, int count, PhysicsMaterial mater NS_CC_END -#endif // CC_USE_PHYSICS \ No newline at end of file +#endif // CC_USE_PHYSICS diff --git a/cocos/physics/CCPhysicsWorld.cpp b/cocos/physics/CCPhysicsWorld.cpp index 1777a395f0..11859579ac 100644 --- a/cocos/physics/CCPhysicsWorld.cpp +++ b/cocos/physics/CCPhysicsWorld.cpp @@ -37,15 +37,15 @@ #include "CCPhysicsJoint.h" #include "chipmunk/CCPhysicsWorldInfo.h" -#include "Box2D/CCPhysicsWorldInfo.h" +#include "box2d/CCPhysicsWorldInfo.h" #include "chipmunk/CCPhysicsBodyInfo.h" -#include "Box2D/CCPhysicsBodyInfo.h" +#include "box2d/CCPhysicsBodyInfo.h" #include "chipmunk/CCPhysicsShapeInfo.h" -#include "Box2D/CCPhysicsShapeInfo.h" +#include "box2d/CCPhysicsShapeInfo.h" #include "chipmunk/CCPhysicsContactInfo.h" -#include "Box2D/CCPhysicsContactInfo.h" +#include "box2d/CCPhysicsContactInfo.h" #include "chipmunk/CCPhysicsJointInfo.h" -#include "Box2D/CCPhysicsJointInfo.h" +#include "box2d/CCPhysicsJointInfo.h" #include "chipmunk/CCPhysicsHelper.h" #include "CCDrawNode.h" diff --git a/cocos/scripting/lua/bindings/Makefile b/cocos/scripting/lua/bindings/Makefile index 1aaa6c897e..95145d5fbc 100644 --- a/cocos/scripting/lua/bindings/Makefile +++ b/cocos/scripting/lua/bindings/Makefile @@ -1,64 +1,72 @@ TARGET = liblua.so -INCLUDES += -I.. -I../lua -I../tolua -I../cocos2dx_support -I../../auto-generated/lua-bindings \ - -I../Classes -I../../../audio/include -I../../../extensions -I../../../external/chipmunk/include/chipmunk +INCLUDES += -I../../../../external/lua/tolua \ +-I../../../../external/lua/lua \ +-I../../auto-generated/lua-bindings \ +-I../../../../extensions \ +-I../../../editor-support \ +-I. \ +-I../../../editor-support/cocosbuilder \ +-I../../../editor-support/cocostudio \ +-I../../../../external \ +-I../../../ -SOURCES = ../lua/lapi.c \ - ../lua/lauxlib.c \ - ../lua/lbaselib.c \ - ../lua/lcode.c \ - ../lua/ldblib.c \ - ../lua/ldebug.c \ - ../lua/ldo.c \ - ../lua/ldump.c \ - ../lua/lfunc.c \ - ../lua/lgc.c \ - ../lua/linit.c \ - ../lua/liolib.c \ - ../lua/llex.c \ - ../lua/lmathlib.c \ - ../lua/lmem.c \ - ../lua/loadlib.c \ - ../lua/lobject.c \ - ../lua/lopcodes.c \ - ../lua/loslib.c \ - ../lua/lparser.c \ - ../lua/lstate.c \ - ../lua/lstring.c \ - ../lua/lstrlib.c \ - ../lua/ltable.c \ - ../lua/ltablib.c \ - ../lua/ltm.c \ - ../lua/lundump.c \ - ../lua/lvm.c \ - ../lua/lzio.c \ - ../lua/print.c \ - ../tolua/tolua_event.c \ - ../tolua/tolua_is.c \ - ../tolua/tolua_map.c \ - ../tolua/tolua_push.c \ - ../tolua/tolua_to.c \ - ../cocos2dx_support/tolua_fix.c \ +SOURCES = ../../../../external/lua/lua/lapi.c \ + ../../../../external/lua/lua/lauxlib.c \ + ../../../../external/lua/lua/lbaselib.c \ + ../../../../external/lua/lua/lcode.c \ + ../../../../external/lua/lua/ldblib.c \ + ../../../../external/lua/lua/ldebug.c \ + ../../../../external/lua/lua/ldo.c \ + ../../../../external/lua/lua/ldump.c \ + ../../../../external/lua/lua/lfunc.c \ + ../../../../external/lua/lua/lgc.c \ + ../../../../external/lua/lua/linit.c \ + ../../../../external/lua/lua/liolib.c \ + ../../../../external/lua/lua/llex.c \ + ../../../../external/lua/lua/lmathlib.c \ + ../../../../external/lua/lua/lmem.c \ + ../../../../external/lua/lua/loadlib.c \ + ../../../../external/lua/lua/lobject.c \ + ../../../../external/lua/lua/lopcodes.c \ + ../../../../external/lua/lua/loslib.c \ + ../../../../external/lua/lua/lparser.c \ + ../../../../external/lua/lua/lstate.c \ + ../../../../external/lua/lua/lstring.c \ + ../../../../external/lua/lua/lstrlib.c \ + ../../../../external/lua/lua/ltable.c \ + ../../../../external/lua/lua/ltablib.c \ + ../../../../external/lua/lua/ltm.c \ + ../../../../external/lua/lua/lundump.c \ + ../../../../external/lua/lua/lvm.c \ + ../../../../external/lua/lua/lzio.c \ + ../../../../external/lua/lua/print.c \ + ../../../../external/lua/tolua/tolua_event.c \ + ../../../../external/lua/tolua/tolua_is.c \ + ../../../../external/lua/tolua/tolua_map.c \ + ../../../../external/lua/tolua/tolua_push.c \ + ../../../../external/lua/tolua/tolua_to.c \ + tolua_fix.c \ ../../auto-generated/lua-bindings/lua_cocos2dx_auto.cpp \ ../../auto-generated/lua-bindings/lua_cocos2dx_extension_auto.cpp \ - ../cocos2dx_support/CCLuaBridge.cpp \ - ../cocos2dx_support/CCLuaEngine.cpp \ - ../cocos2dx_support/CCLuaStack.cpp \ - ../cocos2dx_support/CCLuaValue.cpp \ - ../cocos2dx_support/Cocos2dxLuaLoader.cpp \ - ../cocos2dx_support/CCBProxy.cpp \ - ../cocos2dx_support/LuaOpengl.cpp \ - ../cocos2dx_support/LuaScriptHandlerMgr.cpp \ - ../cocos2dx_support/LuaBasicConversions.cpp \ - ../cocos2dx_support/lua_cocos2dx_manual.cpp \ - ../cocos2dx_support/lua_cocos2dx_extension_manual.cpp \ - ../cocos2dx_support/lua_cocos2dx_deprecated.cpp + CCLuaBridge.cpp \ + CCLuaEngine.cpp \ + CCLuaStack.cpp \ + CCLuaValue.cpp \ + Cocos2dxLuaLoader.cpp \ + CCBProxy.cpp \ + LuaOpengl.cpp \ + LuaScriptHandlerMgr.cpp \ + LuaBasicConversions.cpp \ + lua_cocos2dx_manual.cpp \ + lua_cocos2dx_extension_manual.cpp \ + lua_cocos2dx_deprecated.cpp -include ../../../cocos2dx/proj.linux/cocos2dx.mk +include ../../../2d/cocos2dx.mk TARGET := $(LIB_DIR)/$(TARGET) -SHAREDLIBS += -lextension +SHAREDLIBS += -lextension -lcocostudio -lcocosbuilder STATICLIBS += $(LIB_DIR)/libbox2d.a all: $(TARGET) @@ -67,14 +75,18 @@ $(TARGET): $(OBJECTS) $(CORE_MAKEFILE_LIST) @mkdir -p $(@D) $(LOG_LINK)$(CXX) $(CXXFLAGS) $(OBJECTS) -shared -o $@ $(SHAREDLIBS) $(STATICLIBS) +$(OBJ_DIR)/%.o: %.cpp $(CORE_MAKEFILE_LIST) + @mkdir -p $(@D) + $(LOG_CXX)$(CXX) $(CXXFLAGS) $(INCLUDES) $(DEFINES) -c $< -o $@ + $(OBJ_DIR)/%.o: ../../%.cpp $(CORE_MAKEFILE_LIST) @mkdir -p $(@D) $(LOG_CXX)$(CXX) $(CXXFLAGS) $(INCLUDES) $(DEFINES) -c $< -o $@ -$(OBJ_DIR)/%.o: ../%.cpp $(CORE_MAKEFILE_LIST) - @mkdir -p $(@D) - $(LOG_CXX)$(CXX) $(CXXFLAGS) $(INCLUDES) $(DEFINES) -c $< -o $@ - -$(OBJ_DIR)/%.o: ../%.c $(CORE_MAKEFILE_LIST) +$(OBJ_DIR)/%.o: ../../../../%.c $(CORE_MAKEFILE_LIST) + @mkdir -p $(@D) + $(LOG_CC)$(CC) $(CCFLAGS) $(INCLUDES) $(DEFINES) -c $< -o $@ + +$(OBJ_DIR)/%.o: %.c $(CORE_MAKEFILE_LIST) @mkdir -p $(@D) $(LOG_CC)$(CC) $(CCFLAGS) $(INCLUDES) $(DEFINES) -c $< -o $@ diff --git a/extensions/proj.linux/Makefile b/extensions/proj.linux/Makefile index 6565ee9b94..fe07e988e5 100644 --- a/extensions/proj.linux/Makefile +++ b/extensions/proj.linux/Makefile @@ -1,146 +1,36 @@ TARGET = libextension.a -COCOS_ROOT=../.. +INCLUDES = -I.. -INCLUDES = -I$(COCOS_ROOT)/external \ - -I$(COCOS_ROOT)/external/chipmunk/include/chipmunk \ - -I$(COCOS_ROOT)/audio/include \ - -I.. \ - -I../CCBReader \ - -I../GUI/CCControlExtension \ - -I../GUI/CCEditBox \ - -I../network \ - -I../CocoStudio/Components \ - -I../CocoStudio/Armature +SOURCES = \ +assets-manager/AssetsManager.cpp \ +GUI/CCControlExtension/CCControl.cpp \ +GUI/CCControlExtension/CCControlButton.cpp \ +GUI/CCControlExtension/CCControlColourPicker.cpp \ +GUI/CCControlExtension/CCControlHuePicker.cpp \ +GUI/CCControlExtension/CCControlPotentiometer.cpp \ +GUI/CCControlExtension/CCControlSaturationBrightnessPicker.cpp \ +GUI/CCControlExtension/CCControlSlider.cpp \ +GUI/CCControlExtension/CCControlStepper.cpp \ +GUI/CCControlExtension/CCControlSwitch.cpp \ +GUI/CCControlExtension/CCControlUtils.cpp \ +GUI/CCControlExtension/CCInvocation.cpp \ +GUI/CCControlExtension/CCScale9Sprite.cpp \ +GUI/CCEditBox/CCEditBox.cpp \ +GUI/CCEditBox/CCEditBoxImplAndroid.cpp \ +GUI/CCEditBox/CCEditBoxImplNone.cpp \ +GUI/CCEditBox/CCEditBoxImplTizen.cpp \ +GUI/CCEditBox/CCEditBoxImplWin.cpp \ +GUI/CCScrollView/CCScrollView.cpp \ +GUI/CCScrollView/CCSorting.cpp \ +GUI/CCScrollView/CCTableView.cpp \ +GUI/CCScrollView/CCTableViewCell.cpp \ +physics-nodes/CCPhysicsDebugNode.cpp \ +physics-nodes/CCPhysicsSprite.cpp -SOURCES = ../CCBReader/CCBFileLoader.cpp \ -../CCBReader/CCMenuItemImageLoader.cpp \ -../CCBReader/CCBReader.cpp \ -../CCBReader/CCMenuItemLoader.cpp \ -../CCBReader/CCControlButtonLoader.cpp \ -../CCBReader/CCNodeLoader.cpp \ -../CCBReader/CCControlLoader.cpp \ -../CCBReader/CCNodeLoaderLibrary.cpp \ -../CCBReader/CCLabelBMFontLoader.cpp \ -../CCBReader/CCParticleSystemQuadLoader.cpp \ -../CCBReader/CCLabelTTFLoader.cpp \ -../CCBReader/CCScale9SpriteLoader.cpp \ -../CCBReader/CCLayerColorLoader.cpp \ -../CCBReader/CCScrollViewLoader.cpp \ -../CCBReader/CCLayerGradientLoader.cpp \ -../CCBReader/CCSpriteLoader.cpp \ -../CCBReader/CCLayerLoader.cpp \ -../CCBReader/CCBAnimationManager.cpp \ -../CCBReader/CCBKeyframe.cpp \ -../CCBReader/CCBSequence.cpp \ -../CCBReader/CCBSequenceProperty.cpp \ -../CCBReader/CCBValue.cpp \ -../CCBReader/CCNode+CCBRelativePositioning.cpp \ -../GUI/CCScrollView/CCScrollView.cpp \ -../GUI/CCScrollView/CCSorting.cpp \ -../GUI/CCScrollView/CCTableView.cpp \ -../GUI/CCScrollView/CCTableViewCell.cpp \ -../GUI/CCControlExtension/CCControlButton.cpp \ -../GUI/CCControlExtension/CCControlColourPicker.cpp \ -../GUI/CCControlExtension/CCControl.cpp \ -../GUI/CCControlExtension/CCControlHuePicker.cpp \ -../GUI/CCControlExtension/CCControlSaturationBrightnessPicker.cpp \ -../GUI/CCControlExtension/CCControlSlider.cpp \ -../GUI/CCControlExtension/CCControlSwitch.cpp \ -../GUI/CCControlExtension/CCControlUtils.cpp \ -../GUI/CCControlExtension/CCInvocation.cpp \ -../GUI/CCControlExtension/CCScale9Sprite.cpp \ -../GUI/CCControlExtension/CCControlPotentiometer.cpp \ -../GUI/CCControlExtension/CCControlStepper.cpp \ -../GUI/CCEditBox/CCEditBox.cpp \ -../GUI/CCEditBox/CCEditBoxImplNone.cpp \ -../network/HttpClient.cpp \ -../physics_nodes/CCPhysicsDebugNode.cpp \ -../physics_nodes/CCPhysicsSprite.cpp \ -../CocoStudio/Armature/CCArmature.cpp \ -../CocoStudio/Armature/CCBone.cpp \ -../CocoStudio/Armature/animation/CCArmatureAnimation.cpp \ -../CocoStudio/Armature/animation/CCProcessBase.cpp \ -../CocoStudio/Armature/animation/CCTween.cpp \ -../CocoStudio/Armature/datas/CCDatas.cpp \ -../CocoStudio/Armature/display/CCBatchNode.cpp \ -../CocoStudio/Armature/display/CCDecorativeDisplay.cpp \ -../CocoStudio/Armature/display/CCDisplayFactory.cpp \ -../CocoStudio/Armature/display/CCDisplayManager.cpp \ -../CocoStudio/Armature/display/CCSkin.cpp \ -../CocoStudio/Armature/physics/CCColliderDetector.cpp \ -../CocoStudio/Armature/utils/CCArmatureDefine.cpp \ -../CocoStudio/Armature/utils/CCArmatureDataManager.cpp \ -../CocoStudio/Armature/utils/CCDataReaderHelper.cpp \ -../CocoStudio/Armature/utils/CCSpriteFrameCacheHelper.cpp \ -../CocoStudio/Armature/utils/CCTransformHelp.cpp \ -../CocoStudio/Armature/utils/CCTweenFunction.cpp \ -../CocoStudio/Armature/utils/CCUtilMath.cpp \ -../CocoStudio/Components/CCComAttribute.cpp \ -../CocoStudio/Components/CCComAudio.cpp \ -../CocoStudio/Components/CCComController.cpp \ -../CocoStudio/Components/CCComRender.cpp \ -../CocoStudio/Components/CCInputDelegate.cpp \ -../CocoStudio/GUI/BaseClasses/UIRootWidget.cpp \ -../CocoStudio/GUI/BaseClasses/UIWidget.cpp \ -../CocoStudio/GUI/Layouts/Layout.cpp \ -../CocoStudio/GUI/Layouts/LayoutParameter.cpp \ -../CocoStudio/GUI/Layouts/UILayoutDefine.cpp \ -../CocoStudio/GUI/System/CocosGUI.cpp \ -../CocoStudio/GUI/System/UIHelper.cpp \ -../CocoStudio/GUI/System/UIInputManager.cpp \ -../CocoStudio/GUI/System/UILayer.cpp \ -../CocoStudio/GUI/UIWidgets/UIButton.cpp \ -../CocoStudio/GUI/UIWidgets/UICheckBox.cpp \ -../CocoStudio/GUI/UIWidgets/UIImageView.cpp \ -../CocoStudio/GUI/UIWidgets/UILabel.cpp \ -../CocoStudio/GUI/UIWidgets/UILabelAtlas.cpp \ -../CocoStudio/GUI/UIWidgets/UILabelBMFont.cpp \ -../CocoStudio/GUI/UIWidgets/UILoadingBar.cpp \ -../CocoStudio/GUI/UIWidgets/UISlider.cpp \ -../CocoStudio/GUI/UIWidgets/UITextField.cpp \ -../CocoStudio/GUI/UIWidgets/ScrollWidget/UIDragPanel.cpp \ -../CocoStudio/GUI/UIWidgets/ScrollWidget/UIListView.cpp \ -../CocoStudio/GUI/UIWidgets/ScrollWidget/UIPageView.cpp \ -../CocoStudio/GUI/UIWidgets/ScrollWidget/UIScrollView.cpp \ -../CocoStudio/Json/CSContentJsonDictionary.cpp \ -../CocoStudio/Json/DictionaryHelper.cpp \ -../CocoStudio/Json/lib_json/json_reader.cpp \ -../CocoStudio/Json/lib_json/json_value.cpp \ -../CocoStudio/Json/lib_json/json_writer.cpp \ -../CocoStudio/Reader/CCSGUIReader.cpp \ -../CocoStudio/Reader/CCSSceneReader.cpp \ -../CocoStudio/Action/CCActionFrame.cpp \ -../CocoStudio/Action/CCActionFrameEasing.cpp \ -../CocoStudio/Action/CCActionManagerEx.cpp \ -../CocoStudio/Action/CCActionNode.cpp \ -../CocoStudio/Action/CCActionObject.cpp \ -../spine/Animation.cpp \ -../spine/AnimationState.cpp \ -../spine/AnimationStateData.cpp \ -../spine/Atlas.cpp \ -../spine/AtlasAttachmentLoader.cpp \ -../spine/Attachment.cpp \ -../spine/AttachmentLoader.cpp \ -../spine/Bone.cpp \ -../spine/BoneData.cpp \ -../spine/Json.cpp \ -../spine/RegionAttachment.cpp \ -../spine/Skeleton.cpp \ -../spine/SkeletonData.cpp \ -../spine/SkeletonJson.cpp \ -../spine/Skin.cpp \ -../spine/Slot.cpp \ -../spine/SlotData.cpp \ -../spine/extension.cpp \ -../spine/spine-cocos2dx.cpp \ -../spine/CCSkeleton.cpp \ -../spine/CCSkeletonAnimation.cpp \ -../CCDeprecated-ext.cpp +include ../../cocos/2d/cocos2dx.mk -include $(COCOS_ROOT)/cocos2dx/proj.linux/cocos2dx.mk - -CXXFLAGS += -Wno-multichar +CXXFLAGS += -Wno-multichar -Wno-unused-result TARGET := $(LIB_DIR)/$(TARGET) diff --git a/extensions/proj.linux/extensions.prf b/extensions/proj.linux/extensions.prf deleted file mode 100644 index d399b91272..0000000000 --- a/extensions/proj.linux/extensions.prf +++ /dev/null @@ -1,20 +0,0 @@ -################################################################################ -# Do not include this file in your project: see cocos2dx.pri. -################################################################################ - -linux { - # We will compile extensions on demand using Makefile. - build_extension.name = Build extension static library - build_extension.input = $$PWD/Makefile - build_extension.output = $$CC_LIBRARY_DIR/libextension.a - build_extension.target = $$CC_LIBRARY_DIR/libextension.a - build_extension.CONFIG = no_link target_predeps - build_extension.commands = cd $$PWD && make $$CC_MAKE_FLAGS - - QMAKE_EXTRA_COMPILERS += build_extension - QMAKE_EXTRA_TARGETS += build_extension - - PRE_TARGETDEPS += $$CC_LIBRARY_DIR/libextension.a - LIBS += -Wl,-Bstatic -lextension -Wl,-Bdynamic -} - diff --git a/external/Box2D/proj.linux/Makefile b/external/Box2D/proj.linux/Makefile index e430bc9883..b43814ccef 100644 --- a/external/Box2D/proj.linux/Makefile +++ b/external/Box2D/proj.linux/Makefile @@ -46,7 +46,7 @@ SOURCES = ../Collision/Shapes/b2ChainShape.cpp \ ../Dynamics/b2WorldCallbacks.cpp \ ../Rope/b2Rope.cpp -include ../../../cocos2dx/proj.linux/cocos2dx.mk +include ../../../cocos/2d/cocos2dx.mk INCLUDES = -I../.. diff --git a/external/chipmunk/proj.linux/Makefile b/external/chipmunk/proj.linux/Makefile index b0e5d1f572..a2cb985b7c 100644 --- a/external/chipmunk/proj.linux/Makefile +++ b/external/chipmunk/proj.linux/Makefile @@ -28,7 +28,7 @@ SOURCES = ../src/chipmunk.c \ ../src/constraints/cpSlideJoint.c \ ../src/constraints/cpPinJoint.c \ -include ../../../cocos2dx/proj.linux/cocos2dx.mk +include ../../../cocos/2d/cocos2dx.mk TARGET = $(LIB_DIR)/libchipmunk.a INCLUDES = -I../include/chipmunk diff --git a/samples/Cpp/HelloCpp/proj.linux/Makefile b/samples/Cpp/HelloCpp/proj.linux/Makefile index 178fa06a86..0548290a52 100644 --- a/samples/Cpp/HelloCpp/proj.linux/Makefile +++ b/samples/Cpp/HelloCpp/proj.linux/Makefile @@ -7,7 +7,7 @@ SOURCES = main.cpp \ ../Classes/HelloWorldScene.cpp COCOS_ROOT = ../../../.. -include $(COCOS_ROOT)/cocos2dx/proj.linux/cocos2dx.mk +include $(COCOS_ROOT)/cocos/2d/cocos2dx.mk SHAREDLIBS += -lcocos2d COCOS_LIBS = $(LIB_DIR)/libcocos2d.so diff --git a/samples/Cpp/SimpleGame/proj.linux/Makefile b/samples/Cpp/SimpleGame/proj.linux/Makefile index 61485ebb7f..9204555b28 100644 --- a/samples/Cpp/SimpleGame/proj.linux/Makefile +++ b/samples/Cpp/SimpleGame/proj.linux/Makefile @@ -8,11 +8,10 @@ SOURCES = main.cpp \ ../Classes/GameOverScene.cpp COCOS_ROOT = ../../../.. -include $(COCOS_ROOT)/cocos2dx/proj.linux/cocos2dx.mk +include $(COCOS_ROOT)/cocos/2d/cocos2dx.mk SHAREDLIBS += -lcocos2d -lcocosdenshion -COCOS_LIBS = $(LIB_DIR)/libcocos2d.so $(LIB_DIR)/libcocosdenshion.so -INCLUDES += -I$(COCOS_ROOT)/audio/include +INCLUDES += -I$(COCOS_ROOT)/cocos/audio/include $(TARGET): $(OBJECTS) $(STATICLIBS) $(COCOS_LIBS) $(CORE_MAKEFILE_LIST) @mkdir -p $(@D) diff --git a/samples/Cpp/TestCpp/proj.linux/Makefile b/samples/Cpp/TestCpp/proj.linux/Makefile index 4dda11cafe..ea1051612c 100644 --- a/samples/Cpp/TestCpp/proj.linux/Makefile +++ b/samples/Cpp/TestCpp/proj.linux/Makefile @@ -2,6 +2,11 @@ EXECUTABLE = TestCpp DEFINES += -DCC_KEYBOARD_SUPPORT +INCLUDES = -I../../../../external \ + -I../../../../cocos/editor-support \ + -I../../../../cocos \ + -I../Classes + SOURCES = ../Classes/AccelerometerTest/AccelerometerTest.cpp \ ../Classes/ActionManagerTest/ActionManagerTest.cpp \ ../Classes/ActionsEaseTest/ActionsEaseTest.cpp \ @@ -135,22 +140,19 @@ SOURCES = ../Classes/AccelerometerTest/AccelerometerTest.cpp \ SHAREDLIBS = -lcocos2d -lcocosdenshion -lcurl -lpng COCOS_LIBS = $(LIB_DIR)/libcocos2d.so $(LIB_DIR)/libcocosdenshion.so -include ../../../../cocos2dx/proj.linux/cocos2dx.mk - -INCLUDES += -I../ \ - -I../../ \ - -I../Classes \ - -I$(COCOS_ROOT)/audio/include \ - -I$(COCOS_ROOT)/extensions/ \ - -I$(COCOS_ROOT)/external/ \ - -I$(COCOS_ROOT)/external/chipmunk/include/chipmunk +include ../../../../cocos/2d/cocos2dx.mk STATICLIBS += \ - $(STATICLIBS_DIR)/libcurl.a \ + $(STATICLIBS_DIR)/curl/prebuilt/linux/$(POSTFIX)/libcurl.a \ $(LIB_DIR)/libextension.a \ $(LIB_DIR)/libbox2d.a \ - $(LIB_DIR)/libchipmunk.a + $(LIB_DIR)/libchipmunk.a \ + $(LIB_DIR)/libgui.a \ + $(LIB_DIR)/libcocosbuilder.a \ + $(LIB_DIR)/libspine.a \ + $(LIB_DIR)/libcocostudio.a \ + $(LIB_DIR)/libnetwork.a ####### Build rules $(TARGET): $(OBJECTS) $(STATICLIBS) $(COCOS_LIBS) $(CORE_MAKEFILE_LIST) diff --git a/samples/Lua/HelloLua/proj.linux/Makefile b/samples/Lua/HelloLua/proj.linux/Makefile index 1ebb038045..6a0ddf230c 100644 --- a/samples/Lua/HelloLua/proj.linux/Makefile +++ b/samples/Lua/HelloLua/proj.linux/Makefile @@ -1,28 +1,22 @@ EXECUTABLE = HelloLua COCOS_ROOT = ../../../.. -INCLUDES = -I../ -I../Classes -I$(COCOS_ROOT)/audio/include \ - -I$(COCOS_ROOT)/scripting/lua/lua \ - -I$(COCOS_ROOT)/scripting/lua/tolua \ - -I$(COCOS_ROOT)/scripting/lua/cocos2dx_support \ - -I$(COCOS_ROOT)/extensions \ +INCLUDES = -I../Classes \ + -I$(COCOS_ROOT)/audio/include \ + -I$(COCOS_ROOT)/cocos/scripting/lua/bindings \ + -I$(COCOS_ROOT)/external/lua/lua SOURCES = main.cpp ../Classes/AppDelegate.cpp SHAREDLIBS += -lcocos2d -lcocosdenshion -llua -lextension -COCOS_LIBS = $(LIB_DIR)/libcocos2d.so $(LIB_DIR)/libcocosdenshion.so $(LIB_DIR)/liblua.so -include $(COCOS_ROOT)/cocos2dx/proj.linux/cocos2dx.mk +include $(COCOS_ROOT)/cocos/2d/cocos2dx.mk $(TARGET): $(OBJECTS) $(STATICLIBS) $(COCOS_LIBS) $(CORE_MAKEFILE_LIST) @mkdir -p $(@D) - cp -n ../../../../scripting/lua/script/* ../../../../samples/Lua/HelloLua/Resources + cp -n ../../../../cocos/scripting/lua/script/* ../../../../samples/Lua/HelloLua/Resources $(LOG_LINK)$(CXX) $(CXXFLAGS) $(OBJECTS) -o $@ $(SHAREDLIBS) $(STATICLIBS) $(LIBS) $(OBJ_DIR)/%.o: ../%.cpp $(CORE_MAKEFILE_LIST) @mkdir -p $(@D) $(LOG_CXX)$(CXX) $(CXXFLAGS) $(INCLUDES) $(DEFINES) $(VISIBILITY) -c $< -o $@ - -$(OBJ_DIR)/%.o: %.cpp $(CORE_MAKEFILE_LIST) - @mkdir -p $(@D) - $(LOG_CXX)$(CXX) $(CXXFLAGS) $(INCLUDES) $(DEFINES) $(VISIBILITY) -c $< -o $@ diff --git a/samples/Lua/TestLua/proj.linux/Makefile b/samples/Lua/TestLua/proj.linux/Makefile index a23cc6dda4..5151716394 100644 --- a/samples/Lua/TestLua/proj.linux/Makefile +++ b/samples/Lua/TestLua/proj.linux/Makefile @@ -1,22 +1,22 @@ EXECUTABLE = TestLua COCOS_ROOT = ../../../.. -INCLUDES = -I../ -I../Classes -I$(COCOS_ROOT)/audio/include \ - -I$(COCOS_ROOT)/scripting/lua/lua \ - -I$(COCOS_ROOT)/scripting/lua/tolua \ - -I$(COCOS_ROOT)/scripting/lua/cocos2dx_support +INCLUDES = -I../Classes \ + -I$(COCOS_ROOT)/audio/include \ + -I$(COCOS_ROOT)/cocos/scripting/lua/bindings \ + -I$(COCOS_ROOT)/external/lua/lua -SOURCES = main.cpp ../Classes/AppDelegate.cpp +SOURCES = main.cpp \ +../Classes/AppDelegate.cpp SHAREDLIBS += -lcocos2d -lcocosdenshion -llua -COCOS_LIBS = $(LIB_DIR)/libcocos2d.so $(LIB_DIR)/libcocosdenshion.so $(LIB_DIR)/liblua.so -include $(COCOS_ROOT)/cocos2dx/proj.linux/cocos2dx.mk +include $(COCOS_ROOT)/cocos/2d/cocos2dx.mk $(TARGET): $(OBJECTS) $(STATICLIBS) $(COCOS_LIBS) $(CORE_MAKEFILE_LIST) @mkdir -p $(@D) cp -R -n ../../../../samples/Cpp/TestCpp/Resources ../../../../samples/Lua/TestLua - cp -n ../../../../scripting/lua/script/* ../../../../samples/Lua/TestLua/Resources + cp -n ../../../../cocos/scripting/lua/script/* ../../../../samples/Lua/TestLua/Resources $(LOG_LINK)$(CXX) $(CXXFLAGS) $(OBJECTS) -o $@ $(SHAREDLIBS) $(STATICLIBS) $(LIBS) $(OBJ_DIR)/%.o: ../%.cpp $(CORE_MAKEFILE_LIST) From 3252a8979138bcd7bbada264d733474a6561854f Mon Sep 17 00:00:00 2001 From: Dhilan007 Date: Tue, 22 Oct 2013 18:11:07 +0800 Subject: [PATCH 16/18] issues #2905:add SimpleGame vs-project --- .../SimpleGame/proj.win32/SimpleGame.vcxproj | 151 ++++++++++++++++++ .../proj.win32/SimpleGame.vcxproj.filters | 41 +++++ .../proj.win32/SimpleGame.vcxproj.user | 11 ++ samples/Cpp/SimpleGame/proj.win32/main.cpp | 20 +++ samples/Cpp/SimpleGame/proj.win32/main.h | 13 ++ 5 files changed, 236 insertions(+) create mode 100644 samples/Cpp/SimpleGame/proj.win32/SimpleGame.vcxproj create mode 100644 samples/Cpp/SimpleGame/proj.win32/SimpleGame.vcxproj.filters create mode 100644 samples/Cpp/SimpleGame/proj.win32/SimpleGame.vcxproj.user create mode 100644 samples/Cpp/SimpleGame/proj.win32/main.cpp create mode 100644 samples/Cpp/SimpleGame/proj.win32/main.h diff --git a/samples/Cpp/SimpleGame/proj.win32/SimpleGame.vcxproj b/samples/Cpp/SimpleGame/proj.win32/SimpleGame.vcxproj new file mode 100644 index 0000000000..cb3c74751e --- /dev/null +++ b/samples/Cpp/SimpleGame/proj.win32/SimpleGame.vcxproj @@ -0,0 +1,151 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {E0E282F4-8487-452C-BFAB-CB960EB4D22F} + SimpleGame + Win32Proj + + + + Application + Unicode + true + v100 + v110 + v110_xp + + + Application + Unicode + v100 + v110 + v110_xp + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Configuration).win32\ + $(Configuration).win32\ + true + $(SolutionDir)$(Configuration).win32\ + $(Configuration).win32\ + false + AllRules.ruleset + + + AllRules.ruleset + + + + + $(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A\lib;$(LibraryPath) + + + $(MSBuildProgramFiles32)\Microsoft SDKs\Windows\v7.1A\lib;$(LibraryPath) + + + + Disabled + ..\Classes;$(EngineRoot)cocos\audio\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;COCOS2D_DEBUG=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + Level3 + EditAndContinue + 4267;4251;4244;%(DisableSpecificWarnings) + + + $(OutDir)$(ProjectName).exe + $(OutDir);%(AdditionalLibraryDirectories) + true + Windows + MachineX86 + libcocos2d.lib;libchipmunk.lib;%(AdditionalDependencies) + + + + + + + + + MaxSpeed + true + ..\Classes;$(EngineRoot)cocos\audio\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + MultiThreadedDLL + true + + + Level3 + ProgramDatabase + 4267;4251;4244;%(DisableSpecificWarnings) + + + libcocos2d.lib;%(AdditionalDependencies) + $(OutDir)$(ProjectName).exe + $(OutDir);%(AdditionalLibraryDirectories) + true + Windows + true + true + MachineX86 + + + + + + + + + + + + + + + + + + + + + {98a51ba8-fc3a-415b-ac8f-8c7bd464e93e} + false + + + {f8edd7fa-9a51-4e80-baeb-860825d2eac6} + + + {207bc7a9-ccf1-4f2f-a04d-45f72242ae25} + + + + + + \ No newline at end of file diff --git a/samples/Cpp/SimpleGame/proj.win32/SimpleGame.vcxproj.filters b/samples/Cpp/SimpleGame/proj.win32/SimpleGame.vcxproj.filters new file mode 100644 index 0000000000..cf39562aaa --- /dev/null +++ b/samples/Cpp/SimpleGame/proj.win32/SimpleGame.vcxproj.filters @@ -0,0 +1,41 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + + + Classes + + + Classes + + + win32 + + + Classes + + + + + Classes + + + Classes + + + win32 + + + Classes + + + \ No newline at end of file diff --git a/samples/Cpp/SimpleGame/proj.win32/SimpleGame.vcxproj.user b/samples/Cpp/SimpleGame/proj.win32/SimpleGame.vcxproj.user new file mode 100644 index 0000000000..32a6296820 --- /dev/null +++ b/samples/Cpp/SimpleGame/proj.win32/SimpleGame.vcxproj.user @@ -0,0 +1,11 @@ + + + + $(ProjectDir)..\Resources + WindowsLocalDebugger + + + $(ProjectDir)..\Resources + WindowsLocalDebugger + + \ No newline at end of file diff --git a/samples/Cpp/SimpleGame/proj.win32/main.cpp b/samples/Cpp/SimpleGame/proj.win32/main.cpp new file mode 100644 index 0000000000..d819bb02e0 --- /dev/null +++ b/samples/Cpp/SimpleGame/proj.win32/main.cpp @@ -0,0 +1,20 @@ +#include "main.h" +#include "../Classes/AppDelegate.h" +#include "CCEGLView.h" + +USING_NS_CC; + +int APIENTRY _tWinMain(HINSTANCE hInstance, + HINSTANCE hPrevInstance, + LPTSTR lpCmdLine, + int nCmdShow) +{ + UNREFERENCED_PARAMETER(hPrevInstance); + UNREFERENCED_PARAMETER(lpCmdLine); + + // create the application instance + AppDelegate app; + EGLView eglView; + eglView.init("SimpleGame",900,640); + return Application::getInstance()->run(); +} diff --git a/samples/Cpp/SimpleGame/proj.win32/main.h b/samples/Cpp/SimpleGame/proj.win32/main.h new file mode 100644 index 0000000000..e74708bdf2 --- /dev/null +++ b/samples/Cpp/SimpleGame/proj.win32/main.h @@ -0,0 +1,13 @@ +#ifndef __MAIN_H__ +#define __MAIN_H__ + +#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers + +// Windows Header Files: +#include +#include + +// C RunTime Header Files +#include "CCStdC.h" + +#endif // __MAIN_H__ From dfd69d262aafacea1c77fbb0d932dd549d4c20f2 Mon Sep 17 00:00:00 2001 From: Dhilan007 Date: Wed, 23 Oct 2013 16:48:51 +0800 Subject: [PATCH 17/18] adjust std:function support 10 parameter --- cocos/2d/cocos2d_headers.props | 1 + 1 file changed, 1 insertion(+) diff --git a/cocos/2d/cocos2d_headers.props b/cocos/2d/cocos2d_headers.props index a5d8616d03..020fd07d2f 100644 --- a/cocos/2d/cocos2d_headers.props +++ b/cocos/2d/cocos2d_headers.props @@ -8,6 +8,7 @@ $(EngineRoot)cocos\2d;$(EngineRoot)cocos\base;$(EngineRoot)cocos\physics;$(EngineRoot)cocos\math\kazmath\include;$(EngineRoot)cocos\2d\platform\win32;$(EngineRoot)external\glfw3\include\win32;$(EngineRoot)external\win32-specific\gles\include\OGLES; + _VARIADIC_MAX=10;%(PreprocessorDefinitions) From e81efb24c932275090b45461f2fd4a07279d082d Mon Sep 17 00:00:00 2001 From: minggo Date: Wed, 23 Oct 2013 16:49:50 +0800 Subject: [PATCH 18/18] issue #2905: android samples run ok --- .../Cpp/AssetsManagerTest/proj.android/project.properties | 4 ++-- samples/Cpp/HelloCpp/proj.android/project.properties | 5 ++--- samples/Cpp/SimpleGame/proj.android/project.properties | 4 ++-- samples/Cpp/TestCpp/proj.android/project.properties | 4 ++-- .../Javascript/CocosDragonJS/proj.android/project.properties | 4 ++-- .../Javascript/CrystalCraze/proj.android/project.properties | 4 ++-- .../Javascript/MoonWarriors/proj.android/project.properties | 4 ++-- .../TestJavascript/proj.android/project.properties | 4 ++-- .../WatermelonWithMe/proj.android/project.properties | 4 ++-- samples/Lua/HelloLua/proj.android/project.properties | 4 ++-- samples/Lua/TestLua/proj.android/project.properties | 4 ++-- template/multi-platform-cpp/proj.android/project.properties | 4 ++-- template/multi-platform-js/proj.android/project.properties | 2 +- template/multi-platform-lua/proj.android/project.properties | 4 ++-- 14 files changed, 27 insertions(+), 28 deletions(-) diff --git a/samples/Cpp/AssetsManagerTest/proj.android/project.properties b/samples/Cpp/AssetsManagerTest/proj.android/project.properties index 5c08afb38c..f7e62936d0 100644 --- a/samples/Cpp/AssetsManagerTest/proj.android/project.properties +++ b/samples/Cpp/AssetsManagerTest/proj.android/project.properties @@ -11,5 +11,5 @@ #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt # Project target. -target=android-13 -android.library.reference.1=../../../../cocos2dx/platform/android/java +target=android-10 +android.library.reference.1=../../../../cocos/2d/platform/android/java diff --git a/samples/Cpp/HelloCpp/proj.android/project.properties b/samples/Cpp/HelloCpp/proj.android/project.properties index 088495876a..0a6dc6664d 100644 --- a/samples/Cpp/HelloCpp/proj.android/project.properties +++ b/samples/Cpp/HelloCpp/proj.android/project.properties @@ -8,7 +8,6 @@ # project structure. # Project target. -target=android-13 +target=android-10 -android.library.reference.1=../../../../cocos2dx/platform/android/java -android.library=false +android.library.reference.1=../../../../cocos/2d/platform/android/java diff --git a/samples/Cpp/SimpleGame/proj.android/project.properties b/samples/Cpp/SimpleGame/proj.android/project.properties index 5c08afb38c..f7e62936d0 100644 --- a/samples/Cpp/SimpleGame/proj.android/project.properties +++ b/samples/Cpp/SimpleGame/proj.android/project.properties @@ -11,5 +11,5 @@ #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt # Project target. -target=android-13 -android.library.reference.1=../../../../cocos2dx/platform/android/java +target=android-10 +android.library.reference.1=../../../../cocos/2d/platform/android/java diff --git a/samples/Cpp/TestCpp/proj.android/project.properties b/samples/Cpp/TestCpp/proj.android/project.properties index db4ff43492..0a6dc6664d 100644 --- a/samples/Cpp/TestCpp/proj.android/project.properties +++ b/samples/Cpp/TestCpp/proj.android/project.properties @@ -8,6 +8,6 @@ # project structure. # Project target. -target=android-13 +target=android-10 -android.library.reference.1=../../../../cocos2dx/platform/android/java +android.library.reference.1=../../../../cocos/2d/platform/android/java diff --git a/samples/Javascript/CocosDragonJS/proj.android/project.properties b/samples/Javascript/CocosDragonJS/proj.android/project.properties index db4ff43492..0a6dc6664d 100644 --- a/samples/Javascript/CocosDragonJS/proj.android/project.properties +++ b/samples/Javascript/CocosDragonJS/proj.android/project.properties @@ -8,6 +8,6 @@ # project structure. # Project target. -target=android-13 +target=android-10 -android.library.reference.1=../../../../cocos2dx/platform/android/java +android.library.reference.1=../../../../cocos/2d/platform/android/java diff --git a/samples/Javascript/CrystalCraze/proj.android/project.properties b/samples/Javascript/CrystalCraze/proj.android/project.properties index db4ff43492..0a6dc6664d 100644 --- a/samples/Javascript/CrystalCraze/proj.android/project.properties +++ b/samples/Javascript/CrystalCraze/proj.android/project.properties @@ -8,6 +8,6 @@ # project structure. # Project target. -target=android-13 +target=android-10 -android.library.reference.1=../../../../cocos2dx/platform/android/java +android.library.reference.1=../../../../cocos/2d/platform/android/java diff --git a/samples/Javascript/MoonWarriors/proj.android/project.properties b/samples/Javascript/MoonWarriors/proj.android/project.properties index db4ff43492..0a6dc6664d 100644 --- a/samples/Javascript/MoonWarriors/proj.android/project.properties +++ b/samples/Javascript/MoonWarriors/proj.android/project.properties @@ -8,6 +8,6 @@ # project structure. # Project target. -target=android-13 +target=android-10 -android.library.reference.1=../../../../cocos2dx/platform/android/java +android.library.reference.1=../../../../cocos/2d/platform/android/java diff --git a/samples/Javascript/TestJavascript/proj.android/project.properties b/samples/Javascript/TestJavascript/proj.android/project.properties index db4ff43492..0a6dc6664d 100644 --- a/samples/Javascript/TestJavascript/proj.android/project.properties +++ b/samples/Javascript/TestJavascript/proj.android/project.properties @@ -8,6 +8,6 @@ # project structure. # Project target. -target=android-13 +target=android-10 -android.library.reference.1=../../../../cocos2dx/platform/android/java +android.library.reference.1=../../../../cocos/2d/platform/android/java diff --git a/samples/Javascript/WatermelonWithMe/proj.android/project.properties b/samples/Javascript/WatermelonWithMe/proj.android/project.properties index db4ff43492..0a6dc6664d 100644 --- a/samples/Javascript/WatermelonWithMe/proj.android/project.properties +++ b/samples/Javascript/WatermelonWithMe/proj.android/project.properties @@ -8,6 +8,6 @@ # project structure. # Project target. -target=android-13 +target=android-10 -android.library.reference.1=../../../../cocos2dx/platform/android/java +android.library.reference.1=../../../../cocos/2d/platform/android/java diff --git a/samples/Lua/HelloLua/proj.android/project.properties b/samples/Lua/HelloLua/proj.android/project.properties index db4ff43492..0a6dc6664d 100644 --- a/samples/Lua/HelloLua/proj.android/project.properties +++ b/samples/Lua/HelloLua/proj.android/project.properties @@ -8,6 +8,6 @@ # project structure. # Project target. -target=android-13 +target=android-10 -android.library.reference.1=../../../../cocos2dx/platform/android/java +android.library.reference.1=../../../../cocos/2d/platform/android/java diff --git a/samples/Lua/TestLua/proj.android/project.properties b/samples/Lua/TestLua/proj.android/project.properties index db4ff43492..0a6dc6664d 100644 --- a/samples/Lua/TestLua/proj.android/project.properties +++ b/samples/Lua/TestLua/proj.android/project.properties @@ -8,6 +8,6 @@ # project structure. # Project target. -target=android-13 +target=android-10 -android.library.reference.1=../../../../cocos2dx/platform/android/java +android.library.reference.1=../../../../cocos/2d/platform/android/java diff --git a/template/multi-platform-cpp/proj.android/project.properties b/template/multi-platform-cpp/proj.android/project.properties index 6495217b66..16f145cfc9 100644 --- a/template/multi-platform-cpp/proj.android/project.properties +++ b/template/multi-platform-cpp/proj.android/project.properties @@ -8,6 +8,6 @@ # project structure. # Project target. -target=android-13 +target=android-10 -android.library.reference.1=../../../cocos2dx/platform/android/java +android.library.reference.1=../../../cocos/2d/platform/android/java diff --git a/template/multi-platform-js/proj.android/project.properties b/template/multi-platform-js/proj.android/project.properties index 6495217b66..f0d6a80641 100644 --- a/template/multi-platform-js/proj.android/project.properties +++ b/template/multi-platform-js/proj.android/project.properties @@ -10,4 +10,4 @@ # Project target. target=android-13 -android.library.reference.1=../../../cocos2dx/platform/android/java +android.library.reference.1=../../../cocos/2d/platform/android/java diff --git a/template/multi-platform-lua/proj.android/project.properties b/template/multi-platform-lua/proj.android/project.properties index 6495217b66..16f145cfc9 100644 --- a/template/multi-platform-lua/proj.android/project.properties +++ b/template/multi-platform-lua/proj.android/project.properties @@ -8,6 +8,6 @@ # project structure. # Project target. -target=android-13 +target=android-10 -android.library.reference.1=../../../cocos2dx/platform/android/java +android.library.reference.1=../../../cocos/2d/platform/android/java