diff options
Diffstat (limited to 'gameloop')
| -rw-r--r-- | gameloop/CMakeLists.txt | 26 | ||||
| -rw-r--r-- | gameloop/imgs/demo.bmp | bin | 0 -> 7998698 bytes | |||
| -rw-r--r-- | gameloop/imgs/demo.jpg | bin | 0 -> 903706 bytes | |||
| -rw-r--r-- | gameloop/include/eventManager.h | 4 | ||||
| -rw-r--r-- | gameloop/include/loopManager.h | 18 | ||||
| -rw-r--r-- | gameloop/include/window.h | 22 | ||||
| -rw-r--r-- | gameloop/src/eventManager.cpp | 0 | ||||
| -rw-r--r-- | gameloop/src/loopManager.cpp | 37 | ||||
| -rw-r--r-- | gameloop/src/main.cpp | 17 | ||||
| -rw-r--r-- | gameloop/src/window.cpp | 48 | 
10 files changed, 172 insertions, 0 deletions
| diff --git a/gameloop/CMakeLists.txt b/gameloop/CMakeLists.txt new file mode 100644 index 0000000..16cbcf3 --- /dev/null +++ b/gameloop/CMakeLists.txt @@ -0,0 +1,26 @@ +cmake_minimum_required(VERSION 3.5) +project(gameloop) + +# Set the C++ standard (optional, but good practice) +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED True) + +# Find the SDL2 package +find_package(SDL2 REQUIRED) + +# Add your executable +set(SOURCES +	src/loopManager +    src/window.cpp +    src/main.cpp +	src/eventManager.cpp +) + +add_executable(gameloop ${SOURCES}) + +# Link the SDL2 library to your project +target_link_libraries(gameloop ${SDL2_LIBRARIES}) + +# Include SDL2 header files and project headers +target_include_directories(gameloop PRIVATE ${SDL2_INCLUDE_DIRS}) +target_include_directories(gameloop PRIVATE ${CMAKE_SOURCE_DIR}/include) diff --git a/gameloop/imgs/demo.bmp b/gameloop/imgs/demo.bmpBinary files differ new file mode 100644 index 0000000..65354fe --- /dev/null +++ b/gameloop/imgs/demo.bmp diff --git a/gameloop/imgs/demo.jpg b/gameloop/imgs/demo.jpgBinary files differ new file mode 100644 index 0000000..f534e1b --- /dev/null +++ b/gameloop/imgs/demo.jpg diff --git a/gameloop/include/eventManager.h b/gameloop/include/eventManager.h new file mode 100644 index 0000000..2aa0a68 --- /dev/null +++ b/gameloop/include/eventManager.h @@ -0,0 +1,4 @@ +class EventManager +{ + +}; diff --git a/gameloop/include/loopManager.h b/gameloop/include/loopManager.h new file mode 100644 index 0000000..03b07a9 --- /dev/null +++ b/gameloop/include/loopManager.h @@ -0,0 +1,18 @@ +#pragma once +#include <SDL2/SDL.h> +#include "window.h" +class LoopManager{ +	public: +		LoopManager(); +		void setup(); +		void loop(); +	private: +		 +		 +		void processInput(); +		void update(); +		void render(); +		bool gameRunning; +		WindowManager window; + +}; diff --git a/gameloop/include/window.h b/gameloop/include/window.h new file mode 100644 index 0000000..b4f2b78 --- /dev/null +++ b/gameloop/include/window.h @@ -0,0 +1,22 @@ +#pragma once +#include <SDL2/SDL.h> +class WindowManager{ +	public: +		WindowManager(); +		virtual ~WindowManager(); +		bool loadMedia(); +		void update(); +		bool init(); +		void close(); +		bool initWindow(); +		void destroyWindow(); +		SDL_Renderer* getRenderer(); +	private: +		//Loads media +		//Frees media and shuts down SDL +		 +		const int SCREEN_WIDTH = 800; +		const int SCREEN_HEIGHT = 600; +		SDL_Window* window = NULL; +		SDL_Renderer* renderer = NULL; +}; diff --git a/gameloop/src/eventManager.cpp b/gameloop/src/eventManager.cpp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/gameloop/src/eventManager.cpp diff --git a/gameloop/src/loopManager.cpp b/gameloop/src/loopManager.cpp new file mode 100644 index 0000000..ef2decf --- /dev/null +++ b/gameloop/src/loopManager.cpp @@ -0,0 +1,37 @@ +#include "loopManager.h" +LoopManager::LoopManager(){ +} +void LoopManager::processInput(){ +	SDL_Event event; +	SDL_PollEvent(&event); +	switch(event.type){ +		case SDL_QUIT: +			gameRunning = false; +			break; +		case SDL_KEYDOWN: +			if(event.key.keysym.sym == SDLK_ESCAPE){ +				gameRunning = false; +			} +		break; +	} +} +void LoopManager::loop(){ +	while(gameRunning){ +		//processInput(); +		//update(); +		//render(); +	} +	window.destroyWindow(); +} +void LoopManager::setup(){ +	gameRunning = window.initWindow(); +} +void LoopManager::render(){ +	if(gameRunning){ +		SDL_SetRenderDrawColor(window.getRenderer(),255,0,0,255); +		SDL_RenderClear(window.getRenderer()); +	} +} +void LoopManager::update(){ + +} diff --git a/gameloop/src/main.cpp b/gameloop/src/main.cpp new file mode 100644 index 0000000..76d0c84 --- /dev/null +++ b/gameloop/src/main.cpp @@ -0,0 +1,17 @@ +//Using SDL and standard IO +#include <SDL2/SDL.h> +#include <stdio.h> +//#include "window.h" +#include "loopManager.h" +//Screen dimension constants + + +//Starts up SDL and creates window + +int main( int argc, char* args[] ) +{ +	LoopManager gameLoop; +	gameLoop.setup(); +	gameLoop.loop(); +	return 0; +} diff --git a/gameloop/src/window.cpp b/gameloop/src/window.cpp new file mode 100644 index 0000000..11424dd --- /dev/null +++ b/gameloop/src/window.cpp @@ -0,0 +1,48 @@ +#include "window.h" + +WindowManager::WindowManager(){ +	if( !initWindow() ) +	{ +		printf( "Failed to initialize!\n" ); +	} +} +WindowManager::~WindowManager(){ +	destroyWindow(); +} +bool WindowManager::init() +{ +} +bool WindowManager::loadMedia() +{ +} +void WindowManager::close() +{ + +} +SDL_Renderer* WindowManager::getRenderer(){ +	return renderer; +} +void WindowManager::update(){ +} +bool WindowManager::initWindow(){ +	if(SDL_Init(SDL_INIT_EVERYTHING) !=  0){ +		fprintf(stderr,"Error inititalising SDL.\n"); +		return false; +	}  +	window = SDL_CreateWindow("Gameloop POC",SDL_WINDOWPOS_CENTERED,SDL_WINDOWPOS_CENTERED,SCREEN_WIDTH,SCREEN_HEIGHT,SDL_WINDOW_RESIZABLE); +	if(!window){ +		fprintf(stderr,"Error creating SDL Window. \n"); +		return false; +	} +	renderer = SDL_CreateRenderer(window,-1,0); +	if(!renderer){ +		fprintf(stderr,"Error creating SDL renderer. \n"); +		return false; +	} +	return true; +} +void WindowManager::destroyWindow(){ +	SDL_DestroyRenderer(renderer); +	SDL_DestroyWindow(window); +	SDL_Quit(); +} |