Reintroduced tech ENABLE_HACK_CLOSING_ON_OSX_10_9_5

This commit is contained in:
Enrico Turri 2020-03-02 14:37:01 +01:00
parent 9e06a5e8d6
commit 0a3555f73b
3 changed files with 67 additions and 61 deletions

View file

@ -42,15 +42,13 @@
#define ENABLE_THUMBNAIL_GENERATOR_DEBUG (0 && ENABLE_THUMBNAIL_GENERATOR) #define ENABLE_THUMBNAIL_GENERATOR_DEBUG (0 && ENABLE_THUMBNAIL_GENERATOR)
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ //==================
////================== // 2.2.0.rc1 techs
//// 2.2.0.rc1 techs //==================
////================== #define ENABLE_2_2_0_RC1 1
//#define ENABLE_2_2_0_RC1 1
// // Enable hack to remove crash when closing the application on OSX 10.9.5 when building against newer wxWidgets
//// Enable hack to remove crash when closing on OSX 10.9.5 #define ENABLE_HACK_CLOSING_ON_OSX_10_9_5 (1 && ENABLE_2_2_0_RC1)
//#define ENABLE_HACK_CLOSING_ON_OSX_10_9_5 (1 && ENABLE_2_2_0_RC1)
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//================== //==================

View file

