mirror of
https://github.com/vcmi/vcmi.git
synced 2025-03-19 21:10:12 +02:00
All assets generation (large spellbook, terrain animations, etc) are now done in memory and used as it, without saving to disk. This should slightly improve load times since there is no encode png / decode png, and should help with avoiding strange bug when vcmi fails to load recently saved assets. If needed, such assets can be force-dumped on disk using already existing console command
56 lines
1.7 KiB
C++
56 lines
1.7 KiB
C++
/*
|
|
* IRenderHandler.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 "ImageLocator.h"
|
|
|
|
VCMI_LIB_NAMESPACE_BEGIN
|
|
class Services;
|
|
VCMI_LIB_NAMESPACE_END
|
|
|
|
struct SDL_Surface;
|
|
|
|
class IFont;
|
|
class IImage;
|
|
class CAnimation;
|
|
class CanvasImage;
|
|
class SDLImageShared;
|
|
enum class EImageBlitMode : uint8_t;
|
|
enum class CanvasScalingPolicy;
|
|
enum EFonts : int8_t;
|
|
|
|
class IRenderHandler : public boost::noncopyable
|
|
{
|
|
public:
|
|
virtual ~IRenderHandler() = default;
|
|
|
|
/// Must be called once VLC loading is over to initialize icons
|
|
virtual void onLibraryLoadingFinished(const Services * services) = 0;
|
|
|
|
/// Loads image using given path
|
|
virtual std::shared_ptr<IImage> loadImage(const ImageLocator & locator) = 0;
|
|
virtual std::shared_ptr<IImage> loadImage(const ImagePath & path, EImageBlitMode mode) = 0;
|
|
virtual std::shared_ptr<IImage> loadImage(const AnimationPath & path, int frame, int group, EImageBlitMode mode) = 0;
|
|
|
|
/// Loads single upscaled image without auto-scaling support
|
|
virtual std::shared_ptr<SDLImageShared> loadScaledImage(const ImageLocator & locator) = 0;
|
|
|
|
/// Creates image which can be used as target for drawing on
|
|
virtual std::shared_ptr<CanvasImage> createImage(const Point & size, CanvasScalingPolicy scalingPolicy) = 0;
|
|
|
|
/// Loads animation using given path
|
|
virtual std::shared_ptr<CAnimation> loadAnimation(const AnimationPath & path, EImageBlitMode mode) = 0;
|
|
|
|
/// Returns font with specified identifer
|
|
virtual std::shared_ptr<const IFont> loadFont(EFonts font) = 0;
|
|
|
|
virtual void exportGeneratedAssets() = 0;
|
|
};
|