diff options
author | Jason Sams <rjsams@android.com> | 2009-08-20 16:10:36 -0700 |
---|---|---|
committer | Jason Sams <rjsams@android.com> | 2009-08-20 16:11:03 -0700 |
commit | 25ffcdc9d7e32c9c1eeb2b48cc2f17d1353e9fae (patch) | |
tree | 37bac4daba3c96307217faea840754cdbd9d5cba /graphics/java/android | |
parent | ac81c42971ddcd0726c4f2050fd82942914d0e1c (diff) | |
download | frameworks_base-25ffcdc9d7e32c9c1eeb2b48cc2f17d1353e9fae.zip frameworks_base-25ffcdc9d7e32c9c1eeb2b48cc2f17d1353e9fae.tar.gz frameworks_base-25ffcdc9d7e32c9c1eeb2b48cc2f17d1353e9fae.tar.bz2 |
Point Sprites
Diffstat (limited to 'graphics/java/android')
-rw-r--r-- | graphics/java/android/renderscript/Element.java | 10 | ||||
-rw-r--r-- | graphics/java/android/renderscript/ProgramFragment.java | 16 | ||||
-rw-r--r-- | graphics/java/android/renderscript/RenderScript.java | 6 |
3 files changed, 19 insertions, 13 deletions
diff --git a/graphics/java/android/renderscript/Element.java b/graphics/java/android/renderscript/Element.java index 3f75069..aeec739 100644 --- a/graphics/java/android/renderscript/Element.java +++ b/graphics/java/android/renderscript/Element.java @@ -111,7 +111,8 @@ public class Element extends BaseObj { NX (15), NY (16), NZ (17), - INDEX (18); + INDEX (18), + POINT_SIZE(19); int mID; DataKind(int id) { @@ -241,13 +242,18 @@ public class Element extends BaseObj { add(DataType.FLOAT, DataKind.Z, false, 32, null); return this; } - + public Builder addFloatST() { add(DataType.FLOAT, DataKind.S, false, 32, null); add(DataType.FLOAT, DataKind.T, false, 32, null); return this; } + public Builder addFloatPointSize() { + add(DataType.FLOAT, DataKind.POINT_SIZE, false, 32, null); + return this; + } + public Builder addFloatRGB() { add(DataType.FLOAT, DataKind.RED, false, 32, null); add(DataType.FLOAT, DataKind.GREEN, false, 32, null); diff --git a/graphics/java/android/renderscript/ProgramFragment.java b/graphics/java/android/renderscript/ProgramFragment.java index aad09f6..392d93d 100644 --- a/graphics/java/android/renderscript/ProgramFragment.java +++ b/graphics/java/android/renderscript/ProgramFragment.java @@ -68,6 +68,7 @@ public class ProgramFragment extends BaseObj { RenderScript mRS; Element mIn; Element mOut; + boolean mPointSpriteEnable; private class Slot { Type mType; @@ -85,6 +86,7 @@ public class ProgramFragment extends BaseObj { mIn = in; mOut = out; mSlots = new Slot[MAX_SLOT]; + mPointSpriteEnable = false; for(int ct=0; ct < MAX_SLOT; ct++) { mSlots[ct] = new Slot(); } @@ -117,6 +119,9 @@ public class ProgramFragment extends BaseObj { mSlots[slot].mEnv = env; } + public void setPointSpriteTexCoordinateReplacement(boolean enable) { + mPointSpriteEnable = enable; + } static synchronized ProgramFragment internalCreate(RenderScript rs, Builder b) { int inID = 0; @@ -127,21 +132,18 @@ public class ProgramFragment extends BaseObj { if (b.mOut != null) { outID = b.mOut.mID; } - rs.nProgramFragmentBegin(inID, outID); + rs.nProgramFragmentBegin(inID, outID, b.mPointSpriteEnable); for(int ct=0; ct < MAX_SLOT; ct++) { if(b.mSlots[ct].mTexEnable) { Slot s = b.mSlots[ct]; + int typeID = 0; if(s.mType != null) { - rs.nProgramFragmentSetType(ct, s.mType.mID); - } - rs.nProgramFragmentSetTexEnable(ct, true); - if(s.mEnv != null) { - rs.nProgramFragmentSetEnvMode(ct, s.mEnv.mID); + typeID = s.mType.mID; } + rs.nProgramFragmentSetSlot(ct, true, s.mEnv.mID, typeID); } } - int id = rs.nProgramFragmentCreate(); return new ProgramFragment(id, rs); } diff --git a/graphics/java/android/renderscript/RenderScript.java b/graphics/java/android/renderscript/RenderScript.java index fca1c7a..076a5d4 100644 --- a/graphics/java/android/renderscript/RenderScript.java +++ b/graphics/java/android/renderscript/RenderScript.java @@ -158,12 +158,10 @@ public class RenderScript { native void nProgramFragmentStoreDither(boolean enable); native int nProgramFragmentStoreCreate(); - native void nProgramFragmentBegin(int in, int out); + native void nProgramFragmentBegin(int in, int out, boolean pointSpriteEnable); native void nProgramFragmentBindTexture(int vpf, int slot, int a); native void nProgramFragmentBindSampler(int vpf, int slot, int s); - native void nProgramFragmentSetType(int slot, int vt); - native void nProgramFragmentSetEnvMode(int slot, int env); - native void nProgramFragmentSetTexEnable(int slot, boolean enable); + native void nProgramFragmentSetSlot(int slot, boolean enable, int env, int vt); native int nProgramFragmentCreate(); native void nProgramVertexBindAllocation(int pv, int mID); |