void ImageGL::unregisterAsCudaResource(int field_num) { cuCtxPushCurrent(oContext_); checkCudaErrors(cuGLUnregisterBufferObject(gl_pbo_[field_num])); bIsCudaResource_ = false; cuCtxPopCurrent(NULL); }
static bool releaseBufferAndTexture( GLuint &buf, GLuint &tex ) { // Unregister buffer from cuda cuGLUnregisterBufferObject( buf ); //std::cout << "Released " << tex << std::endl; // Release PBO glDeleteBuffers(1, &buf ); buf = 0; // Release Texture glDeleteTextures(1, &tex ); tex = 0; return true; }
bool releaseBuffer( PixelBufferObject &img ) { if( Size(img) != UInt2(0,0) ) { SetSize(img,UInt2(0,0)); // Unregister buffer from cuda cuGLUnregisterBufferObject( img.m_bufId ); // Release PBO glDeleteBuffers(1, &img.m_bufId ); img.m_bufId = 0; return true; } return false; }