diff options
author | Kelly Rauchenberger <fefferburbia@gmail.com> | 2021-02-03 21:29:52 -0500 |
---|---|---|
committer | Kelly Rauchenberger <fefferburbia@gmail.com> | 2021-02-03 21:29:52 -0500 |
commit | 138e0a8f83e82c6109bfc387ac7417d4f41711b4 (patch) | |
tree | af4fe2d5453d5d2090f8106a433d507bd0e75a81 /src/renderer.cpp | |
parent | dab96b810691c26e29fef92d88c828a311be3e9d (diff) | |
download | tanetane-138e0a8f83e82c6109bfc387ac7417d4f41711b4.tar.gz tanetane-138e0a8f83e82c6109bfc387ac7417d4f41711b4.tar.bz2 tanetane-138e0a8f83e82c6109bfc387ac7417d4f41711b4.zip |
Added cutscene bars (and resized game)
Diffstat (limited to 'src/renderer.cpp')
-rw-r--r-- | src/renderer.cpp | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/src/renderer.cpp b/src/renderer.cpp index 92083db..2c6cf5c 100644 --- a/src/renderer.cpp +++ b/src/renderer.cpp | |||
@@ -4,6 +4,7 @@ | |||
4 | #include "map.h" | 4 | #include "map.h" |
5 | #include "transform_system.h" | 5 | #include "transform_system.h" |
6 | #include "camera_system.h" | 6 | #include "camera_system.h" |
7 | #include "message_system.h" | ||
7 | 8 | ||
8 | Renderer::Renderer() { | 9 | Renderer::Renderer() { |
9 | win_ = window_ptr( | 10 | win_ = window_ptr( |
@@ -127,8 +128,35 @@ void Renderer::render(Game& game) { | |||
127 | game.getSystem<CameraSystem>().getFieldOfView().h() | 128 | game.getSystem<CameraSystem>().getFieldOfView().h() |
128 | }; | 129 | }; |
129 | 130 | ||
130 | SDL_SetRenderTarget(ren_.get(), nullptr); | 131 | texture_ptr cameraTex( |
132 | SDL_CreateTexture( | ||
133 | ren_.get(), | ||
134 | SDL_PIXELFORMAT_RGBA8888, | ||
135 | SDL_TEXTUREACCESS_TARGET, | ||
136 | CANVAS_WIDTH, | ||
137 | CANVAS_HEIGHT)); | ||
138 | |||
139 | if (!cameraTex) { | ||
140 | throw sdl_error(); | ||
141 | } | ||
142 | |||
143 | SDL_SetRenderTarget(ren_.get(), cameraTex.get()); | ||
131 | SDL_RenderCopy(ren_.get(), canvas.get(), &cameraField, nullptr); | 144 | SDL_RenderCopy(ren_.get(), canvas.get(), &cameraField, nullptr); |
145 | |||
146 | if (game.getSystem<MessageSystem>().getCutsceneBarsProgress() > 0) { | ||
147 | SDL_SetRenderDrawColor(ren_.get(), 0, 0, 0, 255); | ||
148 | |||
149 | int topBarHeight = 16.0 * game.getSystem<MessageSystem>().getCutsceneBarsProgress(); | ||
150 | SDL_Rect topBar { 0, 0, CANVAS_WIDTH, topBarHeight }; | ||
151 | SDL_RenderFillRect(ren_.get(), &topBar); | ||
152 | |||
153 | int bottomBarHeight = 36.0 * game.getSystem<MessageSystem>().getCutsceneBarsProgress(); | ||
154 | SDL_Rect bottomBar { 0, CANVAS_HEIGHT - bottomBarHeight, CANVAS_WIDTH, bottomBarHeight }; | ||
155 | SDL_RenderFillRect(ren_.get(), &bottomBar); | ||
156 | } | ||
157 | |||
158 | SDL_SetRenderTarget(ren_.get(), nullptr); | ||
159 | SDL_RenderCopy(ren_.get(), cameraTex.get(), nullptr, nullptr); | ||
132 | SDL_RenderPresent(ren_.get()); | 160 | SDL_RenderPresent(ren_.get()); |
133 | } | 161 | } |
134 | 162 | ||