summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorKelly Rauchenberger <fefferburbia@gmail.com>2019-02-24 13:11:12 -0500
committerKelly Rauchenberger <fefferburbia@gmail.com>2019-02-24 13:11:12 -0500
commitbf34f891c5c09e6c8a42797085860fa80ab53814 (patch)
tree80b52c2b7efd0b195f7e3c692a1c05a5469e1e9d /src
parent41593f09b47537ccae1b19dc390f7d7dbb532937 (diff)
downloaddispatcher-bf34f891c5c09e6c8a42797085860fa80ab53814.tar.gz
dispatcher-bf34f891c5c09e6c8a42797085860fa80ab53814.tar.bz2
dispatcher-bf34f891c5c09e6c8a42797085860fa80ab53814.zip
Editor now renders a tiled background image
Diffstat (limited to 'src')
-rw-r--r--src/editor.cpp27
-rw-r--r--src/editor.h6
-rw-r--r--src/main.cpp3
-rw-r--r--src/vector.h1
4 files changed, 37 insertions, 0 deletions
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 @@
1#include "editor.h" 1#include "editor.h"
2#include "consts.h"
2 3
3void Editor::tick( 4void Editor::tick(
4 double dt, 5 double dt,
@@ -9,5 +10,31 @@ void Editor::tick(
9 10
10void Editor::render(SDL_Renderer* ren) 11void Editor::render(SDL_Renderer* ren)
11{ 12{
13 if (!background_)
14 {
15 surface_ptr bgSurf(IMG_Load("../res/editor_bg.png"));
12 16
17 if (!bgSurf)
18 {
19 throw img_error();
20 }
21
22 background_.reset(SDL_CreateTextureFromSurface(ren, bgSurf.get()));
23 bgSize_ = { bgSurf->w, bgSurf->h };
24 }
25
26 for (int y = 0; y < WINDOW_SIZE.h() / bgSize_.h(); y++)
27 {
28 for (int x = 0; x < WINDOW_SIZE.w() / bgSize_.w(); x++)
29 {
30 SDL_Rect rect {
31 x * bgSize_.w(),
32 y * bgSize_.h(),
33 bgSize_.w(),
34 bgSize_.h()
35 };
36
37 SDL_RenderCopy(ren, background_.get(), nullptr, &rect);
38 }
39 }
13} 40}
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 @@
2#define EDITOR_H_8BB54FE3 2#define EDITOR_H_8BB54FE3
3 3
4#include "state.h" 4#include "state.h"
5#include "vector.h"
5 6
6class Editor : public State { 7class Editor : public State {
7public: 8public:
@@ -12,6 +13,11 @@ public:
12 13
13 void render(SDL_Renderer* ren) override; 14 void render(SDL_Renderer* ren) override;
14 15
16private:
17
18 texture_ptr background_;
19 vec2i bgSize_;
20
15}; 21};
16 22
17#endif /* end of include guard: EDITOR_H_8BB54FE3 */ 23#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)
11 std::random_device randomEngine; 11 std::random_device randomEngine;
12 std::mt19937 rng(randomEngine()); 12 std::mt19937 rng(randomEngine());
13 13
14 sdl_wrapper sdl;
15 img_wrapper img;
16
14 window_ptr win( 17 window_ptr win(
15 SDL_CreateWindow( 18 SDL_CreateWindow(
16 "dispatcher", 19 "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:
120}; 120};
121 121
122using vec2s = vec2<size_t>; 122using vec2s = vec2<size_t>;
123using vec2i = vec2<int>;
123 124
124#endif /* end of include guard: COORDINATES_H_A45D34FB */ 125#endif /* end of include guard: COORDINATES_H_A45D34FB */