diff --git a/libobs/obs.hpp b/libobs/obs.hpp index c23a040a9..104314c41 100644 --- a/libobs/obs.hpp +++ b/libobs/obs.hpp @@ -36,12 +36,14 @@ using OBSDataArray = OBSRef; using OBSEncoder = OBSSafeRef; using OBSService = OBSSafeRef; +using OBSCanvas = OBSSafeRef; using OBSWeakObject = OBSRef; using OBSWeakSource = OBSRef; using OBSWeakOutput = OBSRef; using OBSWeakEncoder = OBSRef; using OBSWeakService = OBSRef; +using OBSWeakCanvas = OBSRef; #define OBS_AUTORELEASE using OBSObjectAutoRelease = OBSRefAutoRelease; @@ -53,12 +55,14 @@ using OBSDataArrayAutoRelease = OBSRefAutoRelease; using OBSEncoderAutoRelease = OBSRefAutoRelease; using OBSServiceAutoRelease = OBSRefAutoRelease; +using OBSCanvasAutoRelease = OBSRefAutoRelease; using OBSWeakObjectAutoRelease = OBSRefAutoRelease; using OBSWeakSourceAutoRelease = OBSRefAutoRelease; using OBSWeakOutputAutoRelease = OBSRefAutoRelease; using OBSWeakEncoderAutoRelease = OBSRefAutoRelease; using OBSWeakServiceAutoRelease = OBSRefAutoRelease; +using OBSWeakCanvasAutoRelease = OBSRefAutoRelease; template class OBSRefAutoRelease { protected: @@ -126,6 +130,7 @@ public: friend OBSWeakOutput OBSGetWeakRef(obs_output_t *output); friend OBSWeakEncoder OBSGetWeakRef(obs_encoder_t *encoder); friend OBSWeakService OBSGetWeakRef(obs_service_t *service); + friend OBSWeakCanvas OBSGetWeakRef(obs_canvas_t *canvas); }; template class OBSSafeRef : public OBSRefAutoRelease { @@ -160,6 +165,7 @@ public: friend OBSOutput OBSGetStrongRef(obs_weak_output_t *weak); friend OBSEncoder OBSGetStrongRef(obs_weak_encoder_t *weak); friend OBSService OBSGetStrongRef(obs_weak_service_t *weak); + friend OBSCanvas OBSGetStrongRef(obs_weak_canvas_t *weak); }; inline OBSObject OBSGetStrongRef(obs_weak_object_t *weak) @@ -212,6 +218,16 @@ inline OBSWeakService OBSGetWeakRef(obs_service_t *service) return {obs_service_get_weak_service(service), OBSWeakService::TakeOwnership()}; } +inline OBSCanvas OBSGetStrongRef(obs_weak_canvas_t *canvas) +{ + return {obs_weak_canvas_get_canvas(canvas), OBSCanvas::TakeOwnership()}; +} + +inline OBSWeakCanvas OBSGetWeakRef(obs_canvas_t *canvas) +{ + return {obs_canvas_get_weak_canvas(canvas), OBSWeakCanvas::TakeOwnership()}; +} + /* objects that are not meant to be instanced */ template class OBSPtr { T obj;