diff --git a/src/game.cpp b/src/game.cpp new file mode 100644 index 0000000..e400448 --- /dev/null +++ b/src/game.cpp @@ -0,0 +1,12 @@ +#include "game.hpp" + +void Game::process_event(SDL_Event const &evt) { +} + +void Game::tick(double delta_time) { +} + +void Game::draw(SDL_Renderer *render) { + SDL_SetRenderDrawColor(this->render, 0, 0, 0, 255); + SDL_RenderClear(render); +} diff --git a/src/game.hpp b/src/game.hpp new file mode 100644 index 0000000..928ad96 --- /dev/null +++ b/src/game.hpp @@ -0,0 +1,13 @@ +#ifndef GAME_HPP +#define GAME_HPP + +#include "core/application.hpp" + +class Game : public Application { +public: + virtual void process_event(SDL_Event const &evt) override; + virtual void tick(double delta_time) override; + virtual void draw(SDL_Renderer *render) override; +}; + +#endif // !GAME_HPP diff --git a/src/main.cpp b/src/main.cpp index dc5b5a5..fefb240 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,34 +1,6 @@ -#include -#include -#include -#include -#include +#include "game.hpp" int main(int argc, char* argv[]) { - // initialize SDL2 - assert(SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_EVENTS) == 0 && "SDL Initialization failed"); - // open window and create renderer from window - SDL_Window *window{SDL_CreateWindow("new_window", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 1000, 1000, SDL_WINDOW_BORDERLESS)}; - assert(window != NULL && "SDL window failed to open"); - SDL_Renderer *render{SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED)}; - assert(render != NULL && "SDL Renderer failed to open"); - // start working - SDL_Event event{}; - bool keep_open{true}; - while(keep_open) { - SDL_PollEvent(&event); - switch(event.type) { - case SDL_QUIT: - keep_open = false; - break; - default: - break; - } - SDL_RenderClear(render); - SDL_RenderPresent(render); - } - - SDL_DestroyRenderer(render); - SDL_DestroyWindow(window); - SDL_Quit(); + Game game{}; + game.run(); }