From e6dd0093860dcc65cb114b2c2729428200dd1d17 Mon Sep 17 00:00:00 2001 From: jp9000 Date: Thu, 16 Aug 2018 08:42:19 -0700 Subject: [PATCH] libobs: Add function to force a sceneitem transform update Useful when you need to modify transform properties of group sub-items and have the transform available immediately (group sub-items always automatically defer their transform update to the next frame). --- libobs/obs-scene.c | 9 +++++++++ libobs/obs.h | 2 ++ 2 files changed, 11 insertions(+) diff --git a/libobs/obs-scene.c b/libobs/obs-scene.c index 9aa3f4a59..a3ba2d806 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 53bdafe28..181bd6faf 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);