From fbf2a655151f39b620def31f19ac835a664a0191 Mon Sep 17 00:00:00 2001 From: Ben Date: Thu, 29 Nov 2018 09:29:34 +0000 Subject: [PATCH] Updated TODO and CMake to hopefully compile on windows and linux and link SDL_image --- .vscode/tasks.json | 32 +++++++++++++++++++++++++ CMakeLists.txt | 22 ++++++++--------- TODO.txt | 36 +--------------------------- bin/crumpet-engine | Bin 24776 -> 24976 bytes src/crumpet-engine/crumpet-engine.h | 2 ++ src/main.cpp | 12 ++++++++++ 6 files changed, 57 insertions(+), 47 deletions(-) create mode 100644 .vscode/tasks.json diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..e82bd66 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,32 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format + "version": "2.0.0", + "tasks": [ + { + "label": "Cmake and build", + "type": "shell", + "command": "cmake .; make" + }, + { + "label": "build", + "type": "shell", + "command": "make" + }, + { + "label": "build and run", + "type": "shell", + "command": "make; cd bin; ./crumpet-engine; cd .." + }, + { + "label": "Cmake, build and run", + "type": "shell", + "command": "cmake .; make; cd bin; ./crumpet-engine; cd .." + }, + { + "label": "run", + "type": "shell", + "command": "cd bin; ./crumpet-engine; cd .." + } + ] +} \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 7138c6d..a7e5140 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,10 @@ # version -cmake_minimum_required(VERSION 2.4) +cmake_minimum_required(VERSION 3.8) project(crumpet-engine) +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} CMakeFiles/) +cmake_policy(SET CMP0037 OLD) + set(EXEName crumpet-engine) set(BuildDIR bin) set(SrcDIR src) @@ -13,7 +16,7 @@ if (WIN32) set(SDL2_INCLUDE_DIR E:/Games/Librarys/SDL2-2.0.8/include) set(SDL2_LIBRARY E:/Games/Librarys/SDL2-2.0.8/lib/x64) set(SDL2_IMAGE_INCLUDE_DIR E:/Games/Librarys/SDL2_image-2.0.4/VisualC/external/include) - set(SDL2_IMAGE_LIBRARIES E:/Games/Librarys/SDL2_image-2.0.4/VisualC/external/lib/x64) + set(SDL2_IMAGE_LIBRARY E:/Games/Librarys/SDL2_image-2.0.4/VisualC/external/lib/x64) endif (WIN32) if (UNIX) @@ -21,12 +24,9 @@ if (UNIX) find_package(SDL2_image REQUIRED) endif (UNIX) -include_directories( - ${SDL2_INCLUDE_DIR} - ${SDL2_IMAGE_INCLUDE_DIR} -) - -include_directories(${IncludeDIR}) +include_directories(${BuildDIR}/ ${SDL2_INCLUDE_DIR}) +include_directories(${BuildDIR}/ ${SDL2_IMAGE_INCLUDE_DIR}) +include_directories(${BuildDIR}/ ${IncludeDIR}) file(GLOB_RECURSE SourceFiles ${SrcDIR}/* @@ -36,7 +36,5 @@ file(GLOB_RECURSE SourceFiles ) add_executable(${BuildDIR}/${EXEName} ${SourceFiles}) -target_link_libraries(${BuildDIR}/${EXEName} - ${SDL2_LIBRARY} - ${SDL2_IMAGE_LIBRARIES} -) +target_link_libraries(${BuildDIR}/${EXEName} ${SDL2_LIBRARIES}) +target_link_libraries(${BuildDIR}/${EXEName} ${SDL2_IMAGE_LIBRARY}) diff --git a/TODO.txt b/TODO.txt index 1914e45..38060dc 100644 --- a/TODO.txt +++ b/TODO.txt @@ -5,41 +5,7 @@ x -> complete ? -> in development ***URGENT FIX NEEDED*** -[ ] Memory leak in rendering pipeline +[ ] **TODO** [ ] Comment the code -[ ] Fix entity / sprite resizing -[x] Add sprite methods to entity -[x] Remove member initialization lists from Sprite and Entity, use Vec2* instead -[ ] Logger class - [ ] Maybe use preprocessor statements - [ ] Time and other useful logging methods - [ ] Empty constructor, instance method -[x] Rect class to extend SDL_Rect and add conversion capabilitys, colision and intersection to it - [x] Camera class to use Rect* instead of SLD_Rect* - [x] Add and subtract (+ -) operators to add rectangles and subtract them together - [x] Equal and not equal (!= ==) operators to return true / flase if the rectangles match - [x] ToString function for easy logging - [x] Setposition and translate methods - [x] Intersects, contains methods - [x] x,y,w,h properties - [x] Switch other classes to use this instead of SDL_Rect* and make sure to update the render pipeline - [x] Center point - [-] Maybe a point class - used Vec2* -[x] Game camera class and redo rendering pipeline - [?] Add rotation and flipping for entities and sprites - [x] Camera class - [x] Make the camera class control the rendering of the active scene - [x] Game coordinate system - [x] Render to GameWorld coordinates instead of screen coordinates - [-] Each entity and sprite should store a reference to Camera - [ ] Fix zoom in the camera - [ ] Objects that are off the screen, do not get rendered -[ ] GameWorld class with coordinate system - [?] Switch between camera modes on GameWorld - [ ] Multiple scenes stored as levels - [ ] UI and HUD (maybe later tho) -[ ] Framerate - [ ] Cap framerate - [ ] Calculate framerate diff --git a/bin/crumpet-engine b/bin/crumpet-engine index 9dcd6451af2335a031ff0fd1265d5fbf12c2e662..ea6659909f0ccbb91a9b40bd1724338c23fab137 100755 GIT binary patch delta 6523 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 q7tK$$U2&@a{d8eLdXy`uth7}hNkV`O diff --git a/src/crumpet-engine/crumpet-engine.h b/src/crumpet-engine/crumpet-engine.h index dd5a785..5e2b6dd 100644 --- a/src/crumpet-engine/crumpet-engine.h +++ b/src/crumpet-engine/crumpet-engine.h @@ -1,6 +1,8 @@ #pragma once #include +#include + #include "game.h" #undef main diff --git a/src/main.cpp b/src/main.cpp index cf22b80..9e1008f 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -4,9 +4,21 @@ int main(int argc, char** argv) { Game game; game.renderer.createWindow("Crumpet Engine", 600, 400, SCREEN_MODE_VSYNC); + SDL_Texture* texture; + SDL_Surface* loadSurface = IMG_Load("./resources/mario.png"); + if (loadSurface == NULL) { + std::cout << "ERROR LOADING SURFACE " << SDL_GetError() << std::endl; + } + texture = SDL_CreateTextureFromSurface(game.renderer.SDLRenderer, loadSurface); + if (texture == NULL) { + std::cout << "ERROR LOADING TEXTURE " << SDL_GetError() << std::endl; + } + SDL_FreeSurface(loadSurface); + while (!game.renderer.isWindowClosed()) { game.renderer.clear(); game.input.poll(); + SDL_RenderCopy(game.renderer.SDLRenderer, texture, NULL, NULL); game.renderer.update(); } }