aboutsummaryrefslogtreecommitdiff
path: root/src/Text.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Text.cpp')
-rw-r--r--src/Text.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/Text.cpp b/src/Text.cpp
index 204c16f..3cafc69 100644
--- a/src/Text.cpp
+++ b/src/Text.cpp
@@ -347,16 +347,22 @@ namespace dchat
{
if(imageByUrlResult.isGif)
{
+ auto gifSize = imageByUrlResult.gif->getSize();
+ float widthToHeightRatio = (float)gifSize.x / (float)gifSize.y;
+
imageByUrlResult.gif->setPosition(pos);
- imageByUrlResult.gif->setSize(size);
+ imageByUrlResult.gif->setScale(sf::Vector2f(size.x / (float)gifSize.x * widthToHeightRatio, size.y / (float)gifSize.y));
imageByUrlResult.gif->draw(target);
}
else
{
+ auto textureSize = imageByUrlResult.texture->getSize();
+ float widthToHeightRatio = (float)textureSize.x / (float)textureSize.y;
+
// TODO: Store this sprite somewhere, might not be efficient to create a new sprite object every frame
sf::Sprite sprite(*imageByUrlResult.texture);
sprite.setPosition(pos);
- sprite.setScale(size.x / (float)imageByUrlResult.texture->getSize().x, size.y / (float)imageByUrlResult.texture->getSize().y);
+ sprite.setScale(size.x / (float)textureSize.x * widthToHeightRatio, size.y / (float)textureSize.y);
target.draw(sprite);
}
}