summary refs log tree commit diff stats
path: root/src/renderer.cpp
diff options
context:
space:
mode:
authorKelly Rauchenberger <fefferburbia@gmail.com>2021-02-03 21:29:52 -0500
committerKelly Rauchenberger <fefferburbia@gmail.com>2021-02-03 21:29:52 -0500
commit138e0a8f83e82c6109bfc387ac7417d4f41711b4 (patch)
treeaf4fe2d5453d5d2090f8106a433d507bd0e75a81 /src/renderer.cpp
parentdab96b810691c26e29fef92d88c828a311be3e9d (diff)
downloadtanetane-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.cpp30
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
8Renderer::Renderer() { 9Renderer::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