diff --git a/modules/core/doc/opengl_interop.rst b/modules/core/doc/opengl_interop.rst index 53c58fcdf..5267c4d45 100644 --- a/modules/core/doc/opengl_interop.rst +++ b/modules/core/doc/opengl_interop.rst @@ -122,6 +122,8 @@ Decrements the reference counter and destroys the buffer object if needed. .. ocv:function:: void ogl::Buffer::release() +The function will call `setAutoRelease(true)` . + ogl::Buffer::setAutoRelease @@ -323,6 +325,8 @@ Decrements the reference counter and destroys the texture object if needed. .. ocv:function:: void ogl::Texture2D::release() +The function will call `setAutoRelease(true)` . + ogl::Texture2D::setAutoRelease diff --git a/modules/core/src/opengl.cpp b/modules/core/src/opengl.cpp index 7bff69bf6..36a437a2d 100644 --- a/modules/core/src/opengl.cpp +++ b/modules/core/src/opengl.cpp @@ -563,6 +563,8 @@ void cv::ogl::Buffer::create(int arows, int acols, int atype, Target target, boo void cv::ogl::Buffer::release() { #ifdef HAVE_OPENGL + if (impl_) + impl_->setAutoRelease(true); impl_ = Impl::empty(); rows_ = 0; cols_ = 0; @@ -1081,6 +1083,8 @@ void cv::ogl::Texture2D::create(int arows, int acols, Format aformat, bool autoR void cv::ogl::Texture2D::release() { #ifdef HAVE_OPENGL + if (impl_) + impl_->setAutoRelease(true); impl_ = Impl::empty(); rows_ = 0; cols_ = 0;