frontend: Add frontend API canvas methods

This commit is contained in:
Dennis Sädtler 2025-01-27 03:08:18 +01:00 • committed by Ryan Foster
commit 8441c04c73
5 changed files with 66 additions and 0 deletions

View file

@ -689,6 +689,26 @@ void OBSStudioAPI::obs_frontend_add_undo_redo_action(const char *name, const und
[redo](const std::string &data) { redo(data.c_str()); }, undo_data, redo_data, repeatable);
}
void OBSStudioAPI::obs_frontend_get_canvases(obs_frontend_canvas_list *canvas_list)
{
for (const auto &canvas : main->canvases) {
obs_canvas_t *ref = obs_canvas_get_ref(canvas);
if (ref)
da_push_back(canvas_list->canvases, &ref);
}
}
obs_canvas_t *OBSStudioAPI::obs_frontend_add_canvas(const char *name, obs_video_info *ovi, int flags)
{
auto &canvas = main->AddCanvas(std::string(name), ovi, flags);
return obs_canvas_get_ref(canvas);
}
bool OBSStudioAPI::obs_frontend_remove_canvas(obs_canvas_t *canvas)
{
return main->RemoveCanvas(canvas);
}
void OBSStudioAPI::on_load(obs_data_t *settings)
{
for (size_t i = saveCallbacks.size(); i > 0; i--) {