diff --git a/libobs/obs-scene.c b/libobs/obs-scene.c index 9aa3f4a5988a6c774ee57cdedc13322aee21a1e7..a3ba2d806a539e676335947887110bc85ad47137 100644 --- a/libobs/obs-scene.c +++ b/libobs/obs-scene.c @@ -2885,3 +2885,12 @@ void obs_sceneitem_group_enum_items(obs_sceneitem_t *group, if (scene) obs_scene_enum_items(scene, callback, param); } + +void obs_sceneitem_force_update_transform(obs_sceneitem_t *item) +{ + if (!item) + return; + + if (os_atomic_set_bool(&item->update_transform, false)) + update_item_transform(item, false); +} diff --git a/libobs/obs.h b/libobs/obs.h index 53bdafe28226e11f94b48e5ec3cc165a1979e87f..181bd6faf99adccef8e9ee609cb65716212f738f 100644 --- a/libobs/obs.h +++ b/libobs/obs.h @@ -1427,6 +1427,8 @@ EXPORT void obs_sceneitem_set_scale_filter(obs_sceneitem_t *item, EXPORT enum obs_scale_type obs_sceneitem_get_scale_filter( obs_sceneitem_t *item); +EXPORT void obs_sceneitem_force_update_transform(obs_sceneitem_t *item); + EXPORT void obs_sceneitem_defer_update_begin(obs_sceneitem_t *item); EXPORT void obs_sceneitem_defer_update_end(obs_sceneitem_t *item);