parent
6c18832de4
commit
51c5bb7191
@ -0,0 +1,45 @@
|
|||||||
|
/******************************************************************************
|
||||||
|
* File - core.cpp
|
||||||
|
* Author - Joey Pollack
|
||||||
|
* Date - 2021/08/30 (y/m/d)
|
||||||
|
* Mod Date - 2021/08/30 (y/m/d)
|
||||||
|
* Description - The Core Engine Class. Manages the engine components.
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
#include "core.h"
|
||||||
|
|
||||||
|
namespace lunarium
|
||||||
|
{
|
||||||
|
core* core::mpInstance = nullptr;
|
||||||
|
core::core()
|
||||||
|
: mbIsInit(false)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
core& core::GetInstance()
|
||||||
|
{
|
||||||
|
if (!mpInstance)
|
||||||
|
{
|
||||||
|
mpInstance = new core;
|
||||||
|
}
|
||||||
|
|
||||||
|
return *mpInstance;
|
||||||
|
}
|
||||||
|
|
||||||
|
void core::Shutdown()
|
||||||
|
{
|
||||||
|
if (!mpInstance)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// Shutdown subsystems
|
||||||
|
|
||||||
|
delete mpInstance;
|
||||||
|
mpInstance = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool core::IsInit() const
|
||||||
|
{
|
||||||
|
return mbIsInit;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,36 @@
|
|||||||
|
/******************************************************************************
|
||||||
|
* File - core.h
|
||||||
|
* Author - Joey Pollack
|
||||||
|
* Date - 2021/08/30 (y/m/d)
|
||||||
|
* Mod Date - 2021/08/30 (y/m/d)
|
||||||
|
* Description - The Core Engine Class. Manages the engine components.
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
#ifndef CORE_H_
|
||||||
|
#define CORE_H_
|
||||||
|
|
||||||
|
namespace lunarium
|
||||||
|
{
|
||||||
|
class core
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
static core& GetInstance();
|
||||||
|
static void Shutdown();
|
||||||
|
|
||||||
|
void Initialize(const char* args);
|
||||||
|
|
||||||
|
bool IsInit() const;
|
||||||
|
|
||||||
|
private: // DATA
|
||||||
|
static core* mpInstance;
|
||||||
|
bool mbIsInit;
|
||||||
|
|
||||||
|
private: // HIDDEN METHODS
|
||||||
|
|
||||||
|
core();
|
||||||
|
core(const core&) = delete;
|
||||||
|
core& operator=(const core&) = delete;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // CORE_H_
|
||||||
@ -0,0 +1,148 @@
|
|||||||
|
/******************************************************************************
|
||||||
|
* File - state.cpp
|
||||||
|
* Author - Joey Pollack
|
||||||
|
* Date - 2021/08/30 (y/m/d)
|
||||||
|
* Mod Date - 2021/08/30 (y/m/d)
|
||||||
|
* Description - Stores all of the settings for the engine.
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
#include "state.h"
|
||||||
|
#include <utils/helpers.h>
|
||||||
|
#include <pugixml.hpp>
|
||||||
|
|
||||||
|
namespace lunarium
|
||||||
|
{
|
||||||
|
State State::CreateEmpty()
|
||||||
|
{
|
||||||
|
State s;
|
||||||
|
s.DataDirectory = "";
|
||||||
|
s.Display.FullScreenResolution.Width = 0;
|
||||||
|
s.Display.FullScreenResolution.Height = 0;
|
||||||
|
s.Display.IsFullScreen = false;
|
||||||
|
s.Display.VSyncEnabled = false;
|
||||||
|
s.Display.WindowedSize.Width = 0;
|
||||||
|
s.Display.WindowedSize.Height = 0;
|
||||||
|
s.Display.WindowStartPosition.X = 0;
|
||||||
|
s.Display.WindowStartPosition.Y = 0;
|
||||||
|
s.Interface.MainFont = "";
|
||||||
|
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
State State::CreateDefault()
|
||||||
|
{
|
||||||
|
|
||||||
|
State s;
|
||||||
|
s.DataDirectory = "data/";
|
||||||
|
Sizei size = GetScreenResolution();
|
||||||
|
s.Display.FullScreenResolution.Width = size.Width;
|
||||||
|
s.Display.FullScreenResolution.Height = size.Height;
|
||||||
|
s.Display.IsFullScreen = false;
|
||||||
|
s.Display.VSyncEnabled = true;
|
||||||
|
s.Display.WindowedSize.Width = 800;
|
||||||
|
s.Display.WindowedSize.Height = 600;
|
||||||
|
s.Display.WindowStartPosition.X = 100;
|
||||||
|
s.Display.WindowStartPosition.Y = 100;
|
||||||
|
s.Interface.MainFont = "";
|
||||||
|
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
OpRes State::CreateFromFile(std::string filename, State& state)
|
||||||
|
{
|
||||||
|
pugi::xml_document doc;
|
||||||
|
pugi::xml_parse_result result = doc.load_file(filename.c_str());
|
||||||
|
|
||||||
|
if (!result)
|
||||||
|
{
|
||||||
|
return OpRes::Fail((std::string("Could not open file: ") + filename).c_str());
|
||||||
|
}
|
||||||
|
|
||||||
|
pugi::xml_node root = doc.child("State");
|
||||||
|
if (pugi::node_null == root.type())
|
||||||
|
{
|
||||||
|
return OpRes::Fail((filename + " does not contain a State element").c_str());
|
||||||
|
}
|
||||||
|
|
||||||
|
// Read in each state variable, fill in with a default if it is not found
|
||||||
|
state.DataDirectory = root.child("DataDirectory").child_value();
|
||||||
|
if ("" == state.DataDirectory)
|
||||||
|
{
|
||||||
|
state.DataDirectory = "data/";
|
||||||
|
}
|
||||||
|
|
||||||
|
pugi::xml_node display = root.child("Display");
|
||||||
|
if (pugi::node_null == display.type())
|
||||||
|
{
|
||||||
|
Sizei size = GetScreenResolution();
|
||||||
|
state.Display.FullScreenResolution.Width = size.Width;
|
||||||
|
state.Display.FullScreenResolution.Height = size.Height;
|
||||||
|
state.Display.IsFullScreen = false;
|
||||||
|
state.Display.VSyncEnabled = true;
|
||||||
|
state.Display.WindowedSize.Width = 800;
|
||||||
|
state.Display.WindowedSize.Height = 600;
|
||||||
|
state.Display.WindowStartPosition.X = 100;
|
||||||
|
state.Display.WindowStartPosition.Y = 100;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
state.Display.FullScreenResolution.Width = display.child("FullScreenResolution").attribute("Width").as_int();
|
||||||
|
state.Display.FullScreenResolution.Height = display.child("FullScreenResolution").attribute("Height").as_int();
|
||||||
|
state.Display.IsFullScreen = display.attribute("IsFullScreen").as_bool();
|
||||||
|
state.Display.VSyncEnabled = display.attribute("VSyncEnabled").as_bool();
|
||||||
|
state.Display.WindowedSize.Width = display.child("WindowedSize").attribute("Width").as_int();
|
||||||
|
state.Display.WindowedSize.Height = display.child("WindowedSize").attribute("Height").as_int();;
|
||||||
|
state.Display.WindowStartPosition.X = display.child("WindowStartPosition").attribute("X").as_int();
|
||||||
|
state.Display.WindowStartPosition.Y = display.child("WindowStartPosition").attribute("Y").as_int();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
pugi::xml_node interface = root.child("Interface");
|
||||||
|
if (pugi::node_null == display.type())
|
||||||
|
{
|
||||||
|
state.Interface.MainFont = "";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
state.Interface.MainFont = interface.attribute("MainFont").value();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return OpRes::OK();
|
||||||
|
}
|
||||||
|
|
||||||
|
OpRes State::SaveToFile(std::string filename)
|
||||||
|
{
|
||||||
|
pugi::xml_document doc;
|
||||||
|
doc.append_child("State");
|
||||||
|
|
||||||
|
doc.child("State").append_child("DataDirectory");
|
||||||
|
doc.child("State").child("DataDirectory").text().set(DataDirectory.c_str());
|
||||||
|
|
||||||
|
// Display
|
||||||
|
pugi::xml_node display = doc.child("State").append_child("Display");
|
||||||
|
display.append_attribute("IsFullScreen").set_value(Display.IsFullScreen);
|
||||||
|
display.append_attribute("VSyncEnabled").set_value(Display.VSyncEnabled);
|
||||||
|
|
||||||
|
pugi::xml_node fsr = display.append_child("FullScreenResolution");
|
||||||
|
fsr.append_attribute("Width").set_value(Display.FullScreenResolution.Width);
|
||||||
|
fsr.append_attribute("Height").set_value(Display.FullScreenResolution.Height);
|
||||||
|
|
||||||
|
pugi::xml_node ws = display.append_child("WindowedSize");
|
||||||
|
ws.append_attribute("Width").set_value(Display.WindowedSize.Width);
|
||||||
|
ws.append_attribute("Height").set_value(Display.WindowedSize.Height);
|
||||||
|
|
||||||
|
pugi::xml_node wsp = display.append_child("WindowStartPosition");
|
||||||
|
wsp.append_attribute("X").set_value(Display.WindowStartPosition.X);
|
||||||
|
wsp.append_attribute("Y").set_value(Display.WindowStartPosition.Y);
|
||||||
|
|
||||||
|
// Interface
|
||||||
|
pugi::xml_node interface = doc.child("State").append_child("Interface");
|
||||||
|
interface.append_attribute("MainFont").set_value(Interface.MainFont.c_str());
|
||||||
|
|
||||||
|
return doc.save_file(filename.c_str())
|
||||||
|
? OpRes::OK()
|
||||||
|
: OpRes::Fail((std::string("Could not save xml file: ") + filename).c_str());
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,58 @@
|
|||||||
|
/******************************************************************************
|
||||||
|
* File - state.h
|
||||||
|
* Author - Joey Pollack
|
||||||
|
* Date - 2021/08/30 (y/m/d)
|
||||||
|
* Mod Date - 2021/08/30 (y/m/d)
|
||||||
|
* Description - Stores all of the settings for the engine.
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
#ifndef STATE_H_
|
||||||
|
#define STATE_H_
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include <utils/OpRes.h>
|
||||||
|
|
||||||
|
namespace lunarium
|
||||||
|
{
|
||||||
|
struct State
|
||||||
|
{
|
||||||
|
std::string DataDirectory;
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
int X;
|
||||||
|
int Y;
|
||||||
|
} WindowStartPosition;
|
||||||
|
|
||||||
|
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
int Width;
|
||||||
|
int Height;
|
||||||
|
} WindowedSize;
|
||||||
|
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
int Width;
|
||||||
|
int Height;
|
||||||
|
} FullScreenResolution;
|
||||||
|
|
||||||
|
bool IsFullScreen;
|
||||||
|
bool VSyncEnabled;
|
||||||
|
} Display;
|
||||||
|
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
std::string MainFont;
|
||||||
|
} Interface;
|
||||||
|
|
||||||
|
// METHODS
|
||||||
|
static State CreateEmpty();
|
||||||
|
static State CreateDefault();
|
||||||
|
static OpRes CreateFromFile(std::string filename, State& state);
|
||||||
|
OpRes SaveToFile(std::string filename);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // STATE_H_
|
||||||
@ -1,109 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* File - INIFile.h
|
|
||||||
* Author - Joey Pollack
|
|
||||||
* Date - 2017/11/28 (y/m/d)
|
|
||||||
* Mod Date - 2017/11/28 (y/m/d)
|
|
||||||
* Description - Read/Write from a .ini file
|
|
||||||
******************************************************************************/
|
|
||||||
|
|
||||||
#include "INIFile.h"
|
|
||||||
|
|
||||||
// TODO: This needs to be re-written without the windows-specific functions
|
|
||||||
#define WIN32_LEAN_AND_MEAN
|
|
||||||
#include <windows.h>
|
|
||||||
|
|
||||||
#include <algorithm>
|
|
||||||
#include <stdexcept>
|
|
||||||
|
|
||||||
namespace Lunarium
|
|
||||||
{
|
|
||||||
INIFile::INIFile(const char * filename)
|
|
||||||
{
|
|
||||||
mFullPath = filename;
|
|
||||||
}
|
|
||||||
|
|
||||||
INIFile::~INIFile()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string INIFile::Read(const char* section, const char* key)
|
|
||||||
{
|
|
||||||
char buffer[256];
|
|
||||||
GetPrivateProfileStringA(section, key, nullptr, buffer, 256, mFullPath.c_str());
|
|
||||||
return std::string(buffer);
|
|
||||||
}
|
|
||||||
|
|
||||||
int INIFile::ReadInt(const char* section, const char* key)
|
|
||||||
{
|
|
||||||
int val = GetPrivateProfileIntA(section, key, -1, mFullPath.c_str());
|
|
||||||
return val;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool INIFile::ReadBool(const char* section, const char* key)
|
|
||||||
{
|
|
||||||
std::string buffer = Read(section, key);
|
|
||||||
|
|
||||||
if (buffer.size() < 1)
|
|
||||||
throw std::runtime_error("ReadBool() Failed: buffer was empty!");
|
|
||||||
|
|
||||||
std::transform(buffer.begin(), buffer.end(), buffer.begin(), ::tolower);
|
|
||||||
|
|
||||||
if (buffer == std::string("false"))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (buffer == std::string("true"))
|
|
||||||
return true;
|
|
||||||
|
|
||||||
throw std::runtime_error("ReadBool() Failed: buffer not a boolean value!");
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
double INIFile::ReadDouble(const char* section, const char* key)
|
|
||||||
{
|
|
||||||
throw "Not implemented!";
|
|
||||||
return 0.0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void INIFile::Write(const char * section, const char * key, const char * value)
|
|
||||||
{
|
|
||||||
WritePrivateProfileStringA(section, key, value, mFullPath.c_str());
|
|
||||||
}
|
|
||||||
|
|
||||||
void INIFile::WriteInt(const char * section, const char * key, int value)
|
|
||||||
{
|
|
||||||
std::string strVal = std::to_string(value);
|
|
||||||
WritePrivateProfileStringA(section, key, strVal.c_str(), mFullPath.c_str());
|
|
||||||
}
|
|
||||||
|
|
||||||
void INIFile::WriteBool(const char * section, const char * key, bool value)
|
|
||||||
{
|
|
||||||
std::string strVal = "true";
|
|
||||||
if (!value)
|
|
||||||
{
|
|
||||||
strVal = "false";
|
|
||||||
}
|
|
||||||
|
|
||||||
WritePrivateProfileStringA(section, key, strVal.c_str(), mFullPath.c_str());
|
|
||||||
}
|
|
||||||
|
|
||||||
void INIFile::WriteDouble(const char * section, const char * key, double value)
|
|
||||||
{
|
|
||||||
throw "INIFile::WriteDouble Not implemented!";
|
|
||||||
}
|
|
||||||
|
|
||||||
bool INIFile::KeyExists(const char* section, const char* key)
|
|
||||||
{
|
|
||||||
return Read(section, key).length() > 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void INIFile::DeleteKey(const char* section, const char* key)
|
|
||||||
{
|
|
||||||
Write(section, key, nullptr);
|
|
||||||
}
|
|
||||||
|
|
||||||
void INIFile::DeleteSection(const char * section)
|
|
||||||
{
|
|
||||||
Write(section, nullptr, nullptr);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,54 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* File - INIFile.h
|
|
||||||
* Author - Joey Pollack
|
|
||||||
* Date - 2017/11/28 (y/m/d)
|
|
||||||
* Mod Date - 2017/11/28 (y/m/d)
|
|
||||||
* Description - Read/Write from a .ini file
|
|
||||||
* Based on the C# class writen by Danny Beckett and released
|
|
||||||
* to public domain:
|
|
||||||
* https://stackoverflow.com/questions/217902/reading-writing-an-ini-file
|
|
||||||
******************************************************************************/
|
|
||||||
|
|
||||||
#ifndef _INI_FILE_H_
|
|
||||||
#define _INI_FILE_H_
|
|
||||||
|
|
||||||
#include <string>
|
|
||||||
|
|
||||||
namespace Lunarium
|
|
||||||
{
|
|
||||||
class INIFile
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
// filename must be a full, absolute path to the .ini file.
|
|
||||||
INIFile(const char* filename);
|
|
||||||
~INIFile();
|
|
||||||
|
|
||||||
// Read methods
|
|
||||||
std::string Read(const char* section, const char* key);
|
|
||||||
int ReadInt(const char* section, const char* key);
|
|
||||||
bool ReadBool(const char* section, const char* key);
|
|
||||||
double ReadDouble(const char* section, const char* key);
|
|
||||||
|
|
||||||
// Write methods
|
|
||||||
void Write(const char * section, const char* key, const char* value);
|
|
||||||
void WriteInt(const char * section, const char* key, int value);
|
|
||||||
void WriteBool(const char * section, const char* key, bool value);
|
|
||||||
void WriteDouble(const char * section, const char* key, double value);
|
|
||||||
|
|
||||||
|
|
||||||
// Management
|
|
||||||
bool KeyExists(const char* section, const char* key);
|
|
||||||
|
|
||||||
void DeleteKey(const char* section, const char* key);
|
|
||||||
void DeleteSection(const char* section);
|
|
||||||
|
|
||||||
|
|
||||||
private:
|
|
||||||
bool mbFileOpen;
|
|
||||||
|
|
||||||
std::string mFullPath;
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
#endif // _INI_FILE_H_
|
|
||||||
@ -0,0 +1,43 @@
|
|||||||
|
/******************************************************************************
|
||||||
|
* File - OpRes.cpp
|
||||||
|
* Author - Joey Pollack
|
||||||
|
* Date - 2020/03/05 (y/m/d)
|
||||||
|
* Mod Date - 2020/03/05 (y/m/d)
|
||||||
|
* Description - Operation Result. Also contains a message describing the result.
|
||||||
|
*
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
#include "OpRes.h"
|
||||||
|
|
||||||
|
namespace lunarium
|
||||||
|
{
|
||||||
|
bool OpRes::operator==(const OpRes& rhs)
|
||||||
|
{
|
||||||
|
return this->Type == rhs.Type;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool OpRes::operator==(ResultType rhs)
|
||||||
|
{
|
||||||
|
return this->Type == rhs;
|
||||||
|
}
|
||||||
|
|
||||||
|
OpRes OpRes::OK()
|
||||||
|
{
|
||||||
|
return { ResultType::OK, "The operation succeeded" };
|
||||||
|
}
|
||||||
|
|
||||||
|
OpRes OpRes::Fail(const char* why)
|
||||||
|
{
|
||||||
|
return { ResultType::FAIL, why };
|
||||||
|
}
|
||||||
|
|
||||||
|
bool IsOK(OpRes&& res)
|
||||||
|
{
|
||||||
|
return res.Type == ResultType::OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Failed(OpRes&& res)
|
||||||
|
{
|
||||||
|
return res.Type == ResultType::FAIL;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,43 @@
|
|||||||
|
/******************************************************************************
|
||||||
|
* File - OpRes.h
|
||||||
|
* Author - Joey Pollack
|
||||||
|
* Date - 2020/03/05 (y/m/d)
|
||||||
|
* Mod Date - 2020/03/05 (y/m/d)
|
||||||
|
* Description - Operation Result. Also contains a message describing the result.
|
||||||
|
*
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
#ifndef _OPERATION_RESULT_H_
|
||||||
|
#define _OPERATION_RESULT_H_
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
namespace lunarium
|
||||||
|
{
|
||||||
|
enum ResultType
|
||||||
|
{
|
||||||
|
OK,
|
||||||
|
WARNING, // Not used yet
|
||||||
|
FAIL
|
||||||
|
};
|
||||||
|
|
||||||
|
struct OpRes
|
||||||
|
{
|
||||||
|
ResultType Type;
|
||||||
|
std::string Description;
|
||||||
|
|
||||||
|
bool operator==(const OpRes& rhs);
|
||||||
|
|
||||||
|
bool operator==(ResultType rhs);
|
||||||
|
|
||||||
|
static OpRes OK();
|
||||||
|
|
||||||
|
static OpRes Fail(const char* why);
|
||||||
|
};
|
||||||
|
|
||||||
|
bool IsOK(OpRes&& res);
|
||||||
|
|
||||||
|
bool Failed(OpRes&& res);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // _OPERATION_RESULT_H_
|
||||||
@ -0,0 +1,51 @@
|
|||||||
|
/******************************************************************************
|
||||||
|
* File - helpers.cpp
|
||||||
|
* Author - Joey Pollack
|
||||||
|
* Date - 2021/08/30 (y/m/d)
|
||||||
|
* Mod Date - 2021/08/30 (y/m/d)
|
||||||
|
* Description - Defines some helper methods for use through out the engine.
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
#include "helpers.h"
|
||||||
|
|
||||||
|
#ifdef WIN32
|
||||||
|
#include <windows.h>
|
||||||
|
#else
|
||||||
|
#include <X11/Xlib.h>
|
||||||
|
#endif // WIN32
|
||||||
|
|
||||||
|
namespace lunarium
|
||||||
|
{
|
||||||
|
Sizei GetScreenResolution()
|
||||||
|
{
|
||||||
|
#ifdef WIN32
|
||||||
|
return Sizei { GetSystemMetrics(SM_CXVIRTUALSCREEN), GetSystemMetrics(SM_CYVIRTUALSCREEN) };
|
||||||
|
#else
|
||||||
|
Display* disp = XOpenDisplay(NULL);
|
||||||
|
Screen* scrn = DefaultScreenOfDisplay(disp);
|
||||||
|
return Sizei { scrn->width, scrn->height };
|
||||||
|
#endif // WIN32
|
||||||
|
}
|
||||||
|
|
||||||
|
//template <typename T>
|
||||||
|
std::string AsString(int value)
|
||||||
|
{
|
||||||
|
std::string str = "";
|
||||||
|
str += value;
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string AsString(bool value)
|
||||||
|
{
|
||||||
|
std::string str = "";
|
||||||
|
str += value;
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string AsString(float value)
|
||||||
|
{
|
||||||
|
std::string str = "";
|
||||||
|
str += value;
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,25 @@
|
|||||||
|
/******************************************************************************
|
||||||
|
* File - helpers.h
|
||||||
|
* Author - Joey Pollack
|
||||||
|
* Date - 2021/08/30 (y/m/d)
|
||||||
|
* Mod Date - 2021/08/30 (y/m/d)
|
||||||
|
* Description - Defines some helper methods for use through out the engine.
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
#ifndef HELPERS_H_
|
||||||
|
#define HELPERS_H_
|
||||||
|
|
||||||
|
#include "types.h"
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
namespace lunarium
|
||||||
|
{
|
||||||
|
Sizei GetScreenResolution();
|
||||||
|
|
||||||
|
//template <typename T>
|
||||||
|
std::string AsString(int value);
|
||||||
|
std::string AsString(bool value);
|
||||||
|
std::string AsString(float value);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // HELPERS_H_
|
||||||
@ -0,0 +1,26 @@
|
|||||||
|
/******************************************************************************
|
||||||
|
* File - types.h
|
||||||
|
* Author - Joey Pollack
|
||||||
|
* Date - 2021/08/30 (y/m/d)
|
||||||
|
* Mod Date - 2021/08/30 (y/m/d)
|
||||||
|
* Description - Defines some generic types for use through out the engine.
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
#ifndef TYPES_H_
|
||||||
|
#define TYPES_H_
|
||||||
|
|
||||||
|
namespace lunarium
|
||||||
|
{
|
||||||
|
template <typename T>
|
||||||
|
struct Size
|
||||||
|
{
|
||||||
|
T Width;
|
||||||
|
T Height;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef Size<int> Sizei;
|
||||||
|
typedef Size<unsigned> Sizeu;
|
||||||
|
typedef Size<float> Sizef;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // TYPES_H_
|
||||||
@ -0,0 +1,9 @@
|
|||||||
|
<State>
|
||||||
|
<DataDirectory>data/</DataDirectory>
|
||||||
|
<Display IsFullScreen="false" VSyncEnabled="true">
|
||||||
|
<FullScreenResolution Width="1920" Height="1080" />
|
||||||
|
<WindowedSize Width="800" Height="600" />
|
||||||
|
<WindowStartPosition X="100" Y="100" />
|
||||||
|
</Display>
|
||||||
|
<Interface MainFont="" />
|
||||||
|
</State>
|
||||||
Loading…
Reference in New Issue