Laserlicht 3 月之前
父節點
當前提交
79dead4ad6
共有 3 個文件被更改,包括 7 次插入7 次删除
  1. 1 1
      client/renderSDL/RenderHandler.cpp
  2. 4 4
      client/renderSDL/SDLImage.cpp
  3. 2 2
      client/renderSDL/SDLImage.h

+ 1 - 1
client/renderSDL/RenderHandler.cpp

@@ -321,7 +321,7 @@ std::shared_ptr<SDLImageShared> RenderHandler::loadScaledImage(const ImageLocato
 	if(img)
 	{
 		if(isShadow && generateShadow)
-			img = img->drawShadow((*locator.generateShadow) == SharedImageLocator::ShadowMode::SHADOW_SHEER);
+			img = img->drawShadow((*locator.generateShadow) == SharedImageLocator::ShadowMode::SHADOW_SHEAR);
 		if(isOverlay && generateOverlay && (*locator.generateOverlay) == SharedImageLocator::OverlayMode::OVERLAY_OUTLINE)
 			img = img->drawOutline(Colors::WHITE, getScalingFactor());
 	}

+ 4 - 4
client/renderSDL/SDLImage.cpp

@@ -429,13 +429,13 @@ std::shared_ptr<const ISharedImage> SDLImageShared::verticalFlip() const
 	return ret;
 }
 
-std::shared_ptr<const ISharedImage> SDLImageShared::drawShadow(bool doSheer) const
+std::shared_ptr<SDLImageShared> SDLImageShared::drawShadow(bool doSheer) const
 {
 	if(upscalingInProgress)
 		throw std::runtime_error("Attempt to access images that is still being loaded!");
 
 	if (!surf)
-		return shared_from_this();
+		return nullptr;
 
 	SDL_Surface * shadow = CSDL_Ext::drawShadow(surf, doSheer);
 	auto ret = std::make_shared<SDLImageShared>(shadow);
@@ -449,13 +449,13 @@ std::shared_ptr<const ISharedImage> SDLImageShared::drawShadow(bool doSheer) con
 	return ret;
 }
 
-std::shared_ptr<const ISharedImage> SDLImageShared::drawOutline(const ColorRGBA & color, int thickness) const
+std::shared_ptr<SDLImageShared> SDLImageShared::drawOutline(const ColorRGBA & color, int thickness) const
 {
 	if(upscalingInProgress)
 		throw std::runtime_error("Attempt to access images that is still being loaded!");
 
 	if (!surf)
-		return shared_from_this();
+		return nullptr;
 
 	SDL_Color sdlColor = { color.r, color.g, color.b, color.a };
 	SDL_Surface * outline = CSDL_Ext::drawOutline(surf, sdlColor, thickness);

+ 2 - 2
client/renderSDL/SDLImage.h

@@ -71,8 +71,8 @@ public:
 	[[nodiscard]] std::shared_ptr<const ISharedImage> scaleInteger(int factor, SDL_Palette * palette, EImageBlitMode blitMode) const override;
 	[[nodiscard]] std::shared_ptr<const ISharedImage> scaleTo(const Point & size, SDL_Palette * palette) const override;
 
-	std::shared_ptr<const ISharedImage> drawShadow(bool doSheer) const;
-	std::shared_ptr<const ISharedImage> drawOutline(const ColorRGBA & color, int thickness) const;
+	std::shared_ptr<SDLImageShared> drawShadow(bool doSheer) const;
+	std::shared_ptr<SDLImageShared> drawOutline(const ColorRGBA & color, int thickness) const;
 
 	friend class SDLImageLoader;
 };