mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-09-19 20:32:15 +02:00
libobs: Add custom size support to scenes
Allows scenes to have a custom size. Mainly used for grouping, but can be extended with public API later.
This commit is contained in:
parent
f0164f9d28
commit
690f738a76
@ -714,6 +714,12 @@ static void scene_load(void *data, obs_data_t *settings)
|
||||
if (obs_data_has_user_value(settings, "id_counter"))
|
||||
scene->id_counter = obs_data_get_int(settings, "id_counter");
|
||||
|
||||
if (obs_data_get_bool(settings, "custom_size")) {
|
||||
scene->cx = (uint32_t)obs_data_get_int(settings, "cx");
|
||||
scene->cy = (uint32_t)obs_data_get_int(settings, "cy");
|
||||
scene->custom_size = true;
|
||||
}
|
||||
|
||||
obs_data_array_release(items);
|
||||
}
|
||||
|
||||
@ -775,6 +781,11 @@ static void scene_save(void *data, obs_data_t *settings)
|
||||
}
|
||||
|
||||
obs_data_set_int(settings, "id_counter", scene->id_counter);
|
||||
obs_data_set_bool(settings, "custom_size", scene->custom_size);
|
||||
if (scene->custom_size) {
|
||||
obs_data_set_int(settings, "cx", scene->cx);
|
||||
obs_data_set_int(settings, "cy", scene->cy);
|
||||
}
|
||||
|
||||
full_unlock(scene);
|
||||
|
||||
@ -784,14 +795,14 @@ static void scene_save(void *data, obs_data_t *settings)
|
||||
|
||||
static uint32_t scene_getwidth(void *data)
|
||||
{
|
||||
UNUSED_PARAMETER(data);
|
||||
return obs->video.base_width;
|
||||
obs_scene_t *scene = data;
|
||||
return scene->custom_size ? scene->cx : obs->video.base_width;
|
||||
}
|
||||
|
||||
static uint32_t scene_getheight(void *data)
|
||||
{
|
||||
UNUSED_PARAMETER(data);
|
||||
return obs->video.base_height;
|
||||
obs_scene_t *scene = data;
|
||||
return scene->custom_size ? scene->cy : obs->video.base_height;
|
||||
}
|
||||
|
||||
static void apply_scene_item_audio_actions(struct obs_scene_item *item,
|
||||
|
@ -83,6 +83,10 @@ struct obs_scene_item {
|
||||
struct obs_scene {
|
||||
struct obs_source *source;
|
||||
|
||||
bool custom_size;
|
||||
uint32_t cx;
|
||||
uint32_t cy;
|
||||
|
||||
int64_t id_counter;
|
||||
|
||||
pthread_mutex_t video_mutex;
|
||||
|
Loading…
Reference in New Issue
Block a user