diff options
Diffstat (limited to 'graphics/java/android')
-rw-r--r-- | graphics/java/android/renderscript/Allocation.java | 175 | ||||
-rw-r--r-- | graphics/java/android/renderscript/Dimension.java | 35 | ||||
-rw-r--r-- | graphics/java/android/renderscript/ProgramVertexAlloc.java | 6 | ||||
-rw-r--r-- | graphics/java/android/renderscript/RenderScript.java | 194 | ||||
-rw-r--r-- | graphics/java/android/renderscript/Type.java | 68 |
5 files changed, 288 insertions, 190 deletions
diff --git a/graphics/java/android/renderscript/Allocation.java b/graphics/java/android/renderscript/Allocation.java new file mode 100644 index 0000000..1327328 --- /dev/null +++ b/graphics/java/android/renderscript/Allocation.java @@ -0,0 +1,175 @@ +/* + * 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 java.io.IOException; +import java.io.InputStream; + +import android.content.res.Resources; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.os.Bundle; +import android.renderscript.Type; +import android.util.Config; +import android.util.Log; + +/** + * @hide + * + **/ +public class Allocation extends BaseObj { + Allocation(int id, RenderScript rs) { + super(rs); + mID = id; + } + + public void uploadToTexture(int baseMipLevel) { + mRS.nAllocationUploadToTexture(mID, baseMipLevel); + } + + public void destroy() { + mRS.nAllocationDestroy(mID); + mID = 0; + } + + public void data(int[] d) { + mRS.nAllocationData(mID, d); + } + + public void data(float[] d) { + mRS.nAllocationData(mID, d); + } + + public void subData1D(int off, int count, int[] d) { + mRS.nAllocationSubData1D(mID, off, count, d); + } + + public void subData1D(int off, int count, float[] d) { + mRS.nAllocationSubData1D(mID, off, count, d); + } + + public void subData2D(int xoff, int yoff, int w, int h, int[] d) { + mRS.nAllocationSubData2D(mID, xoff, yoff, w, h, d); + } + + public void subData2D(int xoff, int yoff, int w, int h, float[] d) { + mRS.nAllocationSubData2D(mID, xoff, yoff, w, h, d); + } + + public class Adapter1D extends BaseObj { + Adapter1D(int id, RenderScript rs) { + super(rs); + mID = id; + } + + public void destroy() { + mRS.nAdapter1DDestroy(mID); + mID = 0; + } + + public void setConstraint(Dimension dim, int value) { + mRS.nAdapter1DSetConstraint(mID, dim.mID, value); + } + + public void data(int[] d) { + mRS.nAdapter1DData(mID, d); + } + + public void subData(int off, int count, int[] d) { + mRS.nAdapter1DSubData(mID, off, count, d); + } + + public void data(float[] d) { + mRS.nAdapter1DData(mID, d); + } + + public void subData(int off, int count, float[] d) { + mRS.nAdapter1DSubData(mID, off, count, d); + } + } + + public Adapter1D createAdapter1D() { + int id = mRS.nAdapter1DCreate(); + if (id != 0) { + mRS.nAdapter1DBindAllocation(id, mID); + } + return new Adapter1D(id, mRS); + } + + + + // creation + + private static BitmapFactory.Options mBitmapOptions = new BitmapFactory.Options(); + static { + mBitmapOptions.inScaled = false; + } + + static public Allocation createTyped(RenderScript rs, Type type) { + int id = rs.nAllocationCreateTyped(type.mID); + return new Allocation(id, rs); + } + + static public Allocation createSized(RenderScript rs, Element e, int count) { + int id; + if(e.mIsPredefined) { + id = rs.nAllocationCreatePredefSized(e.mPredefinedID, count); + } else { + id = rs.nAllocationCreateSized(e.mID, count); + } + return new Allocation(id, rs); + } + + static public Allocation createFromBitmap(RenderScript rs, Bitmap b, Element dstFmt, boolean genMips) + throws IllegalArgumentException { + if(!dstFmt.mIsPredefined) { + throw new IllegalStateException("Attempting to allocate a bitmap with a non-static element."); + } + + int id = rs.nAllocationCreateFromBitmap(dstFmt.mPredefinedID, genMips, b); + return new Allocation(id, rs); + } + + static public Allocation createFromBitmapBoxed(RenderScript rs, Bitmap b, Element dstFmt, boolean genMips) + throws IllegalArgumentException { + if(!dstFmt.mIsPredefined) { + throw new IllegalStateException("Attempting to allocate a bitmap with a non-static element."); + } + + int id = rs.nAllocationCreateFromBitmapBoxed(dstFmt.mPredefinedID, genMips, b); + return new Allocation(id, rs); + } + + static public Allocation createFromBitmapResource(RenderScript rs, Resources res, int id, Element dstFmt, boolean genMips) + throws IllegalArgumentException { + + Bitmap b = BitmapFactory.decodeResource(res, id, mBitmapOptions); + return createFromBitmap(rs, b, dstFmt, genMips); + } + + static public Allocation createFromBitmapResourceBoxed(RenderScript rs, Resources res, int id, Element dstFmt, boolean genMips) + throws IllegalArgumentException { + + Bitmap b = BitmapFactory.decodeResource(res, id, mBitmapOptions); + return createFromBitmapBoxed(rs, b, dstFmt, genMips); + } + + +} + + diff --git a/graphics/java/android/renderscript/Dimension.java b/graphics/java/android/renderscript/Dimension.java new file mode 100644 index 0000000..f29057d --- /dev/null +++ b/graphics/java/android/renderscript/Dimension.java @@ -0,0 +1,35 @@ +/* + * 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; + +/** + * @hide + **/ +public enum Dimension { + X (0), + Y (1), + Z (2), + LOD (3), + FACE (4), + ARRAY_0 (100); + + int mID; + Dimension(int id) { + mID = id; + } +} + diff --git a/graphics/java/android/renderscript/ProgramVertexAlloc.java b/graphics/java/android/renderscript/ProgramVertexAlloc.java index 424e0ad..37b037c 100644 --- a/graphics/java/android/renderscript/ProgramVertexAlloc.java +++ b/graphics/java/android/renderscript/ProgramVertexAlloc.java @@ -17,6 +17,8 @@ package android.renderscript; import java.lang.Math; + +import android.renderscript.Element; import android.util.Log; @@ -33,14 +35,14 @@ public class ProgramVertexAlloc { Matrix mProjection; Matrix mTexture; - public RenderScript.Allocation mAlloc; + public Allocation mAlloc; public ProgramVertexAlloc(RenderScript rs) { mModel = new Matrix(); mProjection = new Matrix(); mTexture = new Matrix(); - mAlloc = rs.allocationCreateSized(Element.USER_FLOAT, 48); + mAlloc = Allocation.createSized(rs, Element.USER_FLOAT, 48); mAlloc.subData1D(MODELVIEW_OFFSET, 16, mModel.mMat); mAlloc.subData1D(PROJECTION_OFFSET, 16, mProjection.mMat); mAlloc.subData1D(TEXTURE_OFFSET, 16, mTexture.mMat); diff --git a/graphics/java/android/renderscript/RenderScript.java b/graphics/java/android/renderscript/RenderScript.java index 3d4f333..dc87b6a 100644 --- a/graphics/java/android/renderscript/RenderScript.java +++ b/graphics/java/android/renderscript/RenderScript.java @@ -20,15 +20,11 @@ import java.io.IOException; import java.io.InputStream; import android.content.res.Resources; -import android.os.Bundle; +import android.graphics.Bitmap; import android.util.Config; import android.util.Log; import android.view.Surface; -import android.graphics.Bitmap; -import android.graphics.BitmapFactory; -import android.graphics.Color; - /** * @hide @@ -48,7 +44,6 @@ public class RenderScript { private static boolean sInitialized; native private static void _nInit(); - private static BitmapFactory.Options mBitmapOptions = new BitmapFactory.Options(); static { sInitialized = false; @@ -59,7 +54,6 @@ public class RenderScript { } catch (UnsatisfiedLinkError e) { Log.d(LOG_TAG, "RenderScript JNI library not found!"); } - mBitmapOptions.inScaled = false; } native int nDeviceCreate(); @@ -206,6 +200,11 @@ public class RenderScript { return mElementBuilder; } + Type.Builder mTypeBuilder = new Type.Builder(this); + public Type.Builder typeBuilderCreate(Element e) throws IllegalStateException { + mTypeBuilder.begin(e); + return mTypeBuilder; + } @@ -295,187 +294,6 @@ public class RenderScript { } ////////////////////////////////////////////////////////////////////////////////// - // Type - - public enum Dimension { - X (0), - Y (1), - Z (2), - LOD (3), - FACE (4), - ARRAY_0 (100); - - int mID; - Dimension(int id) { - mID = id; - } - } - - public class Type extends BaseObj { - Type(int id) { - super(RenderScript.this); - mID = id; - } - - public void destroy() { - nTypeDestroy(mID); - mID = 0; - } - } - - public void typeBegin(Element e) { - nTypeBegin(e.mID); - } - - public void typeAdd(Dimension d, int value) { - nTypeAdd(d.mID, value); - } - - public Type typeCreate() { - int id = nTypeCreate(); - return new Type(id); - } - - - ////////////////////////////////////////////////////////////////////////////////// - // Allocation - - public class Allocation extends BaseObj { - Allocation(int id) { - super(RenderScript.this); - mID = id; - } - - public void uploadToTexture(int baseMipLevel) { - nAllocationUploadToTexture(mID, baseMipLevel); - } - - public void destroy() { - nAllocationDestroy(mID); - mID = 0; - } - - public void data(int[] d) { - nAllocationData(mID, d); - } - - public void data(float[] d) { - nAllocationData(mID, d); - } - - public void subData1D(int off, int count, int[] d) { - nAllocationSubData1D(mID, off, count, d); - } - - public void subData1D(int off, int count, float[] d) { - nAllocationSubData1D(mID, off, count, d); - } - - public void subData2D(int xoff, int yoff, int w, int h, int[] d) { - nAllocationSubData2D(mID, xoff, yoff, w, h, d); - } - - public void subData2D(int xoff, int yoff, int w, int h, float[] d) { - nAllocationSubData2D(mID, xoff, yoff, w, h, d); - } - } - - public Allocation allocationCreateTyped(Type type) { - int id = nAllocationCreateTyped(type.mID); - return new Allocation(id); - } - - public Allocation allocationCreateSized(Element e, int count) { - int id; - if(e.mIsPredefined) { - id = nAllocationCreatePredefSized(e.mPredefinedID, count); - } else { - id = nAllocationCreateSized(e.mID, count); - } - return new Allocation(id); - } - - public Allocation allocationCreateFromBitmap(Bitmap b, Element dstFmt, boolean genMips) - throws IllegalArgumentException { - if(!dstFmt.mIsPredefined) { - throw new IllegalStateException("Attempting to allocate a bitmap with a non-static element."); - } - - int id = nAllocationCreateFromBitmap(dstFmt.mPredefinedID, genMips, b); - return new Allocation(id); - } - - public Allocation allocationCreateFromBitmapBoxed(Bitmap b, Element dstFmt, boolean genMips) - throws IllegalArgumentException { - if(!dstFmt.mIsPredefined) { - throw new IllegalStateException("Attempting to allocate a bitmap with a non-static element."); - } - - int id = nAllocationCreateFromBitmapBoxed(dstFmt.mPredefinedID, genMips, b); - return new Allocation(id); - } - - public Allocation allocationCreateFromBitmapResource(Resources res, int id, Element dstFmt, boolean genMips) - throws IllegalArgumentException { - - Bitmap b = BitmapFactory.decodeResource(res, id, mBitmapOptions); - return allocationCreateFromBitmap(b, dstFmt, genMips); - } - - public Allocation allocationCreateFromBitmapResourceBoxed(Resources res, int id, Element dstFmt, boolean genMips) - throws IllegalArgumentException { - - Bitmap b = BitmapFactory.decodeResource(res, id, mBitmapOptions); - return allocationCreateFromBitmapBoxed(b, dstFmt, genMips); - } - - - ////////////////////////////////////////////////////////////////////////////////// - // Adapter1D - - public class Adapter1D extends BaseObj { - Adapter1D(int id) { - super(RenderScript.this); - mID = id; - } - - public void destroy() { - nAdapter1DDestroy(mID); - mID = 0; - } - - public void bindAllocation(Allocation a) { - nAdapter1DBindAllocation(mID, a.mID); - } - - public void setConstraint(Dimension dim, int value) { - nAdapter1DSetConstraint(mID, dim.mID, value); - } - - public void data(int[] d) { - nAdapter1DData(mID, d); - } - - public void subData(int off, int count, int[] d) { - nAdapter1DSubData(mID, off, count, d); - } - - public void data(float[] d) { - nAdapter1DData(mID, d); - } - - public void subData(int off, int count, float[] d) { - nAdapter1DSubData(mID, off, count, d); - } - } - - public Adapter1D adapter1DCreate() { - int id = nAdapter1DCreate(); - return new Adapter1D(id); - } - - - ////////////////////////////////////////////////////////////////////////////////// // Triangle Mesh public class TriangleMesh extends BaseObj { diff --git a/graphics/java/android/renderscript/Type.java b/graphics/java/android/renderscript/Type.java new file mode 100644 index 0000000..86932c4 --- /dev/null +++ b/graphics/java/android/renderscript/Type.java @@ -0,0 +1,68 @@ +/* + * 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 java.io.IOException; +import java.io.InputStream; + +import android.content.res.Resources; +import android.os.Bundle; +import android.util.Config; +import android.util.Log; + +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; + +/** + * @hide + * + **/ +public class Type extends BaseObj { + Type(int id, RenderScript rs) { + super(rs); + mID = id; + } + + public void destroy() { + mRS.nTypeDestroy(mID); + mID = 0; + } + + public static class Builder { + RenderScript mRS; + boolean mActive = true; + + Builder(RenderScript rs) { + mRS = rs; + } + + public void begin(Element e) { + mRS.nTypeBegin(e.mID); + } + + public void add(Dimension d, int value) { + mRS.nTypeAdd(d.mID, value); + } + + public Type create() { + int id = mRS.nTypeCreate(); + return new Type(id, mRS); + } + } + +} |