Changeset 15241


Ignore:
Timestamp:
04/12/12 22:36:20 (10 years ago)
Author:
nit
Message:

[titan] add autoscale to png

File:
1 edited

Legend:

Unmodified
Added
Removed
  • titan/titan/skin.h

    r15240 r15241  
    13541354}
    13551355
     1356void calcautoscale(int width, int height, int mwidth, int mheight, int* scalewidth, int* scaleheight)
     1357{
     1358        if(width < mwidth && height < mheight && height > 0)
     1359        {
     1360                *scaleheight = mheight;
     1361                *scalewidth = width * (mheight / height);
     1362        }
     1363        else if(width < mwidth && height > mheight && height > 0 && mheight > 0)
     1364        {
     1365                *scaleheight = mheight;
     1366                *scalewidth = width / (height / mheight);
     1367        }
     1368        else if(width > mwidth && height < mheight && width > 0 && mwidth > 0)
     1369        {
     1370                *scalewidth = mwidth;
     1371                *scaleheight = height / (width / mwidth);
     1372        }
     1373        else if(width > mwidth && height > mheight && height > 0 && mwidth > 0)
     1374        {
     1375                *scalewidth = mwidth;
     1376                *scaleheight = height / (width / mwidth);
     1377               
     1378                if(*scaleheight > mheight)
     1379                {
     1380                        *scaleheight = mheight;
     1381                        *scalewidth = width / (height / mheight);
     1382                }
     1383        }
     1384}
     1385
    13561386int readjpgsw(const char* filename, int posx, int posy, int mwidth, int mheight, int scalewidth, int scaleheight, int halign, int valign)
    13571387{
     
    13961426                //auto scale to mwidth / mheight
    13971427                if(scalewidth == 1 && scaleheight == 1)
    1398                 {
    1399                         if(width < mwidth && height < mheight && height > 0)
    1400                         {
    1401                                 scaleheight = mheight;
    1402                                 scalewidth = width * (mheight / height);
    1403                         }
    1404                         else if(width < mwidth && height > mheight && height > 0 && mheight > 0)
    1405                         {
    1406                                 scaleheight = mheight;
    1407                                 scalewidth = width / (height / mheight);
    1408                         }
    1409                         else if(width > mwidth && height < mheight && width > 0 && mwidth > 0)
    1410                         {
    1411                                 scalewidth = mwidth;
    1412                                 scaleheight = height / (width / mwidth);
    1413                         }
    1414                         else if(width > mwidth && height > mheight && height > 0 && mwidth > 0)
    1415                         {
    1416                                 scalewidth = mwidth;
    1417                                 scaleheight = height / (width / mwidth);
    1418                                
    1419                                 if(scaleheight > mheight)
    1420                                 {
    1421                                         scaleheight = mheight;
    1422                                         scalewidth = width / (height / mheight);
    1423                                 }
    1424                         }
    1425                 }
     1428                        calcautoscale(width, height, mwidth, mheight, &scalewidth, &scaleheight);
    14261429               
    14271430                if(scalewidth == 0) scalewidth = width;
     
    17581761        if(pictype == 0 && (scalewidth != 0 || scaleheight != 0))
    17591762        {
     1763                //auto scale to mwidth / mheight
     1764                if(scalewidth == 1 && scaleheight == 1)
     1765                        calcautoscale(width, height, mwidth, mheight, &scalewidth, &scaleheight);
     1766       
    17601767                if(scalewidth == 0) scalewidth = width;
    17611768                if(scaleheight == 0) scaleheight = height;
Note: See TracChangeset for help on using the changeset viewer.