From 06f30543730c372226c398c11b3de0213d711d13 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Wed, 8 Aug 2018 23:17:10 +0200 Subject: Add support for discord --- src/ResourceCache.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'src/ResourceCache.cpp') diff --git a/src/ResourceCache.cpp b/src/ResourceCache.cpp index 4664bf0..f6f8fad 100644 --- a/src/ResourceCache.cpp +++ b/src/ResourceCache.cpp @@ -1,5 +1,6 @@ #include "../include/ResourceCache.hpp" #include +#include using namespace std; @@ -33,6 +34,29 @@ namespace dchat auto it = textures.find(filepath); if(it != textures.end()) return it->second; + + gdImagePtr imgPtr = gdImageCreateFromFile(filepath.c_str()); + if(!imgPtr) + { + string errMsg = "Failed to load texture with gd: "; + errMsg += filepath; + throw FailedToLoadResourceException(errMsg); + } + + gdImageSetInterpolationMethod(imgPtr, GD_BILINEAR_FIXED); + gdImagePtr newImgPtr = gdImageScale(imgPtr, 100, 100); + if(!newImgPtr) + { + gdImageDestroy(imgPtr); + string errMsg = "Failed to scale image with gd: "; + errMsg += filepath; + throw FailedToLoadResourceException(errMsg); + } + + gdImageFile(newImgPtr, filepath.c_str()); + + gdImageDestroy(imgPtr); + gdImageDestroy(newImgPtr); sf::Texture *texture = new sf::Texture(); if(!texture->loadFromFile(filepath)) -- cgit v1.2.3