aboutsummaryrefslogtreecommitdiff
path: root/mwe/gameloop/src/window.cpp
diff options
context:
space:
mode:
authorLoek Le Blansch <loek@pipeframe.xyz>2024-09-21 15:31:58 +0200
committerLoek Le Blansch <loek@pipeframe.xyz>2024-09-21 15:31:58 +0200
commitca393b6b47618e48c107ad5c021d86700343648e (patch)
tree298bff793ee331566b6be1840c8d7404409b5198 /mwe/gameloop/src/window.cpp
parent8bf919f750807060f3ac2c640b8a02300af1733c (diff)
move gameloop poc to mwe
Diffstat (limited to 'mwe/gameloop/src/window.cpp')
-rw-r--r--mwe/gameloop/src/window.cpp60
1 files changed, 60 insertions, 0 deletions
diff --git a/mwe/gameloop/src/window.cpp b/mwe/gameloop/src/window.cpp
new file mode 100644
index 0000000..f998a79
--- /dev/null
+++ b/mwe/gameloop/src/window.cpp
@@ -0,0 +1,60 @@
+#include "window.h"
+WindowManager::WindowManager(){
+ if( !initWindow() )
+ {
+ printf( "Failed to initialize!\n" );
+ }
+}
+WindowManager::~WindowManager(){
+ destroyWindow();
+}
+SDL_Renderer* WindowManager::getRenderer(){
+ return renderer;
+}
+
+void WindowManager::render(std::vector<GameObject*> objects){
+ // Set the draw color to black and clear the screen
+ SDL_SetRenderDrawColor(renderer, 255, 0, 0, 255);
+ SDL_RenderClear(renderer);
+
+ // Print object position (optional for debugging)
+ //fprintf(stderr, "%d\n", objectList.size());
+ for(int i = 0; i < objects.size();i++){
+ //fprintf(stderr, "%f\n", objectList[i]->getX());
+ // Create a rectangle representing the ball
+ SDL_Rect ball_rect = {
+ (int)objects[i]->getX(),
+ (int)objects[i]->getY(),
+ (int)objects[i]->getWidth(),
+ (int)objects[i]->getHeight(),
+ };
+ // Set the draw color to white and render the ball
+ SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255);
+ SDL_RenderFillRect(renderer, &ball_rect);
+ }
+
+ SDL_RenderPresent(renderer);
+}
+
+bool WindowManager::initWindow(){
+ if(SDL_Init(SDL_INIT_EVERYTHING) != 0){
+ fprintf(stderr,"Error inititalising SDL.\n");
+ return false;
+ }
+ window = SDL_CreateWindow( "SDL Tutorial", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN );
+ 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();
+}