summaryrefslogtreecommitdiffstats
path: root/libs
diff options
context:
space:
mode:
authorJason Sams <rjsams@android.com>2009-08-31 12:05:00 -0700
committerJason Sams <rjsams@android.com>2009-08-31 12:10:24 -0700
commit44e9983ffc2b28f2ed755a2c99f156aeab0ff77f (patch)
tree4d962aada8a7f7ef9ca9d2d04bf0680f93e1ba41 /libs
parent52d6245ba2454eab456d609d065283dfa76e8c79 (diff)
downloadframeworks_base-44e9983ffc2b28f2ed755a2c99f156aeab0ff77f.zip
frameworks_base-44e9983ffc2b28f2ed755a2c99f156aeab0ff77f.tar.gz
frameworks_base-44e9983ffc2b28f2ed755a2c99f156aeab0ff77f.tar.bz2
Update fountain to use structures.
Diffstat (limited to 'libs')
-rw-r--r--libs/rs/java/Fountain/res/raw/fountain.c29
1 files changed, 14 insertions, 15 deletions
diff --git a/libs/rs/java/Fountain/res/raw/fountain.c b/libs/rs/java/Fountain/res/raw/fountain.c
index 8c1cad4..99f4048 100644
--- a/libs/rs/java/Fountain/res/raw/fountain.c
+++ b/libs/rs/java/Fountain/res/raw/fountain.c
@@ -4,45 +4,44 @@
#pragma stateFragment(default)
#pragma stateFragmentStore(default)
+struct PartStruct {float dx; float dy; float x; float y; int c;};
+int newPart = 0;
+
int main(int launchID) {
int ct;
int count = Control_count - 1;
int rate = Control_rate;
- float *dataF = loadArrayF(1, 0);
float height = getHeight();
+ struct PartStruct * p = (struct PartStruct *)loadArrayF(1, 0);
if (rate) {
- int *dataI = loadArrayI32(1, 0);
float rMax = ((float)rate) * 0.005f;
int x = Control_x;
int y = Control_y;
- int newPart = loadI32(1, count * 5);
int c = colorFloatRGBAtoUNorm8(Control_r, Control_g, Control_b, 0.99f);
while (rate--) {
- int idx = newPart * 5;
- vec2Rand(dataF + idx, rMax);
- dataF[idx + 2] = x;
- dataF[idx + 3] = y;
- dataI[idx + 4] = c;
+ vec2Rand((float *)(p + newPart), rMax);
+ p[newPart].x = x;
+ p[newPart].y = y;
+ p[newPart].c = c;
newPart++;
if (newPart >= count) {
newPart = 0;
}
}
- storeI32(1, count * 5, newPart);
}
for (ct=0; ct < count; ct++) {
- float dy = dataF[1] + 0.15f;
- float posy = dataF[3] + dy;
+ float dy = p->dy + 0.15f;
+ float posy = p->y + dy;
if ((posy > height) && (dy > 0)) {
dy *= -0.3f;
}
- dataF[1] = dy;
- dataF[2] += dataF[0];
- dataF[3] = posy;
- dataF += 5;
+ p->dy = dy;
+ p->x += p->dx;
+ p->y = posy;
+ p++;
}
uploadToBufferObject(NAMED_PartBuffer);