summaryrefslogtreecommitdiffstats
path: root/libs/rs
diff options
context:
space:
mode:
authorJason Sams <rjsams@android.com>2009-08-03 18:11:17 -0700
committerJason Sams <rjsams@android.com>2009-08-04 12:29:40 -0700
commit69f0d31e576c0110c2cbbafc3b9bd46e73fc1afc (patch)
treee78e408b2d7bdf7aabce0ff671273dc6f94a3bbe /libs/rs
parent6dabc95687eab2ee2b3fb8831ecf395da7e9149d (diff)
downloadframeworks_base-69f0d31e576c0110c2cbbafc3b9bd46e73fc1afc.zip
frameworks_base-69f0d31e576c0110c2cbbafc3b9bd46e73fc1afc.tar.gz
frameworks_base-69f0d31e576c0110c2cbbafc3b9bd46e73fc1afc.tar.bz2
Split ScriptC from RenderScript.java. Implement state caching in the Builder objects.
Diffstat (limited to 'libs/rs')
-rw-r--r--libs/rs/java/Film/src/com/android/film/FilmRS.java16
-rw-r--r--libs/rs/java/Fountain/src/com/android/fountain/FountainRS.java14
-rw-r--r--libs/rs/java/Grass/src/com/android/grass/rs/GrassRS.java34
-rw-r--r--libs/rs/java/Rollo/src/com/android/rollo/RolloRS.java16
4 files changed, 43 insertions, 37 deletions
diff --git a/libs/rs/java/Film/src/com/android/film/FilmRS.java b/libs/rs/java/Film/src/com/android/film/FilmRS.java
index eda7624..a9eaead 100644
--- a/libs/rs/java/Film/src/com/android/film/FilmRS.java
+++ b/libs/rs/java/Film/src/com/android/film/FilmRS.java
@@ -29,6 +29,8 @@ import android.renderscript.RenderScript;
import android.renderscript.Element;
import android.renderscript.Allocation;
import android.renderscript.Dimension;
+import android.renderscript.ScriptC;
+import android.renderscript.Script;
public class FilmRS {
private final int POS_TRANSLATE = 0;
@@ -66,8 +68,8 @@ public class FilmRS {
private Resources mRes;
private RenderScript mRS;
- private RenderScript.Script mScriptStrip;
- private RenderScript.Script mScriptImage;
+ private Script mScriptStrip;
+ private Script mScriptImage;
private Element mElementVertex;
private Element mElementIndex;
private RenderScript.Sampler mSampler;
@@ -227,11 +229,11 @@ public class FilmRS {
Log.e("rs", "Done loading named");
- mRS.scriptCBegin();
- mRS.scriptCSetClearColor(0.0f, 0.0f, 0.0f, 1.0f);
- mRS.scriptCSetScript(mRes, R.raw.filmstrip);
- mRS.scriptCSetRoot(true);
- mScriptStrip = mRS.scriptCCreate();
+ ScriptC.Builder sb = new ScriptC.Builder(mRS);
+ sb.setScript(mRes, R.raw.filmstrip);
+ sb.setRoot(true);
+ mScriptStrip = sb.create();
+ mScriptStrip.setClearColor(0.0f, 0.0f, 0.0f, 1.0f);
mAllocPos = Allocation.createSized(mRS,
Element.USER_FLOAT, mBufferPos.length);
diff --git a/libs/rs/java/Fountain/src/com/android/fountain/FountainRS.java b/libs/rs/java/Fountain/src/com/android/fountain/FountainRS.java
index 7123bf7..c8d02c1 100644
--- a/libs/rs/java/Fountain/src/com/android/fountain/FountainRS.java
+++ b/libs/rs/java/Fountain/src/com/android/fountain/FountainRS.java
@@ -29,6 +29,8 @@ import android.renderscript.RenderScript;
import android.renderscript.ProgramVertexAlloc;
import android.renderscript.Element;
import android.renderscript.Allocation;
+import android.renderscript.Script;
+import android.renderscript.ScriptC;
public class FountainRS {
@@ -57,7 +59,7 @@ public class FountainRS {
private Allocation mIntAlloc;
private Allocation mPartAlloc;
private Allocation mVertAlloc;
- private RenderScript.Script mScript;
+ private Script mScript;
private RenderScript.ProgramFragmentStore mPFS;
private RenderScript.ProgramFragment mPF;
@@ -98,11 +100,11 @@ public class FountainRS {
}
mPartAlloc.data(t2);
- mRS.scriptCBegin();
- mRS.scriptCSetClearColor(0.0f, 0.0f, 0.0f, 1.0f);
- mRS.scriptCSetScript(mRes, R.raw.fountain);
- mRS.scriptCSetRoot(true);
- mScript = mRS.scriptCCreate();
+ ScriptC.Builder sb = new ScriptC.Builder(mRS);
+ sb.setScript(mRes, R.raw.fountain);
+ sb.setRoot(true);
+ mScript = sb.create();
+ mScript.setClearColor(0.0f, 0.0f, 0.0f, 1.0f);
mScript.bindAllocation(mIntAlloc, 0);
mScript.bindAllocation(mPartAlloc, 1);
diff --git a/libs/rs/java/Grass/src/com/android/grass/rs/GrassRS.java b/libs/rs/java/Grass/src/com/android/grass/rs/GrassRS.java
index cf7affc..2511150 100644
--- a/libs/rs/java/Grass/src/com/android/grass/rs/GrassRS.java
+++ b/libs/rs/java/Grass/src/com/android/grass/rs/GrassRS.java
@@ -27,10 +27,11 @@ import android.renderscript.RenderScript;
import android.renderscript.Allocation;
import android.renderscript.ProgramVertexAlloc;
import static android.renderscript.Element.*;
-
import static android.util.MathUtils.*;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
+import android.renderscript.Script;
+import android.renderscript.ScriptC;
import java.util.TimeZone;
@@ -41,8 +42,8 @@ class GrassRS {
private static final int RSID_SKY_TEXTURES = 1;
private static final int SKY_TEXTURES_COUNT = 5;
-
- private static final int RSID_BLADES = 2;
+
+ private static final int RSID_BLADES = 2;
private static final int BLADES_COUNT = 100;
private static final int BLADE_STRUCT_FIELDS_COUNT = 12;
private static final int BLADE_STRUCT_DEGREE = 0;
@@ -57,16 +58,16 @@ class GrassRS {
private static final int BLADE_STRUCT_H = 9;
private static final int BLADE_STRUCT_S = 10;
private static final int BLADE_STRUCT_B = 11;
-
+
private Resources mResources;
private RenderScript mRS;
private final BitmapFactory.Options mBitmapOptions = new BitmapFactory.Options();
-
+
private final int mWidth;
private final int mHeight;
@SuppressWarnings({"FieldCanBeLocal"})
- private RenderScript.Script mScript;
+ private Script mScript;
@SuppressWarnings({"FieldCanBeLocal"})
private RenderScript.Sampler mSampler;
@SuppressWarnings({"FieldCanBeLocal"})
@@ -74,7 +75,7 @@ class GrassRS {
@SuppressWarnings({"FieldCanBeLocal"})
private RenderScript.ProgramFragmentStore mPfsBackground;
@SuppressWarnings({"FieldCanBeLocal"})
- private RenderScript.ProgramVertex mPvBackground;
+ private RenderScript.ProgramVertex mPvBackground;
@SuppressWarnings({"FieldCanBeLocal"})
private ProgramVertexAlloc mPvOrthoAlloc;
@@ -112,13 +113,12 @@ class GrassRS {
createProgramFragment();
createScriptStructures();
- mRS.scriptCBegin();
- mRS.scriptCSetClearColor(0.0f, 0.0f, 0.0f, 1.0f);
- mRS.scriptCSetScript(mResources, R.raw.grass);
- mRS.scriptCSetTimeZone(TimeZone.getDefault().getID());
- mRS.scriptCSetRoot(true);
-
- mScript = mRS.scriptCCreate();
+ ScriptC.Builder sb = new ScriptC.Builder(mRS);
+ sb.setScript(mResources, R.raw.grass);
+ sb.setTimeZone(TimeZone.getDefault().getID());
+ sb.setRoot(true);
+ mScript = sb.create();
+ mScript.setClearColor(0.0f, 0.0f, 0.0f, 1.0f);
loadSkyTextures();
mScript.bindAllocation(mState, RSID_STATE);
@@ -189,7 +189,7 @@ class GrassRS {
allocation.setName(name);
return allocation;
}
-
+
private Allocation loadTextureARGB(int id, String name) {
// Forces ARGB 32 bits, because pngcrush sometimes optimize our PNGs to
// indexed pictures, which are not well supported
@@ -219,7 +219,7 @@ class GrassRS {
mRS.programFragmentSetTexEnvMode(0, MODULATE);
mPfGrass = mRS.programFragmentCreate();
mPfGrass.setName("PFGrass");
- mPfGrass.bindSampler(mSampler, 0);
+ mPfGrass.bindSampler(mSampler, 0);
}
private void createProgramFragmentStore() {
@@ -237,7 +237,7 @@ class GrassRS {
mRS.programFragmentStoreDitherEnable(true);
mRS.programFragmentStoreDepthMask(false);
mPfsGrass = mRS.programFragmentStoreCreate();
- mPfsGrass.setName("PFSGrass");
+ mPfsGrass.setName("PFSGrass");
}
private void createProgramVertex() {
diff --git a/libs/rs/java/Rollo/src/com/android/rollo/RolloRS.java b/libs/rs/java/Rollo/src/com/android/rollo/RolloRS.java
index cb3dd51..578c225 100644
--- a/libs/rs/java/Rollo/src/com/android/rollo/RolloRS.java
+++ b/libs/rs/java/Rollo/src/com/android/rollo/RolloRS.java
@@ -22,6 +22,8 @@ import android.renderscript.RenderScript;
import android.renderscript.ProgramVertexAlloc;
import android.renderscript.Element;
import android.renderscript.Allocation;
+import android.renderscript.Script;
+import android.renderscript.ScriptC;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
@@ -90,7 +92,7 @@ public class RolloRS {
private Resources mRes;
private RenderScript mRS;
- private RenderScript.Script mScript;
+ private Script mScript;
private RenderScript.Sampler mSampler;
private RenderScript.Sampler mSamplerText;
private RenderScript.ProgramFragmentStore mPFSBackground;
@@ -313,12 +315,12 @@ public class RolloRS {
private void initRS() {
- mRS.scriptCBegin();
- mRS.scriptCSetClearColor(0.0f, 0.0f, 0.0f, 0.0f);
- mRS.scriptCSetScript(mRes, R.raw.rollo);
- //mRS.scriptCSetScript(mRes, R.raw.rollo2);
- mRS.scriptCSetRoot(true);
- mScript = mRS.scriptCCreate();
+ ScriptC.Builder sb = new ScriptC.Builder(mRS);
+ sb.setScript(mRes, R.raw.rollo);
+ //sb.setScript(mRes, R.raw.rollo2);
+ sb.setRoot(true);
+ mScript = sb.create();
+ mScript.setClearColor(0.0f, 0.0f, 0.0f, 0.0f);
mAllocStateBuf = new int[] {0, 0, 0, 8, 0, 0, -1, 0, mAllocIconIDBuf.length, 0, 0};
mAllocState = Allocation.createSized(mRS,