RenderScript.java revision b8c5a84e7c23746a3fc26013e0880d3d95ca6588
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; 23b8c5a84e7c23746a3fc26013e0880d3d95ca6588Jason Samsimport android.graphics.Bitmap; 2436e612a488511940b61f09803b270aa1c61b68e0Jason Samsimport android.util.Config; 2536e612a488511940b61f09803b270aa1c61b68e0Jason Samsimport android.util.Log; 2636e612a488511940b61f09803b270aa1c61b68e0Jason Samsimport android.view.Surface; 2743702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich 2860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 29e29d471e5ca9781d8772d445ec7832e94856fd14Jason Sams/** 30e29d471e5ca9781d8772d445ec7832e94856fd14Jason Sams * @hide 31e29d471e5ca9781d8772d445ec7832e94856fd14Jason Sams * 32e29d471e5ca9781d8772d445ec7832e94856fd14Jason Sams **/ 3360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevichpublic class RenderScript { 34f29ca50d80e3dc379de1642e85b7963175b2ca38Jason Sams static final String LOG_TAG = "libRS_jni"; 3560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich private static final boolean DEBUG = false; 3660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich private static final boolean LOG_ENABLED = DEBUG ? Config.LOGD : Config.LOGV; 3760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 3860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 3960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 4002fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams /* 4160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich * We use a class initializer to allow the native code to cache some 4260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich * field offsets. 4360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich */ 4460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich private static boolean sInitialized; 4560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private static void _nInit(); 4660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 47dba3ba5b5bf6026abceced921b1b0d231b0faefdJason Sams 4860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich static { 4960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich sInitialized = false; 5060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich try { 51e29d471e5ca9781d8772d445ec7832e94856fd14Jason Sams System.loadLibrary("rs_jni"); 5260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich _nInit(); 5360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich sInitialized = true; 5460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } catch (UnsatisfiedLinkError e) { 5560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich Log.d(LOG_TAG, "RenderScript JNI library not found!"); 5660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 5760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 5860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 5936e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nDeviceCreate(); 6036e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nDeviceDestroy(int dev); 6136e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nContextCreate(int dev, Surface sur, int ver); 6236e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nContextDestroy(int con); 6360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 6460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich //void rsContextBindSampler (uint32_t slot, RsSampler sampler); 6560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich //void rsContextBindRootScript (RsScript sampler); 6636e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nContextBindRootScript(int script); 6736e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nContextBindSampler(int sampler, int slot); 6836e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nContextBindProgramFragmentStore(int pfs); 6936e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nContextBindProgramFragment(int pf); 7036e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nContextBindProgramVertex(int pf); 7136e612a488511940b61f09803b270aa1c61b68e0Jason Sams 7236e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nAssignName(int obj, byte[] name); 7336e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nFileOpen(byte[] name); 7436e612a488511940b61f09803b270aa1c61b68e0Jason Sams 7536e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nElementBegin(); 7636e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nElementAddPredefined(int predef); 7736e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nElementAdd(int kind, int type, int norm, int bits); 7836e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nElementCreate(); 7936e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nElementGetPredefined(int predef); 8036e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nElementDestroy(int obj); 8136e612a488511940b61f09803b270aa1c61b68e0Jason Sams 8236e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nTypeBegin(int elementID); 8336e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nTypeAdd(int dim, int val); 8436e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nTypeCreate(); 8536e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nTypeDestroy(int id); 8636e612a488511940b61f09803b270aa1c61b68e0Jason Sams 8736e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nAllocationCreateTyped(int type); 8836e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nAllocationCreatePredefSized(int predef, int count); 8936e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nAllocationCreateSized(int elem, int count); 9036e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nAllocationCreateFromBitmap(int dstFmt, boolean genMips, Bitmap bmp); 9136e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nAllocationCreateFromBitmapBoxed(int dstFmt, boolean genMips, Bitmap bmp); 9236e612a488511940b61f09803b270aa1c61b68e0Jason Sams 9336e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nAllocationUploadToTexture(int alloc, int baseMioLevel); 9436e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nAllocationDestroy(int alloc); 9536e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nAllocationData(int id, int[] d); 9636e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nAllocationData(int id, float[] d); 9736e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nAllocationSubData1D(int id, int off, int count, int[] d); 9836e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nAllocationSubData1D(int id, int off, int count, float[] d); 9936e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nAllocationSubData2D(int id, int xoff, int yoff, int w, int h, int[] d); 10036e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nAllocationSubData2D(int id, int xoff, int yoff, int w, int h, float[] d); 10136e612a488511940b61f09803b270aa1c61b68e0Jason Sams 10236e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nTriangleMeshDestroy(int id); 10336e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nTriangleMeshBegin(int vertex, int index); 10436e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nTriangleMeshAddVertex_XY (float x, float y); 10536e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nTriangleMeshAddVertex_XYZ (float x, float y, float z); 10636e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nTriangleMeshAddVertex_XY_ST (float x, float y, float s, float t); 10736e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nTriangleMeshAddVertex_XYZ_ST (float x, float y, float z, float s, float t); 10836e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nTriangleMeshAddVertex_XYZ_ST_NORM (float x, float y, float z, float s, float t, float nx, float ny, float nz); 10936e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nTriangleMeshAddTriangle(int i1, int i2, int i3); 11036e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nTriangleMeshCreate(); 11136e612a488511940b61f09803b270aa1c61b68e0Jason Sams 11236e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nAdapter1DDestroy(int id); 11336e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nAdapter1DBindAllocation(int ad, int alloc); 11436e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nAdapter1DSetConstraint(int ad, int dim, int value); 11536e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nAdapter1DData(int ad, int[] d); 11636e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nAdapter1DSubData(int ad, int off, int count, int[] d); 11736e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nAdapter1DData(int ad, float[] d); 11836e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nAdapter1DSubData(int ad, int off, int count, float[] d); 11936e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nAdapter1DCreate(); 12036e612a488511940b61f09803b270aa1c61b68e0Jason Sams 12136e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nScriptDestroy(int script); 12236e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nScriptBindAllocation(int vtm, int alloc, int slot); 12336e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nScriptCBegin(); 12436e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nScriptCSetClearColor(float r, float g, float b, float a); 12536e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nScriptCSetClearDepth(float depth); 12636e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nScriptCSetClearStencil(int stencil); 12736e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nScriptCSetTimeZone(byte[] timeZone); 12836e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nScriptCAddType(int type); 12936e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nScriptCSetRoot(boolean isRoot); 13036e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nScriptCSetScript(byte[] script, int offset, int length); 13136e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nScriptCCreate(); 13236e612a488511940b61f09803b270aa1c61b68e0Jason Sams 13336e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nSamplerDestroy(int sampler); 13436e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nSamplerBegin(); 13536e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nSamplerSet(int param, int value); 13636e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nSamplerCreate(); 13736e612a488511940b61f09803b270aa1c61b68e0Jason Sams 13836e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramFragmentStoreBegin(int in, int out); 13936e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramFragmentStoreDepthFunc(int func); 14036e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramFragmentStoreDepthMask(boolean enable); 14136e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramFragmentStoreColorMask(boolean r, boolean g, boolean b, boolean a); 14236e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramFragmentStoreBlendFunc(int src, int dst); 14336e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramFragmentStoreDither(boolean enable); 14436e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nProgramFragmentStoreCreate(); 14536e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramFragmentStoreDestroy(int pgm); 14636e612a488511940b61f09803b270aa1c61b68e0Jason Sams 14736e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramFragmentBegin(int in, int out); 14836e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramFragmentBindTexture(int vpf, int slot, int a); 14936e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramFragmentBindSampler(int vpf, int slot, int s); 15036e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramFragmentSetType(int slot, int vt); 15136e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramFragmentSetEnvMode(int slot, int env); 15236e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramFragmentSetTexEnable(int slot, boolean enable); 15336e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nProgramFragmentCreate(); 15436e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramFragmentDestroy(int pgm); 15536e612a488511940b61f09803b270aa1c61b68e0Jason Sams 15636e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramVertexDestroy(int pv); 15736e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramVertexBindAllocation(int pv, int slot, int mID); 15836e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramVertexBegin(int inID, int outID); 15936e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramVertexSetType(int slot, int mID); 16036e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramVertexSetTextureMatrixEnable(boolean enable); 16136e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramVertexAddLight(int id); 16236e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nProgramVertexCreate(); 16336e612a488511940b61f09803b270aa1c61b68e0Jason Sams 16436e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nLightBegin(); 16536e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nLightSetIsMono(boolean isMono); 16636e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nLightSetIsLocal(boolean isLocal); 16736e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nLightCreate(); 16836e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nLightDestroy(int l); 16936e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nLightSetColor(int l, float r, float g, float b); 17036e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nLightSetPosition(int l, float x, float y, float z); 171bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 17260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 17360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich private int mDev; 17460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich private int mContext; 17560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich private Surface mSurface; 17660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 17736e612a488511940b61f09803b270aa1c61b68e0Jason Sams private static boolean mElementsInitialized = false; 17860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 17960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich /////////////////////////////////////////////////////////////////////////////////// 18043702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich // 18160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 18260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich RenderScript(Surface sur) { 18360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mSurface = sur; 18460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mDev = nDeviceCreate(); 18560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mContext = nContextCreate(mDev, mSurface, 0); 18660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 18736e612a488511940b61f09803b270aa1c61b68e0Jason Sams // TODO: This should be protected by a lock 18836e612a488511940b61f09803b270aa1c61b68e0Jason Sams if(!mElementsInitialized) { 18936e612a488511940b61f09803b270aa1c61b68e0Jason Sams Element.init(this); 19036e612a488511940b61f09803b270aa1c61b68e0Jason Sams mElementsInitialized = true; 19160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 19260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 19360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 19460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ////////////////////////////////////////////////////////////////////////////////// 19560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich // Element 19660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 19736e612a488511940b61f09803b270aa1c61b68e0Jason Sams Element.Builder mElementBuilder = new Element.Builder(this); 19836e612a488511940b61f09803b270aa1c61b68e0Jason Sams public Element.Builder elementBuilderCreate() throws IllegalStateException { 19936e612a488511940b61f09803b270aa1c61b68e0Jason Sams mElementBuilder.begin(); 20036e612a488511940b61f09803b270aa1c61b68e0Jason Sams return mElementBuilder; 20160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 20260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 203b8c5a84e7c23746a3fc26013e0880d3d95ca6588Jason Sams Type.Builder mTypeBuilder = new Type.Builder(this); 204b8c5a84e7c23746a3fc26013e0880d3d95ca6588Jason Sams public Type.Builder typeBuilderCreate(Element e) throws IllegalStateException { 205b8c5a84e7c23746a3fc26013e0880d3d95ca6588Jason Sams mTypeBuilder.begin(e); 206b8c5a84e7c23746a3fc26013e0880d3d95ca6588Jason Sams return mTypeBuilder; 207b8c5a84e7c23746a3fc26013e0880d3d95ca6588Jason Sams } 20860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 20960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 21060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 21160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public enum DepthFunc { 21260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ALWAYS (0), 21360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich LESS (1), 21460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich LEQUAL (2), 21560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich GREATER (3), 21660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich GEQUAL (4), 21760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich EQUAL (5), 21860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich NOTEQUAL (6); 21960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 22060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int mID; 22160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich DepthFunc(int id) { 22260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 22360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 22460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 22560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 22660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public enum BlendSrcFunc { 22760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ZERO (0), 22860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ONE (1), 22960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich DST_COLOR (2), 23060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ONE_MINUS_DST_COLOR (3), 23160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich SRC_ALPHA (4), 23260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ONE_MINUS_SRC_ALPHA (5), 23360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich DST_ALPHA (6), 23460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ONE_MINUS_DST_ALPA (7), 23560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich SRC_ALPHA_SATURATE (8); 23660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 23760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int mID; 23860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich BlendSrcFunc(int id) { 23960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 24060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 24160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 24260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 24360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public enum BlendDstFunc { 24460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ZERO (0), 24560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ONE (1), 24660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich SRC_COLOR (2), 24760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ONE_MINUS_SRC_COLOR (3), 24860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich SRC_ALPHA (4), 24960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ONE_MINUS_SRC_ALPHA (5), 25060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich DST_ALPHA (6), 25160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ONE_MINUS_DST_ALPA (7); 25260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 25360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int mID; 25460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich BlendDstFunc(int id) { 25560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 25660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 25760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 25860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 25960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public enum EnvMode { 26060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich REPLACE (0), 26160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich MODULATE (1), 26260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich DECAL (2); 26360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 26460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int mID; 26560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich EnvMode(int id) { 26660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 26760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 26860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 26960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 27002fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams public enum SamplerParam { 27102fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams FILTER_MIN (0), 27202fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams FILTER_MAG (1), 27302fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams WRAP_MODE_S (2), 27402fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams WRAP_MODE_T (3), 27502fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams WRAP_MODE_R (4); 27602fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 27702fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams int mID; 27802fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams SamplerParam(int id) { 27902fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams mID = id; 28002fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 28102fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 28202fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 28302fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams public enum SamplerValue { 28402fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams NEAREST (0), 28502fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams LINEAR (1), 28602fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams LINEAR_MIP_LINEAR (2), 28702fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams WRAP (3), 28802fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams CLAMP (4); 28902fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 29002fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams int mID; 29102fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams SamplerValue(int id) { 29202fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams mID = id; 29302fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 29402fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 29502fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 29660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ////////////////////////////////////////////////////////////////////////////////// 29760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich // Triangle Mesh 29860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 29960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public class TriangleMesh extends BaseObj { 30060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich TriangleMesh(int id) { 30136e612a488511940b61f09803b270aa1c61b68e0Jason Sams super(RenderScript.this); 30260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 30360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 30460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 30560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void destroy() { 30660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nTriangleMeshDestroy(mID); 30760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = 0; 30860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 30960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 31060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 31160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void triangleMeshBegin(Element vertex, Element index) { 31236e612a488511940b61f09803b270aa1c61b68e0Jason Sams Log.e("rs", "vtx " + vertex.toString() + " " + vertex.mID + " " + vertex.mPredefinedID); 31360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nTriangleMeshBegin(vertex.mID, index.mID); 31460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 31560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 31660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void triangleMeshAddVertex_XY(float x, float y) { 31760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nTriangleMeshAddVertex_XY(x, y); 31860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 31960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 32060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void triangleMeshAddVertex_XYZ(float x, float y, float z) { 32160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nTriangleMeshAddVertex_XYZ(x, y, z); 32260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 32360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 32460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void triangleMeshAddVertex_XY_ST(float x, float y, float s, float t) { 32560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nTriangleMeshAddVertex_XY_ST(x, y, s, t); 32660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 32760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 32860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void triangleMeshAddVertex_XYZ_ST(float x, float y, float z, float s, float t) { 32960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nTriangleMeshAddVertex_XYZ_ST(x, y, z, s, t); 33060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 33160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 3320826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams public void triangleMeshAddVertex_XYZ_ST_NORM(float x, float y, float z, float s, float t, float nx, float ny, float nz) { 3330826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams nTriangleMeshAddVertex_XYZ_ST_NORM(x, y, z, s, t, nx, ny, nz); 3340826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams } 3350826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams 33660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void triangleMeshAddTriangle(int i1, int i2, int i3) { 33760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nTriangleMeshAddTriangle(i1, i2, i3); 33860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 33960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 34060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public TriangleMesh triangleMeshCreate() { 34160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int id = nTriangleMeshCreate(); 34260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich return new TriangleMesh(id); 34360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 34460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 34560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ////////////////////////////////////////////////////////////////////////////////// 34660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich // Script 34760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 34860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public class Script extends BaseObj { 34960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich Script(int id) { 35036e612a488511940b61f09803b270aa1c61b68e0Jason Sams super(RenderScript.this); 35160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 35260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 35360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 35460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void destroy() { 35560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nScriptDestroy(mID); 35660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = 0; 35760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 35860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 35960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void bindAllocation(Allocation va, int slot) { 36060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nScriptBindAllocation(mID, va.mID, slot); 36160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 36260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 36360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 36460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void scriptCBegin() { 36560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nScriptCBegin(); 36660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 36760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 368584a375df68ed7d62b38389078c6804edf228f9cRomain Guy public void scriptCSetTimeZone(String timeZone) { 369584a375df68ed7d62b38389078c6804edf228f9cRomain Guy try { 370584a375df68ed7d62b38389078c6804edf228f9cRomain Guy byte[] bytes = timeZone.getBytes("UTF-8"); 37136e612a488511940b61f09803b270aa1c61b68e0Jason Sams nScriptCSetTimeZone(bytes); 372584a375df68ed7d62b38389078c6804edf228f9cRomain Guy } catch (java.io.UnsupportedEncodingException e) { 373584a375df68ed7d62b38389078c6804edf228f9cRomain Guy throw new RuntimeException(e); 374584a375df68ed7d62b38389078c6804edf228f9cRomain Guy } 375584a375df68ed7d62b38389078c6804edf228f9cRomain Guy } 37636e612a488511940b61f09803b270aa1c61b68e0Jason Sams 37760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void scriptCSetClearColor(float r, float g, float b, float a) { 37860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nScriptCSetClearColor(r, g, b, a); 37960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 38060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 38160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void scriptCSetClearDepth(float d) { 38260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nScriptCSetClearDepth(d); 38360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 38460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 38560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void scriptCSetClearStencil(int stencil) { 38660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nScriptCSetClearStencil(stencil); 38760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 38860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 38960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void scriptCAddType(Type t) { 39060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nScriptCAddType(t.mID); 39160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 39260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 39360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void scriptCSetRoot(boolean r) { 39460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nScriptCSetRoot(r); 39560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 39660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 39760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void scriptCSetScript(String s) { 39843702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich try { 39963975dde40e4ee8fd08225741b31d54eff115104Jack Palevich byte[] bytes = s.getBytes("UTF-8"); 40063975dde40e4ee8fd08225741b31d54eff115104Jack Palevich nScriptCSetScript(bytes, 0, bytes.length); 40143702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } catch (java.io.UnsupportedEncodingException e) { 40243702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich throw new RuntimeException(e); 40343702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } 40443702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } 40543702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich 40643702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich public void scriptCSetScript(Resources resources, int id) { 40743702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich InputStream is = resources.openRawResource(id); 40843702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich try { 40943702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich try { 41043702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich scriptCSetScript(is); 41143702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } finally { 41243702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich is.close(); 41343702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } 41443702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } catch(IOException e) { 41543702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich throw new Resources.NotFoundException(); 41643702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } 41743702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } 41843702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich 41943702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich public void scriptCSetScript(InputStream is) throws IOException { 42043702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich byte[] buf = new byte[1024]; 42143702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich int currentPos = 0; 42243702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich while(true) { 42343702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich int bytesLeft = buf.length - currentPos; 42443702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich if (bytesLeft == 0) { 42543702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich byte[] buf2 = new byte[buf.length * 2]; 42643702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich System.arraycopy(buf, 0, buf2, 0, buf.length); 42743702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich buf = buf2; 42843702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich bytesLeft = buf.length - currentPos; 42943702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } 43043702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich int bytesRead = is.read(buf, currentPos, bytesLeft); 43143702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich if (bytesRead <= 0) { 43243702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich break; 43343702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } 43443702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich currentPos += bytesRead; 43543702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } 43643702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich nScriptCSetScript(buf, 0, currentPos); 43760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 43860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 43960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public Script scriptCCreate() { 44060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int id = nScriptCCreate(); 44160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich return new Script(id); 44260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 44360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 44460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ////////////////////////////////////////////////////////////////////////////////// 4451fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams // ProgramVertex 4461fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 4471fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams public class ProgramVertex extends BaseObj { 4481fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams ProgramVertex(int id) { 44936e612a488511940b61f09803b270aa1c61b68e0Jason Sams super(RenderScript.this); 4501fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams mID = id; 4511fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams } 4521fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 4531fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams public void destroy() { 4541fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams nProgramVertexDestroy(mID); 4551fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams mID = 0; 4561fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams } 4571fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 4581fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams public void bindAllocation(int slot, Allocation va) { 4591fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams nProgramVertexBindAllocation(mID, slot, va.mID); 4601fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams } 4611fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams } 4621fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 4631fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams public void programVertexBegin(Element in, Element out) { 4641fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams int inID = 0; 4651fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams int outID = 0; 4661fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams if (in != null) { 4671fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams inID = in.mID; 4681fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams } 4691fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams if (out != null) { 4701fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams outID = out.mID; 4711fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams } 4721fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams nProgramVertexBegin(inID, outID); 4731fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams } 4741fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 4751fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams public void programVertexSetType(int slot, Type t) { 4761fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams nProgramVertexSetType(slot, t.mID); 4771fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams } 4781fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 4791fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams public void programVertexSetTextureMatrixEnable(boolean enable) { 4801fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams nProgramVertexSetTextureMatrixEnable(enable); 4811fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams } 4821fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 483ee41112e1539de95596600fd2c6dada5d275217fJason Sams public void programVertexAddLight(Light l) { 484ee41112e1539de95596600fd2c6dada5d275217fJason Sams nProgramVertexAddLight(l.mID); 485ee41112e1539de95596600fd2c6dada5d275217fJason Sams } 486ee41112e1539de95596600fd2c6dada5d275217fJason Sams 4871fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams public ProgramVertex programVertexCreate() { 4881fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams int id = nProgramVertexCreate(); 4891fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams return new ProgramVertex(id); 4901fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams } 4911fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 4921fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 4931fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams ////////////////////////////////////////////////////////////////////////////////// 49460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich // ProgramFragmentStore 49560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 49660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public class ProgramFragmentStore extends BaseObj { 49760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ProgramFragmentStore(int id) { 49836e612a488511940b61f09803b270aa1c61b68e0Jason Sams super(RenderScript.this); 49960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 50060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 50160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 50260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void destroy() { 5033eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams nProgramFragmentStoreDestroy(mID); 50460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = 0; 50560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 50660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 50760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 50860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void programFragmentStoreBegin(Element in, Element out) { 50960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int inID = 0; 51060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int outID = 0; 51160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich if (in != null) { 51260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich inID = in.mID; 51360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 51460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich if (out != null) { 51560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich outID = out.mID; 51660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 51760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentStoreBegin(inID, outID); 51860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 51960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 52060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void programFragmentStoreDepthFunc(DepthFunc func) { 52160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentStoreDepthFunc(func.mID); 52260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 52360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 52460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void programFragmentStoreDepthMask(boolean enable) { 52560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentStoreDepthMask(enable); 52660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 52760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 52860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void programFragmentStoreColorMask(boolean r, boolean g, boolean b, boolean a) { 52960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentStoreColorMask(r,g,b,a); 53060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 53160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 53260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void programFragmentStoreBlendFunc(BlendSrcFunc src, BlendDstFunc dst) { 53360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentStoreBlendFunc(src.mID, dst.mID); 53460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 53560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 53660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void programFragmentStoreDitherEnable(boolean enable) { 53760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentStoreDither(enable); 53860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 53960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 54060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public ProgramFragmentStore programFragmentStoreCreate() { 54160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int id = nProgramFragmentStoreCreate(); 54260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich return new ProgramFragmentStore(id); 54360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 54460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 54560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ////////////////////////////////////////////////////////////////////////////////// 54660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich // ProgramFragment 54760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 54860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public class ProgramFragment extends BaseObj { 54960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ProgramFragment(int id) { 55036e612a488511940b61f09803b270aa1c61b68e0Jason Sams super(RenderScript.this); 55160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 55260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 55360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 55460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void destroy() { 5553eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams nProgramFragmentDestroy(mID); 55660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = 0; 55760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 55860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 55960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void bindTexture(Allocation va, int slot) { 56060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentBindTexture(mID, slot, va.mID); 56160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 56260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 56302fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams public void bindSampler(Sampler vs, int slot) { 56402fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams nProgramFragmentBindSampler(mID, slot, vs.mID); 56502fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 56660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 56760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 56860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void programFragmentBegin(Element in, Element out) { 56960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int inID = 0; 57060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int outID = 0; 57160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich if (in != null) { 57260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich inID = in.mID; 57360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 57460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich if (out != null) { 57560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich outID = out.mID; 57660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 57760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentBegin(inID, outID); 57860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 57960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 58060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void programFragmentSetType(int slot, Type t) { 58160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentSetType(slot, t.mID); 58260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 58360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 58460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void programFragmentSetType(int slot, EnvMode t) { 58560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentSetEnvMode(slot, t.mID); 58660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 58760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 58860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void programFragmentSetTexEnable(int slot, boolean enable) { 58960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentSetTexEnable(slot, enable); 59060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 59160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 592e6c8e9b8c7a83381c7dfbf86ac34e0302d397beeJason Sams public void programFragmentSetTexEnvMode(int slot, EnvMode env) { 593e6c8e9b8c7a83381c7dfbf86ac34e0302d397beeJason Sams nProgramFragmentSetEnvMode(slot, env.mID); 594e6c8e9b8c7a83381c7dfbf86ac34e0302d397beeJason Sams } 595e6c8e9b8c7a83381c7dfbf86ac34e0302d397beeJason Sams 59660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public ProgramFragment programFragmentCreate() { 59760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int id = nProgramFragmentCreate(); 59860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich return new ProgramFragment(id); 59960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 60060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 60102fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams ////////////////////////////////////////////////////////////////////////////////// 60202fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams // Sampler 60302fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 60402fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams public class Sampler extends BaseObj { 60502fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams Sampler(int id) { 60636e612a488511940b61f09803b270aa1c61b68e0Jason Sams super(RenderScript.this); 60702fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams mID = id; 60802fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 60902fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 61002fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams public void destroy() { 61102fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams nSamplerDestroy(mID); 61202fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams mID = 0; 61302fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 61402fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 61502fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 61602fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams public void samplerBegin() { 61702fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams nSamplerBegin(); 61802fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 61902fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 62002fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams public void samplerSet(SamplerParam p, SamplerValue v) { 62102fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams nSamplerSet(p.mID, v.mID); 62202fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 62302fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 62402fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams public Sampler samplerCreate() { 62502fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams int id = nSamplerCreate(); 62602fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams return new Sampler(id); 62702fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 62802fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 629bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams ////////////////////////////////////////////////////////////////////////////////// 630bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams // Light 631bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 632bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams public class Light extends BaseObj { 633bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams Light(int id) { 63436e612a488511940b61f09803b270aa1c61b68e0Jason Sams super(RenderScript.this); 635bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams mID = id; 636bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams } 637bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 638bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams public void destroy() { 639bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams nLightDestroy(mID); 640bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams mID = 0; 641bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams } 642bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 643bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams public void setColor(float r, float g, float b) { 644bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams nLightSetColor(mID, r, g, b); 645bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams } 646bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 647bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams public void setPosition(float x, float y, float z) { 648bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams nLightSetPosition(mID, x, y, z); 649bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams } 650bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams } 651bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 652bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams public void lightBegin() { 653bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams nLightBegin(); 654bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams } 655bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 656bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams public void lightSetIsMono(boolean isMono) { 657bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams nLightSetIsMono(isMono); 658bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams } 659bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 660bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams public void lightSetIsLocal(boolean isLocal) { 661bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams nLightSetIsLocal(isLocal); 662bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams } 663bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 664bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams public Light lightCreate() { 665bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams int id = nLightCreate(); 666bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams return new Light(id); 667bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams } 66860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 66964676f3c21a07d650069315572811570cbf8f728Jason Sams ////////////////////////////////////////////////////////////////////////////////// 67064676f3c21a07d650069315572811570cbf8f728Jason Sams // File 67164676f3c21a07d650069315572811570cbf8f728Jason Sams 67264676f3c21a07d650069315572811570cbf8f728Jason Sams public class File extends BaseObj { 67364676f3c21a07d650069315572811570cbf8f728Jason Sams File(int id) { 67436e612a488511940b61f09803b270aa1c61b68e0Jason Sams super(RenderScript.this); 67564676f3c21a07d650069315572811570cbf8f728Jason Sams mID = id; 67664676f3c21a07d650069315572811570cbf8f728Jason Sams } 67764676f3c21a07d650069315572811570cbf8f728Jason Sams 67864676f3c21a07d650069315572811570cbf8f728Jason Sams public void destroy() { 67964676f3c21a07d650069315572811570cbf8f728Jason Sams //nLightDestroy(mID); 68064676f3c21a07d650069315572811570cbf8f728Jason Sams mID = 0; 68164676f3c21a07d650069315572811570cbf8f728Jason Sams } 68264676f3c21a07d650069315572811570cbf8f728Jason Sams } 68364676f3c21a07d650069315572811570cbf8f728Jason Sams 68464676f3c21a07d650069315572811570cbf8f728Jason Sams public File fileOpen(String s) throws IllegalStateException, IllegalArgumentException 68564676f3c21a07d650069315572811570cbf8f728Jason Sams { 68664676f3c21a07d650069315572811570cbf8f728Jason Sams if(s.length() < 1) { 68764676f3c21a07d650069315572811570cbf8f728Jason Sams throw new IllegalArgumentException("fileOpen does not accept a zero length string."); 68864676f3c21a07d650069315572811570cbf8f728Jason Sams } 68964676f3c21a07d650069315572811570cbf8f728Jason Sams 69064676f3c21a07d650069315572811570cbf8f728Jason Sams try { 69164676f3c21a07d650069315572811570cbf8f728Jason Sams byte[] bytes = s.getBytes("UTF-8"); 69264676f3c21a07d650069315572811570cbf8f728Jason Sams int id = nFileOpen(bytes); 69364676f3c21a07d650069315572811570cbf8f728Jason Sams return new File(id); 69464676f3c21a07d650069315572811570cbf8f728Jason Sams } catch (java.io.UnsupportedEncodingException e) { 69564676f3c21a07d650069315572811570cbf8f728Jason Sams throw new RuntimeException(e); 69664676f3c21a07d650069315572811570cbf8f728Jason Sams } 69764676f3c21a07d650069315572811570cbf8f728Jason Sams } 69864676f3c21a07d650069315572811570cbf8f728Jason Sams 69964676f3c21a07d650069315572811570cbf8f728Jason Sams 70060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich /////////////////////////////////////////////////////////////////////////////////// 70160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich // Root state 70260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 70360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void contextBindRootScript(Script s) { 70460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nContextBindRootScript(s.mID); 70560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 70660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 70760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich //public void contextBindSampler(Sampler s, int slot) { 70860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich //nContextBindSampler(s.mID); 70960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich //} 71060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 71160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void contextBindProgramFragmentStore(ProgramFragmentStore pfs) { 71260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nContextBindProgramFragmentStore(pfs.mID); 71360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 71460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 71560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void contextBindProgramFragment(ProgramFragment pf) { 71660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nContextBindProgramFragment(pf.mID); 71760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 71860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 7190826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams public void contextBindProgramVertex(ProgramVertex pf) { 7200826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams nContextBindProgramVertex(pf.mID); 7210826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams } 7220826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams 72360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich/* 72460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich RsAdapter2D rsAdapter2DCreate (); 72560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich void rsAdapter2DBindAllocation (RsAdapter2D adapt, RsAllocation alloc); 72660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich void rsAdapter2DDestroy (RsAdapter2D adapter); 72760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich void rsAdapter2DSetConstraint (RsAdapter2D adapter, RsDimension dim, uint32_t value); 72860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich void rsAdapter2DData (RsAdapter2D adapter, const void * data); 72960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich void rsAdapter2DSubData (RsAdapter2D adapter, uint32_t xoff, uint32_t yoff, uint32_t w, uint32_t h, const void * data); 73060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich void rsSamplerBegin (); 73160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich void rsSamplerSet (RsSamplerParam p, RsSamplerValue value); 73260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich RsSampler rsSamplerCreate (); 73360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich void rsSamplerBind (RsSampler sampler, RsAllocation alloc); 73460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich*/ 73560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 73660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich} 73760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 73836e612a488511940b61f09803b270aa1c61b68e0Jason Sams 739