Jeck - for HQ users, added flexible image scales to task board backdrop.

This commit is contained in:
wagic.jeck
2010-02-16 01:22:47 +00:00
parent 62609ee1b1
commit 7104eff946
2 changed files with 29 additions and 21 deletions
+1
View File
@@ -71,6 +71,7 @@ protected:
int mState; int mState;
JQuad * mBg[9]; JQuad * mBg[9];
JTexture * mBgTex; JTexture * mBgTex;
float sH, sW;
public: public:
+28 -21
View File
@@ -357,19 +357,26 @@ void TaskList::Start(){
mState = TASKS_IN; mState = TASKS_IN;
if(!mBgTex){ if(!mBgTex){
mBgTex = resources.RetrieveTexture("taskboard.png"); mBgTex = resources.RetrieveTexture("taskboard.png");
float unitH = mBgTex->mHeight / 4;
float unitW = mBgTex->mWidth / 4;
if(unitH == 0 || unitW == 0) return;
for(int i=0;i<9;i++) for(int i=0;i<9;i++)
SAFE_DELETE(mBg[i]); SAFE_DELETE(mBg[i]);
if(mBgTex){ if(mBgTex){
mBg[0] = NEW JQuad(mBgTex,0,0,64,64); mBg[0] = NEW JQuad(mBgTex, 0, 0, unitW, unitH);
mBg[1] = NEW JQuad(mBgTex,64,0,128,64); mBg[1] = NEW JQuad(mBgTex, unitW, 0, unitW*2, unitH);
mBg[2] = NEW JQuad(mBgTex,192,0,64,64); mBg[2] = NEW JQuad(mBgTex, unitW*3, 0, unitW, unitH);
mBg[3] = NEW JQuad(mBgTex,0,64,64,128); mBg[3] = NEW JQuad(mBgTex, 0, unitH, unitW, unitH*2);
mBg[4] = NEW JQuad(mBgTex,64,64,128,128); mBg[4] = NEW JQuad(mBgTex, unitW, unitH, unitW*2, unitH*2);
mBg[5] = NEW JQuad(mBgTex,192,64,64,128); mBg[5] = NEW JQuad(mBgTex, unitW*3, unitH, unitW, unitH*2);
mBg[6] = NEW JQuad(mBgTex,0,192,64,64); mBg[6] = NEW JQuad(mBgTex, 0, unitH*3, unitW, unitH);
mBg[7] = NEW JQuad(mBgTex,64,192,128,64); mBg[7] = NEW JQuad(mBgTex, unitW, unitH*3, unitW*2, unitH);
mBg[8] = NEW JQuad(mBgTex,192,192,64,64); mBg[8] = NEW JQuad(mBgTex, unitW*3, unitH*3, unitW, unitH);
} }
sH = 64 / unitH;
sW = 64 / unitW;
} }
} }
void TaskList::End(){ void TaskList::End(){
@@ -429,20 +436,20 @@ void TaskList::Render() {
//Render background board //Render background board
if(mBgTex){ if(mBgTex){
r->FillRect(0,vPos,SCREEN_WIDTH,SCREEN_HEIGHT,ARGB(128,0,0,0)); r->FillRect(0,vPos,SCREEN_WIDTH,SCREEN_HEIGHT,ARGB(128,0,0,0));
r->RenderQuad(mBg[0],0,vPos); //TL r->RenderQuad(mBg[0],0,vPos,0,sW,sH); //TL
r->RenderQuad(mBg[2],SCREEN_WIDTH-64,vPos); //TR r->RenderQuad(mBg[2],SCREEN_WIDTH-64,vPos,0,sW,sH); //TR
r->RenderQuad(mBg[6],0,vPos+SCREEN_HEIGHT-64); //BL r->RenderQuad(mBg[6],0,vPos+SCREEN_HEIGHT-64,0,sW,sH); //BL
r->RenderQuad(mBg[8],SCREEN_WIDTH-64,vPos+SCREEN_HEIGHT-64); //BR r->RenderQuad(mBg[8],SCREEN_WIDTH-64,vPos+SCREEN_HEIGHT-64,0,sW,sH); //BR
//Stretch the sides //Stretch the sides
float stretchV = 144.0f/128.0f; float stretchV = (144.0f/128.0f)*sH;
float stretchH = 176.0f/128.0f; float stretchH = (176.0f/128.0f)*sW;
r->RenderQuad(mBg[3],0,vPos+64,0,1,stretchV); //L r->RenderQuad(mBg[3],0,vPos+64,0,sW,stretchV); //L
r->RenderQuad(mBg[5],SCREEN_WIDTH-64,vPos+64,0,1,stretchV); //R r->RenderQuad(mBg[5],SCREEN_WIDTH-64,vPos+64,0,sW,stretchV); //R
r->RenderQuad(mBg[1],64,vPos,0,stretchH,1); //T1 r->RenderQuad(mBg[1],64,vPos,0,stretchH,sH); //T1
r->RenderQuad(mBg[1],240,vPos,0,stretchH,1); //T1 r->RenderQuad(mBg[1],240,vPos,0,stretchH,sH); //T1
r->RenderQuad(mBg[7],64,vPos+208,0,stretchH,1); //B1 r->RenderQuad(mBg[7],64,vPos+208,0,stretchH,sH); //B1
r->RenderQuad(mBg[7],240,vPos+208,0,stretchH,1); //B1 r->RenderQuad(mBg[7],240,vPos+208,0,stretchH,sH); //B1
r->RenderQuad(mBg[4],64,vPos+64,0,stretchH,stretchV); //Center1 r->RenderQuad(mBg[4],64,vPos+64,0,stretchH,stretchV); //Center1
r->RenderQuad(mBg[4],240,vPos+64,0,stretchH,stretchV); //Center2 r->RenderQuad(mBg[4],240,vPos+64,0,stretchH,stretchV); //Center2