浏览代码

Added draw method to ISharedImage interface

Ivan Savenko 1 年之前
父节点
当前提交
2d12cecded
共有 4 个文件被更改,包括 6 次插入3 次删除
  1. 2 0
      client/render/IImage.h
  2. 1 1
      client/renderSDL/ImageScaled.cpp
  3. 2 1
      client/renderSDL/ImageScaled.h
  4. 1 1
      client/renderSDL/SDLImage.h

+ 2 - 0
client/render/IImage.h

@@ -21,6 +21,7 @@ class ColorRGBA;
 VCMI_LIB_NAMESPACE_END
 
 struct SDL_Surface;
+struct SDL_Palette;
 class ColorFilter;
 
 /// Defines which blit method will be selected when image is used for rendering
@@ -88,6 +89,7 @@ public:
 	virtual Point dimensions() const = 0;
 	virtual void exportBitmap(const boost::filesystem::path & path) const = 0;
 	virtual bool isTransparent(const Point & coords) const = 0;
+	virtual void draw(SDL_Surface * where, SDL_Palette * palette, const Point & dest, const Rect * src, uint8_t alpha, EImageBlitMode mode) const = 0;
 
 	virtual std::shared_ptr<IImage> createImageReference(EImageBlitMode mode) = 0;
 

+ 1 - 1
client/renderSDL/ImageScaled.cpp

@@ -28,7 +28,7 @@ int ImageSharedScaled::getScalingFactor() const
 	return 2;
 }
 
-void ImageSharedScaled::draw(SDL_Surface *where, const Point &dest, const Rect *src, uint8_t alpha, EImageBlitMode mode) const
+void ImageSharedScaled::draw(SDL_Surface *where, SDL_Palette * palette, const Point &dest, const Rect *src, uint8_t alpha, EImageBlitMode mode) const
 {
 	scaledImage->draw(where, nullptr, dest, src, alpha, mode);
 }

+ 2 - 1
client/renderSDL/ImageScaled.h

@@ -10,6 +10,7 @@
 #pragma once
 
 #include "../render/IImage.h"
+#include "../render/IRenderHandler.h"
 
 struct SDL_Palette;
 
@@ -24,7 +25,7 @@ class ImageSharedScaled final : public ISharedImage, public std::enable_shared_f
 public:
 	ImageSharedScaled(std::shared_ptr<SDLImageShared> sourceImage);
 
-	void draw(SDL_Surface * where, const Point & dest, const Rect * src, uint8_t alpha, EImageBlitMode mode) const;
+	void draw(SDL_Surface * where, SDL_Palette * palette, const Point & dest, const Rect * src, uint8_t alpha, EImageBlitMode mode) const override;
 
 	void exportBitmap(const boost::filesystem::path & path) const override;
 	Point dimensions() const override;

+ 1 - 1
client/renderSDL/SDLImage.h

@@ -47,7 +47,7 @@ public:
 	SDLImageShared(SDL_Surface * from);
 	~SDLImageShared();
 
-	void draw(SDL_Surface * where, SDL_Palette * palette, const Point & dest, const Rect * src, uint8_t alpha, EImageBlitMode mode) const;
+	void draw(SDL_Surface * where, SDL_Palette * palette, const Point & dest, const Rect * src, uint8_t alpha, EImageBlitMode mode) const override;
 
 	void exportBitmap(const boost::filesystem::path & path) const override;
 	Point dimensions() const override;