diff options
author | Jason Sams <rjsams@android.com> | 2009-08-31 12:05:00 -0700 |
---|---|---|
committer | Jason Sams <rjsams@android.com> | 2009-08-31 12:10:24 -0700 |
commit | 44e9983ffc2b28f2ed755a2c99f156aeab0ff77f (patch) | |
tree | 4d962aada8a7f7ef9ca9d2d04bf0680f93e1ba41 /libs | |
parent | 52d6245ba2454eab456d609d065283dfa76e8c79 (diff) | |
download | frameworks_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.c | 29 |
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); |