@@ -35,6 +35,9 @@ namespace Urho3D
void IndexBuffer::OnDeviceLost()
{
+ if (object_.name_ && !graphics_->IsDeviceLost())
+ glDeleteBuffers(1, &object_.name_);
+
GPUObject::OnDeviceLost();
}
@@ -103,6 +103,9 @@ void RenderSurface::OnDeviceLost()
// Clean up also from non-active FBOs
graphics->CleanupRenderSurface(this);
+ if (renderBuffer_ && !graphics_->IsDeviceLost())
+ glDeleteRenderbuffersEXT(1, &renderBuffer_);
renderBuffer_ = 0;
@@ -74,6 +74,9 @@ ShaderProgram::~ShaderProgram()
void ShaderProgram::OnDeviceLost()
+ glDeleteProgram(object_.name_);
if (graphics_ && graphics_->GetShaderProgram() == this)
@@ -49,6 +49,9 @@ const char* ShaderVariation::elementSemanticNames[] =
void ShaderVariation::OnDeviceLost()
+ glDeleteShader(object_.name_);
compilerOutput_.Clear();
@@ -41,6 +41,9 @@ namespace Urho3D
void Texture2D::OnDeviceLost()
+ glDeleteTextures(1, &object_.name_);
if (renderSurface_)
@@ -45,6 +45,9 @@ namespace Urho3D
void Texture2DArray::OnDeviceLost()
void Texture3D::OnDeviceLost()
void TextureCube::OnDeviceLost()
for (auto& renderSurface : renderSurfaces_)
@@ -34,6 +34,9 @@ namespace Urho3D
void VertexBuffer::OnDeviceLost()