@@ -984,20 +984,26 @@ void source_show(void *data) {
984984 #if defined(ENABLE_GUI) && LIBOBS_API_MAJOR_VER > 27
985985 obs_source_t *scene = obs_frontend_get_current_scene ();
986986 if (scene) {
987- obs_sceneitem_t *item = obs_scene_sceneitem_from_source (obs_scene_from_source (scene), plugin->source );
988- if (item) {
989- vec2 pos;
990- vec2 scale;
991- struct obs_sceneitem_crop crop;
992- obs_sceneitem_get_pos (item, &pos);
993- obs_sceneitem_get_crop (item, &crop);
994- obs_sceneitem_get_scale (item, &scale);
995- ilog (" pos:%.0f,%.0f scale:%.1f,%.1f rot:%.1f crop:%d,%d; %d,%d" ,
996- pos.x , pos.y , scale.x , scale.y ,
997- obs_sceneitem_get_rot (item),
998- crop.left , crop.top , crop.right , crop.bottom );
999- obs_sceneitem_release (item);
1000- }
987+ obs_scene_enum_items (obs_scene_from_source (scene),
988+ [](obs_scene_t *, obs_sceneitem_t *item, void *data) {
989+ obs_source_t * source = (obs_source_t *) data;
990+ if (obs_sceneitem_get_source (item) == source) {
991+ vec2 pos;
992+ vec2 scale;
993+ struct obs_sceneitem_crop crop;
994+ obs_sceneitem_get_pos (item, &pos);
995+ obs_sceneitem_get_crop (item, &crop);
996+ obs_sceneitem_get_scale (item, &scale);
997+ ilog (" pos:%.0f,%.0f scale:%.1f,%.1f rot:%.1f crop:%d,%d; %d,%d" ,
998+ pos.x , pos.y , scale.x , scale.y ,
999+ obs_sceneitem_get_rot (item),
1000+ crop.left , crop.top , crop.right , crop.bottom );
1001+
1002+ return false ; // stop enumeration
1003+ }
1004+ return true ;
1005+ }, plugin->source );
1006+
10011007 obs_source_release (scene);
10021008 }
10031009 #endif
0 commit comments