am 22578830: am 645c8f4d: Merge change I09c6fc08 into eclair

Merge commit '22578830b5ca99879d6693d0109ca2c10283ec04' into eclair-mr2-plus-aosp

* commit '22578830b5ca99879d6693d0109ca2c10283ec04':
  Change the entry / exit animation.
This commit is contained in:
Jason Sams
2009-10-16 17:35:20 -07:00
committed by Android Git Automerger
+36 -17
View File
@@ -202,7 +202,7 @@ void updatePos() {
}
}
int positionStrip(float row, float column, int isTop)
int positionStrip(float row, float column, int isTop, float p)
{
float mat1[16];
float x = 0.5f * (column - 1.5f);
@@ -214,6 +214,8 @@ int positionStrip(float row, float column, int isTop)
} else {
matrixLoadTranslate(mat1, x, -0.9f, 0.f);
matrixScale(mat1, scale, -scale, 1.f);
matrixTranslate(mat1, 0, p * 2, 0.f);
matrixRotate(mat1, -p * 50, 1, 0, 0);
}
vpLoadModelMatrix(mat1);
@@ -246,7 +248,7 @@ draw_home_button()
drawSprite(x, y, z, params->homeButtonTextureWidth, params->homeButtonTextureHeight);
}
void drawFrontGrid(float rowOffset)
void drawFrontGrid(float rowOffset, float p)
{
float h = getHeight();
float w = getWidth();
@@ -278,13 +280,25 @@ void drawFrontGrid(float rowOffset)
if ((y >= ymin) && (y <= ymax)) {
setColor(1.f, 1.f, 1.f, 1.f);
if (state->selectedIconIndex == iconNum) {
if (state->selectedIconIndex == iconNum && !p) {
bindTexture(NAMED_PFTexLinear, 0, state->selectedIconTexture);
drawSpriteScreenspace(x, y, 0, 128, 128);
}
bindTexture(NAMED_PFTexLinear, 0, loadI32(ALLOC_ICON_IDS, iconNum));
drawSpriteScreenspace(x, y, 0, 128, 128);
if (!p) {
drawSpriteScreenspace(x, y, 0, 128, 128);
} else {
float px = ((x + 64) - (getWidth() / 2)) / (getWidth() / 2);
float py = ((y + 64) - (getHeight() / 2)) / (getWidth() / 2);
float d = 64.f / (getWidth() / 2);
px *= p + 1;
py *= p + 1;
drawQuadTexCoords(px - d, py - d, -p, 0, 1,
px - d, py + d, -p, 0, 0,
px + d, py + d, -p, 1, 0,
px + d, py - d, -p, 1, 1);
}
}
float y2 = y - 44;
@@ -296,6 +310,7 @@ void drawFrontGrid(float rowOffset)
a = 1.f - (y - (ymax + 40)) * 0.02f;
}
a = clampf(a, 0, 1);
a *= maxf(0, 1.f - p * 5.f);
setColor(1, 1, 1, a);
bindTexture(NAMED_PFTexLinear, 0, loadI32(ALLOC_LABEL_IDS, iconNum));
@@ -307,10 +322,10 @@ void drawFrontGrid(float rowOffset)
}
}
void drawStrip(float row, float column, int isTop, int iconNum)
void drawStrip(float row, float column, int isTop, int iconNum, float p)
{
if (iconNum < 0) return;
int offset = positionStrip(row, column, isTop);
int offset = positionStrip(row, column, isTop, p);
bindTexture(NAMED_PFTexLinear, 0, loadI32(ALLOC_ICON_IDS, iconNum));
if (offset < -20) return;
offset = clamp(offset, 0, 199 - 20);
@@ -326,13 +341,13 @@ void drawTop(float rowOffset)
if (iconNum >= state->iconCount) {
return;
}
drawStrip(rowOffset - row, col, 1, iconNum);
drawStrip(rowOffset - row, col, 1, iconNum, 0);
iconNum++;
}
}
}
void drawBottom(float rowOffset)
void drawBottom(float rowOffset, float p)
{
float pos = -1.f;
int intRowOffset = rowOffset;
@@ -346,7 +361,7 @@ void drawBottom(float rowOffset)
return;
}
if (pos > -1) {
drawStrip(pos, col, 0, iconNum);
drawStrip(pos, col, 0, iconNum, p);
}
iconNum++;
}
@@ -371,12 +386,17 @@ main(int launchID)
g_DT = minf(g_DT, 0.2f);
if (g_Zoom != state->zoomTarget) {
float dz = (state->zoomTarget - g_Zoom) * g_DT * 5;
if (dz && (fabsf(dz) < 0.03f)) {
float dz;
if (state->zoomTarget > 0.5f) {
dz = (1 - g_Zoom) * 0.2f;
} else {
dz = -g_DT - (1 - g_Zoom) * 0.2f;
}
if (dz && (fabsf(dz) < 0.02f)) {
if (dz > 0) {
dz = 0.03f;
dz = 0.02f;
} else {
dz = -0.03f;
dz = -0.02f;
}
}
if (fabsf(g_Zoom - state->zoomTarget) < fabsf(dz)) {
@@ -418,10 +438,8 @@ main(int launchID)
bindProgramFragment(NAMED_PFTexLinear);
float zoomOffset = 8.f * (1 - g_Zoom);
drawTop(g_PosPage - zoomOffset);
drawBottom(g_PosPage - zoomOffset);
drawFrontGrid(g_PosPage - zoomOffset);
drawTop(g_PosPage);
drawBottom(g_PosPage, 1-g_Zoom);
{
float mat1[16];
@@ -429,6 +447,7 @@ main(int launchID)
vpLoadModelMatrix(mat1);
vpLoadTextureMatrix(mat1);
}
drawFrontGrid(g_PosPage, 1-g_Zoom);
draw_home_button();