From 138e0a8f83e82c6109bfc387ac7417d4f41711b4 Mon Sep 17 00:00:00 2001 From: Kelly Rauchenberger Date: Wed, 3 Feb 2021 21:29:52 -0500 Subject: Added cutscene bars (and resized game) --- src/renderer.cpp | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) (limited to 'src/renderer.cpp') 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 @@ #include "map.h" #include "transform_system.h" #include "camera_system.h" +#include "message_system.h" Renderer::Renderer() { win_ = window_ptr( @@ -127,8 +128,35 @@ void Renderer::render(Game& game) { game.getSystem().getFieldOfView().h() }; - SDL_SetRenderTarget(ren_.get(), nullptr); + texture_ptr cameraTex( + SDL_CreateTexture( + ren_.get(), + SDL_PIXELFORMAT_RGBA8888, + SDL_TEXTUREACCESS_TARGET, + CANVAS_WIDTH, + CANVAS_HEIGHT)); + + if (!cameraTex) { + throw sdl_error(); + } + + SDL_SetRenderTarget(ren_.get(), cameraTex.get()); SDL_RenderCopy(ren_.get(), canvas.get(), &cameraField, nullptr); + + if (game.getSystem().getCutsceneBarsProgress() > 0) { + SDL_SetRenderDrawColor(ren_.get(), 0, 0, 0, 255); + + int topBarHeight = 16.0 * game.getSystem().getCutsceneBarsProgress(); + SDL_Rect topBar { 0, 0, CANVAS_WIDTH, topBarHeight }; + SDL_RenderFillRect(ren_.get(), &topBar); + + int bottomBarHeight = 36.0 * game.getSystem().getCutsceneBarsProgress(); + SDL_Rect bottomBar { 0, CANVAS_HEIGHT - bottomBarHeight, CANVAS_WIDTH, bottomBarHeight }; + SDL_RenderFillRect(ren_.get(), &bottomBar); + } + + SDL_SetRenderTarget(ren_.get(), nullptr); + SDL_RenderCopy(ren_.get(), cameraTex.get(), nullptr, nullptr); SDL_RenderPresent(ren_.get()); } -- cgit 1.4.1