mirror of
https://github.com/Kiritow/MiniEngine.git
synced 2024-03-22 13:11:22 +08:00
113 lines
1.9 KiB
C++
113 lines
1.9 KiB
C++
|
#include "InitManager.h"
|
||
|
|
||
|
InitManager_SDL::InitManager_SDL()
|
||
|
{
|
||
|
if(SDL_Init(SDL_INIT_EVERYTHING)<0)
|
||
|
{
|
||
|
Global::ErrorQuit("Failed to init SDL2.");
|
||
|
}
|
||
|
}
|
||
|
|
||
|
InitManager_SDL::~InitManager_SDL()
|
||
|
{
|
||
|
SDL_Quit();
|
||
|
}
|
||
|
|
||
|
InitManager_IMG::InitManager_IMG()
|
||
|
{
|
||
|
if(IMG_Init(IMG_INIT_JPG|IMG_INIT_PNG)<0)
|
||
|
{
|
||
|
Global::ErrorQuit("Failed to init SDL2 Image.");
|
||
|
}
|
||
|
}
|
||
|
|
||
|
SDL_Surface* InitManager_IMG::loadimage(const char* Filename)
|
||
|
{
|
||
|
return IMG_Load(Filename);
|
||
|
}
|
||
|
|
||
|
SDL_Texture* InitManager_IMG::loadtexture(SDL_Renderer* rnd,const char* Filename)
|
||
|
{
|
||
|
return IMG_LoadTexture(rnd,Filename);
|
||
|
}
|
||
|
|
||
|
InitManager_IMG::~InitManager_IMG()
|
||
|
{
|
||
|
IMG_Quit();
|
||
|
}
|
||
|
|
||
|
int InitManager_TTF::ctm=0;
|
||
|
|
||
|
InitManager_TTF::InitManager_TTF()
|
||
|
{
|
||
|
/// ~_~ check ctm and add it anyway
|
||
|
if(ctm++>0)
|
||
|
{
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
if(TTF_Init()<0)
|
||
|
{
|
||
|
Global::ErrorQuit("Failed to init SDL2 TTF.");
|
||
|
}
|
||
|
_font=NULL;
|
||
|
}
|
||
|
|
||
|
int InitManager_TTF::openFont(const char* FileName,int Size)
|
||
|
{
|
||
|
_font=TTF_OpenFont(FileName,Size);
|
||
|
if(_font==NULL) return -1;
|
||
|
else return 0;
|
||
|
}
|
||
|
|
||
|
TTF_Font* InitManager_TTF::font()
|
||
|
{
|
||
|
return _font;
|
||
|
}
|
||
|
|
||
|
int InitManager_TTF::closeFont()
|
||
|
{
|
||
|
TTF_CloseFont(_font);
|
||
|
_font=NULL;
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
InitManager_TTF::~InitManager_TTF()
|
||
|
{
|
||
|
/// Close Font anyway.
|
||
|
if(_font) closeFont();
|
||
|
|
||
|
/// ~_~ Firstly ctm=ctm-1, if ctm still > 0, then return ( TTF_Quit Not Executed )
|
||
|
if(--ctm>0)
|
||
|
{
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
TTF_Quit();
|
||
|
}
|
||
|
|
||
|
InitManager_Mix::InitManager_Mix()
|
||
|
{
|
||
|
if(Mix_Init(MIX_INIT_MP3)<0)
|
||
|
{
|
||
|
Global::ErrorQuit("Failed to Init Mixer.");
|
||
|
}
|
||
|
|
||
|
if(Mix_OpenAudio(44100, AUDIO_S16SYS, 2, 1024)<0)
|
||
|
{
|
||
|
Global::ErrorQuit("Failed to OpenAudio");
|
||
|
}
|
||
|
Mix_AllocateChannels(32);
|
||
|
}
|
||
|
|
||
|
InitManager_Mix::~InitManager_Mix()
|
||
|
{
|
||
|
Mix_CloseAudio();
|
||
|
Mix_Quit();
|
||
|
}
|
||
|
|
||
|
InitManager_SDL syssdl;
|
||
|
InitManager_IMG sysimg;
|
||
|
InitManager_TTF systtf;
|
||
|
InitManager_Mix sysmix;
|