diff --git a/Utils.cpp b/Utils.cpp index ff0a6859..a788e626 100644 --- a/Utils.cpp +++ b/Utils.cpp @@ -46,8 +46,12 @@ obs_data_t* Utils::GetSceneItemData(obs_sceneitem_t *item) { vec2 pos; obs_sceneitem_get_pos(item, &pos); - vec2 bounds; - obs_sceneitem_get_bounds(item, &bounds); + vec2 scale; + obs_sceneitem_get_scale(item, &scale); + + obs_source_t* item_source = obs_sceneitem_get_source(item); + float item_width = float(obs_source_get_width(item_source)); + float item_height = float(obs_source_get_height(item_source)); obs_data_t *data = obs_data_create(); obs_data_set_string(data, "name", obs_source_get_name(obs_sceneitem_get_source(item))); @@ -55,8 +59,8 @@ obs_data_t* Utils::GetSceneItemData(obs_sceneitem_t *item) { obs_data_set_double(data, "volume", obs_source_get_volume(obs_sceneitem_get_source(item))); obs_data_set_double(data, "x", pos.x); obs_data_set_double(data, "y", pos.y); - obs_data_set_double(data, "cx", bounds.x); - obs_data_set_double(data, "cy", bounds.y); + obs_data_set_double(data, "cx", item_width * scale.x); + obs_data_set_double(data, "cy", item_height * scale.y); obs_data_set_bool(data, "render", obs_sceneitem_visible(item)); return data;