From bf34f891c5c09e6c8a42797085860fa80ab53814 Mon Sep 17 00:00:00 2001 From: Kelly Rauchenberger Date: Sun, 24 Feb 2019 13:11:12 -0500 Subject: Editor now renders a tiled background image --- src/editor.cpp | 27 +++++++++++++++++++++++++++ src/editor.h | 6 ++++++ src/main.cpp | 3 +++ src/vector.h | 1 + 4 files changed, 37 insertions(+) (limited to 'src') diff --git a/src/editor.cpp b/src/editor.cpp index 6e53ac3..92c6b67 100644 --- a/src/editor.cpp +++ b/src/editor.cpp @@ -1,4 +1,5 @@ #include "editor.h" +#include "consts.h" void Editor::tick( double dt, @@ -9,5 +10,31 @@ void Editor::tick( void Editor::render(SDL_Renderer* ren) { + if (!background_) + { + surface_ptr bgSurf(IMG_Load("../res/editor_bg.png")); + if (!bgSurf) + { + throw img_error(); + } + + background_.reset(SDL_CreateTextureFromSurface(ren, bgSurf.get())); + bgSize_ = { bgSurf->w, bgSurf->h }; + } + + for (int y = 0; y < WINDOW_SIZE.h() / bgSize_.h(); y++) + { + for (int x = 0; x < WINDOW_SIZE.w() / bgSize_.w(); x++) + { + SDL_Rect rect { + x * bgSize_.w(), + y * bgSize_.h(), + bgSize_.w(), + bgSize_.h() + }; + + SDL_RenderCopy(ren, background_.get(), nullptr, &rect); + } + } } diff --git a/src/editor.h b/src/editor.h index aa137ec..dc908b9 100644 --- a/src/editor.h +++ b/src/editor.h @@ -2,6 +2,7 @@ #define EDITOR_H_8BB54FE3 #include "state.h" +#include "vector.h" class Editor : public State { public: @@ -12,6 +13,11 @@ public: void render(SDL_Renderer* ren) override; +private: + + texture_ptr background_; + vec2i bgSize_; + }; #endif /* end of include guard: EDITOR_H_8BB54FE3 */ diff --git a/src/main.cpp b/src/main.cpp index 7c65e81..cbac5bb 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -11,6 +11,9 @@ int main(int argc, char** argv) std::random_device randomEngine; std::mt19937 rng(randomEngine()); + sdl_wrapper sdl; + img_wrapper img; + window_ptr win( SDL_CreateWindow( "dispatcher", diff --git a/src/vector.h b/src/vector.h index a94aea0..c207dc8 100644 --- a/src/vector.h +++ b/src/vector.h @@ -120,5 +120,6 @@ public: }; using vec2s = vec2; +using vec2i = vec2; #endif /* end of include guard: COORDINATES_H_A45D34FB */ -- cgit 1.4.1