Commit Graph

296 Commits

Author SHA1 Message Date
James Chen e8c0844dd5 fixed #1617: Some improvements for JS Bindings.
1) Changed cc.REPEAT_FOREVER = - 1 to cc.REPEAT_FOREVER = 0xffffffff
[Reason]: If cc.REPEAT_FOREVER = -1, it will be a very big double value after converting it to double by JS_ValueToNumber on android.
Then cast it to unsigned int, the value will be 0. The schedule will not be able to work.
I don't know why this occurs only on android.
[Solution]: Instead of passing -1 to it, I assign it with max value of unsigned int in c++.

2) Added two helper function, cc.ArrayGetIndexOfObject and cc.ArrayContainsObject.

3) Added JSScheduleWrapper::removeTargetForNativeNode to avoid memory leaks.

4) Improvments for JSTouchDelegate. Added four functions as follows:
// Set the touch delegate to map by using the key (pJSObj).
static void setDelegateForJSObject(JSObject* pJSObj, JSTouchDelegate* pDelegate);

// Get the touch delegate by the key (pJSObj).
static JSTouchDelegate* getDelegateForJSObject(JSObject* pJSObj);

// Remove the delegate by the key (pJSObj).
static void removeDelegateForJSObject(JSObject* pJSObj);

void unregisterTouchDelegate();
And exported cc.unregisterTouchDelegate(); to js.
Fix a memory leak for JSTouchDelegate by making it as an autorelease object.

5) Don't add js callback function to the reserved slot of object.
[Reason]: The target object may execute more than one schedule.
Therefore, previous js callback function will be replaced
by the current one. For example:

this.scheduleOnce(function() { temporary function 1 }, 0.5);
this.scheduleOnce(function() { temporary function 2 }, 0.5);

In this case, the temporary function 1 will be removed from reserved slot 0.
And temporary function 2 will be set to reserved slot 0 of this object.
If gc is triggered before the JSScheduleWrapper::scheduleFunc is invoked,
crash will happen. You could simply reproduce it by adding jsc.garbageCollect(); after scheduleOnce.
[Solution] Because one schedule corresponds to one JSScheduleWrapper, we root
the js callback function in JSScheduleWrapper::setJSCallbackFunc and unroot it
at the destructor of JSScheduleWrapper.
2012-12-18 11:56:44 +08:00
CocosRobot 13b04e3ee4 cocos2dxmatoMac-mini : updating submodule reference to latest autogenerated bindings 2012-12-17 15:26:28 +08:00
dualface 98ea80329e fix android compile warning 2012-12-14 18:01:54 +08:00
James Chen e7328cf3ba fixed #1614: DrawNodeTest crashes on JSB. 2012-12-14 10:31:31 +08:00
Nicolas Gramlich 9537389949 Added cc.DrawNode.extend. 2012-12-12 21:49:29 +08:00
James Chen 190e6c1de5 Merge branch 'linux-lua' of https://github.com/dumganhar/cocos2d-x into lua-linux
Conflicts:
	scripting/lua/cocos2dx_support/LuaCocos2d.cpp
2012-12-10 17:25:23 +08:00
dualface f815cdc423 merge gles20 2012-12-10 17:00:16 +08:00
dualface 268aa45d2c rename CCNode:scheduleUpdateScriptHandlerWithPriority() to CCNode::scheduleUpdateWhitPriorityLua()
remove unused functions
2012-12-10 16:09:23 +08:00
dualface 77d4da6e22 [lua] remove va_list 2012-12-10 14:28:26 +08:00
dualface b6e605b9ae [lua] fix CCSequence export 2012-12-10 14:19:18 +08:00
dualface 4ca6cf8c7a [lua] update LuaCocos2d.cpp 2012-12-10 14:09:00 +08:00
dualface c8753f72ef [scripting] add CCNode::scheduleUpdateScriptHandlerWithPriority() 2012-12-10 13:48:27 +08:00
CocosRobot f7e87f2269 cocos2dxmatoMac-mini : updating submodule reference to latest autogenerated bindings 2012-12-07 09:51:17 +08:00
CocosRobot fe9e6ba688 cocos2dxmatoMac-mini : updating submodule reference to latest autogenerated bindings 2012-12-06 17:22:53 +08:00
James Chen 6a7a365365 Updated eclipse project configurations for linux 2012-12-06 14:57:03 +08:00
James Chen b044a89d6f Merge branch 'gles20' of https://github.com/ivzave/cocos2d-x into linux-lua
Conflicts:
	scripting/lua/cocos2dx_support/LuaCocos2d.cpp
