Split ProgramFragment and ProgramStore from RenderScript.java. Update Element and Type to new cached builder for easier app developement.
diff --git a/graphics/java/android/renderscript/Element.java b/graphics/java/android/renderscript/Element.java
index 8e0a7a1..409d267 100644
--- a/graphics/java/android/renderscript/Element.java
+++ b/graphics/java/android/renderscript/Element.java
@@ -146,58 +146,75 @@
public static class Builder {
RenderScript mRS;
- boolean mActive = true;
+ Entry[] mEntries;
+ int mEntryCount;
- Builder(RenderScript rs) {
+ private class Entry {
+ Element mElement;
+ Element.DataType mType;
+ Element.DataKind mKind;
+ boolean mIsNormalized;
+ int mBits;
+ }
+
+ public Builder(RenderScript rs) {
mRS = rs;
+ mEntryCount = 0;
+ mEntries = new Entry[8];
}
- void begin() throws IllegalStateException {
- if (mActive) {
- throw new IllegalStateException("Element builder already active.");
+ void addEntry(Entry e) {
+ if(mEntries.length >= mEntryCount) {
+ Entry[] en = new Entry[mEntryCount + 8];
+ for(int ct=0; ct < mEntries.length; ct++) {
+ en[ct] = mEntries[ct];
+ }
+ mEntries = en;
}
- mRS.nElementBegin();
- mActive = true;
+ mEntries[mEntryCount] = e;
+ mEntryCount++;
}
- public Builder add(Element e) throws IllegalArgumentException, IllegalStateException {
- if(!mActive) {
- throw new IllegalStateException("Element builder not active.");
- }
+ public Builder add(Element e) throws IllegalArgumentException {
if(!e.mIsPredefined) {
throw new IllegalArgumentException("add requires a predefined Element.");
}
- mRS.nElementAddPredefined(e.mID);
+ Entry en = new Entry();
+ en.mElement = e;
+ addEntry(en);
return this;
}
- public Builder add(Element.DataType dt, Element.DataKind dk, boolean isNormalized, int bits)
- throws IllegalStateException {
- if(!mActive) {
- throw new IllegalStateException("Element builder not active.");
- }
- int norm = 0;
- if (isNormalized) {
- norm = 1;
- }
- mRS.nElementAdd(dt.mID, dk.mID, norm, bits);
+ public Builder add(Element.DataType dt, Element.DataKind dk, boolean isNormalized, int bits) {
+ Entry en = new Entry();
+ en.mType = dt;
+ en.mKind = dk;
+ en.mIsNormalized = isNormalized;
+ en.mBits = bits;
+ addEntry(en);
return this;
}
- public void abort() throws IllegalStateException {
- if(!mActive) {
- throw new IllegalStateException("Element builder not active.");
+ static synchronized Element internalCreate(RenderScript rs, Builder b) {
+ rs.nElementBegin();
+ for (int ct=0; ct < b.mEntryCount; ct++) {
+ Entry en = b.mEntries[ct];
+ if(en.mElement != null) {
+ rs.nElementAddPredefined(en.mElement.mPredefinedID);
+ } else {
+ int norm = 0;
+ if (en.mIsNormalized) {
+ norm = 1;
+ }
+ rs.nElementAdd(en.mType.mID, en.mKind.mID, norm, en.mBits);
+ }
}
- mActive = false;
+ int id = rs.nElementCreate();
+ return new Element(id, rs);
}
- public Element create() throws IllegalStateException {
- if(!mActive) {
- throw new IllegalStateException("Element builder not active.");
- }
- int id = mRS.nElementCreate();
- mActive = false;
- return new Element(id, mRS);
+ public Element create() {
+ return internalCreate(mRS, this);
}
}
diff --git a/graphics/java/android/renderscript/ProgramFragment.java b/graphics/java/android/renderscript/ProgramFragment.java
new file mode 100644
index 0000000..d98fe03
--- /dev/null
+++ b/graphics/java/android/renderscript/ProgramFragment.java
@@ -0,0 +1,150 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.renderscript;
+
+
+import android.util.Config;
+import android.util.Log;
+
+
+/**
+ * @hide
+ *
+ **/
+public class ProgramFragment extends BaseObj {
+ public enum EnvMode {
+ REPLACE (0),
+ MODULATE (1),
+ DECAL (2);
+
+ int mID;
+ EnvMode(int id) {
+ mID = id;
+ }
+ }
+
+
+ ProgramFragment(int id, RenderScript rs) {
+ super(rs);
+ mID = id;
+ }
+
+ public void destroy() {
+ mRS.nProgramFragmentStoreDestroy(mID);
+ mID = 0;
+ }
+
+ public void bindTexture(Allocation va, int slot) {
+ mRS.nProgramFragmentBindTexture(mID, slot, va.mID);
+ }
+
+ public void bindSampler(RenderScript.Sampler vs, int slot) {
+ mRS.nProgramFragmentBindSampler(mID, slot, vs.mID);
+ }
+
+
+ public static class Builder {
+ public static final int MAX_SLOT = 2;
+ RenderScript mRS;
+ Element mIn;
+ Element mOut;
+
+ private class Slot {
+ Type mType;
+ EnvMode mEnv;
+ boolean mTexEnable;
+
+ Slot() {
+ mTexEnable = false;
+ }
+ }
+ Slot[] mSlots;
+
+ public Builder(RenderScript rs, Element in, Element out) {
+ mRS = rs;
+ mIn = in;
+ mOut = out;
+ mSlots = new Slot[MAX_SLOT];
+ for(int ct=0; ct < MAX_SLOT; ct++) {
+ mSlots[ct] = new Slot();
+ }
+ }
+
+ public void setType(int slot, Type t)
+ throws IllegalArgumentException {
+ if((slot < 0) || (slot >= MAX_SLOT)) {
+ throw new IllegalArgumentException("Slot ID out of range.");
+ }
+
+ mSlots[slot].mType = t;
+ }
+
+ public void setTexEnable(boolean enable, int slot)
+ throws IllegalArgumentException {
+ if((slot < 0) || (slot >= MAX_SLOT)) {
+ throw new IllegalArgumentException("Slot ID out of range.");
+ }
+
+ mSlots[slot].mTexEnable = enable;
+ }
+
+ public void setTexEnvMode(EnvMode env, int slot)
+ throws IllegalArgumentException {
+ if((slot < 0) || (slot >= MAX_SLOT)) {
+ throw new IllegalArgumentException("Slot ID out of range.");
+ }
+
+ mSlots[slot].mEnv = env;
+ }
+
+
+ static synchronized ProgramFragment internalCreate(RenderScript rs, Builder b) {
+ int inID = 0;
+ int outID = 0;
+ if (b.mIn != null) {
+ inID = b.mIn.mID;
+ }
+ if (b.mOut != null) {
+ outID = b.mOut.mID;
+ }
+ rs.nProgramFragmentBegin(inID, outID);
+ for(int ct=0; ct < MAX_SLOT; ct++) {
+ if(b.mSlots[ct].mTexEnable) {
+ Slot s = b.mSlots[ct];
+ if(s.mType != null) {
+ rs.nProgramFragmentSetType(ct, s.mType.mID);
+ }
+ rs.nProgramFragmentSetTexEnable(ct, true);
+ if(s.mEnv != null) {
+ rs.nProgramFragmentSetEnvMode(ct, s.mEnv.mID);
+ }
+ }
+ }
+
+
+ int id = rs.nProgramFragmentCreate();
+ return new ProgramFragment(id, rs);
+ }
+
+ public ProgramFragment create() {
+ return internalCreate(mRS, this);
+ }
+ }
+}
+
+
+
diff --git a/graphics/java/android/renderscript/ProgramStore.java b/graphics/java/android/renderscript/ProgramStore.java
new file mode 100644
index 0000000..9039621
--- /dev/null
+++ b/graphics/java/android/renderscript/ProgramStore.java
@@ -0,0 +1,178 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.renderscript;
+
+
+import android.util.Config;
+import android.util.Log;
+
+
+/**
+ * @hide
+ *
+ **/
+public class ProgramStore extends BaseObj {
+ public enum DepthFunc {
+ ALWAYS (0),
+ LESS (1),
+ LEQUAL (2),
+ GREATER (3),
+ GEQUAL (4),
+ EQUAL (5),
+ NOTEQUAL (6);
+
+ int mID;
+ DepthFunc(int id) {
+ mID = id;
+ }
+ }
+
+ public enum BlendSrcFunc {
+ ZERO (0),
+ ONE (1),
+ DST_COLOR (2),
+ ONE_MINUS_DST_COLOR (3),
+ SRC_ALPHA (4),
+ ONE_MINUS_SRC_ALPHA (5),
+ DST_ALPHA (6),
+ ONE_MINUS_DST_ALPA (7),
+ SRC_ALPHA_SATURATE (8);
+
+ int mID;
+ BlendSrcFunc(int id) {
+ mID = id;
+ }
+ }
+
+ public enum BlendDstFunc {
+ ZERO (0),
+ ONE (1),
+ SRC_COLOR (2),
+ ONE_MINUS_SRC_COLOR (3),
+ SRC_ALPHA (4),
+ ONE_MINUS_SRC_ALPHA (5),
+ DST_ALPHA (6),
+ ONE_MINUS_DST_ALPA (7);
+
+ int mID;
+ BlendDstFunc(int id) {
+ mID = id;
+ }
+ }
+
+
+ ProgramStore(int id, RenderScript rs) {
+ super(rs);
+ mID = id;
+ }
+
+ public void destroy() {
+ mRS.nProgramFragmentStoreDestroy(mID);
+ mID = 0;
+ }
+
+
+
+ public static class Builder {
+ RenderScript mRS;
+ Element mIn;
+ Element mOut;
+ DepthFunc mDepthFunc;
+ boolean mDepthMask;
+ boolean mColorMaskR;
+ boolean mColorMaskG;
+ boolean mColorMaskB;
+ boolean mColorMaskA;
+ BlendSrcFunc mBlendSrc;
+ BlendDstFunc mBlendDst;
+ boolean mDither;
+
+
+
+ public Builder(RenderScript rs, Element in, Element out) {
+ mRS = rs;
+ mIn = in;
+ mOut = out;
+ mDepthFunc = DepthFunc.ALWAYS;
+ mDepthMask = false;
+ mColorMaskR = true;
+ mColorMaskG = true;
+ mColorMaskB = true;
+ mColorMaskA = true;
+ mBlendSrc = BlendSrcFunc.ONE;
+ mBlendDst = BlendDstFunc.ZERO;
+
+
+ }
+
+ public void setDepthFunc(DepthFunc func) {
+ mDepthFunc = func;
+ }
+
+ public void setDepthMask(boolean enable) {
+ mDepthMask = enable;
+ }
+
+ public void setColorMask(boolean r, boolean g, boolean b, boolean a) {
+ mColorMaskR = r;
+ mColorMaskG = g;
+ mColorMaskB = b;
+ mColorMaskA = a;
+ }
+
+ public void setBlendFunc(BlendSrcFunc src, BlendDstFunc dst) {
+ mBlendSrc = src;
+ mBlendDst = dst;
+ }
+
+ public void setDitherEnable(boolean enable) {
+ mDither = enable;
+ }
+
+ static synchronized ProgramStore internalCreate(RenderScript rs, Builder b) {
+ int inID = 0;
+ int outID = 0;
+ if (b.mIn != null) {
+ inID = b.mIn.mID;
+ }
+ if (b.mOut != null) {
+ outID = b.mOut.mID;
+ }
+ rs.nProgramFragmentStoreBegin(inID, outID);
+ rs.nProgramFragmentStoreDepthFunc(b.mDepthFunc.mID);
+ rs.nProgramFragmentStoreDepthMask(b.mDepthMask);
+ rs.nProgramFragmentStoreColorMask(b.mColorMaskR,
+ b.mColorMaskG,
+ b.mColorMaskB,
+ b.mColorMaskA);
+ rs.nProgramFragmentStoreBlendFunc(b.mBlendSrc.mID, b.mBlendDst.mID);
+ rs.nProgramFragmentStoreDither(b.mDither);
+
+ int id = rs.nProgramFragmentStoreCreate();
+ return new ProgramStore(id, rs);
+ }
+
+ public ProgramStore create() {
+ return internalCreate(mRS, this);
+ }
+ }
+
+}
+
+
+
+
diff --git a/graphics/java/android/renderscript/RenderScript.java b/graphics/java/android/renderscript/RenderScript.java
index 365d053..50a4494 100644
--- a/graphics/java/android/renderscript/RenderScript.java
+++ b/graphics/java/android/renderscript/RenderScript.java
@@ -128,12 +128,13 @@
native int nAdapter2DCreate();
native void nScriptDestroy(int script);
- native void nScriptBindAllocation(int vtm, int alloc, int slot);
+ native void nScriptBindAllocation(int script, int alloc, int slot);
+ native void nScriptSetClearColor(int script, float r, float g, float b, float a);
+ native void nScriptSetClearDepth(int script, float depth);
+ native void nScriptSetClearStencil(int script, int stencil);
+ native void nScriptSetTimeZone(int script, byte[] timeZone);
+
native void nScriptCBegin();
- native void nScriptCSetClearColor(float r, float g, float b, float a);
- native void nScriptCSetClearDepth(float depth);
- native void nScriptCSetClearStencil(int stencil);
- native void nScriptCSetTimeZone(byte[] timeZone);
native void nScriptCAddType(int type);
native void nScriptCSetRoot(boolean isRoot);
native void nScriptCSetScript(byte[] script, int offset, int length);
@@ -203,77 +204,6 @@
//////////////////////////////////////////////////////////////////////////////////
// Element
- Element.Builder mElementBuilder = new Element.Builder(this);
- public Element.Builder elementBuilderCreate() throws IllegalStateException {
- mElementBuilder.begin();
- return mElementBuilder;
- }
-
- Type.Builder mTypeBuilder = new Type.Builder(this);
- public Type.Builder typeBuilderCreate(Element e) throws IllegalStateException {
- mTypeBuilder.begin(e);
- return mTypeBuilder;
- }
-
-
- public enum DepthFunc {
- ALWAYS (0),
- LESS (1),
- LEQUAL (2),
- GREATER (3),
- GEQUAL (4),
- EQUAL (5),
- NOTEQUAL (6);
-
- int mID;
- DepthFunc(int id) {
- mID = id;
- }
- }
-
- public enum BlendSrcFunc {
- ZERO (0),
- ONE (1),
- DST_COLOR (2),
- ONE_MINUS_DST_COLOR (3),
- SRC_ALPHA (4),
- ONE_MINUS_SRC_ALPHA (5),
- DST_ALPHA (6),
- ONE_MINUS_DST_ALPA (7),
- SRC_ALPHA_SATURATE (8);
-
- int mID;
- BlendSrcFunc(int id) {
- mID = id;
- }
- }
-
- public enum BlendDstFunc {
- ZERO (0),
- ONE (1),
- SRC_COLOR (2),
- ONE_MINUS_SRC_COLOR (3),
- SRC_ALPHA (4),
- ONE_MINUS_SRC_ALPHA (5),
- DST_ALPHA (6),
- ONE_MINUS_DST_ALPA (7);
-
- int mID;
- BlendDstFunc(int id) {
- mID = id;
- }
- }
-
- public enum EnvMode {
- REPLACE (0),
- MODULATE (1),
- DECAL (2);
-
- int mID;
- EnvMode(int id) {
- mID = id;
- }
- }
public enum SamplerParam {
FILTER_MIN (0),
@@ -402,111 +332,9 @@
//////////////////////////////////////////////////////////////////////////////////
// ProgramFragmentStore
- public class ProgramFragmentStore extends BaseObj {
- ProgramFragmentStore(int id) {
- super(RenderScript.this);
- mID = id;
- }
-
- public void destroy() {
- nProgramFragmentStoreDestroy(mID);
- mID = 0;
- }
- }
-
- public void programFragmentStoreBegin(Element in, Element out) {
- int inID = 0;
- int outID = 0;
- if (in != null) {
- inID = in.mID;
- }
- if (out != null) {
- outID = out.mID;
- }
- nProgramFragmentStoreBegin(inID, outID);
- }
-
- public void programFragmentStoreDepthFunc(DepthFunc func) {
- nProgramFragmentStoreDepthFunc(func.mID);
- }
-
- public void programFragmentStoreDepthMask(boolean enable) {
- nProgramFragmentStoreDepthMask(enable);
- }
-
- public void programFragmentStoreColorMask(boolean r, boolean g, boolean b, boolean a) {
- nProgramFragmentStoreColorMask(r,g,b,a);
- }
-
- public void programFragmentStoreBlendFunc(BlendSrcFunc src, BlendDstFunc dst) {
- nProgramFragmentStoreBlendFunc(src.mID, dst.mID);
- }
-
- public void programFragmentStoreDitherEnable(boolean enable) {
- nProgramFragmentStoreDither(enable);
- }
-
- public ProgramFragmentStore programFragmentStoreCreate() {
- int id = nProgramFragmentStoreCreate();
- return new ProgramFragmentStore(id);
- }
-
//////////////////////////////////////////////////////////////////////////////////
// ProgramFragment
- public class ProgramFragment extends BaseObj {
- ProgramFragment(int id) {
- super(RenderScript.this);
- mID = id;
- }
-
- public void destroy() {
- nProgramFragmentDestroy(mID);
- mID = 0;
- }
-
- public void bindTexture(Allocation va, int slot) {
- nProgramFragmentBindTexture(mID, slot, va.mID);
- }
-
- public void bindSampler(Sampler vs, int slot) {
- nProgramFragmentBindSampler(mID, slot, vs.mID);
- }
- }
-
- public void programFragmentBegin(Element in, Element out) {
- int inID = 0;
- int outID = 0;
- if (in != null) {
- inID = in.mID;
- }
- if (out != null) {
- outID = out.mID;
- }
- nProgramFragmentBegin(inID, outID);
- }
-
- public void programFragmentSetType(int slot, Type t) {
- nProgramFragmentSetType(slot, t.mID);
- }
-
- public void programFragmentSetType(int slot, EnvMode t) {
- nProgramFragmentSetEnvMode(slot, t.mID);
- }
-
- public void programFragmentSetTexEnable(int slot, boolean enable) {
- nProgramFragmentSetTexEnable(slot, enable);
- }
-
- public void programFragmentSetTexEnvMode(int slot, EnvMode env) {
- nProgramFragmentSetEnvMode(slot, env.mID);
- }
-
- public ProgramFragment programFragmentCreate() {
- int id = nProgramFragmentCreate();
- return new ProgramFragment(id);
- }
-
//////////////////////////////////////////////////////////////////////////////////
// Sampler
@@ -617,7 +445,7 @@
//nContextBindSampler(s.mID);
//}
- public void contextBindProgramFragmentStore(ProgramFragmentStore pfs) {
+ public void contextBindProgramFragmentStore(ProgramStore pfs) {
nContextBindProgramFragmentStore(pfs.mID);
}
diff --git a/graphics/java/android/renderscript/Script.java b/graphics/java/android/renderscript/Script.java
index e7bb7a5..9696cea 100644
--- a/graphics/java/android/renderscript/Script.java
+++ b/graphics/java/android/renderscript/Script.java
@@ -37,22 +37,28 @@
}
public void setClearColor(float r, float g, float b, float a) {
- //mRS.nScriptCSetClearColor(r, g, b, a);
+ mRS.nScriptSetClearColor(mID, r, g, b, a);
}
public void setClearDepth(float d) {
- //mRS.nScriptCSetClearDepth(d);
+ mRS.nScriptSetClearDepth(mID, d);
}
public void setClearStencil(int stencil) {
- //mRS.nScriptCSetClearStencil(stencil);
+ mRS.nScriptSetClearStencil(mID, stencil);
}
+ public void setTimeZone(String timeZone) {
+ try {
+ mRS.nScriptSetTimeZone(mID, timeZone.getBytes("UTF-8"));
+ } catch (java.io.UnsupportedEncodingException e) {
+ throw new RuntimeException(e);
+ }
+ }
public static class Builder {
RenderScript mRS;
boolean mIsRoot = false;
- byte[] mTimeZone;
Builder(RenderScript rs) {
mRS = rs;
@@ -63,9 +69,6 @@
}
void transferCreate() {
- if(mTimeZone != null) {
- mRS.nScriptCSetTimeZone(mTimeZone);
- }
mRS.nScriptCSetRoot(mIsRoot);
}
@@ -73,14 +76,6 @@
s.mIsRoot = mIsRoot;
}
- public void setTimeZone(String timeZone) {
- try {
- mTimeZone = timeZone.getBytes("UTF-8");
- } catch (java.io.UnsupportedEncodingException e) {
- throw new RuntimeException(e);
- }
- }
-
public void setRoot(boolean r) {
mIsRoot = r;
}
diff --git a/graphics/java/android/renderscript/Type.java b/graphics/java/android/renderscript/Type.java
index 86932c4..4078c8a 100644
--- a/graphics/java/android/renderscript/Type.java
+++ b/graphics/java/android/renderscript/Type.java
@@ -45,23 +45,47 @@
public static class Builder {
RenderScript mRS;
- boolean mActive = true;
+ Entry[] mEntries;
+ int mEntryCount;
+ Element mElement;
- Builder(RenderScript rs) {
- mRS = rs;
+ class Entry {
+ Dimension mDim;
+ int mValue;
}
- public void begin(Element e) {
- mRS.nTypeBegin(e.mID);
+ public Builder(RenderScript rs, Element e) {
+ mRS = rs;
+ mEntries = new Entry[4];
+ mElement = e;
}
public void add(Dimension d, int value) {
- mRS.nTypeAdd(d.mID, value);
+ if(mEntries.length >= mEntryCount) {
+ Entry[] en = new Entry[mEntryCount + 8];
+ for(int ct=0; ct < mEntries.length; ct++) {
+ en[ct] = mEntries[ct];
+ }
+ mEntries = en;
+ }
+ mEntries[mEntryCount] = new Entry();
+ mEntries[mEntryCount].mDim = d;
+ mEntries[mEntryCount].mValue = value;
+ mEntryCount++;
+ }
+
+ static synchronized Type internalCreate(RenderScript rs, Builder b) {
+ rs.nTypeBegin(b.mElement.mID);
+ for (int ct=0; ct < b.mEntryCount; ct++) {
+ Entry en = b.mEntries[ct];
+ rs.nTypeAdd(en.mDim.mID, en.mValue);
+ }
+ int id = rs.nTypeCreate();
+ return new Type(id, rs);
}
public Type create() {
- int id = mRS.nTypeCreate();
- return new Type(id, mRS);
+ return internalCreate(mRS, this);
}
}
diff --git a/graphics/jni/android_renderscript_RenderScript.cpp b/graphics/jni/android_renderscript_RenderScript.cpp
index f5227a0..73380b8 100644
--- a/graphics/jni/android_renderscript_RenderScript.cpp
+++ b/graphics/jni/android_renderscript_RenderScript.cpp
@@ -647,54 +647,56 @@
}
static void
-nScriptCBegin(JNIEnv *_env, jobject _this)
+nScriptSetClearColor(JNIEnv *_env, jobject _this, jint script, jfloat r, jfloat g, jfloat b, jfloat a)
{
RsContext con = (RsContext)(_env->GetIntField(_this, gContextId));
- LOG_API("nScriptCBegin, con(%p)", con);
- rsScriptCBegin();
+ LOG_API("nScriptSetClearColor, con(%p), s(%p), r(%f), g(%f), b(%f), a(%f)", con, script, r, g, b, a);
+ rsScriptSetClearColor((RsScript)script, r, g, b, a);
}
static void
-nScriptCSetClearColor(JNIEnv *_env, jobject _this, jfloat r, jfloat g, jfloat b, jfloat a)
+nScriptSetClearDepth(JNIEnv *_env, jobject _this, jint script, jfloat d)
{
RsContext con = (RsContext)(_env->GetIntField(_this, gContextId));
- LOG_API("nScriptCSetClearColor, con(%p), r(%f), g(%f), b(%f), a(%f)", con, r, g, b, a);
- rsScriptCSetClearColor(r, g, b, a);
+ LOG_API("nScriptCSetClearDepth, con(%p), s(%p), depth(%f)", con, script, d);
+ rsScriptSetClearDepth((RsScript)script, d);
}
static void
-nScriptCSetClearDepth(JNIEnv *_env, jobject _this, jfloat d)
+nScriptSetClearStencil(JNIEnv *_env, jobject _this, jint script, jint stencil)
{
RsContext con = (RsContext)(_env->GetIntField(_this, gContextId));
- LOG_API("nScriptCSetClearDepth, con(%p), depth(%f)", con, d);
- rsScriptCSetClearDepth(d);
+ LOG_API("nScriptCSetClearStencil, con(%p), s(%p), stencil(%i)", con, script, stencil);
+ rsScriptSetClearStencil((RsScript)script, stencil);
}
static void
-nScriptCSetClearStencil(JNIEnv *_env, jobject _this, jint stencil)
+nScriptSetTimeZone(JNIEnv *_env, jobject _this, jint script, jbyteArray timeZone)
{
RsContext con = (RsContext)(_env->GetIntField(_this, gContextId));
- LOG_API("nScriptCSetClearStencil, con(%p), stencil(%i)", con, stencil);
- rsScriptCSetClearStencil(stencil);
-}
-
-static void
-nScriptCSetTimeZone(JNIEnv *_env, jobject _this, jbyteArray timeZone)
-{
- RsContext con = (RsContext)(_env->GetIntField(_this, gContextId));
- LOG_API("nScriptCSetTimeZone, con(%p), timeZone(%s)", con, timeZone);
+ LOG_API("nScriptCSetTimeZone, con(%p), s(%p), timeZone(%s)", con, script, timeZone);
jint length = _env->GetArrayLength(timeZone);
jbyte* timeZone_ptr;
timeZone_ptr = (jbyte *) _env->GetPrimitiveArrayCritical(timeZone, (jboolean *)0);
- rsScriptCSetTimeZone((const char *)timeZone_ptr, length);
+ rsScriptSetTimeZone((RsScript)script, (const char *)timeZone_ptr, length);
if (timeZone_ptr) {
_env->ReleasePrimitiveArrayCritical(timeZone, timeZone_ptr, 0);
}
}
+// -----------------------------------
+
+static void
+nScriptCBegin(JNIEnv *_env, jobject _this)
+{
+ RsContext con = (RsContext)(_env->GetIntField(_this, gContextId));
+ LOG_API("nScriptCBegin, con(%p)", con);
+ rsScriptCBegin();
+}
+
static void
nScriptCAddType(JNIEnv *_env, jobject _this, jint type)
{
@@ -1154,11 +1156,12 @@
{"nScriptDestroy", "(I)V", (void*)nScriptDestroy },
{"nScriptBindAllocation", "(III)V", (void*)nScriptBindAllocation },
+{"nScriptSetClearColor", "(IFFFF)V", (void*)nScriptSetClearColor },
+{"nScriptSetClearDepth", "(IF)V", (void*)nScriptSetClearDepth },
+{"nScriptSetClearStencil", "(II)V", (void*)nScriptSetClearStencil },
+{"nScriptSetTimeZone", "(I[B)V", (void*)nScriptSetTimeZone },
+
{"nScriptCBegin", "()V", (void*)nScriptCBegin },
-{"nScriptCSetClearColor", "(FFFF)V", (void*)nScriptCSetClearColor },
-{"nScriptCSetClearDepth", "(F)V", (void*)nScriptCSetClearDepth },
-{"nScriptCSetClearStencil", "(I)V", (void*)nScriptCSetClearStencil },
-{"nScriptCSetTimeZone", "([B)V", (void*)nScriptCSetTimeZone },
{"nScriptCAddType", "(I)V", (void*)nScriptCAddType },
{"nScriptCSetRoot", "(Z)V", (void*)nScriptCSetRoot },
{"nScriptCSetScript", "([BII)V", (void*)nScriptCSetScript },
diff --git a/libs/rs/java/Film/res/raw/filmstrip.c b/libs/rs/java/Film/res/raw/filmstrip.c
index ac694ab..e9c7f28 100644
--- a/libs/rs/java/Film/res/raw/filmstrip.c
+++ b/libs/rs/java/Film/res/raw/filmstrip.c
@@ -3,7 +3,7 @@
#pragma version(1)
#pragma stateVertex(PVBackground)
#pragma stateFragment(PFBackground)
-#pragma stateFragmentStore(PFSBackground)
+#pragma stateFragmentStore(PSBackground)
/*
typedef struct FilmScriptUserEnvRec {
@@ -29,16 +29,15 @@
int main(int index)
{
- int f1,f2,f3,f4, f5,f6,f7,f8, f9,f10,f11,f12, f13,f14,f15,f16;
- int g1,g2,g3,g4, g5,g6,g7,g8, g9,g10,g11,g12, g13,g14,g15,g16;
+ float mat1[16];
float trans = loadF(1, POS_TRANSLATE);
float rot = loadF(1, POS_ROTATE);
- matrixLoadScale(&f16, 2.f, 2.f, 2.f);
- matrixTranslate(&f16, 0.f, 0.f, trans);
- matrixRotate(&f16, 90.f, 0.f, 0.f, 1.f);
- matrixRotate(&f16, rot, 1.f, 0.f, 0.f);
- storeMatrix(3, 0, &f16);
+ matrixLoadScale(mat1, 2.f, 2.f, 2.f);
+ matrixTranslate(mat1, 0.f, 0.f, trans);
+ matrixRotate(mat1, 90.f, 0.f, 0.f, 1.f);
+ matrixRotate(mat1, rot, 1.f, 0.f, 0.f);
+ storeMatrix(3, 0, mat1);
//materialDiffuse(con, 0.0f, 0.0f, 0.0f, 1.0f);
//materialSpecular(con, 0.5f, 0.5f, 0.5f, 0.5f);
@@ -47,7 +46,7 @@
// Start of images.
- bindProgramFragmentStore(NAMED_PFSImages);
+ bindProgramFragmentStore(NAMED_PSImages);
bindProgramFragment(NAMED_PFImages);
bindProgramVertex(NAMED_PVImages);
@@ -108,8 +107,8 @@
}
bindTexture(NAMED_PFImages, 0, loadI32(0, imgId - 1));
- matrixLoadTranslate(&f16, -pos - loadF(5, triangleOffsetsCount / 2), 0, 0);
- vpLoadTextureMatrix(&f16);
+ matrixLoadTranslate(mat1, -pos - loadF(5, triangleOffsetsCount / 2), 0, 0);
+ vpLoadTextureMatrix(mat1);
drawTriangleMeshRange(NAMED_mesh, loadI32(4, start), loadI32(4, end) - loadI32(4, start));
}
}
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 a9eaead..760beb8 100644
--- a/libs/rs/java/Film/src/com/android/film/FilmRS.java
+++ b/libs/rs/java/Film/src/com/android/film/FilmRS.java
@@ -31,6 +31,8 @@
import android.renderscript.Dimension;
import android.renderscript.ScriptC;
import android.renderscript.Script;
+import android.renderscript.ProgramFragment;
+import android.renderscript.ProgramStore;
public class FilmRS {
private final int POS_TRANSLATE = 0;
@@ -73,10 +75,10 @@
private Element mElementVertex;
private Element mElementIndex;
private RenderScript.Sampler mSampler;
- private RenderScript.ProgramFragmentStore mPFSBackground;
- private RenderScript.ProgramFragmentStore mPFSImages;
- private RenderScript.ProgramFragment mPFBackground;
- private RenderScript.ProgramFragment mPFImages;
+ private ProgramStore mPSBackground;
+ private ProgramStore mPSImages;
+ private ProgramFragment mPFBackground;
+ private ProgramFragment mPFImages;
private RenderScript.ProgramVertex mPVBackground;
private RenderScript.ProgramVertex mPVImages;
private ProgramVertexAlloc mPVA;
@@ -99,21 +101,21 @@
private int[] mBufferState;
private void initPFS() {
- mRS.programFragmentStoreBegin(null, null);
- mRS.programFragmentStoreDepthFunc(RenderScript.DepthFunc.LESS);
- mRS.programFragmentStoreDitherEnable(true);
- mRS.programFragmentStoreDepthMask(true);
- mPFSBackground = mRS.programFragmentStoreCreate();
- mPFSBackground.setName("PFSBackground");
+ ProgramStore.Builder b = new ProgramStore.Builder(mRS, null, null);
- mRS.programFragmentStoreBegin(null, null);
- mRS.programFragmentStoreDepthFunc(RenderScript.DepthFunc.EQUAL);
- mRS.programFragmentStoreDitherEnable(false);
- mRS.programFragmentStoreDepthMask(false);
- mRS.programFragmentStoreBlendFunc(RenderScript.BlendSrcFunc.ONE,
- RenderScript.BlendDstFunc.ONE);
- mPFSImages = mRS.programFragmentStoreCreate();
- mPFSImages.setName("PFSImages");
+ b.setDepthFunc(ProgramStore.DepthFunc.LESS);
+ b.setDitherEnable(true);
+ b.setDepthMask(true);
+ mPSBackground = b.create();
+ mPSBackground.setName("PSBackground");
+
+ b.setDepthFunc(ProgramStore.DepthFunc.EQUAL);
+ b.setDitherEnable(false);
+ b.setDepthMask(false);
+ b.setBlendFunc(ProgramStore.BlendSrcFunc.ONE,
+ ProgramStore.BlendDstFunc.ONE);
+ mPSImages = b.create();
+ mPSImages.setName("PSImages");
}
private void initPF() {
@@ -128,15 +130,14 @@
RenderScript.SamplerValue.WRAP);
mSampler = mRS.samplerCreate();
+ ProgramFragment.Builder b = new ProgramFragment.Builder(mRS, null, null);
- mRS.programFragmentBegin(null, null);
- mPFBackground = mRS.programFragmentCreate();
+ mPFBackground = b.create();
mPFBackground.setName("PFBackground");
- mRS.programFragmentBegin(null, null);
- mRS.programFragmentSetTexEnable(0, true);
- mRS.programFragmentSetTexEnvMode(0, RenderScript.EnvMode.REPLACE);
- mPFImages = mRS.programFragmentCreate();
+ b.setTexEnable(true, 0);
+ b.setTexEnvMode(ProgramFragment.EnvMode.REPLACE, 0);
+ mPFImages = b.create();
mPFImages.bindSampler(mSampler, 0);
mPFImages.setName("PFImages");
}
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 c8d02c1..4c2ab68 100644
--- a/libs/rs/java/Fountain/src/com/android/fountain/FountainRS.java
+++ b/libs/rs/java/Fountain/src/com/android/fountain/FountainRS.java
@@ -31,6 +31,8 @@
import android.renderscript.Allocation;
import android.renderscript.Script;
import android.renderscript.ScriptC;
+import android.renderscript.ProgramFragment;
+import android.renderscript.ProgramStore;
public class FountainRS {
@@ -60,8 +62,8 @@
private Allocation mPartAlloc;
private Allocation mVertAlloc;
private Script mScript;
- private RenderScript.ProgramFragmentStore mPFS;
- private RenderScript.ProgramFragment mPF;
+ private ProgramStore mPFS;
+ private ProgramFragment mPF;
private Bitmap mBackground;
@@ -75,16 +77,16 @@
mPartAlloc.setName("PartBuffer");
mVertAlloc = Allocation.createSized(mRS, Element.USER_I32, partCount * 5 + 1);
- mRS.programFragmentStoreBegin(null, null);
- mRS.programFragmentStoreBlendFunc(RenderScript.BlendSrcFunc.SRC_ALPHA, RenderScript.BlendDstFunc.ONE);
- mRS.programFragmentStoreDepthFunc(RenderScript.DepthFunc.ALWAYS);
- mRS.programFragmentStoreDepthMask(false);
- mRS.programFragmentStoreDitherEnable(false);
- mPFS = mRS.programFragmentStoreCreate();
+ ProgramStore.Builder bs = new ProgramStore.Builder(mRS, null, null);
+ bs.setBlendFunc(ProgramStore.BlendSrcFunc.SRC_ALPHA, ProgramStore.BlendDstFunc.ONE);
+ bs.setDepthFunc(ProgramStore.DepthFunc.ALWAYS);
+ bs.setDepthMask(false);
+ bs.setDitherEnable(false);
+ mPFS = bs.create();
mPFS.setName("PFSBlend");
- mRS.programFragmentBegin(null, null);
- mPF = mRS.programFragmentCreate();
+ ProgramFragment.Builder bf = new ProgramFragment.Builder(mRS, null, null);
+ mPF = bf.create();
mPF.setName("PgmFragParts");
mParams[0] = 0;
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 55b77e5..8852b3c 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
@@ -19,11 +19,13 @@
import android.content.res.Resources;
import static android.renderscript.RenderScript.SamplerParam.*;
import static android.renderscript.RenderScript.SamplerValue.*;
-import static android.renderscript.RenderScript.EnvMode.*;
-import static android.renderscript.RenderScript.DepthFunc.*;
-import static android.renderscript.RenderScript.BlendSrcFunc;
-import static android.renderscript.RenderScript.BlendDstFunc;
+import static android.renderscript.ProgramFragment.EnvMode.*;
+import static android.renderscript.ProgramStore.DepthFunc.*;
+import static android.renderscript.ProgramStore.BlendSrcFunc;
+import static android.renderscript.ProgramStore.BlendDstFunc;
import android.renderscript.RenderScript;
+import android.renderscript.ProgramFragment;
+import android.renderscript.ProgramStore;
import android.renderscript.Allocation;
import android.renderscript.ProgramVertexAlloc;
import static android.renderscript.Element.*;
@@ -72,9 +74,9 @@
@SuppressWarnings({"FieldCanBeLocal"})
private RenderScript.Sampler mSampler;
@SuppressWarnings({"FieldCanBeLocal"})
- private RenderScript.ProgramFragment mPfBackground;
+ private ProgramFragment mPfBackground;
@SuppressWarnings({"FieldCanBeLocal"})
- private RenderScript.ProgramFragmentStore mPfsBackground;
+ private ProgramStore mPfsBackground;
@SuppressWarnings({"FieldCanBeLocal"})
private RenderScript.ProgramVertex mPvBackground;
@SuppressWarnings({"FieldCanBeLocal"})
@@ -91,9 +93,9 @@
@SuppressWarnings({"FieldCanBeLocal"})
private Allocation mBlades;
@SuppressWarnings({"FieldCanBeLocal"})
- private RenderScript.ProgramFragment mPfGrass;
+ private ProgramFragment mPfGrass;
@SuppressWarnings({"FieldCanBeLocal"})
- private RenderScript.ProgramFragmentStore mPfsGrass;
+ private ProgramStore mPfsGrass;
public GrassRS(int width, int height) {
mWidth = width;
@@ -116,10 +118,10 @@
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);
+ mScript.setTimeZone(TimeZone.getDefault().getID());
loadSkyTextures();
mScript.bindAllocation(mState, RSID_STATE);
@@ -210,36 +212,33 @@
mRS.samplerSet(WRAP_MODE_T, CLAMP);
mSampler = mRS.samplerCreate();
- mRS.programFragmentBegin(null, null);
- mRS.programFragmentSetTexEnable(0, true);
- mRS.programFragmentSetTexEnvMode(0, REPLACE);
- mPfBackground = mRS.programFragmentCreate();
+ ProgramFragment.Builder b;
+ b = new ProgramFragment.Builder(mRS, null, null);
+ b.setTexEnable(true, 0);
+ b.setTexEnvMode(REPLACE, 0);
+ mPfBackground = b.create();
mPfBackground.setName("PFBackground");
mPfBackground.bindSampler(mSampler, 0);
- mRS.programFragmentBegin(null, null);
- mRS.programFragmentSetTexEnable(0, true);
- mRS.programFragmentSetTexEnvMode(0, MODULATE);
- mPfGrass = mRS.programFragmentCreate();
+ b.setTexEnvMode(MODULATE, 0);
+ mPfGrass = b.create();
mPfGrass.setName("PFGrass");
mPfGrass.bindSampler(mSampler, 0);
}
private void createProgramFragmentStore() {
- mRS.programFragmentStoreBegin(null, null);
- mRS.programFragmentStoreDepthFunc(ALWAYS);
- mRS.programFragmentStoreBlendFunc(BlendSrcFunc.SRC_ALPHA, BlendDstFunc.ONE_MINUS_SRC_ALPHA);
- mRS.programFragmentStoreDitherEnable(true);
- mRS.programFragmentStoreDepthMask(false);
- mPfsBackground = mRS.programFragmentStoreCreate();
+ ProgramStore.Builder b;
+ b = new ProgramStore.Builder(mRS, null, null);
+
+ b.setDepthFunc(ALWAYS);
+ b.setBlendFunc(BlendSrcFunc.SRC_ALPHA, BlendDstFunc.ONE_MINUS_SRC_ALPHA);
+ b.setDitherEnable(true);
+ b.setDepthMask(false);
+ mPfsBackground = b.create();
mPfsBackground.setName("PFSBackground");
- mRS.programFragmentStoreBegin(null, null);
- mRS.programFragmentStoreDepthFunc(ALWAYS);
- mRS.programFragmentStoreBlendFunc(BlendSrcFunc.ONE, BlendDstFunc.ONE_MINUS_SRC_ALPHA);
- mRS.programFragmentStoreDitherEnable(true);
- mRS.programFragmentStoreDepthMask(false);
- mPfsGrass = mRS.programFragmentStoreCreate();
+ b.setBlendFunc(BlendSrcFunc.ONE, BlendDstFunc.ONE_MINUS_SRC_ALPHA);
+ mPfsGrass = b.create();
mPfsGrass.setName("PFSGrass");
}
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 578c225..9389688 100644
--- a/libs/rs/java/Rollo/src/com/android/rollo/RolloRS.java
+++ b/libs/rs/java/Rollo/src/com/android/rollo/RolloRS.java
@@ -24,6 +24,8 @@
import android.renderscript.Allocation;
import android.renderscript.Script;
import android.renderscript.ScriptC;
+import android.renderscript.ProgramFragment;
+import android.renderscript.ProgramStore;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
@@ -95,10 +97,10 @@
private Script mScript;
private RenderScript.Sampler mSampler;
private RenderScript.Sampler mSamplerText;
- private RenderScript.ProgramFragmentStore mPFSBackground;
- private RenderScript.ProgramFragmentStore mPFSText;
- private RenderScript.ProgramFragment mPFImages;
- private RenderScript.ProgramFragment mPFText;
+ private ProgramStore mPSBackground;
+ private ProgramStore mPSText;
+ private ProgramFragment mPFImages;
+ private ProgramFragment mPFText;
private RenderScript.ProgramVertex mPV;
private ProgramVertexAlloc mPVAlloc;
private RenderScript.ProgramVertex mPVOrtho;
@@ -142,37 +144,33 @@
mSamplerText = mRS.samplerCreate();
- mRS.programFragmentBegin(null, null);
- mRS.programFragmentSetTexEnable(0, true);
- mRS.programFragmentSetTexEnvMode(0, RenderScript.EnvMode.MODULATE);
- mPFImages = mRS.programFragmentCreate();
+ ProgramFragment.Builder bf = new ProgramFragment.Builder(mRS, null, null);
+ bf.setTexEnable(true, 0);
+ bf.setTexEnvMode(ProgramFragment.EnvMode.MODULATE, 0);
+ mPFImages = bf.create();
mPFImages.setName("PF");
mPFImages.bindSampler(mSampler, 0);
- mRS.programFragmentBegin(null, null);
- mRS.programFragmentSetTexEnable(0, true);
- mRS.programFragmentSetTexEnvMode(0, RenderScript.EnvMode.MODULATE);
- mPFText = mRS.programFragmentCreate();
+ bf.setTexEnvMode(ProgramFragment.EnvMode.MODULATE, 0);
+ mPFText = bf.create();
mPFText.setName("PFText");
mPFText.bindSampler(mSamplerText, 0);
- mRS.programFragmentStoreBegin(null, null);
- mRS.programFragmentStoreDepthFunc(RenderScript.DepthFunc.LESS);
- mRS.programFragmentStoreDitherEnable(false);
- mRS.programFragmentStoreDepthMask(true);
- mRS.programFragmentStoreBlendFunc(RenderScript.BlendSrcFunc.SRC_ALPHA,
- RenderScript.BlendDstFunc.ONE_MINUS_SRC_ALPHA);
- mPFSBackground = mRS.programFragmentStoreCreate();
- mPFSBackground.setName("PFS");
+ ProgramStore.Builder bs = new ProgramStore.Builder(mRS, null, null);
+ bs.setDepthFunc(ProgramStore.DepthFunc.LESS);
+ bs.setDitherEnable(false);
+ bs.setDepthMask(true);
+ bs.setBlendFunc(ProgramStore.BlendSrcFunc.SRC_ALPHA,
+ ProgramStore.BlendDstFunc.ONE_MINUS_SRC_ALPHA);
+ mPSBackground = bs.create();
+ mPSBackground.setName("PFS");
- mRS.programFragmentStoreBegin(null, null);
- mRS.programFragmentStoreDepthFunc(RenderScript.DepthFunc.ALWAYS);
- mRS.programFragmentStoreDitherEnable(false);
- mRS.programFragmentStoreDepthMask(false);
- mRS.programFragmentStoreBlendFunc(RenderScript.BlendSrcFunc.SRC_ALPHA,
- RenderScript.BlendDstFunc.ONE_MINUS_SRC_ALPHA);
- mPFSText = mRS.programFragmentStoreCreate();
- mPFSText.setName("PFSText");
+ bs.setDepthFunc(ProgramStore.DepthFunc.ALWAYS);
+ bs.setDepthMask(false);
+ bs.setBlendFunc(ProgramStore.BlendSrcFunc.SRC_ALPHA,
+ ProgramStore.BlendDstFunc.ONE_MINUS_SRC_ALPHA);
+ mPSText = bs.create();
+ mPSText.setName("PFSText");
mPVAlloc = new ProgramVertexAlloc(mRS);
mRS.programVertexBegin(null, null);
diff --git a/libs/rs/rs.spec b/libs/rs/rs.spec
index d9a6456..e118ace 100644
--- a/libs/rs/rs.spec
+++ b/libs/rs/rs.spec
@@ -127,14 +127,14 @@
AllocationData {
param RsAllocation va
param const void * data
- }
+ }
Allocation1DSubData {
param RsAllocation va
param uint32_t xoff
param uint32_t count
param const void *data
- }
+ }
Allocation2DSubData {
param RsAllocation va
@@ -168,14 +168,14 @@
Adapter1DData {
param RsAdapter1D adapter
param const void * data
- }
+ }
Adapter1DSubData {
param RsAdapter1D adapter
param uint32_t xoff
param uint32_t count
param const void *data
- }
+ }
Adapter2DCreate {
ret RsAdapter2D
@@ -199,7 +199,7 @@
Adapter2DData {
param RsAdapter2D adapter
param const void *data
- }
+ }
Adapter2DSubData {
param RsAdapter2D adapter
@@ -273,23 +273,27 @@
ScriptCBegin {
}
-ScriptCSetClearColor {
+ScriptSetClearColor {
+ param RsScript s
param float r
param float g
param float b
param float a
}
-ScriptCSetTimeZone {
+ScriptSetTimeZone {
+ param RsScript s
param const char * timeZone
param uint32_t length
}
-ScriptCSetClearDepth {
+ScriptSetClearDepth {
+ param RsScript s
param float depth
}
-ScriptCSetClearStencil {
+ScriptSetClearStencil {
+ param RsScript s
param uint32_t stencil
}
diff --git a/libs/rs/rsScript.cpp b/libs/rs/rsScript.cpp
index ae85c9c..6ce9f61 100644
--- a/libs/rs/rsScript.cpp
+++ b/libs/rs/rsScript.cpp
@@ -49,6 +49,32 @@
s->mSlots[slot].set(static_cast<Allocation *>(va));
}
+void rsi_ScriptSetClearColor(Context * rsc, RsScript vs, float r, float g, float b, float a)
+{
+ Script *s = static_cast<Script *>(vs);
+ s->mEnviroment.mClearColor[0] = r;
+ s->mEnviroment.mClearColor[1] = g;
+ s->mEnviroment.mClearColor[2] = b;
+ s->mEnviroment.mClearColor[3] = a;
+}
+
+void rsi_ScriptSetTimeZone(Context * rsc, RsScript vs, const char * timeZone, uint32_t length)
+{
+ Script *s = static_cast<Script *>(vs);
+ s->mEnviroment.mTimeZone = timeZone;
+}
+
+void rsi_ScriptSetClearDepth(Context * rsc, RsScript vs, float v)
+{
+ Script *s = static_cast<Script *>(vs);
+ s->mEnviroment.mClearDepth = v;
+}
+
+void rsi_ScriptSetClearStencil(Context * rsc, RsScript vs, uint32_t v)
+{
+ Script *s = static_cast<Script *>(vs);
+ s->mEnviroment.mClearStencil = v;
+}
}
}
diff --git a/libs/rs/rsScriptC.cpp b/libs/rs/rsScriptC.cpp
index 3b9d27a..b0b8404 100644
--- a/libs/rs/rsScriptC.cpp
+++ b/libs/rs/rsScriptC.cpp
@@ -49,7 +49,7 @@
bool ScriptC::run(Context *rsc, uint32_t launchIndex)
{
- Context::ScriptTLSStruct * tls =
+ Context::ScriptTLSStruct * tls =
(Context::ScriptTLSStruct *)pthread_getspecific(Context::gThreadTLSKey);
if (mEnviroment.mFragmentStore.get()) {
@@ -100,7 +100,7 @@
}
-static ACCvoid* symbolLookup(ACCvoid* pContext, const ACCchar* name)
+static ACCvoid* symbolLookup(ACCvoid* pContext, const ACCchar* name)
{
const ScriptCState::SymbolTable_t *sym = ScriptCState::lookupSymbol(name);
if (sym) {
@@ -194,7 +194,7 @@
mEnviroment.mFragmentStore.clear();
continue;
}
- ProgramFragmentStore * pfs =
+ ProgramFragmentStore * pfs =
(ProgramFragmentStore *)rsc->lookupName(str[ct+1]);
if (pfs != NULL) {
mEnviroment.mFragmentStore.set(pfs);
@@ -205,7 +205,7 @@
}
-
+
} else {
// Deal with an error.
}
@@ -221,33 +221,6 @@
ss->clear();
}
-void rsi_ScriptCSetClearColor(Context * rsc, float r, float g, float b, float a)
-{
- ScriptCState *ss = &rsc->mScriptC;
- ss->mEnviroment.mClearColor[0] = r;
- ss->mEnviroment.mClearColor[1] = g;
- ss->mEnviroment.mClearColor[2] = b;
- ss->mEnviroment.mClearColor[3] = a;
-}
-
-void rsi_ScriptCSetTimeZone(Context * rsc, const char * timeZone, uint32_t length)
-{
- ScriptCState *ss = &rsc->mScriptC;
- ss->mEnviroment.mTimeZone = timeZone;
-}
-
-void rsi_ScriptCSetClearDepth(Context * rsc, float v)
-{
- ScriptCState *ss = &rsc->mScriptC;
- ss->mEnviroment.mClearDepth = v;
-}
-
-void rsi_ScriptCSetClearStencil(Context * rsc, uint32_t v)
-{
- ScriptCState *ss = &rsc->mScriptC;
- ss->mEnviroment.mClearStencil = v;
-}
-
void rsi_ScriptCAddType(Context * rsc, RsType vt)
{
ScriptCState *ss = &rsc->mScriptC;