Fix exit crash when built for GLES2 on Linux (#5118)
This commit is contained in:
parent
118cde2498
commit
41a7b804a1
@ -18,6 +18,7 @@
|
||||
#include <stdlib.h>
|
||||
#include "SIrrCreationParameters.h"
|
||||
#include "COpenGLExtensionHandler.h"
|
||||
#include "COGLES2Driver.h"
|
||||
|
||||
#include "guiengine/engine.hpp"
|
||||
#include "ge_main.hpp"
|
||||
@ -240,6 +241,12 @@ CIrrDeviceSDL::~CIrrDeviceSDL()
|
||||
irr::video::COpenGLExtensionHandler* h = dynamic_cast<irr::video::COpenGLExtensionHandler*>(VideoDriver);
|
||||
if (h)
|
||||
h->clearGLExtensions();
|
||||
#endif
|
||||
#ifdef _IRR_COMPILE_WITH_OGLES2_
|
||||
irr::video::COGLES2Driver* es2 = dynamic_cast<irr::video::COGLES2Driver*>(VideoDriver);
|
||||
if (es2) {
|
||||
es2->cleanUp();
|
||||
}
|
||||
#endif
|
||||
GE::GEVulkanDriver* gevk = dynamic_cast<GE::GEVulkanDriver*>(VideoDriver);
|
||||
if (gevk)
|
||||
|
@ -122,9 +122,7 @@ namespace video
|
||||
//! destructor
|
||||
COGLES2Driver::~COGLES2Driver()
|
||||
{
|
||||
deleteMaterialRenders();
|
||||
delete MaterialRenderer2D;
|
||||
deleteAllTextures();
|
||||
cleanUp();
|
||||
|
||||
if (BridgeCalls)
|
||||
delete BridgeCalls;
|
||||
|
@ -48,6 +48,7 @@ namespace irr
|
||||
#include "EDriverFeatures.h"
|
||||
#include "fast_atof.h"
|
||||
#include "COGLES2ExtensionHandler.h"
|
||||
#include "COGLES2Renderer2D.h"
|
||||
|
||||
class ContextManagerEGL;
|
||||
|
||||
@ -397,6 +398,15 @@ namespace video
|
||||
ContextManagerEGL* getEGLContext() {return EglContext;}
|
||||
#endif
|
||||
|
||||
void cleanUp() {
|
||||
deleteMaterialRenders();
|
||||
if (MaterialRenderer2D) {
|
||||
delete MaterialRenderer2D;
|
||||
MaterialRenderer2D = NULL;
|
||||
}
|
||||
deleteAllTextures();
|
||||
}
|
||||
|
||||
private:
|
||||
// Bridge calls.
|
||||
COGLES2CallBridge* BridgeCalls;
|
||||
|
Loading…
x
Reference in New Issue
Block a user