libobs: Add obs_scene_atomic_update

This commit is contained in:
Palana 2015-06-27 04:18:13 +02:00
parent 523e8b2517
commit ef9090e0a3
2 changed files with 17 additions and 0 deletions

View file

@ -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);
}

View file

@ -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);