#include "cUtility.hpp" /*** SDL Header Files ***/ #include #include #include #include #include using UtilityEngine::cUtility; /*static*/ cUtility* cUtility::sp_inst = nullptr; /// private: cUtility::cUtility() {} cUtility::~cUtility() {} /// public: // cUtility& cUtility::operator=( const cUtility& copy ) // { // if (this != ©) // { // } // // return *this; // } /// Functions /*static*/ cUtility& cUtility::Inst() { if (sp_inst == nullptr) sp_inst = new cUtility(); return *sp_inst; } /*static*/ void cUtility::Delete() { delete sp_inst; sp_inst = nullptr; } void cUtility::Message( const cString& msg, const cString& debugInfo /*= ""*/, const eTypeSDL typeSDL /*= eTypeSDL::None*/ ) const { cString sdlerror; switch (typeSDL) { case NONE: break; case SDL: sdlerror = SDL_GetError(); break; case TTF: sdlerror = TTF_GetError(); break; case IMAGE: sdlerror = IMG_GetError(); break; case MIXER: sdlerror = Mix_GetError(); break; case NET: sdlerror = SDLNet_GetError(); break; case GFX: sdlerror = SDL_GetError(); break; default: break; } SDL_ClearError(); if (debugInfo.size() > 0) fprintf(stderr, "Error in %s %s %s \n", debugInfo.substr((1 + debugInfo.char_find('\\')), debugInfo.length()).c_str(), msg.c_str(), sdlerror.c_str()); else fprintf(stderr, "%s\n", msg.c_str()); } void cUtility::PrintVersion( const eTypeSDL typeSDL /*= eTypeSDL::ALL*/ ) const { SDL_version compiled_version; SDL_version running_version; cString type = ""; switch (typeSDL) { case ALL: for ( int num = SDL; num <= NET; num++) PrintVersion((eTypeSDL)num); break; case SDL: SDL_VERSION(&compiled_version); SDL_GetVersion(&running_version); type = "SDL"; break; case TTF: SDL_TTF_VERSION(&compiled_version); running_version = *TTF_Linked_Version(); type = "SDL_TTF"; break; case IMAGE: SDL_IMAGE_VERSION(&compiled_version); running_version = *IMG_Linked_Version(); type = "SDL_IMAGE"; break; case MIXER: SDL_MIXER_VERSION(&compiled_version); running_version = *Mix_Linked_Version(); type = "SDL_MIXER"; break; case NET: SDL_NET_VERSION(&compiled_version); running_version = *SDLNet_Linked_Version(); type = "SDL_NET"; break; default: break; } if (typeSDL != ALL) { VersionParser("Compiled", compiled_version, type); VersionParser("Running", running_version, type); } } /// private: /// Functions void cUtility::VersionParser( const cString& runCompiled, const SDL_version& version, const cString& type ) const { fprintf(stderr, "%s with %s version: %u.%u.%u \n", runCompiled.c_str(), type.c_str(), version.major, version.minor, version.patch); }