mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-07-15 07:44:10 +00:00
libobs: Add obs_scene_atomic_update
This commit is contained in:
parent
523e8b2517
commit
ef9090e0a3
|
@ -1034,3 +1034,16 @@ void obs_sceneitem_set_visible(obs_sceneitem_t *item, bool visible)
|
|||
|
||||
calldata_free(&cd);
|
||||
}
|
||||
|
||||
void obs_scene_atomic_update(obs_scene_t *scene,
|
||||
obs_scene_atomic_update_func func, void *data)
|
||||
{
|
||||
if (!scene)
|
||||
return;
|
||||
|
||||
obs_scene_addref(scene);
|
||||
pthread_mutex_lock(&scene->mutex);
|
||||
func(data, scene);
|
||||
pthread_mutex_unlock(&scene->mutex);
|
||||
obs_scene_release(scene);
|
||||
}
|
||||
|
|
|
@ -1035,6 +1035,10 @@ EXPORT void obs_scene_enum_items(obs_scene_t *scene,
|
|||
/** Adds/creates a new scene item for a source */
|
||||
EXPORT obs_sceneitem_t *obs_scene_add(obs_scene_t *scene, obs_source_t *source);
|
||||
|
||||
typedef void (*obs_scene_atomic_update_func)(void *, obs_scene_t *scene);
|
||||
EXPORT void obs_scene_atomic_update(obs_scene_t *scene,
|
||||
obs_scene_atomic_update_func func, void *data);
|
||||
|
||||
EXPORT void obs_sceneitem_addref(obs_sceneitem_t *item);
|
||||
EXPORT void obs_sceneitem_release(obs_sceneitem_t *item);
|
||||
|
||||
|
|
Loading…
Reference in a new issue