Ricardo Quesada
9b118e5e96
Squashed commit of the following:
...
commit 519fcd7f68e3586c376fd5e8d4a0ee220a48d225
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date: Sat Apr 26 10:10:06 2014 -0700
Updates templates files
commit 2b07843ebe592f56b2abc544ccf66d441bb19fc5
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date: Sat Apr 26 10:08:19 2014 -0700
compiles on Windows
commit b175522ef7205eaab3bd3f26c27c5d6514cbe2a4
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date: Sat Apr 26 09:55:30 2014 -0700
adds cocos2d.h
commit 4c3d14f929bac017b93ca843b4f149d352264a30
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date: Sat Apr 26 09:54:24 2014 -0700
re-adds missing files
commit f729181728959260d14c4152555534f5beec8e05
Merge: 148da79 2adac67
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date: Sat Apr 26 09:51:12 2014 -0700
Merge branch 'includes_fixes' of github.com:ricardoquesada/cocos2d-x into includes_fixes
commit 148da79010c5dffeab885933624cffaf3d588852
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date: Sat Apr 26 09:49:12 2014 -0700
Adds SimpleAudioEngine
commit 2adac67019180ec82b7bd03f0b67c12f62e29e77
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date: Sat Apr 26 09:47:45 2014 -0700
Compiles for Android
commit 4a300d1b9225fa5708f25a69a50bb531f0ac1a32
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date: Sat Apr 26 09:13:35 2014 -0700
Fixes the includes
2014-04-26 10:11:22 -07:00
James Chen
8134404734
Renames the protected method: 'EventListener::(s|g)etSceneGraphPriority'
...
-> 'EventListener::(s|g)etAssociatedNode'
2014-04-15 12:50:33 +08:00
James Chen
a258df38a9
closed #4744 : EventDispatcher::setDirtyForNode doesn't consider node's children
2014-04-10 15:31:22 +08:00
Darragh Coy
117f22d895
Tweak formatting and change spaces to tabs so indentation appears consistent on github.
2014-04-08 08:47:26 -07:00
Darragh Coy
0082900d10
Small dangling pointer tweak/fix to CCEventDispatcher
...
If cleaning a target node that has a listener in the 'to be added' listeners list then ensure that listener does not have a stale reference to the node. This is a minor tweak in addition to pull request 6160 (https://github.com/cocos2d/cocos2d-x/pull/6160 ).
2014-04-08 08:46:09 -07:00
James Chen
49bba30409
closed #4710 : [win32] Crash in EventDispatcher if game starts up with mouse moving frequently
2014-04-08 15:08:34 +08:00
James Chen
546db2de4a
Unregistered listener when it's removed from _toAddedListeners.
2014-04-08 11:17:38 +08:00
Darragh Coy
79b5dff795
CCEventDispatcher crash fix
...
Fix possible crashes which could be caused by the EventDispatcher having listeners associated with nodes are destroyed. Catch the case where a node registers a listener while we are dispatching events and gets destroyed while that event is still being dispatched. Check the list of nodes to be added into the event dispatcher fully when we are cleaning listeners for a target node.
This issue was found using the extra debug verification in this pull request:
https://github.com/cocos2d/cocos2d-x/pull/6011
2014-04-07 16:19:26 -07:00
dbaack
6262c9c910
Fixed a bug where an event listener removed from the event dispatcher while it is still in the _toAddedListeners vector would never have _isRegistered set to false on removal. This causes it to fail an assert if it is attempted to be added to the event dispatcher again later.
2014-04-06 21:59:40 -07:00
James Chen
f6859a3ca9
closed #4557 : Adds `EventListener::setEnabled/isEnabled`.
2014-04-03 15:32:16 +08:00
Darragh Coy
0f729126f0
Find another instance where we should null out the node pointer for the current listener after it has been disassociated with the node.
2014-03-27 20:11:37 -07:00
Darragh Coy
83495e6e9b
Macro wrap some of the other debug checks related to event listeners.
2014-03-27 15:39:52 -07:00
Darragh Coy
c6cd927ea5
When an event listener is removed from the scene and has a node associated with it, NULL out the node pointer so as not to leave any dangling pointers.
2014-03-27 15:37:16 -07:00
Darragh Coy
a778d07ecc
Undo most of the rest of the event dispatcher related changes in this fix. Will update with a much more elegant solution that does not disturb the existing code so much and which ensures no dangling pointers.
2014-03-27 15:22:11 -07:00
Darragh Coy
824efceb3f
Revert "Review feedback: fix memory leak discovered."
...
This reverts commit 07646f1c82
.
2014-03-27 15:14:37 -07:00
Darragh Coy
8ee90389b4
Review feedback: Wrap the debug verification in additional macros which are disabled by default.
...
Require the user to enable 'CC_NODE_DEBUG_VERIFY_EVENT_LISTENERS' in ccConfig.h in order to enable the debug checks in debug builds.
2014-03-27 12:29:28 -07:00
Darragh Coy
6e19da12c3
Review feedback: Remove unnecessary check of EventListener::getSceneGraphPriority() for fixed event listeners.
...
Fixed priority event listeners never have an associated node.
2014-03-27 11:59:07 -07:00
Darragh Coy
07646f1c82
Review feedback: fix memory leak discovered.
...
Always safe release the listener we retain - shift where release happens to the end of the block. Reproduced the leak using the Xcode Leaks instrument in the RemoveListenerAfterAddingTest and verified fixed after apply this change.
2014-03-27 11:28:27 -07:00
Darragh Coy
0ee1095e37
Fix crashes in event dispatch other related safety checks/fixes
...
1: Add a fix to prevent events from being sent to scene nodes which are destroyed. Previously when a node was being destroyed it would try to unregister any event listeners it would have. This process would fail however in the case where event dispatching was already underway because we can't modify the listeners list while we are iterating through it. This is a pretty common occurrence since we often tear down & switch scenes in response to button clicks etc. Fix the problem by nulling out the slot for the listener we are removing in this case, so that it's node no longer receives any events after it is destroyed. The event dispatching code will cleanup this unused/nulled slot once the event processing loop has terminated.
2: When removing an event listener in cocos2d::EventDispatcher, ensure immediately it gets removed from the node priority map and dirty nodes set in order to ensure we don't inadvertently access any dangling pointers to nodes.
3: Add debug checks to ensure nodes have no associated event listeners after they are destroyed. This check will catch the problem fixed by (1) if it is still present.
4: Add some extra debug sanity checks in the event dispatcher to ensure nodes are not added to the lists twice and that they are being properly removed from the lists under certain conditions.
5: In cocos2d::Node's destructor NULL out members after releasing them in case they somehow happen to be accessed during the destructor. Move the release of the event dispatcher to the very end, since we need to check against it in debug.
2014-03-26 13:12:44 -07:00
andyque
f5795c25b6
remove warnings under win32
2014-03-24 10:12:40 +08:00
James Chen
183622c718
'EventDispatcherTest/Issue 4129' crashes on Windows.
2014-03-06 10:45:29 +08:00
James Chen
98e1099370
Fixes crash of PerformanceTest/EventDispatcherTest.
2014-03-04 16:43:04 +08:00
James Chen
f3949e078b
[EventDispatcher] Adds 'pauseEventListenersForTarget', 'resumeEventListenersForTarget' and 'removeEventListenersForTarget'.
2014-03-02 17:41:18 +08:00
James Chen
30d7130eb0
closed #4160 : Out of range exception in EventDispatcher
2014-03-02 16:16:03 +08:00
James Chen
7774bb4c6c
closed #4129 : Event listeners in engine shouldn't be removed by method removeAllEventListeners().
2014-02-28 15:09:53 +08:00
James Chen
658cf72d31
issue #4129 : Uses 'const reference' when getting touches by EventTouch::getTouches.
2014-02-28 13:43:28 +08:00
James Chen
8a04fbabf1
issue #4129 : EventDispatcher::_listeners -> _listenerMap.
2014-02-28 12:01:47 +08:00
James Chen
9a02568eca
Some case sensitivity fixes in EventDispatcher. e.g. xxxlisteners -> xxxListeners.
2014-02-10 11:15:56 +08:00
James Chen
8141397bbd
closed #3871 : event->stopPropagation can't work for EventListenerAllAtOnce. And add relevant test case.
2014-01-27 16:30:20 +08:00
Ricardo Quesada
94ea94a113
global Z order uses floats
2014-01-21 16:36:19 -08:00
Ricardo Quesada
7a8707cb08
Merge branch 'develop' into local_z_Order_fixes
...
Conflicts:
cocos/2d/CCNode.cpp
cocos/2d/CCNode.h
2014-01-21 10:10:50 -08:00
James Chen
0f9c3fa59c
closed #3789 : EventDispatcher supports sorting listeners by global Z and local Z order. And adds relevant test case.
2014-01-21 10:23:05 +08:00
James Chen
9f793f8a9b
Warning fixes: 1) getZOrder —> getLocalZOrder. 2) long —> int
2014-01-20 15:03:30 +08:00
James Chen
0468a1234b
A typo fix in EventDispatcher, DirtyFlag::FIXED_PRITORY —> DirtyFlag::FIXED_PRIORITY.
2014-01-20 14:22:30 +08:00
walzer
64af0de648
update copyrights for 2014, in cocos/2d/ folder
2014-01-07 11:25:07 +08:00
James Chen
0082cf3e4d
closed #3579 : TestLua->BugsTest->bug914 crashes if clicking 'reset' button all the time.
2014-01-04 10:28:09 +08:00
James Chen
05b1be3aeb
Fixes two memory leaks in EventDispatcher::removeEventListener(removeEventListeners).
2014-01-02 19:59:10 +08:00
James Chen
febc19ea8d
Some warning fixes on linux.
2013-12-26 23:06:16 -08:00
Ricardo Quesada
49903ea779
Director emits events after visit, after draw and after update. And when the projection changes
...
Adds helper functions on EventDispatcher
Adds test in NewEventDispatcherTest
2013-12-21 10:55:16 -08:00
Ricardo Quesada
eea2e70d1e
Adds events in director
2013-12-21 00:56:28 -08:00
James Chen
3d76281617
Removes an unused assert.
2013-12-20 19:49:25 +08:00
James Chen
5852c66e5a
closed #3463 : ListenerID is std::string now. To avoid hash collision when using lots of EventCustoms.
2013-12-20 19:47:11 +08:00
minggo
fa7c97171b
fix some warnings
2013-12-06 16:32:06 +08:00
minggo
b67d567a79
replace long with int or ssize_t
2013-12-05 17:22:22 +08:00
James Chen
499a0404d4
issue #2790 : Renames some functions in Vector<T>. Makes it more like stl vector.
2013-12-05 10:35:10 +08:00
James Chen
9928e8bef1
issue #2790 : Uses Vector<T>::getObjectAtIndex instead of Vector<T>[] operator to avoid some mistakes.
2013-12-04 16:01:55 +08:00
James Chen
8aef092005
issue #2790 : TestCpp with new Vector<>.
2013-12-04 16:01:54 +08:00
James Chen
d4d864216b
issue #2790 : Deletes Vector::init, adds Vector::setCapacity.
2013-12-04 16:00:18 +08:00
James Chen
90062b656d
issue #2790 : Node::_children is Vector<Node*> now.
2013-12-04 16:00:17 +08:00
James Chen
424431690a
Fixing warning generated by VS2012.
2013-11-20 10:39:30 +08:00