reused buffer in GlTexture::copyFrom(GpuMat)

This commit is contained in:
Vladislav Vinogradov 2012-02-27 13:22:41 +00:00
parent 212ceb3e24
commit 5c0f2f8ea1
2 changed files with 7 additions and 6 deletions

View File

@ -157,6 +157,7 @@ namespace cv
int type_;
Ptr<Impl> impl_;
GlBuffer buf_;
};
template <> CV_EXPORTS void Ptr<GlTexture::Impl>::delete_obj();

View File

@ -915,7 +915,7 @@ inline void cv::GlTexture::Impl::unbind() const
#endif // HAVE_OPENGL
cv::GlTexture::GlTexture() : rows_(0), cols_(0), type_(0)
cv::GlTexture::GlTexture() : rows_(0), cols_(0), type_(0), buf_(GlBuffer::TEXTURE_BUFFER)
{
#ifndef HAVE_OPENGL
throw_nogl;
@ -924,7 +924,7 @@ cv::GlTexture::GlTexture() : rows_(0), cols_(0), type_(0)
#endif
}
cv::GlTexture::GlTexture(int rows, int cols, int type) : rows_(0), cols_(0), type_(0)
cv::GlTexture::GlTexture(int rows, int cols, int type) : rows_(0), cols_(0), type_(0), buf_(GlBuffer::TEXTURE_BUFFER)
{
#ifndef HAVE_OPENGL
(void)rows;
@ -939,7 +939,7 @@ cv::GlTexture::GlTexture(int rows, int cols, int type) : rows_(0), cols_(0), typ
#endif
}
cv::GlTexture::GlTexture(Size size, int type) : rows_(0), cols_(0), type_(0)
cv::GlTexture::GlTexture(Size size, int type) : rows_(0), cols_(0), type_(0), buf_(GlBuffer::TEXTURE_BUFFER)
{
#ifndef HAVE_OPENGL
(void)size;
@ -953,7 +953,7 @@ cv::GlTexture::GlTexture(Size size, int type) : rows_(0), cols_(0), type_(0)
#endif
}
cv::GlTexture::GlTexture(InputArray mat_, bool bgra) : rows_(0), cols_(0), type_(0)
cv::GlTexture::GlTexture(InputArray mat_, bool bgra) : rows_(0), cols_(0), type_(0), buf_(GlBuffer::TEXTURE_BUFFER)
{
#ifndef HAVE_OPENGL
(void)mat_;
@ -1058,8 +1058,8 @@ void cv::GlTexture::copyFrom(InputArray mat_, bool bgra)
throw_nocuda;
#else
GpuMat d_mat = mat_.getGpuMat();
GlBuffer buf(d_mat, GlBuffer::TEXTURE_BUFFER);
impl_->copyFrom(buf, bgra);
buf_.copyFrom(d_mat);
impl_->copyFrom(buf_, bgra);
#endif
break;