Fixed Render[Texture|Window] crash when released while on use

Former-commit-id: 30b4bd5b7eb7b665cecfe6366117b7a3b4290202
This commit is contained in:
Lynix 2013-10-09 10:08:17 +02:00
parent 185b450c64
commit 239ce4e323
2 changed files with 7 additions and 0 deletions

View File

@ -358,6 +358,9 @@ void NzRenderTexture::Destroy()
{ {
if (m_impl) if (m_impl)
{ {
if (IsActive())
NzRenderer::SetTarget(nullptr);
bool canFreeFBO = true; bool canFreeFBO = true;
#if NAZARA_RENDERER_SAFE #if NAZARA_RENDERER_SAFE
if (NzContext::GetCurrent() != m_impl->context) if (NzContext::GetCurrent() != m_impl->context)

View File

@ -7,6 +7,7 @@
#include <Nazara/Core/Thread.hpp> #include <Nazara/Core/Thread.hpp>
#include <Nazara/Renderer/Context.hpp> #include <Nazara/Renderer/Context.hpp>
#include <Nazara/Renderer/OpenGL.hpp> #include <Nazara/Renderer/OpenGL.hpp>
#include <Nazara/Renderer/Renderer.hpp>
#include <Nazara/Renderer/Texture.hpp> #include <Nazara/Renderer/Texture.hpp>
#include <stdexcept> #include <stdexcept>
#include <Nazara/Renderer/Debug.hpp> #include <Nazara/Renderer/Debug.hpp>
@ -318,6 +319,9 @@ void NzRenderWindow::OnWindowDestroy()
{ {
if (m_context) if (m_context)
{ {
if (IsActive())
NzRenderer::SetTarget(nullptr);
delete m_context; delete m_context;
m_context = nullptr; m_context = nullptr;
} }