mirror of
https://github.com/panda3d/panda3d.git
synced 2025-09-30 16:58:40 -04:00
bullet: Allow intractions with bullet world during tick callbacks
- Release the global lock during the user tick callback and allow interactions with bullet world - Acquire the lock again after the callback Signed-off-by: deflected <deflected@users.noreply.github.com>
This commit is contained in:
parent
e6e39cce0e
commit
1ac351d594
@ -1186,7 +1186,12 @@ tick_callback(btDynamicsWorld *world, btScalar timestep) {
|
|||||||
CallbackObject *obj = w->_tick_callback_obj;
|
CallbackObject *obj = w->_tick_callback_obj;
|
||||||
if (obj) {
|
if (obj) {
|
||||||
BulletTickCallbackData cbdata(timestep);
|
BulletTickCallbackData cbdata(timestep);
|
||||||
|
// Release the global lock that we are holding during the tick callback
|
||||||
|
// and allow interactions with bullet world in the user callback
|
||||||
|
get_global_lock().release();
|
||||||
obj->do_callback(&cbdata);
|
obj->do_callback(&cbdata);
|
||||||
|
// Acquire the global lock again and protect the execution
|
||||||
|
get_global_lock().acquire();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user