ScaledImg now allocated only if it's needed; also removed

TFB_SCALETARGET_FACTOR as redundant


git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@875 8092fc87-c524-0410-9efc-e669fe64eaf9
This commit is contained in:
gewlitys
2003-03-08 17:10:30 +00:00
parent 22c93302e8
commit 8adb141165
2 changed files with 11 additions and 5 deletions
+8 -4
View File
@@ -162,14 +162,12 @@ TFB_DrawCanvas_New_Paletted (int w, int h, TFB_Palette *palette, int transparent
return new_surf;
}
#define TFB_SCALETARGET_FACTOR 4
TFB_Canvas
TFB_DrawCanvas_New_ScaleTarget (TFB_Canvas canvas)
{
SDL_Surface *src = (SDL_Surface *)canvas;
SDL_Surface *newsurf = SDL_CreateRGBSurface (SDL_SWSURFACE, src->w * TFB_SCALETARGET_FACTOR,
src->h * TFB_SCALETARGET_FACTOR,
SDL_Surface *newsurf = SDL_CreateRGBSurface (SDL_SWSURFACE, src->w,
src->h,
src->format->BitsPerPixel,
src->format->Rmask,
src->format->Gmask,
@@ -290,6 +288,12 @@ TFB_DrawCanvas_Rescale (TFB_Canvas src_canvas, TFB_Canvas dest_canvas, EXTENT si
fprintf (stderr, "TFB_DrawCanvas_Scale: Tried to zoom an image to be larger than the screen! Failing.\n");
return;
}
if (size.width > dst->w || size.height > dst->h)
{
fprintf (stderr, "TFB_DrawCanvas_Scale: Tried to scale image to size %d %d when dest_canvas has only dimensions of %d %d! Failing.\n",
size.width, size.height, dst->w, dst->h);
return;
}
sx = (int) (65536.0 * (float) src->w / (float) size.width);
sy = (int) (65536.0 * (float) src->h / (float) size.height);
+3 -1
View File
@@ -263,7 +263,7 @@ TFB_DrawImage_New (TFB_Canvas canvas)
img->NormalImg = TFB_DrawCanvas_ToScreenFormat (canvas);
}
img->ScaledImg = TFB_DrawCanvas_New_ScaleTarget (img->NormalImg);
img->ScaledImg = NULL;
return img;
}
@@ -303,6 +303,8 @@ TFB_DrawImage_FixScaling (TFB_Image *image, int target)
if ((old.width != image->extent.width) || (old.height != image->extent.height) || image->dirty)
{
image->dirty = FALSE;
if (!image->ScaledImg)
image->ScaledImg = TFB_DrawCanvas_New_ScaleTarget (image->NormalImg);
TFB_DrawCanvas_Rescale (image->NormalImg, image->ScaledImg, image->extent);
}
/*