From 90b9831d6fb89feedeec63cb392c4535c5df60fe Mon Sep 17 00:00:00 2001 From: Kelly Rauchenberger Date: Sun, 24 Feb 2019 12:30:40 -0500 Subject: Started state machine The "--editor" flag can be passed to the program to start it in editor mode, which is currently nothing. The Renderer class was removed here, as each state basically needs to do its own rendering. However, refactoring to make this more elegant will probably occur in the future. --- src/renderer.cpp | 103 ------------------------------------------------------- 1 file changed, 103 deletions(-) delete mode 100644 src/renderer.cpp (limited to 'src/renderer.cpp') diff --git a/src/renderer.cpp b/src/renderer.cpp deleted file mode 100644 index 286a530..0000000 --- a/src/renderer.cpp +++ /dev/null @@ -1,103 +0,0 @@ -#include "renderer.h" -#include "simulation.h" -#include "consts.h" -#include "level.h" -#include "views.h" - -Renderer::Renderer() -{ - win_ = window_ptr( - SDL_CreateWindow( - "dispatcher", - 100, - 100, - WINDOW_SIZE.w(), - WINDOW_SIZE.h(), - SDL_WINDOW_SHOWN)); - - if (!win_) - { - throw sdl_error(); - } - - ren_ = renderer_ptr( - SDL_CreateRenderer( - win_.get(), - -1, - SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC)); - - if (!ren_) - { - throw sdl_error(); - } - - SDL_SetRenderDrawBlendMode(ren_.get(), SDL_BLENDMODE_MOD); - SDL_SetRenderDrawColor(ren_.get(), 255, 150, 255, 255); - SDL_RenderFillRect(ren_.get(), nullptr); -} - -void Renderer::render(const Simulation& sim) -{ - texture_ptr canvas( - SDL_CreateTexture( - ren_.get(), - SDL_PIXELFORMAT_RGBA8888, - SDL_TEXTUREACCESS_TARGET, - WINDOW_SIZE.w(), - WINDOW_SIZE.h())); - - if (!canvas) - { - throw sdl_error(); - } - - SDL_SetRenderTarget(ren_.get(), nullptr); - SDL_SetRenderDrawBlendMode(ren_.get(), SDL_BLENDMODE_NONE); - SDL_SetRenderDrawColor(ren_.get(), 255, 150, rand() % 255, 255); - SDL_RenderClear(ren_.get()); - - const Level& level = sim.getLevel(); - - for (size_t y = 0; y < level.getSize().h(); y++) - { - for (size_t x = 0; x < level.getSize().w(); x++) - { - int val = 255 - level.at(x, y) * 10; - - SDL_SetRenderDrawColor(ren_.get(), val, val, val, 255); - - SDL_Rect rect { - static_cast(x * TILE_SIZE.w()), - static_cast(y * TILE_SIZE.h()), - TILE_SIZE.w(), - TILE_SIZE.h() - }; - - SDL_RenderFillRect(ren_.get(), &rect); - } - } - - constexpr Layer renderOrder[] = { Layer::track, Layer::object }; - - ranges::for_each( - ranges::view::for_each( - renderOrder, - [&] (Layer layer) { - return sim.entityRange() | views::isOnLayer(layer); - }), - [&] (const Entity& entity) { - SDL_SetRenderDrawColor(ren_.get(), entity.colorVal, entity.colorVal, 65, 255); - - SDL_Rect rect { - static_cast(entity.pos.x()), - static_cast(entity.pos.y()), - static_cast(entity.size.w()), - static_cast(entity.size.h()) - }; - - SDL_RenderFillRect(ren_.get(), &rect); - }); - - //SDL_RenderCopy(ren_.get(), canvas.get(), nullptr, nullptr); - SDL_RenderPresent(ren_.get()); -} -- cgit 1.4.1