From 0ec40c62700e59af4a7fd8b6761d615c7a0c78d2 Mon Sep 17 00:00:00 2001 From: Kiritow <1362050620@qq.com> Date: Thu, 23 Mar 2017 13:41:24 +0800 Subject: [PATCH] Bug Fixed: Font::render... Bug Fixed in class Font::renderText ( and its family functions ) These functions cause exceptions while testing on Visual Studio. And we soon found 'SDL_FreeSurface' was not used in 'reset' method of shared_ptr. Now we have fixed it. --- MiniEngine.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/MiniEngine.cpp b/MiniEngine.cpp index 1d3dd3e..58d0844 100644 --- a/MiniEngine.cpp +++ b/MiniEngine.cpp @@ -565,56 +565,56 @@ namespace MiniEngine Texture Font::renderText(Renderer rnd, std::string Text, RGBA fg) { Surface surf; - surf.surf.reset(TTF_RenderText_Blended(font.get(), Text.c_str(), fg.toSDLColor())); + surf.surf.reset(TTF_RenderText_Blended(font.get(), Text.c_str(), fg.toSDLColor()), SDL_FreeSurface); return rnd.render(surf); } Texture Font::renderTextWrapped(Renderer rnd, std::string Text, RGBA fg, int WrapLength) { Surface surf; - surf.surf.reset(TTF_RenderText_Blended_Wrapped(font.get(), Text.c_str(), fg.toSDLColor(), WrapLength)); + surf.surf.reset(TTF_RenderText_Blended_Wrapped(font.get(), Text.c_str(), fg.toSDLColor(), WrapLength), SDL_FreeSurface); return rnd.render(surf); } Texture Font::renderTextShaded(Renderer rnd, std::string Text, RGBA fg, RGBA bg) { Surface surf; - surf.surf.reset(TTF_RenderText_Shaded(font.get(), Text.c_str(), fg.toSDLColor(), bg.toSDLColor())); + surf.surf.reset(TTF_RenderText_Shaded(font.get(), Text.c_str(), fg.toSDLColor(), bg.toSDLColor()), SDL_FreeSurface); return rnd.render(surf); } Texture Font::renderTextSolid(Renderer rnd, std::string Text, RGBA fg) { Surface surf; - surf.surf.reset(TTF_RenderText_Solid(font.get(), Text.c_str(), fg.toSDLColor())); + surf.surf.reset(TTF_RenderText_Solid(font.get(), Text.c_str(), fg.toSDLColor()), SDL_FreeSurface); return rnd.render(surf); } Texture Font::renderUTF8(Renderer rnd, std::string Text, RGBA fg) { Surface surf; - surf.surf.reset(TTF_RenderUTF8_Blended(font.get(), Text.c_str(), fg.toSDLColor())); + surf.surf.reset(TTF_RenderUTF8_Blended(font.get(), Text.c_str(), fg.toSDLColor()), SDL_FreeSurface); return rnd.render(surf); } Texture Font::renderUTF8Wrapped(Renderer rnd, std::string Text, RGBA fg, int WrapLength) { Surface surf; - surf.surf.reset(TTF_RenderUTF8_Blended_Wrapped(font.get(), Text.c_str(), fg.toSDLColor(), WrapLength)); + surf.surf.reset(TTF_RenderUTF8_Blended_Wrapped(font.get(), Text.c_str(), fg.toSDLColor(), WrapLength), SDL_FreeSurface); return rnd.render(surf); } Texture Font::renderUTF8Shaded(Renderer rnd, std::string Text, RGBA fg, RGBA bg) { Surface surf; - surf.surf.reset(TTF_RenderUTF8_Shaded(font.get(), Text.c_str(), fg.toSDLColor(), bg.toSDLColor())); + surf.surf.reset(TTF_RenderUTF8_Shaded(font.get(), Text.c_str(), fg.toSDLColor(), bg.toSDLColor()), SDL_FreeSurface); return rnd.render(surf); } Texture Font::renderUTF8Solid(Renderer rnd, std::string Text, RGBA fg) { Surface surf; - surf.surf.reset(TTF_RenderUTF8_Solid(font.get(), Text.c_str(), fg.toSDLColor())); + surf.surf.reset(TTF_RenderUTF8_Solid(font.get(), Text.c_str(), fg.toSDLColor()), SDL_FreeSurface); return rnd.render(surf); }