2018-11-05 18:08:52 +01:00
|
|
|
#include "Globals.hpp"
|
|
|
|
|
2018-11-14 18:17:25 +01:00
|
|
|
#include "Dispatcher.hpp"
|
2018-11-05 18:08:52 +01:00
|
|
|
#include <irrlicht.h>
|
2021-08-05 16:00:19 +02:00
|
|
|
#include <cAudio.h>
|
2018-11-05 18:08:52 +01:00
|
|
|
|
|
|
|
using namespace irr;
|
|
|
|
|
|
|
|
Globals* Globals::instance = nullptr;
|
|
|
|
|
|
|
|
Globals::Globals()
|
|
|
|
{
|
2018-11-19 01:07:50 +01:00
|
|
|
dev = createDevice(video::EDT_OPENGL, core::dimension2du(1366, 768), 32, false, false, true);
|
|
|
|
dev->setResizable(true);
|
2018-11-05 18:08:52 +01:00
|
|
|
drv = dev->getVideoDriver();
|
|
|
|
sman = dev->getSceneManager();
|
2018-11-14 18:17:25 +01:00
|
|
|
dispatcher = new Dispatcher();
|
|
|
|
audioManager = cAudio::createAudioManager(true);
|
2018-11-15 15:37:22 +01:00
|
|
|
font = dev->getGUIEnvironment()->getFont("../res/fontlucida.png");
|
2018-11-05 18:08:52 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
Globals::~Globals()
|
|
|
|
{
|
|
|
|
dev->drop();
|
2018-11-14 18:17:25 +01:00
|
|
|
audioManager->shutDown();
|
2018-11-05 18:08:52 +01:00
|
|
|
instance = nullptr;
|
|
|
|
}
|
|
|
|
|
|
|
|
void Globals::shutdown()
|
|
|
|
{
|
|
|
|
if (instance)
|
|
|
|
delete instance;
|
|
|
|
}
|
|
|
|
|
|
|
|
IrrlichtDevice* Globals::getDevice()
|
|
|
|
{
|
|
|
|
if (!instance)
|
|
|
|
instance = new Globals();
|
|
|
|
|
|
|
|
return instance->dev;
|
|
|
|
}
|
|
|
|
|
|
|
|
video::IVideoDriver* Globals::getVideoDriver()
|
|
|
|
{
|
|
|
|
if (!instance)
|
|
|
|
instance = new Globals();
|
|
|
|
|
|
|
|
return instance->drv;
|
|
|
|
}
|
|
|
|
|
|
|
|
scene::ISceneManager* Globals::getSceneManager()
|
|
|
|
{
|
|
|
|
if (!instance)
|
|
|
|
instance = new Globals();
|
|
|
|
|
|
|
|
return instance->sman;
|
|
|
|
}
|
2018-11-14 18:17:25 +01:00
|
|
|
|
|
|
|
cAudio::IAudioManager* Globals::getAudioManager()
|
|
|
|
{
|
|
|
|
if (!instance)
|
|
|
|
instance = new Globals();
|
|
|
|
|
|
|
|
return instance->audioManager;
|
|
|
|
}
|
|
|
|
|
|
|
|
Dispatcher* Globals::getDispatcher()
|
|
|
|
{
|
|
|
|
if (!instance)
|
|
|
|
instance = new Globals();
|
|
|
|
|
|
|
|
return instance->dispatcher;
|
|
|
|
}
|
2018-11-15 15:37:22 +01:00
|
|
|
|
|
|
|
gui::IGUIFont *Globals::getFont()
|
|
|
|
{
|
|
|
|
if (!instance)
|
|
|
|
instance = new Globals();
|
|
|
|
|
|
|
|
return instance->font;
|
|
|
|
}
|