diff --git a/Aeon/Aeon.cpp b/Aeon/Aeon.cpp new file mode 100644 index 0000000..01b761f --- /dev/null +++ b/Aeon/Aeon.cpp @@ -0,0 +1,11 @@ +#include + +Aeon::Core::Engine::Engine() +{ + +} + +const Aeon::Core::Display& Aeon::Core::Engine::getDisplay() +{ + return Aeon::Core::Display::getInstance(); +} diff --git a/Aeon/Aeon.hpp b/Aeon/Aeon.hpp index e69de29..3e79ccd 100644 --- a/Aeon/Aeon.hpp +++ b/Aeon/Aeon.hpp @@ -0,0 +1,18 @@ +#ifndef AEON_AEON_H_ +#define AEON_AEON_H_ + +#include + +namespace Aeon::Core { + +class Engine +{ +public: + Engine(); + + const Aeon::Core::Display& getDisplay(); +}; + +} + +#endif diff --git a/Aeon/Display.cpp b/Aeon/Display.cpp new file mode 100644 index 0000000..2002d3b --- /dev/null +++ b/Aeon/Display.cpp @@ -0,0 +1,8 @@ +#include + +#include + +Aeon::Core::Display::Display() +{ + std::cout << "bruh" << std::endl; +} diff --git a/Aeon/Display.hpp b/Aeon/Display.hpp new file mode 100644 index 0000000..ce94da9 --- /dev/null +++ b/Aeon/Display.hpp @@ -0,0 +1,24 @@ +#ifndef AEON_DISPLAY_H_ +#define AEON_DISPLAY_H_ + +namespace Aeon::Core { + +class Display +{ +public: + Display(); + + static inline Display& getInstance() + { + static Display instance; + return instance; + } + +private: + Display( Display const& ) = delete; + void operator=( Display const& ) = delete; +}; + +} + +#endif diff --git a/CMakeLists.txt b/CMakeLists.txt index 7de3846..4669b82 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,12 +1,11 @@ cmake_minimum_required(VERSION 3.7) -project(AEON) +project(AEON CXX) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} CMakeModules/) cmake_policy(SET CMP0037 OLD) # alow for spaces in file names set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) -set(CMAKE_BUILD_TYPE debug) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++20") # set(CMAKE_BUILD_TYPE Debug) @@ -19,11 +18,15 @@ message(${CMAKE_SOURCE_DIR}/resources) set(exe out) file(GLOB EngineSource - Aeon/* - Aeon/ThirdParty/* - Aeon/Maths/* + Aeon/*.cpp + Aeon/ThirdParty/*.cpp + Aeon/Maths/*.cpp ) +#temp +file (GLOB GameSource + Game/*.cpp +) set(THREADS_PREFER_PTHREAD_FLAD ON) find_package(Threads REQUIRED) @@ -31,11 +34,11 @@ find_package(Threads REQUIRED) # Find GL and GLX package find_package(OpenGL REQUIRED) -include_directories(Aeon) +include_directories(".") include_directories(${WinSDK}) -add_executable(${out} - ${EngineSource} +add_executable(Aeon + ${EngineSource} ${GameSource} ) link_libraries(${exe} diff --git a/Game/ExampleGame.cpp b/Game/ExampleGame.cpp index 985b7f0..81f6223 100644 --- a/Game/ExampleGame.cpp +++ b/Game/ExampleGame.cpp @@ -1,5 +1,9 @@ +// simple raycast shooter -int main() +#include + +int main( int argc, char** argv ) { - + Aeon::Core::Engine engine; + auto& display = engine.getDisplay(); }