summaryrefslogtreecommitdiffstats
path: root/libs/rs/java/RenderScript
diff options
context:
space:
mode:
Diffstat (limited to 'libs/rs/java/RenderScript')
-rw-r--r--libs/rs/java/RenderScript/Android.mk28
-rw-r--r--libs/rs/java/RenderScript/android/renderscript/Matrix.java188
-rw-r--r--libs/rs/java/RenderScript/android/renderscript/ProgramVertexAlloc.java112
-rw-r--r--libs/rs/java/RenderScript/android/renderscript/RSSurfaceView.java154
-rw-r--r--libs/rs/java/RenderScript/android/renderscript/RenderScript.java995
5 files changed, 0 insertions, 1477 deletions
diff --git a/libs/rs/java/RenderScript/Android.mk b/libs/rs/java/RenderScript/Android.mk
deleted file mode 100644
index 616fbd2..0000000
--- a/libs/rs/java/RenderScript/Android.mk
+++ /dev/null
@@ -1,28 +0,0 @@
-#
-# Copyright (C) 2008 Esmertec AG.
-# Copyright (C) 2008 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-LOCAL_PATH := $(call my-dir)
-
-# the library
-# ============================================================
-include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES := \
- $(call all-subdir-java-files)
-
-LOCAL_MODULE:= android.renderscript
-
-include $(BUILD_STATIC_JAVA_LIBRARY)
diff --git a/libs/rs/java/RenderScript/android/renderscript/Matrix.java b/libs/rs/java/RenderScript/android/renderscript/Matrix.java
deleted file mode 100644
index 79b60d0..0000000
--- a/libs/rs/java/RenderScript/android/renderscript/Matrix.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
- * Copyright (C) 2009 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.renderscript;
-
-import java.lang.Math;
-import android.util.Log;
-
-
-public class Matrix {
-
- public Matrix() {
- mMat = new float[16];
- loadIdentity();
- }
-
- public float get(int i, int j) {
- return mMat[i*4 + j];
- }
-
- public void set(int i, int j, float v) {
- mMat[i*4 + j] = v;
- }
-
- public void loadIdentity() {
- mMat[0] = 1;
- mMat[1] = 0;
- mMat[2] = 0;
- mMat[3] = 0;
-
- mMat[4] = 0;
- mMat[5] = 1;
- mMat[6] = 0;
- mMat[7] = 0;
-
- mMat[8] = 0;
- mMat[9] = 0;
- mMat[10] = 1;
- mMat[11] = 0;
-
- mMat[12] = 0;
- mMat[13] = 0;
- mMat[14] = 0;
- mMat[15] = 1;
- }
-
- public void load(Matrix src) {
- mMat = src.mMat;
- }
-
- public void loadRotate(float rot, float x, float y, float z) {
- float c, s;
- mMat[3] = 0;
- mMat[7] = 0;
- mMat[11]= 0;
- mMat[12]= 0;
- mMat[13]= 0;
- mMat[14]= 0;
- mMat[15]= 1;
- rot *= (float)(java.lang.Math.PI / 180.0f);
- c = (float)java.lang.Math.cos(rot);
- s = (float)java.lang.Math.sin(rot);
-
- float len = (float)java.lang.Math.sqrt(x*x + y*y + z*z);
- if (!(len != 1)) {
- float recipLen = 1.f / len;
- x *= recipLen;
- y *= recipLen;
- z *= recipLen;
- }
- float nc = 1.0f - c;
- float xy = x * y;
- float yz = y * z;
- float zx = z * x;
- float xs = x * s;
- float ys = y * s;
- float zs = z * s;
- mMat[ 0] = x*x*nc + c;
- mMat[ 4] = xy*nc - zs;
- mMat[ 8] = zx*nc + ys;
- mMat[ 1] = xy*nc + zs;
- mMat[ 5] = y*y*nc + c;
- mMat[ 9] = yz*nc - xs;
- mMat[ 2] = zx*nc - ys;
- mMat[ 6] = yz*nc + xs;
- mMat[10] = z*z*nc + c;
- }
-
- public void loadScale(float x, float y, float z) {
- loadIdentity();
- mMat[0] = x;
- mMat[5] = y;
- mMat[10] = z;
- }
-
- public void loadTranslate(float x, float y, float z) {
- loadIdentity();
- mMat[12] = x;
- mMat[13] = y;
- mMat[14] = z;
- }
-
- public void loadMultiply(Matrix lhs, Matrix rhs) {
- for (int i=0 ; i<4 ; i++) {
- float ri0 = 0;
- float ri1 = 0;
- float ri2 = 0;
- float ri3 = 0;
- for (int j=0 ; j<4 ; j++) {
- float rhs_ij = rhs.get(i,j);
- ri0 += lhs.get(j,0) * rhs_ij;
- ri1 += lhs.get(j,1) * rhs_ij;
- ri2 += lhs.get(j,2) * rhs_ij;
- ri3 += lhs.get(j,3) * rhs_ij;
- }
- set(i,0, ri0);
- set(i,1, ri1);
- set(i,2, ri2);
- set(i,3, ri3);
- }
- }
-
- public void loadOrtho(float l, float r, float b, float t, float n, float f) {
- loadIdentity();
- mMat[0] = 2 / (r - l);
- mMat[5] = 2 / (t - b);
- mMat[10]= -2 / (f - n);
- mMat[12]= -(r + l) / (r - l);
- mMat[13]= -(t + b) / (t - b);
- mMat[14]= -(f + n) / (f - n);
- }
-
- public void loadFrustum(float l, float r, float b, float t, float n, float f) {
- loadIdentity();
- mMat[0] = 2 * n / (r - l);
- mMat[5] = 2 * n / (t - b);
- mMat[8] = (r + l) / (r - l);
- mMat[9] = (t + b) / (t - b);
- mMat[10]= -(f + n) / (f - n);
- mMat[11]= -1;
- mMat[14]= -2*f*n / (f - n);
- mMat[15]= 0;
- }
-
- public void multiply(Matrix rhs) {
- Matrix tmp = new Matrix();
- tmp.loadMultiply(this, rhs);
- load(tmp);
- }
- public void rotate(float rot, float x, float y, float z) {
- Matrix tmp = new Matrix();
- tmp.loadRotate(rot, x, y, z);
- multiply(tmp);
- }
- public void scale(float x, float y, float z) {
- Matrix tmp = new Matrix();
- tmp.loadScale(x, y, z);
- multiply(tmp);
- }
- public void translate(float x, float y, float z) {
- Matrix tmp = new Matrix();
- tmp.loadTranslate(x, y, z);
- multiply(tmp);
- }
-
-
-
- float[] mMat;
-
-}
-
-
-
-
-
diff --git a/libs/rs/java/RenderScript/android/renderscript/ProgramVertexAlloc.java b/libs/rs/java/RenderScript/android/renderscript/ProgramVertexAlloc.java
deleted file mode 100644
index 020ddb2..0000000
--- a/libs/rs/java/RenderScript/android/renderscript/ProgramVertexAlloc.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Copyright (C) 2009 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.renderscript;
-
-import java.lang.Math;
-import android.util.Log;
-
-
-public class ProgramVertexAlloc {
- public static final int MODELVIEW_OFFSET = 0;
- public static final int PROJECTION_OFFSET = 16;
- public static final int TEXTURE_OFFSET = 32;
-
- Matrix mModel;
- Matrix mProjection;
- Matrix mTexture;
-
- public RenderScript.Allocation mAlloc;
-
- public ProgramVertexAlloc(RenderScript rs) {
- mModel = new Matrix();
- mProjection = new Matrix();
- mTexture = new Matrix();
-
- mAlloc = rs.allocationCreatePredefSized(
- RenderScript.ElementPredefined.USER_FLOAT,
- 48);
-
- mAlloc.subData1D(MODELVIEW_OFFSET, 16, mModel.mMat);
- mAlloc.subData1D(PROJECTION_OFFSET, 16, mProjection.mMat);
- mAlloc.subData1D(TEXTURE_OFFSET, 16, mTexture.mMat);
- }
-
- public void loadModelview(Matrix m) {
- mModel = m;
- mAlloc.subData1D(MODELVIEW_OFFSET, 16, m.mMat);
- }
-
- public void loadProjection(Matrix m) {
- mProjection = m;
- mAlloc.subData1D(PROJECTION_OFFSET, 16, m.mMat);
- }
-
- public void loadTexture(Matrix m) {
- mTexture = m;
- mAlloc.subData1D(TEXTURE_OFFSET, 16, m.mMat);
- }
-
- public void setupOrthoWindow(int w, int h) {
- mProjection.loadOrtho(0,w, h,0, -1,1);
- mAlloc.subData1D(PROJECTION_OFFSET, 16, mProjection.mMat);
- }
-
- public void setupOrthoNormalized(int w, int h) {
- // range -1,1 in the narrow axis.
- if(w > h) {
- float aspect = ((float)w) / h;
- mProjection.loadOrtho(-aspect,aspect, -1,1, -1,1);
- } else {
- float aspect = ((float)h) / w;
- mProjection.loadOrtho(-1,1, -aspect,aspect, -1,1);
- }
- mAlloc.subData1D(PROJECTION_OFFSET, 16, mProjection.mMat);
- }
-
- public void setupProjectionNormalized(int w, int h) {
- // range -1,1 in the narrow axis at z = 0.
- Matrix m1 = new Matrix();
- Matrix m2 = new Matrix();
-
- if(w > h) {
- float aspect = ((float)w) / h;
- m1.loadFrustum(-aspect,aspect, -1,1, 1,100);
- } else {
- float aspect = ((float)h) / w;
- m1.loadFrustum(-1,1, -aspect,aspect, 1,100);
- }
-
- m2.loadRotate(180, 0, 1, 0);
- m1.loadMultiply(m1, m2);
-
- m2.loadScale(-2, 2, 1);
- m1.loadMultiply(m1, m2);
-
- m2.loadTranslate(0, 0, 2);
- m1.loadMultiply(m1, m2);
-
- mProjection = m1;
- mAlloc.subData1D(PROJECTION_OFFSET, 16, mProjection.mMat);
- }
-
-}
-
-
-
-
-
-
diff --git a/libs/rs/java/RenderScript/android/renderscript/RSSurfaceView.java b/libs/rs/java/RenderScript/android/renderscript/RSSurfaceView.java
deleted file mode 100644
index 3835793..0000000
--- a/libs/rs/java/RenderScript/android/renderscript/RSSurfaceView.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.renderscript;
-
-import java.io.Writer;
-import java.util.ArrayList;
-import java.util.concurrent.Semaphore;
-
-import android.content.Context;
-import android.os.Handler;
-import android.os.Message;
-import android.util.AttributeSet;
-import android.util.Log;
-import android.util.Log;
-import android.view.Surface;
-import android.view.SurfaceHolder;
-import android.view.SurfaceView;
-
-public class RSSurfaceView extends SurfaceView implements SurfaceHolder.Callback {
- private SurfaceHolder mSurfaceHolder;
-
- /**
- * Standard View constructor. In order to render something, you
- * must call {@link #setRenderer} to register a renderer.
- */
- public RSSurfaceView(Context context) {
- super(context);
- init();
- Log.v(RenderScript.LOG_TAG, "RSSurfaceView");
- }
-
- /**
- * Standard View constructor. In order to render something, you
- * must call {@link #setRenderer} to register a renderer.
- */
- public RSSurfaceView(Context context, AttributeSet attrs) {
- super(context, attrs);
- init();
- Log.v(RenderScript.LOG_TAG, "RSSurfaceView");
- }
-
- private void init() {
- // Install a SurfaceHolder.Callback so we get notified when the
- // underlying surface is created and destroyed
- SurfaceHolder holder = getHolder();
- holder.addCallback(this);
- holder.setType(SurfaceHolder.SURFACE_TYPE_GPU);
- }
-
- /**
- * This method is part of the SurfaceHolder.Callback interface, and is
- * not normally called or subclassed by clients of RSSurfaceView.
- */
- public void surfaceCreated(SurfaceHolder holder) {
- Log.v(RenderScript.LOG_TAG, "surfaceCreated");
- mSurfaceHolder = holder;
- //mGLThread.surfaceCreated();
- }
-
- /**
- * This method is part of the SurfaceHolder.Callback interface, and is
- * not normally called or subclassed by clients of RSSurfaceView.
- */
- public void surfaceDestroyed(SurfaceHolder holder) {
- // Surface will be destroyed when we return
- Log.v(RenderScript.LOG_TAG, "surfaceDestroyed");
- //mGLThread.surfaceDestroyed();
- }
-
- /**
- * This method is part of the SurfaceHolder.Callback interface, and is
- * not normally called or subclassed by clients of RSSurfaceView.
- */
- public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
- Log.v(RenderScript.LOG_TAG, "surfaceChanged");
-
- //mGLThread.onWindowResize(w, h);
- }
-
- /**
- * Inform the view that the activity is paused. The owner of this view must
- * call this method when the activity is paused. Calling this method will
- * pause the rendering thread.
- * Must not be called before a renderer has been set.
- */
- public void onPause() {
- Log.v(RenderScript.LOG_TAG, "onPause");
- //mGLThread.onPause();
- }
-
- /**
- * Inform the view that the activity is resumed. The owner of this view must
- * call this method when the activity is resumed. Calling this method will
- * recreate the OpenGL display and resume the rendering
- * thread.
- * Must not be called before a renderer has been set.
- */
- public void onResume() {
- Log.v(RenderScript.LOG_TAG, "onResume");
- //mGLThread.onResume();
- }
-
- /**
- * Queue a runnable to be run on the GL rendering thread. This can be used
- * to communicate with the Renderer on the rendering thread.
- * Must not be called before a renderer has been set.
- * @param r the runnable to be run on the GL rendering thread.
- */
- public void queueEvent(Runnable r) {
- Log.v(RenderScript.LOG_TAG, "queueEvent");
- //mGLThread.queueEvent(r);
- }
-
- /**
- * This method is used as part of the View class and is not normally
- * called or subclassed by clients of RSSurfaceView.
- * Must not be called before a renderer has been set.
- */
- @Override
- protected void onDetachedFromWindow() {
- super.onDetachedFromWindow();
- //mGLThread.requestExitAndWait();
- }
-
- // ----------------------------------------------------------------------
-
- public RenderScript createRenderScript() {
- Log.v(RenderScript.LOG_TAG, "createRenderScript 1");
- Surface sur = null;
- while ((sur == null) || (mSurfaceHolder == null)) {
- sur = getHolder().getSurface();
- }
- Log.v(RenderScript.LOG_TAG, "createRenderScript 2");
- RenderScript rs = new RenderScript(sur);
- Log.v(RenderScript.LOG_TAG, "createRenderScript 3 rs");
- return rs;
- }
-
-}
-
diff --git a/libs/rs/java/RenderScript/android/renderscript/RenderScript.java b/libs/rs/java/RenderScript/android/renderscript/RenderScript.java
deleted file mode 100644
index e355635..0000000
--- a/libs/rs/java/RenderScript/android/renderscript/RenderScript.java
+++ /dev/null
@@ -1,995 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.renderscript;
-
-import java.io.InputStream;
-import java.io.IOException;
-
-import android.os.Bundle;
-import android.content.res.Resources;
-import android.util.Log;
-import android.util.Config;
-import android.view.Menu;
-import android.view.MenuItem;
-import android.view.Window;
-import android.view.View;
-import android.view.Surface;
-import android.graphics.Bitmap;
-import android.graphics.Color;
-
-public class RenderScript {
- static final String LOG_TAG = "libRS_jni";
- private static final boolean DEBUG = false;
- private static final boolean LOG_ENABLED = DEBUG ? Config.LOGD : Config.LOGV;
-
-
-
- /*
- * We use a class initializer to allow the native code to cache some
- * field offsets.
- */
- private static boolean sInitialized;
- native private static void _nInit();
-
- static {
- sInitialized = false;
- try {
- System.loadLibrary("RS_jni");
- _nInit();
- sInitialized = true;
- } catch (UnsatisfiedLinkError e) {
- Log.d(LOG_TAG, "RenderScript JNI library not found!");
- }
- }
-
- native private int nDeviceCreate();
- native private void nDeviceDestroy(int dev);
- native private int nContextCreate(int dev, Surface sur, int ver);
- native private void nContextDestroy(int con);
-
- //void rsContextBindSampler (uint32_t slot, RsSampler sampler);
- //void rsContextBindRootScript (RsScript sampler);
- native private void nContextBindRootScript(int script);
- native private void nContextBindSampler(int sampler, int slot);
- native private void nContextBindProgramFragmentStore(int pfs);
- native private void nContextBindProgramFragment(int pf);
- native private void nContextBindProgramVertex(int pf);
-
- native private void nAssignName(int obj, byte[] name);
- native private int nFileOpen(byte[] name);
-
- native private void nElementBegin();
- native private void nElementAddPredefined(int predef);
- native private void nElementAdd(int kind, int type, int norm, int bits);
- native private int nElementCreate();
- native private int nElementGetPredefined(int predef);
- native private void nElementDestroy(int obj);
-
- native private void nTypeBegin(int elementID);
- native private void nTypeAdd(int dim, int val);
- native private int nTypeCreate();
- native private void nTypeDestroy(int id);
-
- native private int nAllocationCreateTyped(int type);
- native private int nAllocationCreatePredefSized(int predef, int count);
- native private int nAllocationCreateSized(int elem, int count);
- native private int nAllocationCreateFromBitmap(int dstFmt, boolean genMips, Bitmap bmp);
-
- native private void nAllocationUploadToTexture(int alloc, int baseMioLevel);
- native private void nAllocationDestroy(int alloc);
- native private void nAllocationData(int id, int[] d);
- native private void nAllocationData(int id, float[] d);
- native private void nAllocationSubData1D(int id, int off, int count, int[] d);
- native private void nAllocationSubData1D(int id, int off, int count, float[] d);
- native private void nAllocationSubData2D(int id, int xoff, int yoff, int w, int h, int[] d);
- native private void nAllocationSubData2D(int id, int xoff, int yoff, int w, int h, float[] d);
-
- native private void nTriangleMeshDestroy(int id);
- native private void nTriangleMeshBegin(int vertex, int index);
- native private void nTriangleMeshAddVertex_XY (float x, float y);
- native private void nTriangleMeshAddVertex_XYZ (float x, float y, float z);
- native private void nTriangleMeshAddVertex_XY_ST (float x, float y, float s, float t);
- native private void nTriangleMeshAddVertex_XYZ_ST (float x, float y, float z, float s, float t);
- native private void nTriangleMeshAddVertex_XYZ_ST_NORM (float x, float y, float z, float s, float t, float nx, float ny, float nz);
- native private void nTriangleMeshAddTriangle(int i1, int i2, int i3);
- native private int nTriangleMeshCreate();
-
- native private void nAdapter1DDestroy(int id);
- native private void nAdapter1DBindAllocation(int ad, int alloc);
- native private void nAdapter1DSetConstraint(int ad, int dim, int value);
- native private void nAdapter1DData(int ad, int[] d);
- native private void nAdapter1DSubData(int ad, int off, int count, int[] d);
- native private void nAdapter1DData(int ad, float[] d);
- native private void nAdapter1DSubData(int ad, int off, int count, float[] d);
- native private int nAdapter1DCreate();
-
- native private void nScriptDestroy(int script);
- native private void nScriptBindAllocation(int vtm, int alloc, int slot);
- native private void nScriptCBegin();
- native private void nScriptCSetClearColor(float r, float g, float b, float a);
- native private void nScriptCSetClearDepth(float depth);
- native private void nScriptCSetClearStencil(int stencil);
- native private void nScriptCAddType(int type);
- native private void nScriptCSetRoot(boolean isRoot);
- native private void nScriptCSetScript(byte[] script, int offset, int length);
- native private int nScriptCCreate();
-
- native private void nSamplerDestroy(int sampler);
- native private void nSamplerBegin();
- native private void nSamplerSet(int param, int value);
- native private int nSamplerCreate();
-
- native private void nProgramFragmentStoreBegin(int in, int out);
- native private void nProgramFragmentStoreDepthFunc(int func);
- native private void nProgramFragmentStoreDepthMask(boolean enable);
- native private void nProgramFragmentStoreColorMask(boolean r, boolean g, boolean b, boolean a);
- native private void nProgramFragmentStoreBlendFunc(int src, int dst);
- native private void nProgramFragmentStoreDither(boolean enable);
- native private int nProgramFragmentStoreCreate();
- native private void nProgramFragmentStoreDestroy(int pgm);
-
- native private void nProgramFragmentBegin(int in, int out);
- native private void nProgramFragmentBindTexture(int vpf, int slot, int a);
- native private void nProgramFragmentBindSampler(int vpf, int slot, int s);
- native private void nProgramFragmentSetType(int slot, int vt);
- native private void nProgramFragmentSetEnvMode(int slot, int env);
- native private void nProgramFragmentSetTexEnable(int slot, boolean enable);
- native private int nProgramFragmentCreate();
- native private void nProgramFragmentDestroy(int pgm);
-
- native private void nProgramVertexDestroy(int pv);
- native private void nProgramVertexBindAllocation(int pv, int slot, int mID);
- native private void nProgramVertexBegin(int inID, int outID);
- native private void nProgramVertexSetType(int slot, int mID);
- native private void nProgramVertexSetTextureMatrixEnable(boolean enable);
- native private void nProgramVertexAddLight(int id);
- native private int nProgramVertexCreate();
-
- native private void nLightBegin();
- native private void nLightSetIsMono(boolean isMono);
- native private void nLightSetIsLocal(boolean isLocal);
- native private int nLightCreate();
- native private void nLightDestroy(int l);
- native private void nLightSetColor(int l, float r, float g, float b);
- native private void nLightSetPosition(int l, float x, float y, float z);
-
-
- private int mDev;
- private int mContext;
- private Surface mSurface;
-
-
-
- ///////////////////////////////////////////////////////////////////////////////////
- //
-
- RenderScript(Surface sur) {
- mSurface = sur;
- mDev = nDeviceCreate();
- mContext = nContextCreate(mDev, mSurface, 0);
- }
-
- private class BaseObj {
- BaseObj() {
- mID = 0;
- }
-
- public int getID() {
- return mID;
- }
-
- int mID;
- String mName;
-
- public void setName(String s) throws IllegalStateException, IllegalArgumentException
- {
- if(s.length() < 1) {
- throw new IllegalArgumentException("setName does not accept a zero length string.");
- }
- if(mName != null) {
- throw new IllegalArgumentException("setName object already has a name.");
- }
-
- try {
- byte[] bytes = s.getBytes("UTF-8");
- nAssignName(mID, bytes);
- mName = s;
- } catch (java.io.UnsupportedEncodingException e) {
- throw new RuntimeException(e);
- }
- }
-
- protected void finalize() throws Throwable
- {
- if (mID != 0) {
- Log.v(LOG_TAG,
- "Element finalized without having released the RS reference.");
- }
- super.finalize();
- }
- }
-
-
- //////////////////////////////////////////////////////////////////////////////////
- // Element
-
- public enum ElementPredefined {
- USER_U8 (0),
- USER_I8 (1),
- USER_U16 (2),
- USER_I16 (3),
- USER_U32 (4),
- USER_I32 (5),
- USER_FLOAT (6),
-
- A_8 (7),
- RGB_565 (8),
- RGB_888 (11),
- RGBA_5551 (9),
- RGBA_4444 (10),
- RGBA_8888 (12),
-
- INDEX_16 (13),
- INDEX_32 (14),
- XY_F32 (15),
- XYZ_F32 (16),
- ST_XY_F32 (17),
- ST_XYZ_F32 (18),
- NORM_XYZ_F32 (19),
- NORM_ST_XYZ_F32 (20);
-
- int mID;
- ElementPredefined(int id) {
- mID = id;
- }
- }
-
- public enum DataType {
- FLOAT (0),
- UNSIGNED (1),
- SIGNED (2);
-
- int mID;
- DataType(int id) {
- mID = id;
- }
- }
-
- public enum DataKind {
- USER (0),
- RED (1),
- GREEN (2),
- BLUE (3),
- ALPHA (4),
- LUMINANCE (5),
- INTENSITY (6),
- X (7),
- Y (8),
- Z (9),
- W (10),
- S (11),
- T (12),
- Q (13),
- R (14),
- NX (15),
- NY (16),
- NZ (17),
- INDEX (18);
-
- int mID;
- DataKind(int id) {
- mID = id;
- }
- }
-
- public enum DepthFunc {
- ALWAYS (0),
- LESS (1),
- LEQUAL (2),
- GREATER (3),
- GEQUAL (4),
- EQUAL (5),
- NOTEQUAL (6);
-
- int mID;
- DepthFunc(int id) {
- mID = id;
- }
- }
-
- public enum BlendSrcFunc {
- ZERO (0),
- ONE (1),
- DST_COLOR (2),
- ONE_MINUS_DST_COLOR (3),
- SRC_ALPHA (4),
- ONE_MINUS_SRC_ALPHA (5),
- DST_ALPHA (6),
- ONE_MINUS_DST_ALPA (7),
- SRC_ALPHA_SATURATE (8);
-
- int mID;
- BlendSrcFunc(int id) {
- mID = id;
- }
- }
-
- public enum BlendDstFunc {
- ZERO (0),
- ONE (1),
- SRC_COLOR (2),
- ONE_MINUS_SRC_COLOR (3),
- SRC_ALPHA (4),
- ONE_MINUS_SRC_ALPHA (5),
- DST_ALPHA (6),
- ONE_MINUS_DST_ALPA (7);
-
- int mID;
- BlendDstFunc(int id) {
- mID = id;
- }
- }
-
- public enum EnvMode {
- REPLACE (0),
- MODULATE (1),
- DECAL (2);
-
- int mID;
- EnvMode(int id) {
- mID = id;
- }
- }
-
- public enum SamplerParam {
- FILTER_MIN (0),
- FILTER_MAG (1),
- WRAP_MODE_S (2),
- WRAP_MODE_T (3),
- WRAP_MODE_R (4);
-
- int mID;
- SamplerParam(int id) {
- mID = id;
- }
- }
-
- public enum SamplerValue {
- NEAREST (0),
- LINEAR (1),
- LINEAR_MIP_LINEAR (2),
- WRAP (3),
- CLAMP (4);
-
- int mID;
- SamplerValue(int id) {
- mID = id;
- }
- }
-
-
-
- public class Element extends BaseObj {
- Element(int id) {
- mID = id;
- }
-
- public void estroy() {
- nElementDestroy(mID);
- mID = 0;
- }
- }
-
- public void elementBegin() {
- nElementBegin();
- }
-
- public void elementAddPredefined(ElementPredefined e) {
- nElementAddPredefined(e.mID);
- }
-
- public void elementAdd(DataType dt, DataKind dk, boolean isNormalized, int bits) {
- int norm = 0;
- if (isNormalized) {
- norm = 1;
- }
- nElementAdd(dt.mID, dk.mID, norm, bits);
- }
-
- public Element elementCreate() {
- int id = nElementCreate();
- return new Element(id);
- }
-
- public Element elementGetPredefined(ElementPredefined predef) {
- int id = nElementGetPredefined(predef.mID);
- return new Element(id);
- }
-
-
- //////////////////////////////////////////////////////////////////////////////////
- // Type
-
- public enum Dimension {
- X (0),
- Y (1),
- Z (2),
- LOD (3),
- FACE (4),
- ARRAY_0 (100);
-
- int mID;
- Dimension(int id) {
- mID = id;
- }
- }
-
- public class Type extends BaseObj {
- Type(int id) {
- mID = id;
- }
-
- public void destroy() {
- nTypeDestroy(mID);
- mID = 0;
- }
- }
-
- public void typeBegin(Element e) {
- nTypeBegin(e.mID);
- }
-
- public void typeAdd(Dimension d, int value) {
- nTypeAdd(d.mID, value);
- }
-
- public Type typeCreate() {
- int id = nTypeCreate();
- return new Type(id);
- }
-
-
- //////////////////////////////////////////////////////////////////////////////////
- // Allocation
-
- public class Allocation extends BaseObj {
- Allocation(int id) {
- mID = id;
- }
-
- public void uploadToTexture(int baseMipLevel) {
- nAllocationUploadToTexture(mID, baseMipLevel);
- }
-
- public void destroy() {
- nAllocationDestroy(mID);
- mID = 0;
- }
-
- public void data(int[] d) {
- nAllocationData(mID, d);
- }
-
- public void data(float[] d) {
- nAllocationData(mID, d);
- }
-
- public void subData1D(int off, int count, int[] d) {
- nAllocationSubData1D(mID, off, count, d);
- }
-
- public void subData1D(int off, int count, float[] d) {
- nAllocationSubData1D(mID, off, count, d);
- }
-
- public void subData2D(int xoff, int yoff, int w, int h, int[] d) {
- nAllocationSubData2D(mID, xoff, yoff, w, h, d);
- }
-
- public void subData2D(int xoff, int yoff, int w, int h, float[] d) {
- nAllocationSubData2D(mID, xoff, yoff, w, h, d);
- }
- }
-
- public Allocation allocationCreateTyped(Type type) {
- int id = nAllocationCreateTyped(type.mID);
- return new Allocation(id);
- }
-
- public Allocation allocationCreatePredefSized(ElementPredefined e, int count) {
- int id = nAllocationCreatePredefSized(e.mID, count);
- return new Allocation(id);
- }
-
- public Allocation allocationCreateSized(Element e, int count) {
- int id = nAllocationCreateSized(e.mID, count);
- return new Allocation(id);
- }
-
- public Allocation allocationCreateFromBitmap(Bitmap b, ElementPredefined dstFmt, boolean genMips) {
- int id = nAllocationCreateFromBitmap(dstFmt.mID, genMips, b);
- return new Allocation(id);
- }
-
- //////////////////////////////////////////////////////////////////////////////////
- // Adapter1D
-
- public class Adapter1D extends BaseObj {
- Adapter1D(int id) {
- mID = id;
- }
-
- public void destroy() {
- nAdapter1DDestroy(mID);
- mID = 0;
- }
-
- public void bindAllocation(Allocation a) {
- nAdapter1DBindAllocation(mID, a.mID);
- }
-
- public void setConstraint(Dimension dim, int value) {
- nAdapter1DSetConstraint(mID, dim.mID, value);
- }
-
- public void data(int[] d) {
- nAdapter1DData(mID, d);
- }
-
- public void subData(int off, int count, int[] d) {
- nAdapter1DSubData(mID, off, count, d);
- }
-
- public void data(float[] d) {
- nAdapter1DData(mID, d);
- }
-
- public void subData(int off, int count, float[] d) {
- nAdapter1DSubData(mID, off, count, d);
- }
- }
-
- public Adapter1D adapter1DCreate() {
- int id = nAdapter1DCreate();
- return new Adapter1D(id);
- }
-
-
- //////////////////////////////////////////////////////////////////////////////////
- // Triangle Mesh
-
- public class TriangleMesh extends BaseObj {
- TriangleMesh(int id) {
- mID = id;
- }
-
- public void destroy() {
- nTriangleMeshDestroy(mID);
- mID = 0;
- }
- }
-
- public void triangleMeshBegin(Element vertex, Element index) {
- nTriangleMeshBegin(vertex.mID, index.mID);
- }
-
- public void triangleMeshAddVertex_XY(float x, float y) {
- nTriangleMeshAddVertex_XY(x, y);
- }
-
- public void triangleMeshAddVertex_XYZ(float x, float y, float z) {
- nTriangleMeshAddVertex_XYZ(x, y, z);
- }
-
- public void triangleMeshAddVertex_XY_ST(float x, float y, float s, float t) {
- nTriangleMeshAddVertex_XY_ST(x, y, s, t);
- }
-
- public void triangleMeshAddVertex_XYZ_ST(float x, float y, float z, float s, float t) {
- nTriangleMeshAddVertex_XYZ_ST(x, y, z, s, t);
- }
-
- public void triangleMeshAddVertex_XYZ_ST_NORM(float x, float y, float z, float s, float t, float nx, float ny, float nz) {
- nTriangleMeshAddVertex_XYZ_ST_NORM(x, y, z, s, t, nx, ny, nz);
- }
-
- public void triangleMeshAddTriangle(int i1, int i2, int i3) {
- nTriangleMeshAddTriangle(i1, i2, i3);
- }
-
- public TriangleMesh triangleMeshCreate() {
- int id = nTriangleMeshCreate();
- return new TriangleMesh(id);
- }
-
- //////////////////////////////////////////////////////////////////////////////////
- // Script
-
- public class Script extends BaseObj {
- Script(int id) {
- mID = id;
- }
-
- public void destroy() {
- nScriptDestroy(mID);
- mID = 0;
- }
-
- public void bindAllocation(Allocation va, int slot) {
- nScriptBindAllocation(mID, va.mID, slot);
- }
- }
-
- public void scriptCBegin() {
- nScriptCBegin();
- }
-
- public void scriptCSetClearColor(float r, float g, float b, float a) {
- nScriptCSetClearColor(r, g, b, a);
- }
-
- public void scriptCSetClearDepth(float d) {
- nScriptCSetClearDepth(d);
- }
-
- public void scriptCSetClearStencil(int stencil) {
- nScriptCSetClearStencil(stencil);
- }
-
- public void scriptCAddType(Type t) {
- nScriptCAddType(t.mID);
- }
-
- public void scriptCSetRoot(boolean r) {
- nScriptCSetRoot(r);
- }
-
- public void scriptCSetScript(String s) {
- try {
- byte[] bytes = s.getBytes("UTF-8");
- nScriptCSetScript(bytes, 0, bytes.length);
- } catch (java.io.UnsupportedEncodingException e) {
- throw new RuntimeException(e);
- }
- }
-
- public void scriptCSetScript(Resources resources, int id) {
- InputStream is = resources.openRawResource(id);
- try {
- try {
- scriptCSetScript(is);
- } finally {
- is.close();
- }
- } catch(IOException e) {
- throw new Resources.NotFoundException();
- }
- }
-
- public void scriptCSetScript(InputStream is) throws IOException {
- byte[] buf = new byte[1024];
- int currentPos = 0;
- while(true) {
- int bytesLeft = buf.length - currentPos;
- if (bytesLeft == 0) {
- byte[] buf2 = new byte[buf.length * 2];
- System.arraycopy(buf, 0, buf2, 0, buf.length);
- buf = buf2;
- bytesLeft = buf.length - currentPos;
- }
- int bytesRead = is.read(buf, currentPos, bytesLeft);
- if (bytesRead <= 0) {
- break;
- }
- currentPos += bytesRead;
- }
- nScriptCSetScript(buf, 0, currentPos);
- }
-
- public Script scriptCCreate() {
- int id = nScriptCCreate();
- return new Script(id);
- }
-
- //////////////////////////////////////////////////////////////////////////////////
- // ProgramVertex
-
- public class ProgramVertex extends BaseObj {
- ProgramVertex(int id) {
- mID = id;
- }
-
- public void destroy() {
- nProgramVertexDestroy(mID);
- mID = 0;
- }
-
- public void bindAllocation(int slot, Allocation va) {
- nProgramVertexBindAllocation(mID, slot, va.mID);
- }
- }
-
- public void programVertexBegin(Element in, Element out) {
- int inID = 0;
- int outID = 0;
- if (in != null) {
- inID = in.mID;
- }
- if (out != null) {
- outID = out.mID;
- }
- nProgramVertexBegin(inID, outID);
- }
-
- public void programVertexSetType(int slot, Type t) {
- nProgramVertexSetType(slot, t.mID);
- }
-
- public void programVertexSetTextureMatrixEnable(boolean enable) {
- nProgramVertexSetTextureMatrixEnable(enable);
- }
-
- public void programVertexAddLight(Light l) {
- nProgramVertexAddLight(l.mID);
- }
-
- public ProgramVertex programVertexCreate() {
- int id = nProgramVertexCreate();
- return new ProgramVertex(id);
- }
-
-
- //////////////////////////////////////////////////////////////////////////////////
- // ProgramFragmentStore
-
- public class ProgramFragmentStore extends BaseObj {
- ProgramFragmentStore(int id) {
- mID = id;
- }
-
- public void destroy() {
- nProgramFragmentStoreDestroy(mID);
- mID = 0;
- }
- }
-
- public void programFragmentStoreBegin(Element in, Element out) {
- int inID = 0;
- int outID = 0;
- if (in != null) {
- inID = in.mID;
- }
- if (out != null) {
- outID = out.mID;
- }
- nProgramFragmentStoreBegin(inID, outID);
- }
-
- public void programFragmentStoreDepthFunc(DepthFunc func) {
- nProgramFragmentStoreDepthFunc(func.mID);
- }
-
- public void programFragmentStoreDepthMask(boolean enable) {
- nProgramFragmentStoreDepthMask(enable);
- }
-
- public void programFragmentStoreColorMask(boolean r, boolean g, boolean b, boolean a) {
- nProgramFragmentStoreColorMask(r,g,b,a);
- }
-
- public void programFragmentStoreBlendFunc(BlendSrcFunc src, BlendDstFunc dst) {
- nProgramFragmentStoreBlendFunc(src.mID, dst.mID);
- }
-
- public void programFragmentStoreDitherEnable(boolean enable) {
- nProgramFragmentStoreDither(enable);
- }
-
- public ProgramFragmentStore programFragmentStoreCreate() {
- int id = nProgramFragmentStoreCreate();
- return new ProgramFragmentStore(id);
- }
-
- //////////////////////////////////////////////////////////////////////////////////
- // ProgramFragment
-
- public class ProgramFragment extends BaseObj {
- ProgramFragment(int id) {
- mID = id;
- }
-
- public void destroy() {
- nProgramFragmentDestroy(mID);
- mID = 0;
- }
-
- public void bindTexture(Allocation va, int slot) {
- nProgramFragmentBindTexture(mID, slot, va.mID);
- }
-
- public void bindSampler(Sampler vs, int slot) {
- nProgramFragmentBindSampler(mID, slot, vs.mID);
- }
- }
-
- public void programFragmentBegin(Element in, Element out) {
- int inID = 0;
- int outID = 0;
- if (in != null) {
- inID = in.mID;
- }
- if (out != null) {
- outID = out.mID;
- }
- nProgramFragmentBegin(inID, outID);
- }
-
- public void programFragmentSetType(int slot, Type t) {
- nProgramFragmentSetType(slot, t.mID);
- }
-
- public void programFragmentSetType(int slot, EnvMode t) {
- nProgramFragmentSetEnvMode(slot, t.mID);
- }
-
- public void programFragmentSetTexEnable(int slot, boolean enable) {
- nProgramFragmentSetTexEnable(slot, enable);
- }
-
- public void programFragmentSetTexEnvMode(int slot, EnvMode env) {
- nProgramFragmentSetEnvMode(slot, env.mID);
- }
-
- public ProgramFragment programFragmentCreate() {
- int id = nProgramFragmentCreate();
- return new ProgramFragment(id);
- }
-
- //////////////////////////////////////////////////////////////////////////////////
- // Sampler
-
- public class Sampler extends BaseObj {
- Sampler(int id) {
- mID = id;
- }
-
- public void destroy() {
- nSamplerDestroy(mID);
- mID = 0;
- }
- }
-
- public void samplerBegin() {
- nSamplerBegin();
- }
-
- public void samplerSet(SamplerParam p, SamplerValue v) {
- nSamplerSet(p.mID, v.mID);
- }
-
- public Sampler samplerCreate() {
- int id = nSamplerCreate();
- return new Sampler(id);
- }
-
- //////////////////////////////////////////////////////////////////////////////////
- // Light
-
- public class Light extends BaseObj {
- Light(int id) {
- mID = id;
- }
-
- public void destroy() {
- nLightDestroy(mID);
- mID = 0;
- }
-
- public void setColor(float r, float g, float b) {
- nLightSetColor(mID, r, g, b);
- }
-
- public void setPosition(float x, float y, float z) {
- nLightSetPosition(mID, x, y, z);
- }
- }
-
- public void lightBegin() {
- nLightBegin();
- }
-
- public void lightSetIsMono(boolean isMono) {
- nLightSetIsMono(isMono);
- }
-
- public void lightSetIsLocal(boolean isLocal) {
- nLightSetIsLocal(isLocal);
- }
-
- public Light lightCreate() {
- int id = nLightCreate();
- return new Light(id);
- }
-
- //////////////////////////////////////////////////////////////////////////////////
- // File
-
- public class File extends BaseObj {
- File(int id) {
- mID = id;
- }
-
- public void destroy() {
- //nLightDestroy(mID);
- mID = 0;
- }
- }
-
- public File fileOpen(String s) throws IllegalStateException, IllegalArgumentException
- {
- if(s.length() < 1) {
- throw new IllegalArgumentException("fileOpen does not accept a zero length string.");
- }
-
- try {
- byte[] bytes = s.getBytes("UTF-8");
- int id = nFileOpen(bytes);
- return new File(id);
- } catch (java.io.UnsupportedEncodingException e) {
- throw new RuntimeException(e);
- }
- }
-
-
- ///////////////////////////////////////////////////////////////////////////////////
- // Root state
-
- public void contextBindRootScript(Script s) {
- nContextBindRootScript(s.mID);
- }
-
- //public void contextBindSampler(Sampler s, int slot) {
- //nContextBindSampler(s.mID);
- //}
-
- public void contextBindProgramFragmentStore(ProgramFragmentStore pfs) {
- nContextBindProgramFragmentStore(pfs.mID);
- }
-
- public void contextBindProgramFragment(ProgramFragment pf) {
- nContextBindProgramFragment(pf.mID);
- }
-
- public void contextBindProgramVertex(ProgramVertex pf) {
- nContextBindProgramVertex(pf.mID);
- }
-
-/*
- RsAdapter2D rsAdapter2DCreate ();
- void rsAdapter2DBindAllocation (RsAdapter2D adapt, RsAllocation alloc);
- void rsAdapter2DDestroy (RsAdapter2D adapter);
- void rsAdapter2DSetConstraint (RsAdapter2D adapter, RsDimension dim, uint32_t value);
- void rsAdapter2DData (RsAdapter2D adapter, const void * data);
- void rsAdapter2DSubData (RsAdapter2D adapter, uint32_t xoff, uint32_t yoff, uint32_t w, uint32_t h, const void * data);
- void rsSamplerBegin ();
- void rsSamplerSet (RsSamplerParam p, RsSamplerValue value);
- RsSampler rsSamplerCreate ();
- void rsSamplerBind (RsSampler sampler, RsAllocation alloc);
-*/
-
-}
-