RenderScript.java revision bba134c8a1dcfe0c8473307a95899a02c9553504
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.InputStream; 2043702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevichimport java.io.IOException; 2143702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich 2260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevichimport android.os.Bundle; 2343702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevichimport android.content.res.Resources; 2460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevichimport android.util.Log; 2560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevichimport android.util.Config; 2660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevichimport android.view.Menu; 2760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevichimport android.view.MenuItem; 2860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevichimport android.view.Window; 2960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevichimport android.view.View; 3060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevichimport android.view.Surface; 31fe08d99725efd0dde7ba67ff1979a04fec2ba99fJason Samsimport android.graphics.Bitmap; 32fe08d99725efd0dde7ba67ff1979a04fec2ba99fJason Samsimport android.graphics.Color; 3360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 3460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevichpublic class RenderScript { 3560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich private static final String LOG_TAG = "libRS_jni"; 3660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich private static final boolean DEBUG = false; 3760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich private static final boolean LOG_ENABLED = DEBUG ? Config.LOGD : Config.LOGV; 3860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 3960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 4060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 4102fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams /* 4260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich * We use a class initializer to allow the native code to cache some 4360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich * field offsets. 4460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich */ 4560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich private static boolean sInitialized; 4660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private static void _nInit(); 4760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 4860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich static { 4960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich sInitialized = false; 5060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich try { 5160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 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 5960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private int nDeviceCreate(); 6060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nDeviceDestroy(int dev); 6160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private int nContextCreate(int dev, Surface sur, int ver); 6260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nContextDestroy(int con); 6360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 6460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich //void rsContextBindSampler (uint32_t slot, RsSampler sampler); 6560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich //void rsContextBindRootScript (RsScript sampler); 6660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nContextBindRootScript(int script); 6760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nContextBindSampler(int sampler, int slot); 6860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nContextBindProgramFragmentStore(int pfs); 6960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nContextBindProgramFragment(int pf); 700826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams native private void nContextBindProgramVertex(int pf); 7160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 723eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams native private void nAssignName(int obj, byte[] name); 733eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams 7460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nElementBegin(); 7560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nElementAddPredefined(int predef); 7660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nElementAdd(int kind, int type, int norm, int bits); 7760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private int nElementCreate(); 7860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private int nElementGetPredefined(int predef); 7960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nElementDestroy(int obj); 8060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 8160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nTypeBegin(int elementID); 8260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nTypeAdd(int dim, int val); 8360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private int nTypeCreate(); 8460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nTypeDestroy(int id); 8560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 8660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private int nAllocationCreateTyped(int type); 8760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private int nAllocationCreatePredefSized(int predef, int count); 8860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private int nAllocationCreateSized(int elem, int count); 89ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams native private int nAllocationCreateFromBitmap(int dstFmt, boolean genMips, Bitmap bmp); 90fe08d99725efd0dde7ba67ff1979a04fec2ba99fJason Sams 9160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nAllocationUploadToTexture(int alloc, int baseMioLevel); 9260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nAllocationDestroy(int alloc); 9360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nAllocationData(int id, int[] d); 9460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nAllocationData(int id, float[] d); 9560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nAllocationSubData1D(int id, int off, int count, int[] d); 9660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nAllocationSubData1D(int id, int off, int count, float[] d); 9760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nAllocationSubData2D(int id, int xoff, int yoff, int w, int h, int[] d); 9860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nAllocationSubData2D(int id, int xoff, int yoff, int w, int h, float[] d); 9960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 10060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nTriangleMeshDestroy(int id); 10160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nTriangleMeshBegin(int vertex, int index); 10260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nTriangleMeshAddVertex_XY (float x, float y); 10360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nTriangleMeshAddVertex_XYZ (float x, float y, float z); 10460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nTriangleMeshAddVertex_XY_ST (float x, float y, float s, float t); 10560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nTriangleMeshAddVertex_XYZ_ST (float x, float y, float z, float s, float t); 1060826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams native private void nTriangleMeshAddVertex_XYZ_ST_NORM (float x, float y, float z, float s, float t, float nx, float ny, float nz); 10760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nTriangleMeshAddTriangle(int i1, int i2, int i3); 10860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private int nTriangleMeshCreate(); 10960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 11060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nAdapter1DDestroy(int id); 11160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nAdapter1DBindAllocation(int ad, int alloc); 11260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nAdapter1DSetConstraint(int ad, int dim, int value); 11360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nAdapter1DData(int ad, int[] d); 11460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nAdapter1DSubData(int ad, int off, int count, int[] d); 11560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nAdapter1DData(int ad, float[] d); 11660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nAdapter1DSubData(int ad, int off, int count, float[] d); 11760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private int nAdapter1DCreate(); 11860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 11960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nScriptDestroy(int script); 12060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nScriptBindAllocation(int vtm, int alloc, int slot); 12160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nScriptCBegin(); 12260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nScriptCSetClearColor(float r, float g, float b, float a); 12360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nScriptCSetClearDepth(float depth); 12460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nScriptCSetClearStencil(int stencil); 12560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nScriptCAddType(int type); 12660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nScriptCSetRoot(boolean isRoot); 12743702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich native private void nScriptCSetScript(byte[] script, int offset, int length); 12860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private int nScriptCCreate(); 12960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 13002fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams native private void nSamplerDestroy(int sampler); 13102fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams native private void nSamplerBegin(); 13202fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams native private void nSamplerSet(int param, int value); 13302fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams native private int nSamplerCreate(); 13460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 13560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nProgramFragmentStoreBegin(int in, int out); 13660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nProgramFragmentStoreDepthFunc(int func); 13760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nProgramFragmentStoreDepthMask(boolean enable); 13860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nProgramFragmentStoreColorMask(boolean r, boolean g, boolean b, boolean a); 13960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nProgramFragmentStoreBlendFunc(int src, int dst); 14060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nProgramFragmentStoreDither(boolean enable); 14160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private int nProgramFragmentStoreCreate(); 1423eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams native private void nProgramFragmentStoreDestroy(int pgm); 14360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 14460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nProgramFragmentBegin(int in, int out); 14560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nProgramFragmentBindTexture(int vpf, int slot, int a); 14660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nProgramFragmentBindSampler(int vpf, int slot, int s); 14760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nProgramFragmentSetType(int slot, int vt); 14860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nProgramFragmentSetEnvMode(int slot, int env); 14960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private void nProgramFragmentSetTexEnable(int slot, boolean enable); 15060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich native private int nProgramFragmentCreate(); 1513eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams native private void nProgramFragmentDestroy(int pgm); 15260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 1531fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams native private void nProgramVertexDestroy(int pv); 1541fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams native private void nProgramVertexBindAllocation(int pv, int slot, int mID); 1551fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams native private void nProgramVertexBegin(int inID, int outID); 1561fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams native private void nProgramVertexSetType(int slot, int mID); 1571fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams native private void nProgramVertexSetTextureMatrixEnable(boolean enable); 1581fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams native private int nProgramVertexCreate(); 1591fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 160bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams native private void nLightBegin(); 161bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams native private void nLightSetIsMono(boolean isMono); 162bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams native private void nLightSetIsLocal(boolean isLocal); 163bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams native private int nLightCreate(); 164bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams native private void nLightDestroy(int l); 165bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams native private void nLightSetColor(int l, float r, float g, float b); 166bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams native private void nLightSetPosition(int l, float x, float y, float z); 167bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 16860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 16960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich private int mDev; 17060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich private int mContext; 17160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich private Surface mSurface; 17260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 17360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 17460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 17560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich /////////////////////////////////////////////////////////////////////////////////// 17643702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich // 17760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 17860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich RenderScript(Surface sur) { 17960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mSurface = sur; 18060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mDev = nDeviceCreate(); 18160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mContext = nContextCreate(mDev, mSurface, 0); 18260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 18360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 18460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich private class BaseObj { 18560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich BaseObj() { 18660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = 0; 18760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 18860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 18994d8e90ad78ee1dbc0efa315117688abd126ae55Jason Sams public int getID() { 19094d8e90ad78ee1dbc0efa315117688abd126ae55Jason Sams return mID; 19194d8e90ad78ee1dbc0efa315117688abd126ae55Jason Sams } 19294d8e90ad78ee1dbc0efa315117688abd126ae55Jason Sams 19360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int mID; 1943eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams String mName; 1953eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams 1963eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams public void setName(String s) throws IllegalStateException, IllegalArgumentException 1973eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams { 1983eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams if(s.length() < 1) { 1993eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams throw new IllegalArgumentException("setName does not accept a zero length string."); 2003eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams } 2013eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams if(mName != null) { 2023eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams throw new IllegalArgumentException("setName object already has a name."); 2033eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams } 2043eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams 2053eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams try { 2063eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams byte[] bytes = s.getBytes("UTF-8"); 2073eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams nAssignName(mID, bytes); 2083eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams mName = s; 2093eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams } catch (java.io.UnsupportedEncodingException e) { 2103eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams throw new RuntimeException(e); 2113eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams } 2123eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams } 2133eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams 21460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich protected void finalize() throws Throwable 21560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich { 21660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich if (mID != 0) { 21743702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich Log.v(LOG_TAG, 21860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich "Element finalized without having released the RS reference."); 21960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 22060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich super.finalize(); 22160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 22260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 22360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 22443702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich 22560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ////////////////////////////////////////////////////////////////////////////////// 22660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich // Element 22760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 22860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public enum ElementPredefined { 22960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich USER_U8 (0), 23060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich USER_I8 (1), 23160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich USER_U16 (2), 23260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich USER_I16 (3), 23360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich USER_U32 (4), 23460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich USER_I32 (5), 23560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich USER_FLOAT (6), 23660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 237ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams A_8 (7), 238ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams RGB_565 (8), 2390826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams RGB_888 (11), 240ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams RGBA_5551 (9), 241ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams RGBA_4444 (10), 2420826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams RGBA_8888 (12), 243ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams 2440826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams INDEX_16 (13), 2450826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams INDEX_32 (14), 2460826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams XY_F32 (15), 2470826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams XYZ_F32 (16), 2480826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams ST_XY_F32 (17), 2490826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams ST_XYZ_F32 (18), 2500826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams NORM_XYZ_F32 (19), 2510826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams NORM_ST_XYZ_F32 (20); 25260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 25360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int mID; 25460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ElementPredefined(int id) { 25560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 25660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 25760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 25860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 25960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public enum DataType { 26060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich FLOAT (0), 26160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich UNSIGNED (1), 26260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich SIGNED (2); 26360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 26460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int mID; 26560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich DataType(int id) { 26660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 26760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 26860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 26960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 27060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public enum DataKind { 27160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich USER (0), 27260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich RED (1), 27360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich GREEN (2), 27460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich BLUE (3), 27560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ALPHA (4), 27660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich LUMINANCE (5), 27760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich INTENSITY (6), 27860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich X (7), 27960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich Y (8), 28060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich Z (9), 28160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich W (10), 28260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich S (11), 28360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich T (12), 28460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich Q (13), 28560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich R (14), 28660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich NX (15), 28760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich NY (16), 28860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich NZ (17), 28960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich INDEX (18); 29060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 29160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int mID; 29260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich DataKind(int id) { 29360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 29460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 29560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 29660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 29760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public enum DepthFunc { 29860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ALWAYS (0), 29960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich LESS (1), 30060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich LEQUAL (2), 30160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich GREATER (3), 30260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich GEQUAL (4), 30360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich EQUAL (5), 30460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich NOTEQUAL (6); 30560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 30660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int mID; 30760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich DepthFunc(int id) { 30860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 30960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 31060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 31160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 31260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public enum BlendSrcFunc { 31360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ZERO (0), 31460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ONE (1), 31560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich DST_COLOR (2), 31660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ONE_MINUS_DST_COLOR (3), 31760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich SRC_ALPHA (4), 31860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ONE_MINUS_SRC_ALPHA (5), 31960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich DST_ALPHA (6), 32060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ONE_MINUS_DST_ALPA (7), 32160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich SRC_ALPHA_SATURATE (8); 32260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 32360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int mID; 32460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich BlendSrcFunc(int id) { 32560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 32660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 32760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 32860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 32960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public enum BlendDstFunc { 33060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ZERO (0), 33160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ONE (1), 33260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich SRC_COLOR (2), 33360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ONE_MINUS_SRC_COLOR (3), 33460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich SRC_ALPHA (4), 33560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ONE_MINUS_SRC_ALPHA (5), 33660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich DST_ALPHA (6), 33760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ONE_MINUS_DST_ALPA (7); 33860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 33960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int mID; 34060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich BlendDstFunc(int id) { 34160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 34260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 34360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 34460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 34560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public enum EnvMode { 34660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich REPLACE (0), 34760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich MODULATE (1), 34860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich DECAL (2); 34960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 35060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int mID; 35160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich EnvMode(int id) { 35260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 35360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 35460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 35560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 35602fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams public enum SamplerParam { 35702fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams FILTER_MIN (0), 35802fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams FILTER_MAG (1), 35902fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams WRAP_MODE_S (2), 36002fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams WRAP_MODE_T (3), 36102fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams WRAP_MODE_R (4); 36202fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 36302fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams int mID; 36402fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams SamplerParam(int id) { 36502fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams mID = id; 36602fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 36702fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 36802fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 36902fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams public enum SamplerValue { 37002fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams NEAREST (0), 37102fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams LINEAR (1), 37202fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams LINEAR_MIP_LINEAR (2), 37302fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams WRAP (3), 37402fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams CLAMP (4); 37502fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 37602fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams int mID; 37702fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams SamplerValue(int id) { 37802fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams mID = id; 37902fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 38002fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 38102fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 38202fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 38302fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 38460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public class Element extends BaseObj { 38560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich Element(int id) { 38660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 38760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 38860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 38960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void estroy() { 39060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nElementDestroy(mID); 39160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = 0; 39260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 39360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 39460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 39560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void elementBegin() { 39660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nElementBegin(); 39760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 39860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 39960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void elementAddPredefined(ElementPredefined e) { 40060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nElementAddPredefined(e.mID); 40160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 40260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 40360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void elementAdd(DataType dt, DataKind dk, boolean isNormalized, int bits) { 40460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int norm = 0; 40560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich if (isNormalized) { 40660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich norm = 1; 40760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 40860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nElementAdd(dt.mID, dk.mID, norm, bits); 40960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 41060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 41160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public Element elementCreate() { 41260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int id = nElementCreate(); 41360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich return new Element(id); 41460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 41560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 41660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public Element elementGetPredefined(ElementPredefined predef) { 41760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int id = nElementGetPredefined(predef.mID); 41860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich return new Element(id); 41960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 42060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 42160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 42260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ////////////////////////////////////////////////////////////////////////////////// 42360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich // Type 42460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 42560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public enum Dimension { 42660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich X (0), 42760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich Y (1), 42860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich Z (2), 42960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich LOD (3), 43060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich FACE (4), 43160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ARRAY_0 (100); 43260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 43360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int mID; 43460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich Dimension(int id) { 43560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 43660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 43760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 43860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 43960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public class Type extends BaseObj { 44060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich Type(int id) { 44160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 44260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 44360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 44460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void destroy() { 44560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nTypeDestroy(mID); 44660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = 0; 44760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 44860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 44960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 45060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void typeBegin(Element e) { 45160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nTypeBegin(e.mID); 45260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 45360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 45460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void typeAdd(Dimension d, int value) { 45560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nTypeAdd(d.mID, value); 45660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 45760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 45860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public Type typeCreate() { 45960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int id = nTypeCreate(); 46060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich return new Type(id); 46160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 46260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 46360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 46460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ////////////////////////////////////////////////////////////////////////////////// 46560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich // Allocation 46660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 46760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public class Allocation extends BaseObj { 46860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich Allocation(int id) { 46960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 47060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 47160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 47260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void uploadToTexture(int baseMipLevel) { 47360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nAllocationUploadToTexture(mID, baseMipLevel); 47460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 47560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 47660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void destroy() { 47760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nAllocationDestroy(mID); 47860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = 0; 47960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 48060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 48160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void data(int[] d) { 48260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nAllocationData(mID, d); 48360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 48460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 48560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void data(float[] d) { 48660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nAllocationData(mID, d); 48760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 48860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 48960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void subData1D(int off, int count, int[] d) { 49060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nAllocationSubData1D(mID, off, count, d); 49160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 49260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 49360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void subData1D(int off, int count, float[] d) { 49460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nAllocationSubData1D(mID, off, count, d); 49560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 49660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 49760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void subData2D(int xoff, int yoff, int w, int h, int[] d) { 49860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nAllocationSubData2D(mID, xoff, yoff, w, h, d); 49960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 50060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 50160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void subData2D(int xoff, int yoff, int w, int h, float[] d) { 50260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nAllocationSubData2D(mID, xoff, yoff, w, h, d); 50360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 50460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 50560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 50660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public Allocation allocationCreateTyped(Type type) { 50760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int id = nAllocationCreateTyped(type.mID); 50860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich return new Allocation(id); 50960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 51060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 51160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public Allocation allocationCreatePredefSized(ElementPredefined e, int count) { 51260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int id = nAllocationCreatePredefSized(e.mID, count); 51360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich return new Allocation(id); 51460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 51560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 51660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public Allocation allocationCreateSized(Element e, int count) { 51760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int id = nAllocationCreateSized(e.mID, count); 51860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich return new Allocation(id); 51960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 52060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 521fe08d99725efd0dde7ba67ff1979a04fec2ba99fJason Sams public Allocation allocationCreateFromBitmap(Bitmap b, ElementPredefined dstFmt, boolean genMips) { 522ffe9f48890dde7173a0845d32887fdf94a49b0a7Jason Sams int id = nAllocationCreateFromBitmap(dstFmt.mID, genMips, b); 523fe08d99725efd0dde7ba67ff1979a04fec2ba99fJason Sams return new Allocation(id); 524fe08d99725efd0dde7ba67ff1979a04fec2ba99fJason Sams } 52560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 52660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ////////////////////////////////////////////////////////////////////////////////// 52760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich // Adapter1D 52860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 52960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public class Adapter1D extends BaseObj { 53060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich Adapter1D(int id) { 53160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 53260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 53360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 53460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void destroy() { 53560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nAdapter1DDestroy(mID); 53660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = 0; 53760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 53860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 53960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void bindAllocation(Allocation a) { 54060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nAdapter1DBindAllocation(mID, a.mID); 54160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 54260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 54360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void setConstraint(Dimension dim, int value) { 54460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nAdapter1DSetConstraint(mID, dim.mID, value); 54560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 54660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 54760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void data(int[] d) { 54860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nAdapter1DData(mID, d); 54960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 55060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 55160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void subData(int off, int count, int[] d) { 55260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nAdapter1DSubData(mID, off, count, d); 55360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 55460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 55560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void data(float[] d) { 55660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nAdapter1DData(mID, d); 55760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 55860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 55960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void subData(int off, int count, float[] d) { 56060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nAdapter1DSubData(mID, off, count, d); 56160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 56260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 56360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 56460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public Adapter1D adapter1DCreate() { 56560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int id = nAdapter1DCreate(); 56660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich return new Adapter1D(id); 56760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 56860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 56960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 57060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ////////////////////////////////////////////////////////////////////////////////// 57160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich // Triangle Mesh 57260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 57360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public class TriangleMesh extends BaseObj { 57460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich TriangleMesh(int id) { 57560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 57660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 57760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 57860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void destroy() { 57960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nTriangleMeshDestroy(mID); 58060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = 0; 58160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 58260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 58360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 58460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void triangleMeshBegin(Element vertex, Element index) { 58560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nTriangleMeshBegin(vertex.mID, index.mID); 58660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 58760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 58860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void triangleMeshAddVertex_XY(float x, float y) { 58960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nTriangleMeshAddVertex_XY(x, y); 59060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 59160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 59260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void triangleMeshAddVertex_XYZ(float x, float y, float z) { 59360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nTriangleMeshAddVertex_XYZ(x, y, z); 59460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 59560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 59660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void triangleMeshAddVertex_XY_ST(float x, float y, float s, float t) { 59760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nTriangleMeshAddVertex_XY_ST(x, y, s, t); 59860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 59960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 60060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void triangleMeshAddVertex_XYZ_ST(float x, float y, float z, float s, float t) { 60160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nTriangleMeshAddVertex_XYZ_ST(x, y, z, s, t); 60260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 60360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 6040826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams public void triangleMeshAddVertex_XYZ_ST_NORM(float x, float y, float z, float s, float t, float nx, float ny, float nz) { 6050826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams nTriangleMeshAddVertex_XYZ_ST_NORM(x, y, z, s, t, nx, ny, nz); 6060826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams } 6070826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams 60860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void triangleMeshAddTriangle(int i1, int i2, int i3) { 60960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nTriangleMeshAddTriangle(i1, i2, i3); 61060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 61160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 61260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public TriangleMesh triangleMeshCreate() { 61360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int id = nTriangleMeshCreate(); 61460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich return new TriangleMesh(id); 61560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 61660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 61760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ////////////////////////////////////////////////////////////////////////////////// 61860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich // Script 61960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 62060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public class Script extends BaseObj { 62160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich Script(int id) { 62260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 62360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 62460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 62560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void destroy() { 62660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nScriptDestroy(mID); 62760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = 0; 62860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 62960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 63060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void bindAllocation(Allocation va, int slot) { 63160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nScriptBindAllocation(mID, va.mID, slot); 63260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 63360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 63460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 63560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void scriptCBegin() { 63660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nScriptCBegin(); 63760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 63860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 63960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void scriptCSetClearColor(float r, float g, float b, float a) { 64060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nScriptCSetClearColor(r, g, b, a); 64160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 64260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 64360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void scriptCSetClearDepth(float d) { 64460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nScriptCSetClearDepth(d); 64560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 64660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 64760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void scriptCSetClearStencil(int stencil) { 64860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nScriptCSetClearStencil(stencil); 64960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 65060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 65160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void scriptCAddType(Type t) { 65260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nScriptCAddType(t.mID); 65360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 65460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 65560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void scriptCSetRoot(boolean r) { 65660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nScriptCSetRoot(r); 65760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 65860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 65960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void scriptCSetScript(String s) { 66043702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich try { 66163975dde40e4ee8fd08225741b31d54eff115104Jack Palevich byte[] bytes = s.getBytes("UTF-8"); 66263975dde40e4ee8fd08225741b31d54eff115104Jack Palevich nScriptCSetScript(bytes, 0, bytes.length); 66343702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } catch (java.io.UnsupportedEncodingException e) { 66443702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich throw new RuntimeException(e); 66543702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } 66643702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } 66743702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich 66843702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich public void scriptCSetScript(Resources resources, int id) { 66943702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich InputStream is = resources.openRawResource(id); 67043702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich try { 67143702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich try { 67243702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich scriptCSetScript(is); 67343702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } finally { 67443702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich is.close(); 67543702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } 67643702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } catch(IOException e) { 67743702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich throw new Resources.NotFoundException(); 67843702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } 67943702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } 68043702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich 68143702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich public void scriptCSetScript(InputStream is) throws IOException { 68243702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich byte[] buf = new byte[1024]; 68343702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich int currentPos = 0; 68443702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich while(true) { 68543702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich int bytesLeft = buf.length - currentPos; 68643702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich if (bytesLeft == 0) { 68743702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich byte[] buf2 = new byte[buf.length * 2]; 68843702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich System.arraycopy(buf, 0, buf2, 0, buf.length); 68943702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich buf = buf2; 69043702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich bytesLeft = buf.length - currentPos; 69143702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } 69243702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich int bytesRead = is.read(buf, currentPos, bytesLeft); 69343702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich if (bytesRead <= 0) { 69443702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich break; 69543702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } 69643702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich currentPos += bytesRead; 69743702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich } 69843702d8925c54360ad5f9f66b0d35d61d59f6910Jack Palevich nScriptCSetScript(buf, 0, currentPos); 69960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 70060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 70160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public Script scriptCCreate() { 70260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int id = nScriptCCreate(); 70360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich return new Script(id); 70460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 70560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 70660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ////////////////////////////////////////////////////////////////////////////////// 7071fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams // ProgramVertex 7081fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 7091fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams public class ProgramVertex extends BaseObj { 7101fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams ProgramVertex(int id) { 7111fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams mID = id; 7121fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams } 7131fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 7141fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams public void destroy() { 7151fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams nProgramVertexDestroy(mID); 7161fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams mID = 0; 7171fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams } 7181fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 7191fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams public void bindAllocation(int slot, Allocation va) { 7201fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams nProgramVertexBindAllocation(mID, slot, va.mID); 7211fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams } 7221fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 7231fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams } 7241fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 7251fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams public void programVertexBegin(Element in, Element out) { 7261fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams int inID = 0; 7271fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams int outID = 0; 7281fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams if (in != null) { 7291fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams inID = in.mID; 7301fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams } 7311fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams if (out != null) { 7321fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams outID = out.mID; 7331fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams } 7341fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams nProgramVertexBegin(inID, outID); 7351fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams } 7361fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 7371fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams public void programVertexSetType(int slot, Type t) { 7381fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams nProgramVertexSetType(slot, t.mID); 7391fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams } 7401fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 7411fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams public void programVertexSetTextureMatrixEnable(boolean enable) { 7421fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams nProgramVertexSetTextureMatrixEnable(enable); 7431fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams } 7441fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 7451fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams public ProgramVertex programVertexCreate() { 7461fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams int id = nProgramVertexCreate(); 7471fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams return new ProgramVertex(id); 7481fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams } 7491fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 7501fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams 7511fe9b8c3bdc55e624edc1a69c3f3f0b9e90af1e4Jason Sams ////////////////////////////////////////////////////////////////////////////////// 75260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich // ProgramFragmentStore 75360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 75460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public class ProgramFragmentStore extends BaseObj { 75560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ProgramFragmentStore(int id) { 75660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 75760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 75860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 75960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void destroy() { 7603eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams nProgramFragmentStoreDestroy(mID); 76160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = 0; 76260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 76360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 76460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 76560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void programFragmentStoreBegin(Element in, Element out) { 76660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int inID = 0; 76760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int outID = 0; 76860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich if (in != null) { 76960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich inID = in.mID; 77060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 77160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich if (out != null) { 77260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich outID = out.mID; 77360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 77460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentStoreBegin(inID, outID); 77560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 77660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 77760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void programFragmentStoreDepthFunc(DepthFunc func) { 77860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentStoreDepthFunc(func.mID); 77960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 78060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 78160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void programFragmentStoreDepthMask(boolean enable) { 78260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentStoreDepthMask(enable); 78360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 78460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 78560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void programFragmentStoreColorMask(boolean r, boolean g, boolean b, boolean a) { 78660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentStoreColorMask(r,g,b,a); 78760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 78860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 78960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void programFragmentStoreBlendFunc(BlendSrcFunc src, BlendDstFunc dst) { 79060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentStoreBlendFunc(src.mID, dst.mID); 79160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 79260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 79360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void programFragmentStoreDitherEnable(boolean enable) { 79460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentStoreDither(enable); 79560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 79660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 79760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public ProgramFragmentStore programFragmentStoreCreate() { 79860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int id = nProgramFragmentStoreCreate(); 79960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich return new ProgramFragmentStore(id); 80060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 80160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 80260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ////////////////////////////////////////////////////////////////////////////////// 80360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich // ProgramFragment 80460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 80560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public class ProgramFragment extends BaseObj { 80660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich ProgramFragment(int id) { 80760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = id; 80860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 80960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 81060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void destroy() { 8113eaa338e11a3b0d6b87d705e5bb95625e82347bdJason Sams nProgramFragmentDestroy(mID); 81260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich mID = 0; 81360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 81460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 81560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void bindTexture(Allocation va, int slot) { 81660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentBindTexture(mID, slot, va.mID); 81760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 81860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 81902fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams public void bindSampler(Sampler vs, int slot) { 82002fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams nProgramFragmentBindSampler(mID, slot, vs.mID); 82102fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 82260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 82360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 82460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void programFragmentBegin(Element in, Element out) { 82560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int inID = 0; 82660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int outID = 0; 82760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich if (in != null) { 82860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich inID = in.mID; 82960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 83060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich if (out != null) { 83160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich outID = out.mID; 83260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 83360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentBegin(inID, outID); 83460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 83560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 83660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void programFragmentSetType(int slot, Type t) { 83760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentSetType(slot, t.mID); 83860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 83960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 84060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void programFragmentSetType(int slot, EnvMode t) { 84160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentSetEnvMode(slot, t.mID); 84260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 84360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 84460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void programFragmentSetTexEnable(int slot, boolean enable) { 84560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nProgramFragmentSetTexEnable(slot, enable); 84660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 84760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 84860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public ProgramFragment programFragmentCreate() { 84960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich int id = nProgramFragmentCreate(); 85060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich return new ProgramFragment(id); 85160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 85260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 85302fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams ////////////////////////////////////////////////////////////////////////////////// 85402fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams // Sampler 85502fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 85602fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams public class Sampler extends BaseObj { 85702fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams Sampler(int id) { 85802fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams mID = id; 85902fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 86002fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 86102fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams public void destroy() { 86202fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams nSamplerDestroy(mID); 86302fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams mID = 0; 86402fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 86502fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 86602fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 86702fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams public void samplerBegin() { 86802fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams nSamplerBegin(); 86902fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 87002fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 87102fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams public void samplerSet(SamplerParam p, SamplerValue v) { 87202fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams nSamplerSet(p.mID, v.mID); 87302fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 87402fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 87502fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams public Sampler samplerCreate() { 87602fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams int id = nSamplerCreate(); 87702fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams return new Sampler(id); 87802fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams } 87902fb2cb531035779a25dbf9595e0628ea40585b0Jason Sams 880bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams ////////////////////////////////////////////////////////////////////////////////// 881bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams // Light 882bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 883bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams public class Light extends BaseObj { 884bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams Light(int id) { 885bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams mID = id; 886bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams } 887bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 888bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams public void destroy() { 889bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams nLightDestroy(mID); 890bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams mID = 0; 891bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams } 892bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 893bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams public void setColor(float r, float g, float b) { 894bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams nLightSetColor(mID, r, g, b); 895bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams } 896bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 897bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams public void setPosition(float x, float y, float z) { 898bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams nLightSetPosition(mID, x, y, z); 899bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams } 900bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams } 901bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 902bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams public void lightBegin() { 903bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams nLightBegin(); 904bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams } 905bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 906bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams public void lightSetIsMono(boolean isMono) { 907bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams nLightSetIsMono(isMono); 908bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams } 909bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 910bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams public void lightSetIsLocal(boolean isLocal) { 911bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams nLightSetIsLocal(isLocal); 912bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams } 913bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams 914bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams public Light lightCreate() { 915bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams int id = nLightCreate(); 916bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams return new Light(id); 917bba134c8a1dcfe0c8473307a95899a02c9553504Jason Sams } 91860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 91960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich /////////////////////////////////////////////////////////////////////////////////// 92060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich // Root state 92160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 92260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void contextBindRootScript(Script s) { 92360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nContextBindRootScript(s.mID); 92460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 92560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 92660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich //public void contextBindSampler(Sampler s, int slot) { 92760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich //nContextBindSampler(s.mID); 92860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich //} 92960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 93060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void contextBindProgramFragmentStore(ProgramFragmentStore pfs) { 93160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nContextBindProgramFragmentStore(pfs.mID); 93260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 93360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 93460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich public void contextBindProgramFragment(ProgramFragment pf) { 93560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich nContextBindProgramFragment(pf.mID); 93660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich } 93760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 9380826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams public void contextBindProgramVertex(ProgramVertex pf) { 9390826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams nContextBindProgramVertex(pf.mID); 9400826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams } 9410826a6f90f049bf94fc39fb23ad3a736a14b96ebJason Sams 94260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich/* 94360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich RsAdapter2D rsAdapter2DCreate (); 94460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich void rsAdapter2DBindAllocation (RsAdapter2D adapt, RsAllocation alloc); 94560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich void rsAdapter2DDestroy (RsAdapter2D adapter); 94660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich void rsAdapter2DSetConstraint (RsAdapter2D adapter, RsDimension dim, uint32_t value); 94760aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich void rsAdapter2DData (RsAdapter2D adapter, const void * data); 94860aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich void rsAdapter2DSubData (RsAdapter2D adapter, uint32_t xoff, uint32_t yoff, uint32_t w, uint32_t h, const void * data); 94960aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich void rsSamplerBegin (); 95060aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich void rsSamplerSet (RsSamplerParam p, RsSamplerValue value); 95160aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich RsSampler rsSamplerCreate (); 95260aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich void rsSamplerBind (RsSampler sampler, RsAllocation alloc); 95360aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich*/ 95460aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 95560aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich} 95660aa3eaf559b1410898c228e4f6ab7920f3953d0Jack Palevich 957