RenderScript.java revision 36e612a488511940b61f09803b270aa1c61b68e0
160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich/* 260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich * Copyright (C) 2008 The Android Open Source Project 360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich * 460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich * Licensed under the Apache License, Version 2.0 (the "License"); 560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich * you may not use this file except in compliance with the License. 660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich * You may obtain a copy of the License at 760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich * 860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich * http://www.apache.org/licenses/LICENSE-2.0 960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich * 1060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich * Unless required by applicable law or agreed to in writing, software 1160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich * distributed under the License is distributed on an "AS IS" BASIS, 1260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich * See the License for the specific language governing permissions and 1460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich * limitations under the License. 1560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich */ 1660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 1794d8e90ad78ee1dbc0efa315117688abd126ae55Jason Samspackage android.renderscript; 1860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 1943702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevichimport java.io.IOException; 2036e612a488511940b61f09803b270aa1c61b68e0Jason Samsimport java.io.InputStream; 2136e612a488511940b61f09803b270aa1c61b68e0Jason Sams 2236e612a488511940b61f09803b270aa1c61b68e0Jason Samsimport android.content.res.Resources; 2336e612a488511940b61f09803b270aa1c61b68e0Jason Samsimport android.os.Bundle; 2436e612a488511940b61f09803b270aa1c61b68e0Jason Samsimport android.util.Config; 2536e612a488511940b61f09803b270aa1c61b68e0Jason Samsimport android.util.Log; 2636e612a488511940b61f09803b270aa1c61b68e0Jason Samsimport android.view.Surface; 2743702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich 28dba3ba5b5bf6026abceced921b1b0d231b0faefdJason Samsimport android.graphics.Bitmap; 29dba3ba5b5bf6026abceced921b1b0d231b0faefdJason Samsimport android.graphics.BitmapFactory; 30dba3ba5b5bf6026abceced921b1b0d231b0faefdJason Samsimport android.graphics.Color; 31dba3ba5b5bf6026abceced921b1b0d231b0faefdJason Sams 3260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 33e29d471e5ca9781d8772d445ec7832e94856fd14Jason Sams/** 34e29d471e5ca9781d8772d445ec7832e94856fd14Jason Sams * @hide 35e29d471e5ca9781d8772d445ec7832e94856fd14Jason Sams * 36e29d471e5ca9781d8772d445ec7832e94856fd14Jason Sams **/ 3760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevichpublic class RenderScript { 38f29ca50d80e3dc379de1642e85b7963175b2ca38Jason Sams static final String LOG_TAG = "libRS_jni"; 3960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich private static final boolean DEBUG = false; 4060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich private static final boolean LOG_ENABLED = DEBUG ? Config.LOGD : Config.LOGV; 4160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 4260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 4360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 4402fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams /* 4560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich * We use a class initializer to allow the native code to cache some 4660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich * field offsets. 4760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich */ 4860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich private static boolean sInitialized; 4960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private static void _nInit(); 5060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 51dba3ba5b5bf6026abceced921b1b0d231b0faefdJason Sams private static BitmapFactory.Options mBitmapOptions = new BitmapFactory.Options(); 52dba3ba5b5bf6026abceced921b1b0d231b0faefdJason Sams 5360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich static { 5460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich sInitialized = false; 5560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich try { 56e29d471e5ca9781d8772d445ec7832e94856fd14Jason Sams System.loadLibrary("rs_jni"); 5760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich _nInit(); 5860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich sInitialized = true; 5960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } catch (UnsatisfiedLinkError e) { 6060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich Log.d(LOG_TAG, "RenderScript JNI library not found!"); 6160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 62dba3ba5b5bf6026abceced921b1b0d231b0faefdJason Sams mBitmapOptions.inScaled = false; 6360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 6460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 6536e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nDeviceCreate(); 6636e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nDeviceDestroy(int dev); 6736e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nContextCreate(int dev, Surface sur, int ver); 6836e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nContextDestroy(int con); 6960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 7060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich //void rsContextBindSampler (uint32_t slot, RsSampler sampler); 7160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich //void rsContextBindRootScript (RsScript sampler); 7236e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nContextBindRootScript(int script); 7336e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nContextBindSampler(int sampler, int slot); 7436e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nContextBindProgramFragmentStore(int pfs); 7536e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nContextBindProgramFragment(int pf); 7636e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nContextBindProgramVertex(int pf); 7736e612a488511940b61f09803b270aa1c61b68e0Jason Sams 7836e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nAssignName(int obj, byte[] name); 7936e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nFileOpen(byte[] name); 8036e612a488511940b61f09803b270aa1c61b68e0Jason Sams 8136e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nElementBegin(); 8236e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nElementAddPredefined(int predef); 8336e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nElementAdd(int kind, int type, int norm, int bits); 8436e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nElementCreate(); 8536e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nElementGetPredefined(int predef); 8636e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nElementDestroy(int obj); 8736e612a488511940b61f09803b270aa1c61b68e0Jason Sams 8836e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nTypeBegin(int elementID); 8936e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nTypeAdd(int dim, int val); 9036e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nTypeCreate(); 9136e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nTypeDestroy(int id); 9236e612a488511940b61f09803b270aa1c61b68e0Jason Sams 9336e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nAllocationCreateTyped(int type); 9436e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nAllocationCreatePredefSized(int predef, int count); 9536e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nAllocationCreateSized(int elem, int count); 9636e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nAllocationCreateFromBitmap(int dstFmt, boolean genMips, Bitmap bmp); 9736e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nAllocationCreateFromBitmapBoxed(int dstFmt, boolean genMips, Bitmap bmp); 9836e612a488511940b61f09803b270aa1c61b68e0Jason Sams 9936e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nAllocationUploadToTexture(int alloc, int baseMioLevel); 10036e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nAllocationDestroy(int alloc); 10136e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nAllocationData(int id, int[] d); 10236e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nAllocationData(int id, float[] d); 10336e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nAllocationSubData1D(int id, int off, int count, int[] d); 10436e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nAllocationSubData1D(int id, int off, int count, float[] d); 10536e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nAllocationSubData2D(int id, int xoff, int yoff, int w, int h, int[] d); 10636e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nAllocationSubData2D(int id, int xoff, int yoff, int w, int h, float[] d); 10736e612a488511940b61f09803b270aa1c61b68e0Jason Sams 10836e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nTriangleMeshDestroy(int id); 10936e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nTriangleMeshBegin(int vertex, int index); 11036e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nTriangleMeshAddVertex_XY (float x, float y); 11136e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nTriangleMeshAddVertex_XYZ (float x, float y, float z); 11236e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nTriangleMeshAddVertex_XY_ST (float x, float y, float s, float t); 11336e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nTriangleMeshAddVertex_XYZ_ST (float x, float y, float z, float s, float t); 11436e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nTriangleMeshAddVertex_XYZ_ST_NORM (float x, float y, float z, float s, float t, float nx, float ny, float nz); 11536e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nTriangleMeshAddTriangle(int i1, int i2, int i3); 11636e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nTriangleMeshCreate(); 11736e612a488511940b61f09803b270aa1c61b68e0Jason Sams 11836e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nAdapter1DDestroy(int id); 11936e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nAdapter1DBindAllocation(int ad, int alloc); 12036e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nAdapter1DSetConstraint(int ad, int dim, int value); 12136e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nAdapter1DData(int ad, int[] d); 12236e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nAdapter1DSubData(int ad, int off, int count, int[] d); 12336e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nAdapter1DData(int ad, float[] d); 12436e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nAdapter1DSubData(int ad, int off, int count, float[] d); 12536e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nAdapter1DCreate(); 12636e612a488511940b61f09803b270aa1c61b68e0Jason Sams 12736e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nScriptDestroy(int script); 12836e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nScriptBindAllocation(int vtm, int alloc, int slot); 12936e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nScriptCBegin(); 13036e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nScriptCSetClearColor(float r, float g, float b, float a); 13136e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nScriptCSetClearDepth(float depth); 13236e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nScriptCSetClearStencil(int stencil); 13336e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nScriptCSetTimeZone(byte[] timeZone); 13436e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nScriptCAddType(int type); 13536e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nScriptCSetRoot(boolean isRoot); 13636e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nScriptCSetScript(byte[] script, int offset, int length); 13736e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nScriptCCreate(); 13836e612a488511940b61f09803b270aa1c61b68e0Jason Sams 13936e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nSamplerDestroy(int sampler); 14036e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nSamplerBegin(); 14136e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nSamplerSet(int param, int value); 14236e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nSamplerCreate(); 14336e612a488511940b61f09803b270aa1c61b68e0Jason Sams 14436e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramFragmentStoreBegin(int in, int out); 14536e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramFragmentStoreDepthFunc(int func); 14636e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramFragmentStoreDepthMask(boolean enable); 14736e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramFragmentStoreColorMask(boolean r, boolean g, boolean b, boolean a); 14836e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramFragmentStoreBlendFunc(int src, int dst); 14936e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramFragmentStoreDither(boolean enable); 15036e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nProgramFragmentStoreCreate(); 15136e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramFragmentStoreDestroy(int pgm); 15236e612a488511940b61f09803b270aa1c61b68e0Jason Sams 15336e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramFragmentBegin(int in, int out); 15436e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramFragmentBindTexture(int vpf, int slot, int a); 15536e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramFragmentBindSampler(int vpf, int slot, int s); 15636e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramFragmentSetType(int slot, int vt); 15736e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramFragmentSetEnvMode(int slot, int env); 15836e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramFragmentSetTexEnable(int slot, boolean enable); 15936e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nProgramFragmentCreate(); 16036e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramFragmentDestroy(int pgm); 16136e612a488511940b61f09803b270aa1c61b68e0Jason Sams 16236e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramVertexDestroy(int pv); 16336e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramVertexBindAllocation(int pv, int slot, int mID); 16436e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramVertexBegin(int inID, int outID); 16536e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramVertexSetType(int slot, int mID); 16636e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramVertexSetTextureMatrixEnable(boolean enable); 16736e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramVertexAddLight(int id); 16836e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nProgramVertexCreate(); 16936e612a488511940b61f09803b270aa1c61b68e0Jason Sams 17036e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nLightBegin(); 17136e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nLightSetIsMono(boolean isMono); 17236e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nLightSetIsLocal(boolean isLocal); 17336e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nLightCreate(); 17436e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nLightDestroy(int l); 17536e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nLightSetColor(int l, float r, float g, float b); 17636e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nLightSetPosition(int l, float x, float y, float z); 177bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 17860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 17960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich private int mDev; 18060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich private int mContext; 18160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich private Surface mSurface; 18260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 18336e612a488511940b61f09803b270aa1c61b68e0Jason Sams private static boolean mElementsInitialized = false; 18460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 18560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich /////////////////////////////////////////////////////////////////////////////////// 18643702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich // 18760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 18860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich RenderScript(Surface sur) { 18960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mSurface = sur; 19060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mDev = nDeviceCreate(); 19160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mContext = nContextCreate(mDev, mSurface, 0); 19260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 19336e612a488511940b61f09803b270aa1c61b68e0Jason Sams // TODO: This should be protected by a lock 19436e612a488511940b61f09803b270aa1c61b68e0Jason Sams if(!mElementsInitialized) { 19536e612a488511940b61f09803b270aa1c61b68e0Jason Sams Element.init(this); 19636e612a488511940b61f09803b270aa1c61b68e0Jason Sams mElementsInitialized = true; 19760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 19860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 19960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 20060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ////////////////////////////////////////////////////////////////////////////////// 20160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich // Element 20260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 20336e612a488511940b61f09803b270aa1c61b68e0Jason Sams Element.Builder mElementBuilder = new Element.Builder(this); 20436e612a488511940b61f09803b270aa1c61b68e0Jason Sams public Element.Builder elementBuilderCreate() throws IllegalStateException { 20536e612a488511940b61f09803b270aa1c61b68e0Jason Sams mElementBuilder.begin(); 20636e612a488511940b61f09803b270aa1c61b68e0Jason Sams return mElementBuilder; 20760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 20860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 20960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 21060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 21160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 21260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public enum DepthFunc { 21360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ALWAYS (0), 21460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich LESS (1), 21560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich LEQUAL (2), 21660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich GREATER (3), 21760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich GEQUAL (4), 21860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich EQUAL (5), 21960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich NOTEQUAL (6); 22060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 22160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int mID; 22260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich DepthFunc(int id) { 22360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 22460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 22560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 22660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 22760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public enum BlendSrcFunc { 22860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ZERO (0), 22960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ONE (1), 23060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich DST_COLOR (2), 23160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ONE_MINUS_DST_COLOR (3), 23260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich SRC_ALPHA (4), 23360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ONE_MINUS_SRC_ALPHA (5), 23460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich DST_ALPHA (6), 23560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ONE_MINUS_DST_ALPA (7), 23660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich SRC_ALPHA_SATURATE (8); 23760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 23860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int mID; 23960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich BlendSrcFunc(int id) { 24060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 24160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 24260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 24360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 24460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public enum BlendDstFunc { 24560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ZERO (0), 24660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ONE (1), 24760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich SRC_COLOR (2), 24860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ONE_MINUS_SRC_COLOR (3), 24960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich SRC_ALPHA (4), 25060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ONE_MINUS_SRC_ALPHA (5), 25160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich DST_ALPHA (6), 25260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ONE_MINUS_DST_ALPA (7); 25360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 25460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int mID; 25560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich BlendDstFunc(int id) { 25660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 25760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 25860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 25960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 26060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public enum EnvMode { 26160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich REPLACE (0), 26260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich MODULATE (1), 26360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich DECAL (2); 26460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 26560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int mID; 26660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich EnvMode(int id) { 26760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 26860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 26960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 27060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 27102fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams public enum SamplerParam { 27202fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams FILTER_MIN (0), 27302fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams FILTER_MAG (1), 27402fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams WRAP_MODE_S (2), 27502fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams WRAP_MODE_T (3), 27602fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams WRAP_MODE_R (4); 27702fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 27802fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams int mID; 27902fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams SamplerParam(int id) { 28002fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams mID = id; 28102fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 28202fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 28302fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 28402fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams public enum SamplerValue { 28502fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams NEAREST (0), 28602fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams LINEAR (1), 28702fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams LINEAR_MIP_LINEAR (2), 28802fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams WRAP (3), 28902fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams CLAMP (4); 29002fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 29102fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams int mID; 29202fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams SamplerValue(int id) { 29302fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams mID = id; 29402fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 29502fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 29602fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 29760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ////////////////////////////////////////////////////////////////////////////////// 29860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich // Type 29960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 30060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public enum Dimension { 30160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich X (0), 30260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich Y (1), 30360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich Z (2), 30460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich LOD (3), 30560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich FACE (4), 30660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ARRAY_0 (100); 30760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 30860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int mID; 30960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich Dimension(int id) { 31060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 31160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 31260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 31360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 31460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public class Type extends BaseObj { 31560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich Type(int id) { 31636e612a488511940b61f09803b270aa1c61b68e0Jason Sams super(RenderScript.this); 31760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 31860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 31960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 32060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void destroy() { 32160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nTypeDestroy(mID); 32260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = 0; 32360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 32460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 32560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 32660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void typeBegin(Element e) { 32760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nTypeBegin(e.mID); 32860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 32960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 33060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void typeAdd(Dimension d, int value) { 33160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nTypeAdd(d.mID, value); 33260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 33360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 33460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public Type typeCreate() { 33560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int id = nTypeCreate(); 33660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich return new Type(id); 33760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 33860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 33960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 34060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ////////////////////////////////////////////////////////////////////////////////// 34160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich // Allocation 34260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 34360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public class Allocation extends BaseObj { 34460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich Allocation(int id) { 34536e612a488511940b61f09803b270aa1c61b68e0Jason Sams super(RenderScript.this); 34660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 34760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 34860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 34960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void uploadToTexture(int baseMipLevel) { 35060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nAllocationUploadToTexture(mID, baseMipLevel); 35160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 35260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 35360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void destroy() { 35460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nAllocationDestroy(mID); 35560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = 0; 35660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 35760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 35860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void data(int[] d) { 35960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nAllocationData(mID, d); 36060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 36160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 36260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void data(float[] d) { 36360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nAllocationData(mID, d); 36460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 36560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 36660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void subData1D(int off, int count, int[] d) { 36760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nAllocationSubData1D(mID, off, count, d); 36860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 36960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 37060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void subData1D(int off, int count, float[] d) { 37160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nAllocationSubData1D(mID, off, count, d); 37260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 37360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 37460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void subData2D(int xoff, int yoff, int w, int h, int[] d) { 37560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nAllocationSubData2D(mID, xoff, yoff, w, h, d); 37660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 37760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 37860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void subData2D(int xoff, int yoff, int w, int h, float[] d) { 37960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nAllocationSubData2D(mID, xoff, yoff, w, h, d); 38060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 38160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 38260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 38360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public Allocation allocationCreateTyped(Type type) { 38460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int id = nAllocationCreateTyped(type.mID); 38560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich return new Allocation(id); 38660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 38760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 38860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public Allocation allocationCreateSized(Element e, int count) { 38936e612a488511940b61f09803b270aa1c61b68e0Jason Sams int id; 39036e612a488511940b61f09803b270aa1c61b68e0Jason Sams if(e.mIsPredefined) { 39136e612a488511940b61f09803b270aa1c61b68e0Jason Sams id = nAllocationCreatePredefSized(e.mPredefinedID, count); 39236e612a488511940b61f09803b270aa1c61b68e0Jason Sams } else { 39336e612a488511940b61f09803b270aa1c61b68e0Jason Sams id = nAllocationCreateSized(e.mID, count); 39436e612a488511940b61f09803b270aa1c61b68e0Jason Sams } 39560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich return new Allocation(id); 39660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 39760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 39836e612a488511940b61f09803b270aa1c61b68e0Jason Sams public Allocation allocationCreateFromBitmap(Bitmap b, Element dstFmt, boolean genMips) 39936e612a488511940b61f09803b270aa1c61b68e0Jason Sams throws IllegalArgumentException { 40036e612a488511940b61f09803b270aa1c61b68e0Jason Sams if(!dstFmt.mIsPredefined) { 40136e612a488511940b61f09803b270aa1c61b68e0Jason Sams throw new IllegalStateException("Attempting to allocate a bitmap with a non-static element."); 40236e612a488511940b61f09803b270aa1c61b68e0Jason Sams } 40336e612a488511940b61f09803b270aa1c61b68e0Jason Sams 40436e612a488511940b61f09803b270aa1c61b68e0Jason Sams int id = nAllocationCreateFromBitmap(dstFmt.mPredefinedID, genMips, b); 405b0ec1b46d6f5b5612e33fe43a828abea79b87a00Jason Sams return new Allocation(id); 406b0ec1b46d6f5b5612e33fe43a828abea79b87a00Jason Sams } 407b0ec1b46d6f5b5612e33fe43a828abea79b87a00Jason Sams 40836e612a488511940b61f09803b270aa1c61b68e0Jason Sams public Allocation allocationCreateFromBitmapBoxed(Bitmap b, Element dstFmt, boolean genMips) 40936e612a488511940b61f09803b270aa1c61b68e0Jason Sams throws IllegalArgumentException { 41036e612a488511940b61f09803b270aa1c61b68e0Jason Sams if(!dstFmt.mIsPredefined) { 41136e612a488511940b61f09803b270aa1c61b68e0Jason Sams throw new IllegalStateException("Attempting to allocate a bitmap with a non-static element."); 41236e612a488511940b61f09803b270aa1c61b68e0Jason Sams } 41336e612a488511940b61f09803b270aa1c61b68e0Jason Sams 41436e612a488511940b61f09803b270aa1c61b68e0Jason Sams int id = nAllocationCreateFromBitmapBoxed(dstFmt.mPredefinedID, genMips, b); 415fe08d99725efd0dde7ba67ff1979a04fec2ba99fJason Sams return new Allocation(id); 416fe08d99725efd0dde7ba67ff1979a04fec2ba99fJason Sams } 41760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 41836e612a488511940b61f09803b270aa1c61b68e0Jason Sams public Allocation allocationCreateFromBitmapResource(Resources res, int id, Element dstFmt, boolean genMips) 41936e612a488511940b61f09803b270aa1c61b68e0Jason Sams throws IllegalArgumentException { 42036e612a488511940b61f09803b270aa1c61b68e0Jason Sams 421dba3ba5b5bf6026abceced921b1b0d231b0faefdJason Sams Bitmap b = BitmapFactory.decodeResource(res, id, mBitmapOptions); 42236e612a488511940b61f09803b270aa1c61b68e0Jason Sams return allocationCreateFromBitmap(b, dstFmt, genMips); 423dba3ba5b5bf6026abceced921b1b0d231b0faefdJason Sams } 424dba3ba5b5bf6026abceced921b1b0d231b0faefdJason Sams 42536e612a488511940b61f09803b270aa1c61b68e0Jason Sams public Allocation allocationCreateFromBitmapResourceBoxed(Resources res, int id, Element dstFmt, boolean genMips) 42636e612a488511940b61f09803b270aa1c61b68e0Jason Sams throws IllegalArgumentException { 42736e612a488511940b61f09803b270aa1c61b68e0Jason Sams 428dba3ba5b5bf6026abceced921b1b0d231b0faefdJason Sams Bitmap b = BitmapFactory.decodeResource(res, id, mBitmapOptions); 42936e612a488511940b61f09803b270aa1c61b68e0Jason Sams return allocationCreateFromBitmapBoxed(b, dstFmt, genMips); 430dba3ba5b5bf6026abceced921b1b0d231b0faefdJason Sams } 431dba3ba5b5bf6026abceced921b1b0d231b0faefdJason Sams 432dba3ba5b5bf6026abceced921b1b0d231b0faefdJason Sams 43360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ////////////////////////////////////////////////////////////////////////////////// 43460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich // Adapter1D 43560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 43660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public class Adapter1D extends BaseObj { 43760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich Adapter1D(int id) { 43836e612a488511940b61f09803b270aa1c61b68e0Jason Sams super(RenderScript.this); 43960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 44060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 44160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 44260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void destroy() { 44360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nAdapter1DDestroy(mID); 44460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = 0; 44560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 44660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 44760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void bindAllocation(Allocation a) { 44860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nAdapter1DBindAllocation(mID, a.mID); 44960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 45060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 45160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void setConstraint(Dimension dim, int value) { 45260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nAdapter1DSetConstraint(mID, dim.mID, value); 45360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 45460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 45560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void data(int[] d) { 45660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nAdapter1DData(mID, d); 45760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 45860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 45960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void subData(int off, int count, int[] d) { 46060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nAdapter1DSubData(mID, off, count, d); 46160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 46260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 46360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void data(float[] d) { 46460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nAdapter1DData(mID, d); 46560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 46660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 46760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void subData(int off, int count, float[] d) { 46860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nAdapter1DSubData(mID, off, count, d); 46960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 47060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 47160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 47260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public Adapter1D adapter1DCreate() { 47360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int id = nAdapter1DCreate(); 47460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich return new Adapter1D(id); 47560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 47660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 47760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 47860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ////////////////////////////////////////////////////////////////////////////////// 47960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich // Triangle Mesh 48060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 48160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public class TriangleMesh extends BaseObj { 48260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich TriangleMesh(int id) { 48336e612a488511940b61f09803b270aa1c61b68e0Jason Sams super(RenderScript.this); 48460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 48560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 48660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 48760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void destroy() { 48860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nTriangleMeshDestroy(mID); 48960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = 0; 49060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 49160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 49260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 49360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void triangleMeshBegin(Element vertex, Element index) { 49436e612a488511940b61f09803b270aa1c61b68e0Jason Sams Log.e("rs", "vtx " + vertex.toString() + " " + vertex.mID + " " + vertex.mPredefinedID); 49560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nTriangleMeshBegin(vertex.mID, index.mID); 49660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 49760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 49860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void triangleMeshAddVertex_XY(float x, float y) { 49960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nTriangleMeshAddVertex_XY(x, y); 50060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 50160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 50260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void triangleMeshAddVertex_XYZ(float x, float y, float z) { 50360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nTriangleMeshAddVertex_XYZ(x, y, z); 50460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 50560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 50660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void triangleMeshAddVertex_XY_ST(float x, float y, float s, float t) { 50760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nTriangleMeshAddVertex_XY_ST(x, y, s, t); 50860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 50960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 51060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void triangleMeshAddVertex_XYZ_ST(float x, float y, float z, float s, float t) { 51160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nTriangleMeshAddVertex_XYZ_ST(x, y, z, s, t); 51260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 51360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 5140826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams public void triangleMeshAddVertex_XYZ_ST_NORM(float x, float y, float z, float s, float t, float nx, float ny, float nz) { 5150826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams nTriangleMeshAddVertex_XYZ_ST_NORM(x, y, z, s, t, nx, ny, nz); 5160826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams } 5170826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams 51860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void triangleMeshAddTriangle(int i1, int i2, int i3) { 51960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nTriangleMeshAddTriangle(i1, i2, i3); 52060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 52160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 52260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public TriangleMesh triangleMeshCreate() { 52360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int id = nTriangleMeshCreate(); 52460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich return new TriangleMesh(id); 52560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 52660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 52760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ////////////////////////////////////////////////////////////////////////////////// 52860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich // Script 52960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 53060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public class Script extends BaseObj { 53160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich Script(int id) { 53236e612a488511940b61f09803b270aa1c61b68e0Jason Sams super(RenderScript.this); 53360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 53460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 53560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 53660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void destroy() { 53760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nScriptDestroy(mID); 53860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = 0; 53960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 54060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 54160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void bindAllocation(Allocation va, int slot) { 54260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nScriptBindAllocation(mID, va.mID, slot); 54360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 54460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 54560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 54660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void scriptCBegin() { 54760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nScriptCBegin(); 54860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 54960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 550584a375df68ed7d62b38389078c6804edf228f9cRomain Guy public void scriptCSetTimeZone(String timeZone) { 551584a375df68ed7d62b38389078c6804edf228f9cRomain Guy try { 552584a375df68ed7d62b38389078c6804edf228f9cRomain Guy byte[] bytes = timeZone.getBytes("UTF-8"); 55336e612a488511940b61f09803b270aa1c61b68e0Jason Sams nScriptCSetTimeZone(bytes); 554584a375df68ed7d62b38389078c6804edf228f9cRomain Guy } catch (java.io.UnsupportedEncodingException e) { 555584a375df68ed7d62b38389078c6804edf228f9cRomain Guy throw new RuntimeException(e); 556584a375df68ed7d62b38389078c6804edf228f9cRomain Guy } 557584a375df68ed7d62b38389078c6804edf228f9cRomain Guy } 55836e612a488511940b61f09803b270aa1c61b68e0Jason Sams 55960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void scriptCSetClearColor(float r, float g, float b, float a) { 56060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nScriptCSetClearColor(r, g, b, a); 56160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 56260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 56360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void scriptCSetClearDepth(float d) { 56460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nScriptCSetClearDepth(d); 56560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 56660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 56760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void scriptCSetClearStencil(int stencil) { 56860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nScriptCSetClearStencil(stencil); 56960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 57060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 57160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void scriptCAddType(Type t) { 57260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nScriptCAddType(t.mID); 57360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 57460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 57560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void scriptCSetRoot(boolean r) { 57660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nScriptCSetRoot(r); 57760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 57860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 57960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void scriptCSetScript(String s) { 58043702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich try { 58163975dde40e4ee8fd08225741b31d54eff115104Jack Palevich byte[] bytes = s.getBytes("UTF-8"); 58263975dde40e4ee8fd08225741b31d54eff115104Jack Palevich nScriptCSetScript(bytes, 0, bytes.length); 58343702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } catch (java.io.UnsupportedEncodingException e) { 58443702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich throw new RuntimeException(e); 58543702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } 58643702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } 58743702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich 58843702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich public void scriptCSetScript(Resources resources, int id) { 58943702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich InputStream is = resources.openRawResource(id); 59043702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich try { 59143702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich try { 59243702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich scriptCSetScript(is); 59343702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } finally { 59443702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich is.close(); 59543702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } 59643702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } catch(IOException e) { 59743702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich throw new Resources.NotFoundException(); 59843702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } 59943702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } 60043702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich 60143702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich public void scriptCSetScript(InputStream is) throws IOException { 60243702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich byte[] buf = new byte[1024]; 60343702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich int currentPos = 0; 60443702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich while(true) { 60543702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich int bytesLeft = buf.length - currentPos; 60643702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich if (bytesLeft == 0) { 60743702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich byte[] buf2 = new byte[buf.length * 2]; 60843702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich System.arraycopy(buf, 0, buf2, 0, buf.length); 60943702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich buf = buf2; 61043702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich bytesLeft = buf.length - currentPos; 61143702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } 61243702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich int bytesRead = is.read(buf, currentPos, bytesLeft); 61343702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich if (bytesRead <= 0) { 61443702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich break; 61543702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } 61643702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich currentPos += bytesRead; 61743702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } 61843702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich nScriptCSetScript(buf, 0, currentPos); 61960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 62060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 62160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public Script scriptCCreate() { 62260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int id = nScriptCCreate(); 62360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich return new Script(id); 62460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 62560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 62660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ////////////////////////////////////////////////////////////////////////////////// 6271fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams // ProgramVertex 6281fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 6291fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams public class ProgramVertex extends BaseObj { 6301fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams ProgramVertex(int id) { 63136e612a488511940b61f09803b270aa1c61b68e0Jason Sams super(RenderScript.this); 6321fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams mID = id; 6331fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams } 6341fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 6351fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams public void destroy() { 6361fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams nProgramVertexDestroy(mID); 6371fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams mID = 0; 6381fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams } 6391fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 6401fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams public void bindAllocation(int slot, Allocation va) { 6411fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams nProgramVertexBindAllocation(mID, slot, va.mID); 6421fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams } 6431fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams } 6441fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 6451fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams public void programVertexBegin(Element in, Element out) { 6461fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams int inID = 0; 6471fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams int outID = 0; 6481fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams if (in != null) { 6491fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams inID = in.mID; 6501fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams } 6511fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams if (out != null) { 6521fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams outID = out.mID; 6531fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams } 6541fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams nProgramVertexBegin(inID, outID); 6551fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams } 6561fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 6571fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams public void programVertexSetType(int slot, Type t) { 6581fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams nProgramVertexSetType(slot, t.mID); 6591fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams } 6601fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 6611fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams public void programVertexSetTextureMatrixEnable(boolean enable) { 6621fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams nProgramVertexSetTextureMatrixEnable(enable); 6631fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams } 6641fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 665ee41112e1539de95596600fd2c6dada5d275217fJason Sams public void programVertexAddLight(Light l) { 666ee41112e1539de95596600fd2c6dada5d275217fJason Sams nProgramVertexAddLight(l.mID); 667ee41112e1539de95596600fd2c6dada5d275217fJason Sams } 668ee41112e1539de95596600fd2c6dada5d275217fJason Sams 6691fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams public ProgramVertex programVertexCreate() { 6701fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams int id = nProgramVertexCreate(); 6711fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams return new ProgramVertex(id); 6721fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams } 6731fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 6741fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 6751fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams ////////////////////////////////////////////////////////////////////////////////// 67660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich // ProgramFragmentStore 67760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 67860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public class ProgramFragmentStore extends BaseObj { 67960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ProgramFragmentStore(int id) { 68036e612a488511940b61f09803b270aa1c61b68e0Jason Sams super(RenderScript.this); 68160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 68260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 68360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 68460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void destroy() { 6853eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams nProgramFragmentStoreDestroy(mID); 68660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = 0; 68760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 68860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 68960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 69060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void programFragmentStoreBegin(Element in, Element out) { 69160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int inID = 0; 69260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int outID = 0; 69360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich if (in != null) { 69460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich inID = in.mID; 69560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 69660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich if (out != null) { 69760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich outID = out.mID; 69860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 69960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentStoreBegin(inID, outID); 70060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 70160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 70260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void programFragmentStoreDepthFunc(DepthFunc func) { 70360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentStoreDepthFunc(func.mID); 70460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 70560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 70660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void programFragmentStoreDepthMask(boolean enable) { 70760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentStoreDepthMask(enable); 70860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 70960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 71060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void programFragmentStoreColorMask(boolean r, boolean g, boolean b, boolean a) { 71160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentStoreColorMask(r,g,b,a); 71260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 71360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 71460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void programFragmentStoreBlendFunc(BlendSrcFunc src, BlendDstFunc dst) { 71560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentStoreBlendFunc(src.mID, dst.mID); 71660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 71760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 71860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void programFragmentStoreDitherEnable(boolean enable) { 71960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentStoreDither(enable); 72060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 72160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 72260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public ProgramFragmentStore programFragmentStoreCreate() { 72360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int id = nProgramFragmentStoreCreate(); 72460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich return new ProgramFragmentStore(id); 72560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 72660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 72760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ////////////////////////////////////////////////////////////////////////////////// 72860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich // ProgramFragment 72960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 73060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public class ProgramFragment extends BaseObj { 73160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ProgramFragment(int id) { 73236e612a488511940b61f09803b270aa1c61b68e0Jason Sams super(RenderScript.this); 73360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 73460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 73560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 73660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void destroy() { 7373eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams nProgramFragmentDestroy(mID); 73860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = 0; 73960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 74060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 74160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void bindTexture(Allocation va, int slot) { 74260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentBindTexture(mID, slot, va.mID); 74360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 74460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 74502fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams public void bindSampler(Sampler vs, int slot) { 74602fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams nProgramFragmentBindSampler(mID, slot, vs.mID); 74702fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 74860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 74960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 75060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void programFragmentBegin(Element in, Element out) { 75160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int inID = 0; 75260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int outID = 0; 75360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich if (in != null) { 75460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich inID = in.mID; 75560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 75660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich if (out != null) { 75760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich outID = out.mID; 75860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 75960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentBegin(inID, outID); 76060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 76160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 76260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void programFragmentSetType(int slot, Type t) { 76360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentSetType(slot, t.mID); 76460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 76560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 76660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void programFragmentSetType(int slot, EnvMode t) { 76760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentSetEnvMode(slot, t.mID); 76860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 76960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 77060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void programFragmentSetTexEnable(int slot, boolean enable) { 77160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentSetTexEnable(slot, enable); 77260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 77360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 774e6c8e9b8c7a83381c7dfbf86ac34e0302d397beeJason Sams public void programFragmentSetTexEnvMode(int slot, EnvMode env) { 775e6c8e9b8c7a83381c7dfbf86ac34e0302d397beeJason Sams nProgramFragmentSetEnvMode(slot, env.mID); 776e6c8e9b8c7a83381c7dfbf86ac34e0302d397beeJason Sams } 777e6c8e9b8c7a83381c7dfbf86ac34e0302d397beeJason Sams 77860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public ProgramFragment programFragmentCreate() { 77960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int id = nProgramFragmentCreate(); 78060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich return new ProgramFragment(id); 78160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 78260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 78302fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams ////////////////////////////////////////////////////////////////////////////////// 78402fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams // Sampler 78502fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 78602fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams public class Sampler extends BaseObj { 78702fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams Sampler(int id) { 78836e612a488511940b61f09803b270aa1c61b68e0Jason Sams super(RenderScript.this); 78902fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams mID = id; 79002fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 79102fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 79202fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams public void destroy() { 79302fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams nSamplerDestroy(mID); 79402fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams mID = 0; 79502fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 79602fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 79702fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 79802fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams public void samplerBegin() { 79902fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams nSamplerBegin(); 80002fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 80102fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 80202fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams public void samplerSet(SamplerParam p, SamplerValue v) { 80302fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams nSamplerSet(p.mID, v.mID); 80402fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 80502fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 80602fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams public Sampler samplerCreate() { 80702fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams int id = nSamplerCreate(); 80802fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams return new Sampler(id); 80902fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 81002fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 811bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams ////////////////////////////////////////////////////////////////////////////////// 812bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams // Light 813bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 814bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams public class Light extends BaseObj { 815bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams Light(int id) { 81636e612a488511940b61f09803b270aa1c61b68e0Jason Sams super(RenderScript.this); 817bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams mID = id; 818bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams } 819bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 820bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams public void destroy() { 821bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams nLightDestroy(mID); 822bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams mID = 0; 823bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams } 824bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 825bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams public void setColor(float r, float g, float b) { 826bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams nLightSetColor(mID, r, g, b); 827bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams } 828bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 829bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams public void setPosition(float x, float y, float z) { 830bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams nLightSetPosition(mID, x, y, z); 831bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams } 832bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams } 833bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 834bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams public void lightBegin() { 835bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams nLightBegin(); 836bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams } 837bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 838bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams public void lightSetIsMono(boolean isMono) { 839bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams nLightSetIsMono(isMono); 840bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams } 841bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 842bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams public void lightSetIsLocal(boolean isLocal) { 843bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams nLightSetIsLocal(isLocal); 844bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams } 845bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 846bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams public Light lightCreate() { 847bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams int id = nLightCreate(); 848bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams return new Light(id); 849bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams } 85060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 85164676f3c21a07d650069315572811570cbf8f728Jason Sams ////////////////////////////////////////////////////////////////////////////////// 85264676f3c21a07d650069315572811570cbf8f728Jason Sams // File 85364676f3c21a07d650069315572811570cbf8f728Jason Sams 85464676f3c21a07d650069315572811570cbf8f728Jason Sams public class File extends BaseObj { 85564676f3c21a07d650069315572811570cbf8f728Jason Sams File(int id) { 85636e612a488511940b61f09803b270aa1c61b68e0Jason Sams super(RenderScript.this); 85764676f3c21a07d650069315572811570cbf8f728Jason Sams mID = id; 85864676f3c21a07d650069315572811570cbf8f728Jason Sams } 85964676f3c21a07d650069315572811570cbf8f728Jason Sams 86064676f3c21a07d650069315572811570cbf8f728Jason Sams public void destroy() { 86164676f3c21a07d650069315572811570cbf8f728Jason Sams //nLightDestroy(mID); 86264676f3c21a07d650069315572811570cbf8f728Jason Sams mID = 0; 86364676f3c21a07d650069315572811570cbf8f728Jason Sams } 86464676f3c21a07d650069315572811570cbf8f728Jason Sams } 86564676f3c21a07d650069315572811570cbf8f728Jason Sams 86664676f3c21a07d650069315572811570cbf8f728Jason Sams public File fileOpen(String s) throws IllegalStateException, IllegalArgumentException 86764676f3c21a07d650069315572811570cbf8f728Jason Sams { 86864676f3c21a07d650069315572811570cbf8f728Jason Sams if(s.length() < 1) { 86964676f3c21a07d650069315572811570cbf8f728Jason Sams throw new IllegalArgumentException("fileOpen does not accept a zero length string."); 87064676f3c21a07d650069315572811570cbf8f728Jason Sams } 87164676f3c21a07d650069315572811570cbf8f728Jason Sams 87264676f3c21a07d650069315572811570cbf8f728Jason Sams try { 87364676f3c21a07d650069315572811570cbf8f728Jason Sams byte[] bytes = s.getBytes("UTF-8"); 87464676f3c21a07d650069315572811570cbf8f728Jason Sams int id = nFileOpen(bytes); 87564676f3c21a07d650069315572811570cbf8f728Jason Sams return new File(id); 87664676f3c21a07d650069315572811570cbf8f728Jason Sams } catch (java.io.UnsupportedEncodingException e) { 87764676f3c21a07d650069315572811570cbf8f728Jason Sams throw new RuntimeException(e); 87864676f3c21a07d650069315572811570cbf8f728Jason Sams } 87964676f3c21a07d650069315572811570cbf8f728Jason Sams } 88064676f3c21a07d650069315572811570cbf8f728Jason Sams 88164676f3c21a07d650069315572811570cbf8f728Jason Sams 88260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich /////////////////////////////////////////////////////////////////////////////////// 88360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich // Root state 88460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 88560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void contextBindRootScript(Script s) { 88660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nContextBindRootScript(s.mID); 88760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 88860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 88960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich //public void contextBindSampler(Sampler s, int slot) { 89060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich //nContextBindSampler(s.mID); 89160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich //} 89260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 89360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void contextBindProgramFragmentStore(ProgramFragmentStore pfs) { 89460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nContextBindProgramFragmentStore(pfs.mID); 89560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 89660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 89760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void contextBindProgramFragment(ProgramFragment pf) { 89860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nContextBindProgramFragment(pf.mID); 89960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 90060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 9010826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams public void contextBindProgramVertex(ProgramVertex pf) { 9020826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams nContextBindProgramVertex(pf.mID); 9030826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams } 9040826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams 90560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich/* 90660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich RsAdapter2D rsAdapter2DCreate (); 90760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich void rsAdapter2DBindAllocation (RsAdapter2D adapt, RsAllocation alloc); 90860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich void rsAdapter2DDestroy (RsAdapter2D adapter); 90960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich void rsAdapter2DSetConstraint (RsAdapter2D adapter, RsDimension dim, uint32_t value); 91060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich void rsAdapter2DData (RsAdapter2D adapter, const void * data); 91160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich void rsAdapter2DSubData (RsAdapter2D adapter, uint32_t xoff, uint32_t yoff, uint32_t w, uint32_t h, const void * data); 91260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich void rsSamplerBegin (); 91360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich void rsSamplerSet (RsSamplerParam p, RsSamplerValue value); 91460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich RsSampler rsSamplerCreate (); 91560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich void rsSamplerBind (RsSampler sampler, RsAllocation alloc); 91660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich*/ 91760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 91860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich} 91960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 92036e612a488511940b61f09803b270aa1c61b68e0Jason Sams 921