2017-06-18 20:37:45 +08:00
|
|
|
#pragma once
|
|
|
|
#include "include.h"
|
|
|
|
#include "_PowerState.h"
|
|
|
|
#include "_Platform.h"
|
2017-07-01 15:26:52 +08:00
|
|
|
#include "_SDLInitFlag.h"
|
|
|
|
#include "_IMGInitFlag.h"
|
|
|
|
#include "_MixInitFlag.h"
|
|
|
|
#include "__Noncopyable.h"
|
|
|
|
#include "__Nonmoveable.h"
|
|
|
|
#include "ErrorViewer.h"
|
2017-06-18 20:37:45 +08:00
|
|
|
#include <tuple>
|
|
|
|
#include <string>
|
2017-07-31 00:18:10 +08:00
|
|
|
namespace MiniEngine
|
|
|
|
{
|
2017-07-01 15:26:52 +08:00
|
|
|
|
|
|
|
class SDLSystem : public NonCopyable, public NonMoveable
|
2017-06-18 20:37:45 +08:00
|
|
|
{
|
|
|
|
public:
|
2017-07-01 15:26:52 +08:00
|
|
|
SDLSystem(const std::initializer_list<SDLInitFlag>& flag_sdl = {SDLInitFlag::All} ,
|
|
|
|
const std::initializer_list<IMGInitFlag>& flag_img = {IMGInitFlag::JPG,IMGInitFlag::PNG} ,
|
|
|
|
const std::initializer_list<MixInitFlag>& flag_mix = {MixInitFlag::MP3} ,
|
2017-07-19 18:11:45 +08:00
|
|
|
bool init_ttf = true );
|
2017-07-02 09:47:37 +08:00
|
|
|
/// Experimental Constructor
|
2017-07-19 18:11:45 +08:00
|
|
|
SDLSystem(Uint32 sdl_flag, Uint32 img_flag, Uint32 mix_flag, bool init_ttf);
|
2017-07-01 15:26:52 +08:00
|
|
|
~SDLSystem();
|
2017-06-18 20:37:45 +08:00
|
|
|
|
|
|
|
static void Delay(int ms);
|
|
|
|
|
|
|
|
static PowerState GetPowerState();
|
|
|
|
static int GetPowerLifeLeft();
|
|
|
|
static int GetPowerPrecentageLeft();
|
|
|
|
|
|
|
|
static Platform GetPlatform();
|
|
|
|
|
|
|
|
static void StartTextInput();
|
|
|
|
static bool IsTextInputActive();
|
|
|
|
static void StopTextInput();
|
|
|
|
|
|
|
|
static bool HasScreenKeyboardSupport();
|
|
|
|
|
|
|
|
static std::tuple<int,int,int> GetSDLCompileVersion();
|
|
|
|
static std::tuple<int,int,int> GetSDLLinkedVersion();
|
|
|
|
|
|
|
|
static std::tuple<int,int,int> GetIMGCompileVersion();
|
|
|
|
static std::tuple<int,int,int> GetIMGLinkedVersion();
|
|
|
|
|
|
|
|
static std::tuple<int,int,int> GetMixCompileVersion();
|
|
|
|
static std::tuple<int,int,int> GetMixLinkedVersion();
|
|
|
|
|
|
|
|
static std::tuple<int,int,int> GetTTFCompileVersion();
|
|
|
|
static std::tuple<int,int,int> GetTTFLinkedVersion();
|
|
|
|
|
|
|
|
static int GetCPUCount();
|
|
|
|
static int GetCPUCacheLineSize();
|
|
|
|
/// RAM is calculated in MB.
|
|
|
|
static int GetSystemRAM();
|
|
|
|
|
2017-07-01 15:39:51 +08:00
|
|
|
static int SetClipboardText(const std::string& str);
|
|
|
|
static std::string GetClipboardText();
|
|
|
|
static bool HasClipboardText();
|
|
|
|
|
2017-06-18 20:37:45 +08:00
|
|
|
class Android
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
static std::string GetInternal();
|
|
|
|
static bool ExternalAvaliable();
|
|
|
|
static bool CanReadExternal();
|
|
|
|
static bool CanWriteExternal();
|
|
|
|
static std::string GetExternal();
|
|
|
|
static void* GetJNIEnv();
|
|
|
|
};
|
2017-07-02 09:47:37 +08:00
|
|
|
|
|
|
|
private:
|
2017-07-19 18:11:45 +08:00
|
|
|
void _init(Uint32,Uint32,Uint32,bool);
|
2017-07-02 09:47:37 +08:00
|
|
|
void _quit();
|
2017-06-18 20:37:45 +08:00
|
|
|
};
|
2017-07-31 00:18:10 +08:00
|
|
|
} /// End of namespace MiniEngine
|
|
|
|
|