diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..567609b --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +build/ diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..10a7eed --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,92 @@ +project(SparrowEngine) +cmake_minimum_required(VERSION 2.8) + +if(WIN32) + set(SYSTEM_LIB_PATH "win32") +else(WIN32) + set(SYSTEM_LIB_PATH "linux") +endif(WIN32) + +set(LIB_SRC_LIST engine.cpp) + +set(LIBRARY_NAME ${PROJECT_NAME}) +set(EXECUTABLE_NAME "test${PROJECT_NAME}") + +set(DEPENDENCIES_ROOT ${PROJECT_SOURCE_DIR}/../cpp_dependencies) +set(INCLUDE_ROOT ${DEPENDENCIES_ROOT}/include) +set(LIB_ROOT ${DEPENDENCIES_ROOT}/lib/${SYSTEM_LIB_PATH}) + +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${LIB_ROOT}) #for SHARED +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LIB_ROOT}) #for STATIC + +add_library(${LIBRARY_NAME} STATIC ${LIB_SRC_LIST}) +add_executable(${EXECUTABLE_NAME} main.cpp) +add_definitions(-std=c++11) + +include_directories( + ${INCLUDE_ROOT} +) + +find_library(SFML_LIBRARY_WINDOW + NAMES + sfml-window + PATHS + ${LIB_ROOT} +) + +find_library(SFML_LIBRARY_SYSTEM + NAMES + sfml-system + PATHS + ${LIB_ROOT} +) + +find_library(SPARROW_RENDERER_LIBRARY + NAMES + sparrowrenderer + PATHS + ${LIB_ROOT} +) + +find_library(SPARROW_INPUT_LIBRARY + NAMES + SparrowInput + PATHS + ${LIB_ROOT} +) + +find_library(BULLET_COLLISION_LIBRARY + NAMES + BulletCollision + PATHS + ${LIB_ROOT} +) + +find_library(BULLET_DYNAMICS_LIBRARY + NAMES + BulletDynamics + PATHS + ${LIB_ROOT} +) + +find_library(LINEAR_MATH_LIBRARY + NAMES + LinearMath + PATHS + ${LIB_ROOT} +) + +target_link_libraries( + ${LIBRARY_NAME} + ${SFML_LIBRARY_WINDOW} + ${SFML_LIBRARY_SYSTEM} + ${SPARROW_INPUT_LIBRARY} +) +# ${SPARROW_RENDERER_LIBRARY} +# ${BULLET_COLLISION_LIBRARY} +# ${}BULLET_DYNAMICS_LIBRARY +# ${LINEAR_MATH_LIBRARY} +target_link_libraries( + ${EXECUTABLE_NAME} + ${LIBRARY_NAME} +) diff --git a/engine.cpp b/engine.cpp new file mode 100644 index 0000000..85f8a4b --- /dev/null +++ b/engine.cpp @@ -0,0 +1,41 @@ + +#include "engine.h" +//#include "bullet/btBulletCollisionCommon.h" +//#include "bullet/btBulletDynamicsCommon.h" + +Engine::Engine(Input* _input): input(_input) +{ + +} + +void Engine::update() +{ + //update time variable + lastTimeStamp = timeStamp; + timeStamp = (unsigned int) clock.getElapsedTime().asMilliseconds(); + //update Events + input->updateEvents(); + + render(); + updatePhysics(); +} + +void Engine::render() +{ + //call to SparrowRenderer +} + +void Engine::updatePhysics() +{ + //update world +} + +unsigned int Engine::getTime() +{ + return timeStamp; +} + +unsigned int Engine::getDeltaTime() +{ + return timeStamp - lastTimeStamp; +} diff --git a/engine.h b/engine.h new file mode 100644 index 0000000..02a23ef --- /dev/null +++ b/engine.h @@ -0,0 +1,25 @@ +#ifndef ENGINE_H +#define ENGINE_H + +#include "SparrowInput/input.h" + +class Engine{ +public: + Engine(Input* _input); + //main function + void update(); + void render(); + void updatePhysics(); + + //utils function + unsigned int getTime(); + unsigned int getDeltaTime(); + +private: + Input* input; + sf::Clock clock; + unsigned int timeStamp = 0; + unsigned int lastTimeStamp = 0; +}; + +#endif diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..6e14273 --- /dev/null +++ b/main.cpp @@ -0,0 +1,10 @@ + +#include "engine.h" + +int main(){ + Input* input; + Engine engine = Engine(input); + while(!input->isCloseRequested()){ + engine.update(); + } +}