Forward declarations are your friends

Why leak gl headers into most of kicad
This commit is contained in:
Marek Roszko
2025-01-09 09:03:08 -08:00
committed by Seth Hillbrand
parent 09e30adbb1
commit 1ebcd24944
4 changed files with 53 additions and 21 deletions
+8 -20
View File
@@ -21,37 +21,25 @@
#define KICAD_SINGLETON_H
#include <advanced_config.h>
#include <bs_thread_pool.hpp>
#include <gal/opengl/gl_context_mgr.h>
class GL_CONTEXT_MANAGER;
namespace BS
{
class thread_pool;
}
class KICAD_SINGLETON
{
public:
KICAD_SINGLETON(){};
~KICAD_SINGLETON()
{
// This will wait for all threads to finish and then join them to the main thread
delete m_ThreadPool;
m_ThreadPool = nullptr;
m_GLContextManager->DeleteAll();
delete m_GLContextManager;
m_GLContextManager = nullptr;
};
~KICAD_SINGLETON();
void Init()
{
int num_threads = std::max( 0, ADVANCED_CFG::GetCfg().m_MaximumThreads );
m_ThreadPool = new BS::thread_pool( num_threads );
m_GLContextManager = new GL_CONTEXT_MANAGER();
}
void Init();
BS::thread_pool* m_ThreadPool;
GL_CONTEXT_MANAGER* m_GLContextManager;
};