void RenderSurface::Release() { Graphics* graphics = parentTexture_->GetGraphics(); if (!graphics) return; if (!graphics->IsDeviceLost()) { for (unsigned i = 0; i < MAX_RENDERTARGETS; ++i) { if (graphics->GetRenderTarget(i) == this) graphics->ResetRenderTarget(i); } if (graphics->GetDepthStencil() == this) graphics->ResetDepthStencil(); // Clean up also from non-active FBOs graphics->CleanupRenderSurface(this); if (renderBuffer_) glDeleteRenderbuffersEXT(1, &renderBuffer_); } renderBuffer_ = 0; }
void RenderSurface::OnDeviceLost() { Graphics* graphics = graphics_; if (!graphics) return; for (unsigned i = 0; i < MAX_RENDERTARGETS; ++i) { if (graphics->GetRenderTarget(i) == this) graphics->ResetRenderTarget(i); } if (graphics->GetDepthStencil() == this) graphics->ResetDepthStencil(); // Clean up also from non-active FBOs graphics->CleanupRenderSurface(this); renderBuffer_ = 0; }