Update fall to new RS API
diff --git a/res/raw/fall.rs b/res/raw/fall.rs
index e04e1ff..af1ed85 100644
--- a/res/raw/fall.rs
+++ b/res/raw/fall.rs
@@ -162,7 +162,7 @@
int* current = loadArrayI32(RSID_RIPPLE_MAP, index * rippleMapSize + origin);
int *map = loadArrayI32(RSID_REFRACTION_MAP, 0);
- float *vertices = loadTriangleMeshVerticesF(NAMED_WaterMesh);
+ float *vertices = loadSimpleMeshVerticesF(NAMED_WaterMesh, 0);
struct vert_s *vert = (struct vert_s *)vertices;
float fw = 1.f / width;
@@ -370,7 +370,7 @@
float glWidth = State->glWidth;
float glHeight = State->glHeight;
- float *vertices = loadTriangleMeshVerticesF(NAMED_WaterMesh);
+ float *vertices = loadSimpleMeshVerticesF(NAMED_WaterMesh, 0);
int i = 0;
for ( ; i < count; i += LEAF_STRUCT_FIELDS_COUNT) {
@@ -385,7 +385,7 @@
void drawRiverbed() {
bindTexture(NAMED_PFBackground, 0, NAMED_TRiverbed);
- drawTriangleMesh(NAMED_WaterMesh);
+ drawSimpleMesh(NAMED_WaterMesh);
}
void drawSky() {
@@ -409,7 +409,7 @@
matrixLoadTranslate(matrix, x, y, 0.0f);
vpLoadTextureMatrix(matrix);
- drawTriangleMesh(NAMED_WaterMesh);
+ drawSimpleMesh(NAMED_WaterMesh);
matrixLoadIdentity(matrix);
vpLoadTextureMatrix(matrix);
@@ -425,14 +425,14 @@
bindProgramFragment(NAMED_PFLighting);
bindProgramVertex(NAMED_PVLight);
- drawTriangleMesh(NAMED_WaterMesh);
+ drawSimpleMesh(NAMED_WaterMesh);
}
void drawNormals() {
int width = State->meshWidth;
int height = State->meshHeight;
- float *vertices = loadTriangleMeshVerticesF(NAMED_WaterMesh);
+ float *vertices = loadSimpleMeshVerticesF(NAMED_WaterMesh, 0);
bindProgramVertex(NAMED_PVSky);
bindProgramFragment(NAMED_PFLighting);
@@ -466,7 +466,7 @@
updateRipples();
generateRipples();
- updateTriangleMesh(NAMED_WaterMesh);
+ updateSimpleMesh(NAMED_WaterMesh);
drawRiverbed();
drawSky();
diff --git a/src/com/android/wallpaper/fall/FallRS.java b/src/com/android/wallpaper/fall/FallRS.java
index e39df3c..1109d0d 100644
--- a/src/com/android/wallpaper/fall/FallRS.java
+++ b/src/com/android/wallpaper/fall/FallRS.java
@@ -26,6 +26,7 @@
import android.renderscript.Element;
import android.renderscript.Light;
import android.renderscript.Type;
+import android.renderscript.SimpleMesh;
import static android.renderscript.Sampler.Value.LINEAR;
import static android.renderscript.Sampler.Value.WRAP;
import static android.renderscript.ProgramStore.DepthFunc.*;
@@ -119,8 +120,8 @@
private int mMeshHeight;
@SuppressWarnings({"FieldCanBeLocal"})
- private RenderScript.TriangleMesh mMesh;
- private WorldState mWorldState;
+ private SimpleMesh mMesh;
+ private WorldState mWorldState;
private Allocation mRippleMap;
private Allocation mRefractionMap;
@@ -177,8 +178,7 @@
}
private void createMesh() {
- final RenderScript rs = mRS;
- rs.triangleMeshBegin(Element.NORM_ST_XYZ_F32, Element.INDEX_16);
+ SimpleMesh.TriangleMeshBuilder tmb = new SimpleMesh.TriangleMeshBuilder(mRS, 3, true, true);
int wResolution;
int hResolution;
@@ -209,12 +209,12 @@
final float t = 1.0f - y / (float) hResolution;
for (int x = 0; x <= wResolution; x++) {
if (shift) {
- rs.triangleMeshAddVertex_XYZ_ST_NORM(
+ tmb.add_XYZ_ST_NORM(
-1.0f + x * quadWidth - quadWidth, yOffset, 0.0f,
x / (float) wResolution, t,
0.0f, 0.0f, -1.0f);
} else {
- rs.triangleMeshAddVertex_XYZ_ST_NORM(
+ tmb.add_XYZ_ST_NORM(
-1.0f + x * quadWidth - quadWidth * 0.5f, yOffset, 0.0f,
x / (float) wResolution, t,
0.0f, 0.0f, -1.0f);
@@ -229,16 +229,16 @@
final int index = yOffset + x;
final int iWR1 = index + wResolution + 1;
if (shift) {
- rs.triangleMeshAddTriangle(index, index + 1, iWR1);
- rs.triangleMeshAddTriangle(index + 1, iWR1 + 1, iWR1);
+ tmb.addTriangle(index, index + 1, iWR1);
+ tmb.addTriangle(index + 1, iWR1 + 1, iWR1);
} else {
- rs.triangleMeshAddTriangle(index, iWR1 + 1, iWR1);
- rs.triangleMeshAddTriangle(index, index + 1, iWR1 + 1);
+ tmb.addTriangle(index, iWR1 + 1, iWR1);
+ tmb.addTriangle(index, index + 1, iWR1 + 1);
}
}
}
- mMesh = rs.triangleMeshCreate();
+ mMesh = tmb.create();
mMesh.setName("WaterMesh");
mMeshWidth = wResolution + 1;