@ -19,12 +19,12 @@
#include <string> #include <string>
#include <iostream> #include <iostream>
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #if ENABLE_HACK_CLOSING_ON_OSX_10_9_5
//#if ENABLE_HACK_CLOSING_ON_OSX_10_9_5 #ifdef __APPLE__
//// Part of temporary hack to remove crash when closing on OSX 10.9.5 // Part of hack to remove crash when closing the application on OSX 10.9.5 when building against newer wxWidgets
//#include <wx/platinfo.h> #include <wx/platinfo.h>
//#endif // ENABLE_HACK_CLOSING_ON_OSX_10_9_5 #endif // __APPLE__
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #endif // ENABLE_HACK_CLOSING_ON_OSX_10_9_5
#ifdef __APPLE__ #ifdef __APPLE__
#include "../Utils/MacDarkMode.hpp" #include "../Utils/MacDarkMode.hpp"
@ -213,13 +213,12 @@ GLCanvas3DManager::EMultisampleState GLCanvas3DManager::s_multisample = GLCanvas
GLCanvas3DManager::EFramebufferType GLCanvas3DManager::s_framebuffers_type = GLCanvas3DManager::FB_None; GLCanvas3DManager::EFramebufferType GLCanvas3DManager::s_framebuffers_type = GLCanvas3DManager::FB_None;
#endif // ENABLE_NON_STATIC_CANVAS_MANAGER #endif // ENABLE_NON_STATIC_CANVAS_MANAGER
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #if ENABLE_HACK_CLOSING_ON_OSX_10_9_5
//#if ENABLE_HACK_CLOSING_ON_OSX_10_9_5 #ifdef __APPLE__
//#ifdef __APPLE__ // Part of hack to remove crash when closing the application on OSX 10.9.5 when building against newer wxWidgets
//GLCanvas3DManager::OSInfo GLCanvas3DManager::s_os_info; GLCanvas3DManager::OSInfo GLCanvas3DManager::s_os_info;
//#endif // __APPLE__ #endif // __APPLE__
//#endif // ENABLE_HACK_CLOSING_ON_OSX_10_9_5 #endif // ENABLE_HACK_CLOSING_ON_OSX_10_9_5
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
#if !ENABLE_NON_STATIC_CANVAS_MANAGER #if !ENABLE_NON_STATIC_CANVAS_MANAGER
GLCanvas3DManager::GLCanvas3DManager() GLCanvas3DManager::GLCanvas3DManager()
@ -232,8 +231,23 @@ GLCanvas3DManager::GLCanvas3DManager()
GLCanvas3DManager::~GLCanvas3DManager() GLCanvas3DManager::~GLCanvas3DManager()
{ {
#if ENABLE_NON_STATIC_CANVAS_MANAGER #if ENABLE_NON_STATIC_CANVAS_MANAGER
#if ENABLE_HACK_CLOSING_ON_OSX_10_9_5
#ifdef __APPLE__
// This is an ugly hack needed to solve the crash happening when closing the application on OSX 10.9.5 with newer wxWidgets
// The crash is triggered inside wxGLContext destructor
if (s_os_info.major != 10 || s_os_info.minor != 9 || s_os_info.micro != 5)
{
#endif //__APPLE__
#endif // ENABLE_HACK_CLOSING_ON_OSX_10_9_5
if (m_context != nullptr) if (m_context != nullptr)
delete m_context; delete m_context;
#if ENABLE_HACK_CLOSING_ON_OSX_10_9_5
#ifdef __APPLE__
}
#endif //__APPLE__
#endif // ENABLE_HACK_CLOSING_ON_OSX_10_9_5
#else #else
this->destroy(); this->destroy();
#endif // ENABLE_NON_STATIC_CANVAS_MANAGER #endif // ENABLE_NON_STATIC_CANVAS_MANAGER
@ -260,16 +274,14 @@ bool GLCanvas3DManager::add(wxGLCanvas* canvas, Bed3D& bed, Camera& camera, GLTo
if (m_context == nullptr) if (m_context == nullptr)
return false; return false;
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #if ENABLE_HACK_CLOSING_ON_OSX_10_9_5
//#if ENABLE_HACK_CLOSING_ON_OSX_10_9_5 #ifdef __APPLE__
//#ifdef __APPLE__ // Part of hack to remove crash when closing the application on OSX 10.9.5 when building against newer wxWidgets
// // Part of temporary hack to remove crash when closing on OSX 10.9.5 s_os_info.major = wxPlatformInfo::Get().GetOSMajorVersion();
// s_os_info.major = wxPlatformInfo::Get().GetOSMajorVersion(); s_os_info.minor = wxPlatformInfo::Get().GetOSMinorVersion();
// s_os_info.minor = wxPlatformInfo::Get().GetOSMinorVersion(); s_os_info.micro = wxPlatformInfo::Get().GetOSMicroVersion();
// s_os_info.micro = wxPlatformInfo::Get().GetOSMicroVersion(); #endif //__APPLE__
//#endif //__APPLE__ #endif // ENABLE_HACK_CLOSING_ON_OSX_10_9_5
//#endif // ENABLE_HACK_CLOSING_ON_OSX_10_9_5
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
} }
canvas3D->set_context(m_context); canvas3D->set_context(m_context);
@ -389,16 +401,14 @@ void GLCanvas3DManager::destroy()
{ {
if (m_context != nullptr) if (m_context != nullptr)
{ {
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #if ENABLE_HACK_CLOSING_ON_OSX_10_9_5
//#if ENABLE_HACK_CLOSING_ON_OSX_10_9_5 #ifdef __APPLE__
//#ifdef __APPLE__ // this is an ugly hack needed to solve the crash happening when closing the application on OSX 10.9.5
// // this is a temporary ugly hack to solve the crash happening when closing the application on OSX 10.9.5 // the crash is inside wxGLContext destructor
// // the crash is inside wxGLContext destructor if (s_os_info.major == 10 && s_os_info.minor == 9 && s_os_info.micro == 5)
// if (s_os_info.major == 10 && s_os_info.minor == 9 && s_os_info.micro == 5) return;
// return; #endif //__APPLE__
//#endif //__APPLE__ #endif // ENABLE_HACK_CLOSING_ON_OSX_10_9_5
//#endif // ENABLE_HACK_CLOSING_ON_OSX_10_9_5
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
delete m_context; delete m_context;
m_context = nullptr; m_context = nullptr;

View file

@ -94,18 +94,17 @@ public:
void detect() const; void detect() const;
}; };
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #if ENABLE_HACK_CLOSING_ON_OSX_10_9_5
//#if ENABLE_HACK_CLOSING_ON_OSX_10_9_5 #ifdef __APPLE__
//#ifdef __APPLE__ // Part of hack to remove crash when closing the application on OSX 10.9.5 when building against newer wxWidgets
// struct OSInfo struct OSInfo
// { {
// int major{ 0 }; int major{ 0 };
// int minor{ 0 }; int minor{ 0 };
// int micro{ 0 }; int micro{ 0 };
// }; };
//#endif //__APPLE__ #endif //__APPLE__
//#endif // ENABLE_HACK_CLOSING_ON_OSX_10_9_5 #endif // ENABLE_HACK_CLOSING_ON_OSX_10_9_5
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
private: private:
#if ENABLE_NON_STATIC_CANVAS_MANAGER #if ENABLE_NON_STATIC_CANVAS_MANAGER
@ -131,17 +130,16 @@ private:
wxGLContext* m_context{ nullptr }; wxGLContext* m_context{ nullptr };
#else #else
wxGLContext* m_context; wxGLContext* m_context;
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//#if ENABLE_HACK_CLOSING_ON_OSX_10_9_5
//#ifdef __APPLE__
// static OSInfo s_os_info;
//#endif //__APPLE__
//#endif // ENABLE_HACK_CLOSING_ON_OSX_10_9_5
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
bool m_gl_initialized; bool m_gl_initialized;
CanvasesMap m_canvases; CanvasesMap m_canvases;
#endif // ENABLE_NON_STATIC_CANVAS_MANAGER #endif // ENABLE_NON_STATIC_CANVAS_MANAGER
static GLInfo s_gl_info; static GLInfo s_gl_info;
#if ENABLE_HACK_CLOSING_ON_OSX_10_9_5
#ifdef __APPLE__
// Part of hack to remove crash when closing the application on OSX 10.9.5 when building against newer wxWidgets
static OSInfo s_os_info;
#endif //__APPLE__
#endif // ENABLE_HACK_CLOSING_ON_OSX_10_9_5
static bool s_compressed_textures_supported; static bool s_compressed_textures_supported;
static EMultisampleState s_multisample; static EMultisampleState s_multisample;
static EFramebufferType s_framebuffers_type; static EFramebufferType s_framebuffers_type;