Changeset 15391


Ignore:
Timestamp:
04/28/12 15:12:18 (11 years ago)
Author:
nit
Message:

[titan] fix autoscale

File:
1 edited

Legend:

Unmodified
Added
Removed
  • titan/titan/skin.h

    r15309 r15391  
    13561356void calcautoscale(int width, int height, int mwidth, int mheight, int* scalewidth, int* scaleheight)
    13571357{
    1358         if(width < mwidth && height < mheight && height > 0)
     1358        float srcRatio = (float)width / (float)height;
     1359        float dstRatio = (float)mwidth / (float)mheight;
     1360
     1361        if(dstRatio > srcRatio)
    13591362        {
    13601363                *scaleheight = mheight;
    1361                 *scalewidth = width * (mheight / height);
    1362                
    1363                 if(*scalewidth > mwidth && width > 0)
    1364                 {
    1365                         *scalewidth = mwidth;
    1366                         *scaleheight = height * (mwidth / width);
    1367                 }                               
    1368         }
    1369         else if(width < mwidth && height > mheight && mheight > 0 && (height / mheight) > 0)
    1370         {
    1371                 *scaleheight = mheight;
    1372                 *scalewidth = width / (height / mheight);
    1373         }
    1374         else if(width > mwidth && height < mheight && mwidth > 0 && (width / mwidth) > 0)
     1364                *scalewidth = mheight * srcRatio;
     1365        }
     1366        else
    13751367        {
    13761368                *scalewidth = mwidth;
    1377                 *scaleheight = height / (width / mwidth);
    1378         }
    1379         else if(width > mwidth && height > mheight && mheight > 0 && (height / mheight) > 0)
    1380         {
    1381                 *scaleheight = mheight;
    1382                 *scalewidth = width / (height / mheight);
    1383                
    1384                 if(*scalewidth > mwidth && mwidth > 0 && (width / mwidth) > 0)
    1385                 {
    1386                         *scalewidth = mwidth;
    1387                         *scaleheight = height / (width / mwidth);
    1388                 }
     1369                *scaleheight = mwidth / srcRatio;
    13891370        }
    13901371}
Note: See TracChangeset for help on using the changeset viewer.