/* * MapView.h, part of VCMI engine * * Authors: listed in file AUTHORS in main folder * * License: GNU General Public License v2.0 or later * Full text of license available in license.txt file, in main folder * */ #pragma once #include "../gui/CIntObject.h" class MapRendererContext; class MapViewController; class MapViewModel; class MapViewCache; /// Main map rendering class that mostly acts as container for component classes class MapView : public CIntObject { std::shared_ptr model; std::shared_ptr context; std::unique_ptr tilesCache; std::shared_ptr controller; std::shared_ptr createModel(const Point & dimensions) const; public: std::shared_ptr getModel() const; std::shared_ptr getController(); MapView(const Point & offset, const Point & dimensions); ~MapView() override; void show(SDL_Surface * to) override; void showAll(SDL_Surface * to) override; };