RenderScript.java revision bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacb
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 nAdapter1DData(int ad, float[] d); 117bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams native void nAdapter1DSubData(int ad, int off, int count, int[] d); 11836e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nAdapter1DSubData(int ad, int off, int count, float[] d); 11936e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nAdapter1DCreate(); 12036e612a488511940b61f09803b270aa1c61b68e0Jason Sams 121bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams native void nAdapter2DDestroy(int id); 122bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams native void nAdapter2DBindAllocation(int ad, int alloc); 123bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams native void nAdapter2DSetConstraint(int ad, int dim, int value); 124bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams native void nAdapter2DData(int ad, int[] d); 125bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams native void nAdapter2DData(int ad, float[] d); 126bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams native void nAdapter2DSubData(int ad, int xoff, int yoff, int w, int h, int[] d); 127bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams native void nAdapter2DSubData(int ad, int xoff, int yoff, int w, int h, float[] d); 128bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams native int nAdapter2DCreate(); 129bd1c3ad0cdf8e60b849a009cdc0b36764cc1dacbJason Sams 13036e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nScriptDestroy(int script); 13136e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nScriptBindAllocation(int vtm, int alloc, int slot); 13236e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nScriptCBegin(); 13336e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nScriptCSetClearColor(float r, float g, float b, float a); 13436e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nScriptCSetClearDepth(float depth); 13536e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nScriptCSetClearStencil(int stencil); 13636e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nScriptCSetTimeZone(byte[] timeZone); 13736e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nScriptCAddType(int type); 13836e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nScriptCSetRoot(boolean isRoot); 13936e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nScriptCSetScript(byte[] script, int offset, int length); 14036e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nScriptCCreate(); 14136e612a488511940b61f09803b270aa1c61b68e0Jason Sams 14236e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nSamplerDestroy(int sampler); 14336e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nSamplerBegin(); 14436e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nSamplerSet(int param, int value); 14536e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nSamplerCreate(); 14636e612a488511940b61f09803b270aa1c61b68e0Jason Sams 14736e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramFragmentStoreBegin(int in, int out); 14836e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramFragmentStoreDepthFunc(int func); 14936e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramFragmentStoreDepthMask(boolean enable); 15036e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramFragmentStoreColorMask(boolean r, boolean g, boolean b, boolean a); 15136e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramFragmentStoreBlendFunc(int src, int dst); 15236e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramFragmentStoreDither(boolean enable); 15336e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nProgramFragmentStoreCreate(); 15436e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramFragmentStoreDestroy(int pgm); 15536e612a488511940b61f09803b270aa1c61b68e0Jason Sams 15636e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramFragmentBegin(int in, int out); 15736e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramFragmentBindTexture(int vpf, int slot, int a); 15836e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramFragmentBindSampler(int vpf, int slot, int s); 15936e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramFragmentSetType(int slot, int vt); 16036e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramFragmentSetEnvMode(int slot, int env); 16136e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramFragmentSetTexEnable(int slot, boolean enable); 16236e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nProgramFragmentCreate(); 16336e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramFragmentDestroy(int pgm); 16436e612a488511940b61f09803b270aa1c61b68e0Jason Sams 16536e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramVertexDestroy(int pv); 16636e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramVertexBindAllocation(int pv, int slot, int mID); 16736e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramVertexBegin(int inID, int outID); 16836e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramVertexSetType(int slot, int mID); 16936e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramVertexSetTextureMatrixEnable(boolean enable); 17036e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nProgramVertexAddLight(int id); 17136e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nProgramVertexCreate(); 17236e612a488511940b61f09803b270aa1c61b68e0Jason Sams 17336e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nLightBegin(); 17436e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nLightSetIsMono(boolean isMono); 17536e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nLightSetIsLocal(boolean isLocal); 17636e612a488511940b61f09803b270aa1c61b68e0Jason Sams native int nLightCreate(); 17736e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nLightDestroy(int l); 17836e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nLightSetColor(int l, float r, float g, float b); 17936e612a488511940b61f09803b270aa1c61b68e0Jason Sams native void nLightSetPosition(int l, float x, float y, float z); 180bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 18160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 18260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich private int mDev; 18360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich private int mContext; 18460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich private Surface mSurface; 18560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 18636e612a488511940b61f09803b270aa1c61b68e0Jason Sams private static boolean mElementsInitialized = false; 18760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 18860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich /////////////////////////////////////////////////////////////////////////////////// 18943702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich // 19060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 19160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich RenderScript(Surface sur) { 19260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mSurface = sur; 19360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mDev = nDeviceCreate(); 19460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mContext = nContextCreate(mDev, mSurface, 0); 19560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 19636e612a488511940b61f09803b270aa1c61b68e0Jason Sams // TODO: This should be protected by a lock 19736e612a488511940b61f09803b270aa1c61b68e0Jason Sams if(!mElementsInitialized) { 19836e612a488511940b61f09803b270aa1c61b68e0Jason Sams Element.init(this); 19936e612a488511940b61f09803b270aa1c61b68e0Jason Sams mElementsInitialized = true; 20060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 20160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 20260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 20360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ////////////////////////////////////////////////////////////////////////////////// 20460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich // Element 20560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 20636e612a488511940b61f09803b270aa1c61b68e0Jason Sams Element.Builder mElementBuilder = new Element.Builder(this); 20736e612a488511940b61f09803b270aa1c61b68e0Jason Sams public Element.Builder elementBuilderCreate() throws IllegalStateException { 20836e612a488511940b61f09803b270aa1c61b68e0Jason Sams mElementBuilder.begin(); 20936e612a488511940b61f09803b270aa1c61b68e0Jason Sams return mElementBuilder; 21060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 21160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 212b8c5a84e7c23746a3fc26013e0880d3d95ca6588Jason Sams Type.Builder mTypeBuilder = new Type.Builder(this); 213b8c5a84e7c23746a3fc26013e0880d3d95ca6588Jason Sams public Type.Builder typeBuilderCreate(Element e) throws IllegalStateException { 214b8c5a84e7c23746a3fc26013e0880d3d95ca6588Jason Sams mTypeBuilder.begin(e); 215b8c5a84e7c23746a3fc26013e0880d3d95ca6588Jason Sams return mTypeBuilder; 216b8c5a84e7c23746a3fc26013e0880d3d95ca6588Jason Sams } 21760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 21860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 21960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 22060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public enum DepthFunc { 22160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ALWAYS (0), 22260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich LESS (1), 22360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich LEQUAL (2), 22460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich GREATER (3), 22560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich GEQUAL (4), 22660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich EQUAL (5), 22760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich NOTEQUAL (6); 22860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 22960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int mID; 23060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich DepthFunc(int id) { 23160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 23260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 23360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 23460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 23560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public enum BlendSrcFunc { 23660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ZERO (0), 23760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ONE (1), 23860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich DST_COLOR (2), 23960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ONE_MINUS_DST_COLOR (3), 24060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich SRC_ALPHA (4), 24160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ONE_MINUS_SRC_ALPHA (5), 24260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich DST_ALPHA (6), 24360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ONE_MINUS_DST_ALPA (7), 24460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich SRC_ALPHA_SATURATE (8); 24560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 24660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int mID; 24760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich BlendSrcFunc(int id) { 24860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 24960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 25060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 25160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 25260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public enum BlendDstFunc { 25360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ZERO (0), 25460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ONE (1), 25560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich SRC_COLOR (2), 25660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ONE_MINUS_SRC_COLOR (3), 25760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich SRC_ALPHA (4), 25860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ONE_MINUS_SRC_ALPHA (5), 25960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich DST_ALPHA (6), 26060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ONE_MINUS_DST_ALPA (7); 26160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 26260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int mID; 26360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich BlendDstFunc(int id) { 26460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 26560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 26660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 26760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 26860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public enum EnvMode { 26960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich REPLACE (0), 27060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich MODULATE (1), 27160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich DECAL (2); 27260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 27360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int mID; 27460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich EnvMode(int id) { 27560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 27660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 27760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 27860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 27902fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams public enum SamplerParam { 28002fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams FILTER_MIN (0), 28102fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams FILTER_MAG (1), 28202fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams WRAP_MODE_S (2), 28302fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams WRAP_MODE_T (3), 28402fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams WRAP_MODE_R (4); 28502fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 28602fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams int mID; 28702fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams SamplerParam(int id) { 28802fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams mID = id; 28902fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 29002fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 29102fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 29202fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams public enum SamplerValue { 29302fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams NEAREST (0), 29402fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams LINEAR (1), 29502fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams LINEAR_MIP_LINEAR (2), 29602fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams WRAP (3), 29702fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams CLAMP (4); 29802fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 29902fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams int mID; 30002fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams SamplerValue(int id) { 30102fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams mID = id; 30202fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 30302fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 30402fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 30560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ////////////////////////////////////////////////////////////////////////////////// 30660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich // Triangle Mesh 30760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 30860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public class TriangleMesh extends BaseObj { 30960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich TriangleMesh(int id) { 31036e612a488511940b61f09803b270aa1c61b68e0Jason Sams super(RenderScript.this); 31160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 31260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 31360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 31460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void destroy() { 31560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nTriangleMeshDestroy(mID); 31660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = 0; 31760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 31860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 31960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 32060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void triangleMeshBegin(Element vertex, Element index) { 32136e612a488511940b61f09803b270aa1c61b68e0Jason Sams Log.e("rs", "vtx " + vertex.toString() + " " + vertex.mID + " " + vertex.mPredefinedID); 32260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nTriangleMeshBegin(vertex.mID, index.mID); 32360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 32460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 32560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void triangleMeshAddVertex_XY(float x, float y) { 32660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nTriangleMeshAddVertex_XY(x, y); 32760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 32860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 32960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void triangleMeshAddVertex_XYZ(float x, float y, float z) { 33060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nTriangleMeshAddVertex_XYZ(x, y, z); 33160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 33260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 33360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void triangleMeshAddVertex_XY_ST(float x, float y, float s, float t) { 33460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nTriangleMeshAddVertex_XY_ST(x, y, s, t); 33560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 33660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 33760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void triangleMeshAddVertex_XYZ_ST(float x, float y, float z, float s, float t) { 33860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nTriangleMeshAddVertex_XYZ_ST(x, y, z, s, t); 33960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 34060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 3410826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams public void triangleMeshAddVertex_XYZ_ST_NORM(float x, float y, float z, float s, float t, float nx, float ny, float nz) { 3420826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams nTriangleMeshAddVertex_XYZ_ST_NORM(x, y, z, s, t, nx, ny, nz); 3430826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams } 3440826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams 34560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void triangleMeshAddTriangle(int i1, int i2, int i3) { 34660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nTriangleMeshAddTriangle(i1, i2, i3); 34760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 34860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 34960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public TriangleMesh triangleMeshCreate() { 35060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int id = nTriangleMeshCreate(); 35160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich return new TriangleMesh(id); 35260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 35360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 35460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ////////////////////////////////////////////////////////////////////////////////// 35560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich // Script 35660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 35760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public class Script extends BaseObj { 35860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich Script(int id) { 35936e612a488511940b61f09803b270aa1c61b68e0Jason Sams super(RenderScript.this); 36060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 36160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 36260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 36360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void destroy() { 36460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nScriptDestroy(mID); 36560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = 0; 36660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 36760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 36860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void bindAllocation(Allocation va, int slot) { 36960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nScriptBindAllocation(mID, va.mID, slot); 37060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 37160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 37260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 37360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void scriptCBegin() { 37460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nScriptCBegin(); 37560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 37660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 377584a375df68ed7d62b38389078c6804edf228f9cRomain Guy public void scriptCSetTimeZone(String timeZone) { 378584a375df68ed7d62b38389078c6804edf228f9cRomain Guy try { 379584a375df68ed7d62b38389078c6804edf228f9cRomain Guy byte[] bytes = timeZone.getBytes("UTF-8"); 38036e612a488511940b61f09803b270aa1c61b68e0Jason Sams nScriptCSetTimeZone(bytes); 381584a375df68ed7d62b38389078c6804edf228f9cRomain Guy } catch (java.io.UnsupportedEncodingException e) { 382584a375df68ed7d62b38389078c6804edf228f9cRomain Guy throw new RuntimeException(e); 383584a375df68ed7d62b38389078c6804edf228f9cRomain Guy } 384584a375df68ed7d62b38389078c6804edf228f9cRomain Guy } 38536e612a488511940b61f09803b270aa1c61b68e0Jason Sams 38660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void scriptCSetClearColor(float r, float g, float b, float a) { 38760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nScriptCSetClearColor(r, g, b, a); 38860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 38960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 39060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void scriptCSetClearDepth(float d) { 39160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nScriptCSetClearDepth(d); 39260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 39360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 39460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void scriptCSetClearStencil(int stencil) { 39560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nScriptCSetClearStencil(stencil); 39660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 39760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 39860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void scriptCAddType(Type t) { 39960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nScriptCAddType(t.mID); 40060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 40160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 40260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void scriptCSetRoot(boolean r) { 40360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nScriptCSetRoot(r); 40460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 40560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 40660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void scriptCSetScript(String s) { 40743702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich try { 40863975dde40e4ee8fd08225741b31d54eff115104Jack Palevich byte[] bytes = s.getBytes("UTF-8"); 40963975dde40e4ee8fd08225741b31d54eff115104Jack Palevich nScriptCSetScript(bytes, 0, bytes.length); 41043702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } catch (java.io.UnsupportedEncodingException e) { 41143702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich throw new RuntimeException(e); 41243702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } 41343702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } 41443702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich 41543702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich public void scriptCSetScript(Resources resources, int id) { 41643702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich InputStream is = resources.openRawResource(id); 41743702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich try { 41843702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich try { 41943702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich scriptCSetScript(is); 42043702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } finally { 42143702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich is.close(); 42243702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } 42343702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } catch(IOException e) { 42443702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich throw new Resources.NotFoundException(); 42543702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } 42643702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } 42743702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich 42843702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich public void scriptCSetScript(InputStream is) throws IOException { 42943702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich byte[] buf = new byte[1024]; 43043702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich int currentPos = 0; 43143702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich while(true) { 43243702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich int bytesLeft = buf.length - currentPos; 43343702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich if (bytesLeft == 0) { 43443702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich byte[] buf2 = new byte[buf.length * 2]; 43543702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich System.arraycopy(buf, 0, buf2, 0, buf.length); 43643702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich buf = buf2; 43743702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich bytesLeft = buf.length - currentPos; 43843702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } 43943702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich int bytesRead = is.read(buf, currentPos, bytesLeft); 44043702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich if (bytesRead <= 0) { 44143702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich break; 44243702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } 44343702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich currentPos += bytesRead; 44443702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } 44543702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich nScriptCSetScript(buf, 0, currentPos); 44660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 44760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 44860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public Script scriptCCreate() { 44960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int id = nScriptCCreate(); 45060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich return new Script(id); 45160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 45260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 45360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ////////////////////////////////////////////////////////////////////////////////// 4541fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams // ProgramVertex 4551fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 4561fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams public class ProgramVertex extends BaseObj { 4571fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams ProgramVertex(int id) { 45836e612a488511940b61f09803b270aa1c61b68e0Jason Sams super(RenderScript.this); 4591fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams mID = id; 4601fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams } 4611fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 4621fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams public void destroy() { 4631fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams nProgramVertexDestroy(mID); 4641fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams mID = 0; 4651fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams } 4661fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 4671fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams public void bindAllocation(int slot, Allocation va) { 4681fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams nProgramVertexBindAllocation(mID, slot, va.mID); 4691fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams } 4701fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams } 4711fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 4721fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams public void programVertexBegin(Element in, Element out) { 4731fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams int inID = 0; 4741fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams int outID = 0; 4751fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams if (in != null) { 4761fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams inID = in.mID; 4771fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams } 4781fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams if (out != null) { 4791fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams outID = out.mID; 4801fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams } 4811fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams nProgramVertexBegin(inID, outID); 4821fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams } 4831fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 4841fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams public void programVertexSetType(int slot, Type t) { 4851fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams nProgramVertexSetType(slot, t.mID); 4861fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams } 4871fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 4881fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams public void programVertexSetTextureMatrixEnable(boolean enable) { 4891fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams nProgramVertexSetTextureMatrixEnable(enable); 4901fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams } 4911fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 492ee41112e1539de95596600fd2c6dada5d275217fJason Sams public void programVertexAddLight(Light l) { 493ee41112e1539de95596600fd2c6dada5d275217fJason Sams nProgramVertexAddLight(l.mID); 494ee41112e1539de95596600fd2c6dada5d275217fJason Sams } 495ee41112e1539de95596600fd2c6dada5d275217fJason Sams 4961fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams public ProgramVertex programVertexCreate() { 4971fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams int id = nProgramVertexCreate(); 4981fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams return new ProgramVertex(id); 4991fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams } 5001fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 5011fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 5021fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams ////////////////////////////////////////////////////////////////////////////////// 50360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich // ProgramFragmentStore 50460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 50560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public class ProgramFragmentStore extends BaseObj { 50660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ProgramFragmentStore(int id) { 50736e612a488511940b61f09803b270aa1c61b68e0Jason Sams super(RenderScript.this); 50860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 50960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 51060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 51160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void destroy() { 5123eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams nProgramFragmentStoreDestroy(mID); 51360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = 0; 51460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 51560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 51660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 51760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void programFragmentStoreBegin(Element in, Element out) { 51860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int inID = 0; 51960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int outID = 0; 52060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich if (in != null) { 52160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich inID = in.mID; 52260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 52360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich if (out != null) { 52460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich outID = out.mID; 52560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 52660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentStoreBegin(inID, outID); 52760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 52860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 52960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void programFragmentStoreDepthFunc(DepthFunc func) { 53060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentStoreDepthFunc(func.mID); 53160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 53260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 53360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void programFragmentStoreDepthMask(boolean enable) { 53460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentStoreDepthMask(enable); 53560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 53660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 53760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void programFragmentStoreColorMask(boolean r, boolean g, boolean b, boolean a) { 53860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentStoreColorMask(r,g,b,a); 53960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 54060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 54160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void programFragmentStoreBlendFunc(BlendSrcFunc src, BlendDstFunc dst) { 54260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentStoreBlendFunc(src.mID, dst.mID); 54360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 54460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 54560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void programFragmentStoreDitherEnable(boolean enable) { 54660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentStoreDither(enable); 54760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 54860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 54960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public ProgramFragmentStore programFragmentStoreCreate() { 55060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int id = nProgramFragmentStoreCreate(); 55160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich return new ProgramFragmentStore(id); 55260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 55360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 55460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ////////////////////////////////////////////////////////////////////////////////// 55560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich // ProgramFragment 55660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 55760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public class ProgramFragment extends BaseObj { 55860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ProgramFragment(int id) { 55936e612a488511940b61f09803b270aa1c61b68e0Jason Sams super(RenderScript.this); 56060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 56160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 56260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 56360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void destroy() { 5643eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams nProgramFragmentDestroy(mID); 56560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = 0; 56660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 56760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 56860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void bindTexture(Allocation va, int slot) { 56960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentBindTexture(mID, slot, va.mID); 57060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 57160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 57202fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams public void bindSampler(Sampler vs, int slot) { 57302fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams nProgramFragmentBindSampler(mID, slot, vs.mID); 57402fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 57560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 57660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 57760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void programFragmentBegin(Element in, Element out) { 57860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int inID = 0; 57960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int outID = 0; 58060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich if (in != null) { 58160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich inID = in.mID; 58260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 58360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich if (out != null) { 58460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich outID = out.mID; 58560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 58660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentBegin(inID, outID); 58760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 58860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 58960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void programFragmentSetType(int slot, Type t) { 59060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentSetType(slot, t.mID); 59160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 59260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 59360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void programFragmentSetType(int slot, EnvMode t) { 59460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentSetEnvMode(slot, t.mID); 59560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 59660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 59760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void programFragmentSetTexEnable(int slot, boolean enable) { 59860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentSetTexEnable(slot, enable); 59960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 60060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 601e6c8e9b8c7a83381c7dfbf86ac34e0302d397beeJason Sams public void programFragmentSetTexEnvMode(int slot, EnvMode env) { 602e6c8e9b8c7a83381c7dfbf86ac34e0302d397beeJason Sams nProgramFragmentSetEnvMode(slot, env.mID); 603e6c8e9b8c7a83381c7dfbf86ac34e0302d397beeJason Sams } 604e6c8e9b8c7a83381c7dfbf86ac34e0302d397beeJason Sams 60560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public ProgramFragment programFragmentCreate() { 60660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int id = nProgramFragmentCreate(); 60760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich return new ProgramFragment(id); 60860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 60960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 61002fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams ////////////////////////////////////////////////////////////////////////////////// 61102fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams // Sampler 61202fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 61302fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams public class Sampler extends BaseObj { 61402fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams Sampler(int id) { 61536e612a488511940b61f09803b270aa1c61b68e0Jason Sams super(RenderScript.this); 61602fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams mID = id; 61702fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 61802fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 61902fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams public void destroy() { 62002fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams nSamplerDestroy(mID); 62102fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams mID = 0; 62202fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 62302fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 62402fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 62502fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams public void samplerBegin() { 62602fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams nSamplerBegin(); 62702fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 62802fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 62902fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams public void samplerSet(SamplerParam p, SamplerValue v) { 63002fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams nSamplerSet(p.mID, v.mID); 63102fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 63202fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 63302fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams public Sampler samplerCreate() { 63402fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams int id = nSamplerCreate(); 63502fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams return new Sampler(id); 63602fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 63702fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 638bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams ////////////////////////////////////////////////////////////////////////////////// 639bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams // Light 640bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 641bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams public class Light extends BaseObj { 642bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams Light(int id) { 64336e612a488511940b61f09803b270aa1c61b68e0Jason Sams super(RenderScript.this); 644bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams mID = id; 645bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams } 646bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 647bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams public void destroy() { 648bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams nLightDestroy(mID); 649bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams mID = 0; 650bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams } 651bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 652bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams public void setColor(float r, float g, float b) { 653bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams nLightSetColor(mID, r, g, b); 654bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams } 655bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 656bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams public void setPosition(float x, float y, float z) { 657bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams nLightSetPosition(mID, x, y, z); 658bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams } 659bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams } 660bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 661bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams public void lightBegin() { 662bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams nLightBegin(); 663bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams } 664bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 665bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams public void lightSetIsMono(boolean isMono) { 666bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams nLightSetIsMono(isMono); 667bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams } 668bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 669bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams public void lightSetIsLocal(boolean isLocal) { 670bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams nLightSetIsLocal(isLocal); 671bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams } 672bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 673bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams public Light lightCreate() { 674bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams int id = nLightCreate(); 675bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams return new Light(id); 676bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams } 67760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 67864676f3c21a07d650069315572811570cbf8f728Jason Sams ////////////////////////////////////////////////////////////////////////////////// 67964676f3c21a07d650069315572811570cbf8f728Jason Sams // File 68064676f3c21a07d650069315572811570cbf8f728Jason Sams 68164676f3c21a07d650069315572811570cbf8f728Jason Sams public class File extends BaseObj { 68264676f3c21a07d650069315572811570cbf8f728Jason Sams File(int id) { 68336e612a488511940b61f09803b270aa1c61b68e0Jason Sams super(RenderScript.this); 68464676f3c21a07d650069315572811570cbf8f728Jason Sams mID = id; 68564676f3c21a07d650069315572811570cbf8f728Jason Sams } 68664676f3c21a07d650069315572811570cbf8f728Jason Sams 68764676f3c21a07d650069315572811570cbf8f728Jason Sams public void destroy() { 68864676f3c21a07d650069315572811570cbf8f728Jason Sams //nLightDestroy(mID); 68964676f3c21a07d650069315572811570cbf8f728Jason Sams mID = 0; 69064676f3c21a07d650069315572811570cbf8f728Jason Sams } 69164676f3c21a07d650069315572811570cbf8f728Jason Sams } 69264676f3c21a07d650069315572811570cbf8f728Jason Sams 69364676f3c21a07d650069315572811570cbf8f728Jason Sams public File fileOpen(String s) throws IllegalStateException, IllegalArgumentException 69464676f3c21a07d650069315572811570cbf8f728Jason Sams { 69564676f3c21a07d650069315572811570cbf8f728Jason Sams if(s.length() < 1) { 69664676f3c21a07d650069315572811570cbf8f728Jason Sams throw new IllegalArgumentException("fileOpen does not accept a zero length string."); 69764676f3c21a07d650069315572811570cbf8f728Jason Sams } 69864676f3c21a07d650069315572811570cbf8f728Jason Sams 69964676f3c21a07d650069315572811570cbf8f728Jason Sams try { 70064676f3c21a07d650069315572811570cbf8f728Jason Sams byte[] bytes = s.getBytes("UTF-8"); 70164676f3c21a07d650069315572811570cbf8f728Jason Sams int id = nFileOpen(bytes); 70264676f3c21a07d650069315572811570cbf8f728Jason Sams return new File(id); 70364676f3c21a07d650069315572811570cbf8f728Jason Sams } catch (java.io.UnsupportedEncodingException e) { 70464676f3c21a07d650069315572811570cbf8f728Jason Sams throw new RuntimeException(e); 70564676f3c21a07d650069315572811570cbf8f728Jason Sams } 70664676f3c21a07d650069315572811570cbf8f728Jason Sams } 70764676f3c21a07d650069315572811570cbf8f728Jason Sams 70864676f3c21a07d650069315572811570cbf8f728Jason Sams 70960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich /////////////////////////////////////////////////////////////////////////////////// 71060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich // Root state 71160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 71260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void contextBindRootScript(Script s) { 71360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nContextBindRootScript(s.mID); 71460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 71560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 71660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich //public void contextBindSampler(Sampler s, int slot) { 71760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich //nContextBindSampler(s.mID); 71860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich //} 71960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 72060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void contextBindProgramFragmentStore(ProgramFragmentStore pfs) { 72160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nContextBindProgramFragmentStore(pfs.mID); 72260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 72360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 72460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void contextBindProgramFragment(ProgramFragment pf) { 72560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nContextBindProgramFragment(pf.mID); 72660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 72760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 7280826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams public void contextBindProgramVertex(ProgramVertex pf) { 7290826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams nContextBindProgramVertex(pf.mID); 7300826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams } 7310826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams 73260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich} 73360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 73436e612a488511940b61f09803b270aa1c61b68e0Jason Sams 735