summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-x[-rw-r--r--]libs/rs/java/Fall/res/drawable-hdpi/sky.jpgbin96924 -> 90723 bytes
-rw-r--r--libs/rs/java/Fall/res/raw/fall.c36
-rw-r--r--libs/rs/java/Fall/src/com/android/fall/rs/FallRS.java34
3 files changed, 21 insertions, 49 deletions
diff --git a/libs/rs/java/Fall/res/drawable-hdpi/sky.jpg b/libs/rs/java/Fall/res/drawable-hdpi/sky.jpg
index e62868836a6b..2508f0cca340 100644..100755
--- a/libs/rs/java/Fall/res/drawable-hdpi/sky.jpg
+++ b/libs/rs/java/Fall/res/drawable-hdpi/sky.jpg
Binary files differ
diff --git a/libs/rs/java/Fall/res/raw/fall.c b/libs/rs/java/Fall/res/raw/fall.c
index 3af3338a46e4..edfc926e2f96 100644
--- a/libs/rs/java/Fall/res/raw/fall.c
+++ b/libs/rs/java/Fall/res/raw/fall.c
@@ -13,7 +13,7 @@
// limitations under the License.
#pragma version(1)
-#pragma stateVertex(PVLines)
+#pragma stateVertex(PVSky)
#pragma stateFragment(PFBackground)
#pragma stateFragmentStore(PFSBackground)
@@ -276,32 +276,6 @@ void generateRipples() {
}
}
-void drawNormals() {
- int width = loadI32(RSID_STATE, RSID_MESH_WIDTH);
- int height = loadI32(RSID_STATE, RSID_MESH_HEIGHT);
-
- float *vertices = loadTriangleMeshVerticesF(NAMED_mesh);
-
- bindProgramVertex(NAMED_PVLines);
- color(1.0f, 0.0f, 0.0f, 1.0f);
-
- int y = 0;
- for ( ; y < height; y++) {
- int yOffset = y * width;
- int x = 0;
- for ( ; x < width; x++) {
- int offset = (yOffset + x) * 8;
- float vx = vertices[offset + 5];
- float vy = vertices[offset + 6];
- float vz = vertices[offset + 7];
- float nx = vertices[offset + 0];
- float ny = vertices[offset + 1];
- float nz = vertices[offset + 2];
- drawLine(vx, vy, vz, vx + nx / 10.0f, vy + ny / 10.0f, vz + nz / 10.0f);
- }
- }
-}
-
float averageZ(float x1, float x2, float y1, float y2, float* vertices,
int meshWidth, int meshHeight, float glWidth, float glHeight) {
@@ -481,16 +455,12 @@ int main(int index) {
shininess(40.0f);
bindProgramFragmentStore(NAMED_PFSBackground);
bindProgramFragment(NAMED_PFLighting);
- bindProgramVertex(NAMED_PVBackground);
+ bindProgramVertex(NAMED_PVLight);
drawTriangleMesh(NAMED_mesh);
- bindProgramVertex(NAMED_PVLines);
+ bindProgramVertex(NAMED_PVSky);
drawLeaves(frameCount);
- if (!isRunning) {
- drawNormals();
- }
-
frameCount++;
storeI32(RSID_STATE, RSID_FRAME_COUNT, frameCount);
diff --git a/libs/rs/java/Fall/src/com/android/fall/rs/FallRS.java b/libs/rs/java/Fall/src/com/android/fall/rs/FallRS.java
index 3e2bdbf7365f..b4f96f301050 100644
--- a/libs/rs/java/Fall/src/com/android/fall/rs/FallRS.java
+++ b/libs/rs/java/Fall/src/com/android/fall/rs/FallRS.java
@@ -27,7 +27,7 @@ import android.renderscript.Sampler;
import android.renderscript.Element;
import android.renderscript.Light;
import static android.renderscript.Sampler.Value.LINEAR;
-import static android.renderscript.Sampler.Value.CLAMP;
+import static android.renderscript.Sampler.Value.WRAP;
import static android.renderscript.ProgramStore.DepthFunc.*;
import static android.renderscript.ProgramStore.BlendDstFunc;
import static android.renderscript.ProgramStore.BlendSrcFunc;
@@ -101,8 +101,8 @@ class FallRS {
private ProgramFragment mPfSky;
private ProgramStore mPfsBackground;
private ProgramStore mPfsLeaf;
- private ProgramVertex mPvBackground;
- private ProgramVertex mPvLines;
+ private ProgramVertex mPvLight;
+ private ProgramVertex mPvSky;
private ProgramVertex.MatrixAllocation mPvOrthoAlloc;
private Light mLight;
@@ -120,6 +120,8 @@ class FallRS {
private Allocation mGlState;
private float mGlHeight;
+ private final int[] mIntData2 = new int[2];
+
public FallRS(int width, int height) {
mWidth = width;
mHeight = height;
@@ -138,7 +140,7 @@ class FallRS {
mSampler.destroy();
mPfBackground.destroy();
mPfsBackground.destroy();
- mPvBackground.destroy();
+ mPvLight.destroy();
mPvOrthoAlloc.mAlloc.destroy();
for (Allocation a : mTextures) {
a.destroy();
@@ -148,7 +150,7 @@ class FallRS {
mLight.destroy();
mRippleMap.destroy();
mRefractionMap.destroy();
- mPvLines.destroy();
+ mPvSky.destroy();
mPfLighting.destroy();
mLeaves.destroy();
mPfsLeaf.destroy();
@@ -353,8 +355,8 @@ class FallRS {
Sampler.Builder sampleBuilder = new Sampler.Builder(mRS);
sampleBuilder.setMin(LINEAR);
sampleBuilder.setMag(LINEAR);
- sampleBuilder.setWrapS(CLAMP);
- sampleBuilder.setWrapT(CLAMP);
+ sampleBuilder.setWrapS(WRAP);
+ sampleBuilder.setWrapT(WRAP);
mSampler = sampleBuilder.create();
ProgramFragment.Builder builder = new ProgramFragment.Builder(mRS, null, null);
@@ -406,20 +408,20 @@ class FallRS {
ProgramVertex.Builder builder = new ProgramVertex.Builder(mRS, null, null);
builder.setTextureMatrixEnable(true);
builder.addLight(mLight);
- mPvBackground = builder.create();
- mPvBackground.bindAllocation(mPvOrthoAlloc);
- mPvBackground.setName("PVBackground");
+ mPvLight = builder.create();
+ mPvLight.bindAllocation(mPvOrthoAlloc);
+ mPvLight.setName("PVLight");
builder = new ProgramVertex.Builder(mRS, null, null);
- mPvLines = builder.create();
- mPvLines.bindAllocation(mPvOrthoAlloc);
- mPvLines.setName("PVLines");
+ mPvSky = builder.create();
+ mPvSky.bindAllocation(mPvOrthoAlloc);
+ mPvSky.setName("PVSky");
}
void addDrop(float x, float y) {
- mState.subData1D(RSID_STATE_DROP_X, 2, new int[] {
- (int) ((x / mWidth) * mMeshWidth), (int) ((y / mHeight) * mMeshHeight)
- });
+ mIntData2[0] = (int) ((x / mWidth) * mMeshWidth);
+ mIntData2[1] = (int) ((y / mHeight) * mMeshHeight);
+ mState.subData1D(RSID_STATE_DROP_X, 2, mIntData2);
}
void togglePause() {