From 7eafe293868d5d3875d0bec147e22a266e4ec86c Mon Sep 17 00:00:00 2001
From: WBoerenkamps <wrj.boerenkamps@student.avans.nl>
Date: Mon, 16 Sep 2024 10:16:24 +0200
Subject: trying out engine controlled game loops

---
 gameloop/src/eventManager.cpp |  0
 gameloop/src/loopManager.cpp  | 37 +++++++++++++++++++++++++++++++++
 gameloop/src/main.cpp         | 17 +++++++++++++++
 gameloop/src/window.cpp       | 48 +++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 102 insertions(+)
 create mode 100644 gameloop/src/eventManager.cpp
 create mode 100644 gameloop/src/loopManager.cpp
 create mode 100644 gameloop/src/main.cpp
 create mode 100644 gameloop/src/window.cpp

(limited to 'gameloop/src')

diff --git a/gameloop/src/eventManager.cpp b/gameloop/src/eventManager.cpp
new file mode 100644
index 0000000..e69de29
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();
+}
-- 
cgit v1.2.3