summaryrefslogtreecommitdiff
path: root/src/interface/SaveButton.cpp
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2012-04-03 13:07:39 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-04-03 13:07:39 (GMT)
commit73c5082cbcdd3a986765723bd4182e45386ce766 (patch)
tree99a0040636c9700a893044ebc36d949fa1da5873 /src/interface/SaveButton.cpp
parentefddc12e5d2aadc5eee1927245ad38b9dee89aed (diff)
downloadpowder-73c5082cbcdd3a986765723bd4182e45386ce766.zip
powder-73c5082cbcdd3a986765723bd4182e45386ce766.tar.gz
Super, megaheavyweight thumbnail renderer
Diffstat (limited to 'src/interface/SaveButton.cpp')
-rw-r--r--src/interface/SaveButton.cpp44
1 files changed, 24 insertions, 20 deletions
diff --git a/src/interface/SaveButton.cpp b/src/interface/SaveButton.cpp
index 775e38b..6b0e9cf 100644
--- a/src/interface/SaveButton.cpp
+++ b/src/interface/SaveButton.cpp
@@ -57,26 +57,30 @@ void SaveButton::Tick(float dt)
if(tempThumb)
{
thumbnail = new Thumbnail(*tempThumb); //Store a local copy of the thumbnail
- if(thumbnail->Data)
- {
- if(thumbnail->Size.Y > (Size.Y-25))
- {
- scaleFactorY = ((float)(Size.Y-25))/((float)thumbnail->Size.Y);
- }
- if(thumbnail->Size.X > Size.X-3)
- {
- scaleFactorX = ((float)Size.X-3)/((float)thumbnail->Size.X);
- }
- if(scaleFactorY < 1.0f || scaleFactorX < 1.0f)
- {
- float scaleFactor = scaleFactorY < scaleFactorX ? scaleFactorY : scaleFactorX;
- pixel * thumbData = thumbnail->Data;
- thumbnail->Data = Graphics::resample_img(thumbData, thumbnail->Size.X, thumbnail->Size.Y, thumbnail->Size.X * scaleFactor, thumbnail->Size.Y * scaleFactor);
- thumbnail->Size.X *= scaleFactor;
- thumbnail->Size.Y *= scaleFactor;
- free(thumbData);
- }
- }
+ }
+ }
+ else
+ {
+ thumbnail = new Thumbnail(save);
+ }
+ if(thumbnail && thumbnail->Data)
+ {
+ if(thumbnail->Size.Y > (Size.Y-25))
+ {
+ scaleFactorY = ((float)(Size.Y-25))/((float)thumbnail->Size.Y);
+ }
+ if(thumbnail->Size.X > Size.X-3)
+ {
+ scaleFactorX = ((float)Size.X-3)/((float)thumbnail->Size.X);
+ }
+ if(scaleFactorY < 1.0f || scaleFactorX < 1.0f)
+ {
+ float scaleFactor = scaleFactorY < scaleFactorX ? scaleFactorY : scaleFactorX;
+ pixel * thumbData = thumbnail->Data;
+ thumbnail->Data = Graphics::resample_img(thumbData, thumbnail->Size.X, thumbnail->Size.Y, thumbnail->Size.X * scaleFactor, thumbnail->Size.Y * scaleFactor);
+ thumbnail->Size.X *= scaleFactor;
+ thumbnail->Size.Y *= scaleFactor;
+ free(thumbData);
}
}
}