add Engine class

This commit is contained in:
Lendemor 2015-07-27 22:48:10 +02:00
parent 7dc2c9602d
commit 1adae53287
5 changed files with 169 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
build/

92
CMakeLists.txt Normal file
View File

@ -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}
)

41
engine.cpp Normal file
View File

@ -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;
}

25
engine.h Normal file
View File

@ -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

10
main.cpp Normal file
View File

@ -0,0 +1,10 @@
#include "engine.h"
int main(){
Input* input;
Engine engine = Engine(input);
while(!input->isCloseRequested()){
engine.update();
}
}