2012-12-06 14:55:18 +08:00
James Chen 34eb3a88c2 Commented JS_SetGCZeal. 2012-12-04 17:23:08 +08:00
James Chen b5ae1f6d2a Updated MoonWarriors/Classes/AppDelegate.cpp.
Updated the submodule reference of cocos2d-js-tests to the latest one.
Fixed duplicate define in js_bindings_ccbreader.cpp.
2012-12-04 11:36:45 +08:00
CocosRobot 545002b3a9 cocos2dxmatoMac-mini : updating submodule reference to latest autogenerated bindings 2012-12-04 10:59:58 +08:00
minggo 75845b56c0 Merge pull request #1694 from dualface/update_luabinding
Update luabinding
2012-12-03 18:59:23 -08:00
minggo bbcbfa71ef Merge pull request #1704 from minggo/cclayer_script_support
Cclayer script support
2012-12-03 18:55:11 -08:00
minggo 4e7fca3185 merge dualface's pull request for fixing CCLayer script support and fix error for js-binding 2012-12-04 10:52:49 +08:00
James Chen 9f168faeb0 Merge pull request #1696 from fape/lua_marmalade
fixed #1591: Update for Lua marmalade.
* Add ignore marmalade generated Visual Studio directory
* Update Lua and HelloLua marmalade project file
* Add TestLua marmalade project
2012-12-03 18:51:39 -08:00
minggo c21ad515bd Merge pull request #1693 from dualface/add_tolua_isnull
add tolua.isnull()
2012-12-03 18:08:21 -08:00
minggo 7ad2484a91 Merge branch 'fix_CCLayer_script_support' of https://github.com/dualface/cocos2d-x into cclayer_script_support 2012-12-04 09:50:01 +08:00
James Chen 7c074d4ced issue #1550: fixed a memory leak in jsbinding. 2012-12-03 22:17:53 +08:00
James Chen 478791a472 Added CCBReader::setCCBRootPath. 2012-12-03 18:27:50 +08:00
James Chen f6185844a9 fixed #1588: Get the right js callback function in js_CCScheduler_schedule. 2012-12-03 15:59:29 +08:00
James Chen d97dfe162a fixed #1588: RescheduleCallback support for JSBinding. 2012-12-03 15:33:36 +08:00
fape aac98975da update lua marmalade project 2012-12-02 15:29:10 +01:00
dualface 0e65257bc2 [luabinding] remove duplicate ccLanguageType 2012-12-02 16:17:17 +08:00
dualface 5bc95780c0 update luabinding 2012-12-02 15:48:15 +08:00
dualface 308a01e629 [luabinding] add tolua.isnull() 2012-12-02 15:29:00 +08:00
dualface e0ee27cb17 [luabinding] fix CCLayer:getScriptTOuchHandlerEntry()
[luabinding] add CCLayer keypad, accelerometer support
2012-12-02 15:17:34 +08:00
James Chen 399fb53452 fixed #1586: Native object need to be an autorelease object. 2012-12-01 11:41:51 +08:00
James Chen e3615e2fb1 fixed #1586: Invoking removeAllRoots in ScriptingCore destructor to avoid crash when app exits. 2012-12-01 11:41:50 +08:00
James Chen 36bc0ab0bb Invoking JS_SetGCZeal only when the macros DEBUG and JS_GC_ZEAL is defined. 2012-12-01 11:41:50 +08:00
Rohan Kuruvilla 745392ad6c Changing chipmunk manual bindings to fix GC issues 2012-11-30 16:08:19 -08:00
James Chen 94b1d39b2c Using release version of spidermonkey for win32, otherwise jsbinding project can't be run on other machines. 2012-11-30 22:45:51 +08:00
CocosRobot 3533358049 cocos2dxmatoMac-mini : updating submodule reference to latest autogenerated bindings 2012-11-30 22:20:22 +08:00
James Chen 07661a1e21 issue #1581: Added jsb_set_reserved_slot and jsb_get_reserved_slot, 2012-11-30 22:00:30 +08:00
James Chen 15d02e4db8 Merge branch 'iss1581-fix-jsbinding-bugs' of https://github.com/dumganhar/cocos2d-x into iss1583-js-tests
Conflicts:
	scripting/javascript/bindings/cocos2d_specifics.cpp
2012-11-30 21:43:44 +08:00
James Chen 95875112fa Merge branch 'iss1583-js-tests' of https://github.com/dumganhar/cocos2d-x into iss1583-js-tests 2012-11-30 21:19:19 +08:00
James Chen 26790eb17a issue #1583: Added some Macros as follows:
cc.MENU_STATE_WAITING = 0;
cc.MENU_STATE_TRACKING_TOUCH = 1;
cc.MENU_HANDLER_PRIORITY = -128;
cc.DEFAULT_PADDING = 5;
2012-11-30 21:15:54 +08:00
James Chen 0d93f2d651 issue #1583: Bind cc.Menu.alignItemsInRows, cc.Menu.alignItemsInColums, cc.LayerMultiplex.create 2012-11-30 21:15:01 +08:00
James Chen 96e2707f39 issue #1583: Added jsvals_variadic_to_ccarray function. 2012-11-30 21:12:14 +08:00
James Chen e8c5f5f38c Added CCTexture2D::setTexParameters binding.
Fixed pass one more argument in JSCallFuncWrapper::callbackFunc if extraData is void.
2012-11-30 18:15:29 +08:00
minggo bb6e03bd3f Merge branch 'gles20' of https://github.com/cocos2d/cocos2d-x into iss1583-update-js 2012-11-30 17:42:51 +08:00
James Chen a37cc8a098 Updated jsb_constants_chipmunk.js and jsb_constants_cocosbuilder.js. 2012-11-29 15:29:58 +08:00
James Chen 494806167b Temporary commit. 2012-11-29 15:26:24 +08:00