diff options
author | Alex Sakhartchouk <alexst@google.com> | 2011-02-28 10:59:29 -0800 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-02-28 10:59:29 -0800 |
commit | 802e37e7b880c59ad791583baa70819db93b86f7 (patch) | |
tree | 62a2e82bb71960529d6898ed1e08d56a1a73c0c9 /libs | |
parent | 8e79442c4fdabd2f82d0ed8e23d394816edee495 (diff) | |
parent | e600e1b91acf725465241c42e45c0b49d38c6743 (diff) | |
download | frameworks_base-802e37e7b880c59ad791583baa70819db93b86f7.zip frameworks_base-802e37e7b880c59ad791583baa70819db93b86f7.tar.gz frameworks_base-802e37e7b880c59ad791583baa70819db93b86f7.tar.bz2 |
Merge "These moved into developmnet samples"
Diffstat (limited to 'libs')
66 files changed, 0 insertions, 3479 deletions
diff --git a/libs/rs/Android.mk b/libs/rs/Android.mk index 25c8beb..5ab4804 100644 --- a/libs/rs/Android.mk +++ b/libs/rs/Android.mk @@ -152,9 +152,4 @@ LOCAL_MODULE_TAGS := optional include $(BUILD_HOST_STATIC_LIBRARY) -# include the java examples -include $(addprefix $(LOCAL_PATH)/,$(addsuffix /Android.mk,\ - java \ - )) - endif #simulator diff --git a/libs/rs/java/Android.mk b/libs/rs/java/Android.mk deleted file mode 100644 index 5053e7d..0000000 --- a/libs/rs/java/Android.mk +++ /dev/null @@ -1 +0,0 @@ -include $(call all-subdir-makefiles) diff --git a/libs/rs/java/Balls/Android.mk b/libs/rs/java/Balls/Android.mk deleted file mode 100644 index 5b65628..0000000 --- a/libs/rs/java/Balls/Android.mk +++ /dev/null @@ -1,31 +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. -# - -ifneq ($(TARGET_SIMULATOR),true) - -LOCAL_PATH := $(call my-dir) -include $(CLEAR_VARS) - -LOCAL_MODULE_TAGS := optional - -LOCAL_SRC_FILES := $(call all-java-files-under, src) $(call all-renderscript-files-under, src) -#LOCAL_STATIC_JAVA_LIBRARIES := android.renderscript - -LOCAL_PACKAGE_NAME := Balls - -include $(BUILD_PACKAGE) - -endif diff --git a/libs/rs/java/Balls/AndroidManifest.xml b/libs/rs/java/Balls/AndroidManifest.xml deleted file mode 100644 index f3384ec..0000000 --- a/libs/rs/java/Balls/AndroidManifest.xml +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<manifest xmlns:android="http://schemas.android.com/apk/res/android" - package="com.android.balls"> - <uses-sdk android:minSdkVersion="11" /> - <application - android:label="Balls" - android:icon="@drawable/test_pattern"> - <activity android:name="Balls" - android:screenOrientation="landscape"> - <intent-filter> - <action android:name="android.intent.action.MAIN" /> - <category android:name="android.intent.category.LAUNCHER" /> - </intent-filter> - </activity> - </application> -</manifest> diff --git a/libs/rs/java/Balls/_index.html b/libs/rs/java/Balls/_index.html deleted file mode 100644 index 8760485..0000000 --- a/libs/rs/java/Balls/_index.html +++ /dev/null @@ -1 +0,0 @@ -<p>A brute force physics simulation that renders many balls onto the screen and moves them according to user touch and gravity.</p>
\ No newline at end of file diff --git a/libs/rs/java/Balls/res/drawable/flares.png b/libs/rs/java/Balls/res/drawable/flares.png Binary files differdeleted file mode 100644 index 3a5c970..0000000 --- a/libs/rs/java/Balls/res/drawable/flares.png +++ /dev/null diff --git a/libs/rs/java/Balls/res/drawable/test_pattern.png b/libs/rs/java/Balls/res/drawable/test_pattern.png Binary files differdeleted file mode 100644 index e7d1455..0000000 --- a/libs/rs/java/Balls/res/drawable/test_pattern.png +++ /dev/null diff --git a/libs/rs/java/Balls/src/com/android/balls/Balls.java b/libs/rs/java/Balls/src/com/android/balls/Balls.java deleted file mode 100644 index c24e616..0000000 --- a/libs/rs/java/Balls/src/com/android/balls/Balls.java +++ /dev/null @@ -1,121 +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 com.android.balls; - -import android.renderscript.RSSurfaceView; -import android.renderscript.RenderScript; - -import android.app.Activity; -import android.content.res.Configuration; -import android.os.Bundle; -import android.os.Handler; -import android.os.Looper; -import android.os.Message; -import android.provider.Settings.System; -import android.util.Config; -import android.util.Log; -import android.view.Menu; -import android.view.MenuItem; -import android.view.View; -import android.view.Window; -import android.widget.Button; -import android.widget.ListView; - -import java.lang.Runtime; - -import android.app.Activity; -import android.content.Context; -import android.os.Bundle; -import android.view.View; -import android.hardware.Sensor; -import android.hardware.SensorEvent; -import android.hardware.SensorEventListener; -import android.hardware.SensorManager; - -public class Balls extends Activity implements SensorEventListener { - //EventListener mListener = new EventListener(); - - private static final String LOG_TAG = "libRS_jni"; - private static final boolean DEBUG = false; - private static final boolean LOG_ENABLED = DEBUG ? Config.LOGD : Config.LOGV; - - private BallsView mView; - private SensorManager mSensorManager; - - // get the current looper (from your Activity UI thread for instance - - - public void onSensorChanged(SensorEvent event) { - //android.util.Log.d("rs", "sensor: " + event.sensor + ", x: " + event.values[0] + ", y: " + event.values[1] + ", z: " + event.values[2]); - synchronized (this) { - if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) { - if(mView != null) { - mView.setAccel(event.values[0], event.values[1], event.values[2]); - } - } - } - } - - public void onAccuracyChanged(Sensor sensor, int accuracy) { - } - - @Override - public void onCreate(Bundle icicle) { - super.onCreate(icicle); - - mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); - - // Create our Preview view and set it as the content of our - // Activity - mView = new BallsView(this); - setContentView(mView); - } - - @Override - protected void onResume() { - mSensorManager.registerListener(this, - mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), - SensorManager.SENSOR_DELAY_FASTEST); - - // Ideally a game should implement onResume() and onPause() - // to take appropriate action when the activity looses focus - super.onResume(); - mView.resume(); - } - - @Override - protected void onPause() { - super.onPause(); - mView.pause(); - Runtime.getRuntime().exit(0); - } - - @Override - protected void onStop() { - mSensorManager.unregisterListener(this); - super.onStop(); - } - - static void log(String message) { - if (LOG_ENABLED) { - Log.v(LOG_TAG, message); - } - } - - -} - diff --git a/libs/rs/java/Balls/src/com/android/balls/BallsRS.java b/libs/rs/java/Balls/src/com/android/balls/BallsRS.java deleted file mode 100644 index 50ee921..0000000 --- a/libs/rs/java/Balls/src/com/android/balls/BallsRS.java +++ /dev/null @@ -1,143 +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 com.android.balls; - -import android.content.res.Resources; -import android.renderscript.*; -import android.util.Log; - -public class BallsRS { - public static final int PART_COUNT = 900; - - public BallsRS() { - } - - private Resources mRes; - private RenderScriptGL mRS; - private ScriptC_balls mScript; - private ScriptC_ball_physics mPhysicsScript; - private ProgramFragment mPFLines; - private ProgramFragment mPFPoints; - private ProgramVertex mPV; - private ScriptField_Point mPoints; - private ScriptField_VpConsts mVpConsts; - - void updateProjectionMatrices() { - mVpConsts = new ScriptField_VpConsts(mRS, 1, - Allocation.USAGE_SCRIPT | - Allocation.USAGE_GRAPHICS_CONSTANTS); - ScriptField_VpConsts.Item i = new ScriptField_VpConsts.Item(); - Matrix4f mvp = new Matrix4f(); - mvp.loadOrtho(0, mRS.getWidth(), mRS.getHeight(), 0, -1, 1); - i.MVP = mvp; - mVpConsts.set(i, 0, true); - } - - private void createProgramVertex() { - updateProjectionMatrices(); - - ProgramVertex.Builder sb = new ProgramVertex.Builder(mRS); - String t = "varying vec4 varColor;\n" + - "void main() {\n" + - " vec4 pos = vec4(0.0, 0.0, 0.0, 1.0);\n" + - " pos.xy = ATTRIB_position;\n" + - " gl_Position = UNI_MVP * pos;\n" + - " varColor = vec4(1.0, 1.0, 1.0, 1.0);\n" + - " gl_PointSize = ATTRIB_size;\n" + - "}\n"; - sb.setShader(t); - sb.addConstant(mVpConsts.getType()); - sb.addInput(mPoints.getElement()); - ProgramVertex pvs = sb.create(); - pvs.bindConstants(mVpConsts.getAllocation(), 0); - mRS.bindProgramVertex(pvs); - } - - private Allocation loadTexture(int id) { - final Allocation allocation = - Allocation.createFromBitmapResource(mRS, mRes, - id, Allocation.MipmapControl.MIPMAP_NONE, - Allocation.USAGE_GRAPHICS_TEXTURE); - return allocation; - } - - ProgramStore BLEND_ADD_DEPTH_NONE(RenderScript rs) { - ProgramStore.Builder builder = new ProgramStore.Builder(rs); - builder.setDepthFunc(ProgramStore.DepthFunc.ALWAYS); - builder.setBlendFunc(ProgramStore.BlendSrcFunc.ONE, ProgramStore.BlendDstFunc.ONE); - builder.setDitherEnabled(false); - builder.setDepthMaskEnabled(false); - return builder.create(); - } - - public void init(RenderScriptGL rs, Resources res, int width, int height) { - mRS = rs; - mRes = res; - - ProgramFragmentFixedFunction.Builder pfb = new ProgramFragmentFixedFunction.Builder(rs); - pfb.setPointSpriteTexCoordinateReplacement(true); - pfb.setTexture(ProgramFragmentFixedFunction.Builder.EnvMode.MODULATE, - ProgramFragmentFixedFunction.Builder.Format.RGBA, 0); - pfb.setVaryingColor(true); - mPFPoints = pfb.create(); - - pfb = new ProgramFragmentFixedFunction.Builder(rs); - pfb.setVaryingColor(true); - mPFLines = pfb.create(); - - android.util.Log.e("rs", "Load texture"); - mPFPoints.bindTexture(loadTexture(R.drawable.flares), 0); - - mPoints = new ScriptField_Point(mRS, PART_COUNT, Allocation.USAGE_SCRIPT); - - Mesh.AllocationBuilder smb = new Mesh.AllocationBuilder(mRS); - smb.addVertexAllocation(mPoints.getAllocation()); - smb.addIndexSetType(Mesh.Primitive.POINT); - Mesh smP = smb.create(); - - mPhysicsScript = new ScriptC_ball_physics(mRS, mRes, R.raw.ball_physics); - - mScript = new ScriptC_balls(mRS, mRes, R.raw.balls); - mScript.set_partMesh(smP); - mScript.set_physics_script(mPhysicsScript); - mScript.bind_point(mPoints); - mScript.bind_balls1(new ScriptField_Ball(mRS, PART_COUNT, Allocation.USAGE_SCRIPT)); - mScript.bind_balls2(new ScriptField_Ball(mRS, PART_COUNT, Allocation.USAGE_SCRIPT)); - - mScript.set_gPFLines(mPFLines); - mScript.set_gPFPoints(mPFPoints); - createProgramVertex(); - - mRS.bindProgramStore(BLEND_ADD_DEPTH_NONE(mRS)); - - mPhysicsScript.set_gMinPos(new Float2(5, 5)); - mPhysicsScript.set_gMaxPos(new Float2(width - 5, height - 5)); - - mScript.invoke_initParts(width, height); - - mRS.bindRootScript(mScript); - } - - public void newTouchPosition(float x, float y, float pressure, int id) { - mPhysicsScript.invoke_touch(x, y, pressure, id); - } - - public void setAccel(float x, float y) { - mPhysicsScript.set_gGravityVector(new Float2(x, y)); - } - -} diff --git a/libs/rs/java/Balls/src/com/android/balls/BallsView.java b/libs/rs/java/Balls/src/com/android/balls/BallsView.java deleted file mode 100644 index 4442eec..0000000 --- a/libs/rs/java/Balls/src/com/android/balls/BallsView.java +++ /dev/null @@ -1,116 +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 com.android.balls; - -import java.io.Writer; -import java.util.ArrayList; -import java.util.concurrent.Semaphore; - -import android.renderscript.RSSurfaceView; -import android.renderscript.RenderScript; -import android.renderscript.RenderScriptGL; - -import android.content.Context; -import android.content.res.Resources; -import android.graphics.Bitmap; -import android.graphics.drawable.BitmapDrawable; -import android.graphics.drawable.Drawable; -import android.os.Handler; -import android.os.Message; -import android.util.AttributeSet; -import android.util.Log; -import android.view.Surface; -import android.view.SurfaceHolder; -import android.view.SurfaceView; -import android.view.KeyEvent; -import android.view.MotionEvent; - -public class BallsView extends RSSurfaceView { - - public BallsView(Context context) { - super(context); - //setFocusable(true); - } - - private RenderScriptGL mRS; - private BallsRS mRender; - - public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) { - super.surfaceChanged(holder, format, w, h); - if (mRS == null) { - RenderScriptGL.SurfaceConfig sc = new RenderScriptGL.SurfaceConfig(); - mRS = createRenderScriptGL(sc); - mRS.setSurface(holder, w, h); - mRender = new BallsRS(); - mRender.init(mRS, getResources(), w, h); - } - mRender.updateProjectionMatrices(); - } - - @Override - protected void onDetachedFromWindow() { - if(mRS != null) { - mRS = null; - destroyRenderScriptGL(); - } - } - - - @Override - public boolean onTouchEvent(MotionEvent ev) - { - int act = ev.getActionMasked(); - if (act == ev.ACTION_UP) { - mRender.newTouchPosition(0, 0, 0, ev.getPointerId(0)); - return false; - } else if (act == MotionEvent.ACTION_POINTER_UP) { - // only one pointer going up, we can get the index like this - int pointerIndex = ev.getActionIndex(); - int pointerId = ev.getPointerId(pointerIndex); - mRender.newTouchPosition(0, 0, 0, pointerId); - return false; - } - int count = ev.getHistorySize(); - int pcount = ev.getPointerCount(); - - for (int p=0; p < pcount; p++) { - int id = ev.getPointerId(p); - mRender.newTouchPosition(ev.getX(p), - ev.getY(p), - ev.getPressure(p), - id); - - for (int i=0; i < count; i++) { - mRender.newTouchPosition(ev.getHistoricalX(p, i), - ev.getHistoricalY(p, i), - ev.getHistoricalPressure(p, i), - id); - } - } - return true; - } - - void setAccel(float x, float y, float z) { - if (mRender == null) { - return; - } - mRender.setAccel(x, -y); - } - -} - - diff --git a/libs/rs/java/Balls/src/com/android/balls/ball_physics.rs b/libs/rs/java/Balls/src/com/android/balls/ball_physics.rs deleted file mode 100644 index ff38be5..0000000 --- a/libs/rs/java/Balls/src/com/android/balls/ball_physics.rs +++ /dev/null @@ -1,146 +0,0 @@ -#pragma version(1) -#pragma rs java_package_name(com.android.balls) - -#include "balls.rsh" - -float2 gGravityVector = {0.f, 9.8f}; - -float2 gMinPos = {0.f, 0.f}; -float2 gMaxPos = {1280.f, 700.f}; - -static float2 touchPos[10]; -static float touchPressure[10]; - -void touch(float x, float y, float pressure, int id) { - if (id >= 10) { - return; - } - - touchPos[id].x = x; - touchPos[id].y = y; - touchPressure[id] = pressure; -} - -void root(const Ball_t *ballIn, Ball_t *ballOut, const BallControl_t *ctl, uint32_t x) { - float2 fv = {0, 0}; - float2 pos = ballIn->position; - - int arcID = -1; - float arcInvStr = 100000; - - const Ball_t * bPtr = rsGetElementAt(ctl->ain, 0); - for (uint32_t xin = 0; xin < ctl->dimX; xin++) { - float2 vec = bPtr[xin].position - pos; - float2 vec2 = vec * vec; - float len2 = vec2.x + vec2.y; - - if (len2 < 10000) { - //float minDist = ballIn->size + bPtr[xin].size; - float forceScale = ballIn->size * bPtr[xin].size; - forceScale *= forceScale; - - if (len2 > 16 /* (minDist*minDist)*/) { - // Repulsion - float len = sqrt(len2); - fv -= (vec / (len * len * len)) * 20000.f * forceScale; - } else { - if (len2 < 1) { - if (xin == x) { - continue; - } - ballOut->delta = 0.f; - ballOut->position = ballIn->position; - if (xin > x) { - ballOut->position.x += 1.f; - } else { - ballOut->position.x -= 1.f; - } - //ballOut->color.rgb = 1.f; - //ballOut->arcID = -1; - //ballOut->arcStr = 0; - return; - } - // Collision - float2 axis = normalize(vec); - float e1 = dot(axis, ballIn->delta); - float e2 = dot(axis, bPtr[xin].delta); - float e = (e1 - e2) * 0.45f; - if (e1 > 0) { - fv -= axis * e; - } else { - fv += axis * e; - } - } - } - } - - fv /= ballIn->size * ballIn->size * ballIn->size; - fv -= gGravityVector * 4.f; - fv *= ctl->dt; - - for (int i=0; i < 10; i++) { - if (touchPressure[i] > 0.1f) { - float2 vec = touchPos[i] - ballIn->position; - float2 vec2 = vec * vec; - float len2 = max(2.f, vec2.x + vec2.y); - fv -= (vec / len2) * touchPressure[i] * 300.f; - } - } - - ballOut->delta = (ballIn->delta * (1.f - 0.004f)) + fv; - ballOut->position = ballIn->position + (ballOut->delta * ctl->dt); - - const float wallForce = 400.f; - if (ballOut->position.x > (gMaxPos.x - 20.f)) { - float d = gMaxPos.x - ballOut->position.x; - if (d < 0.f) { - if (ballOut->delta.x > 0) { - ballOut->delta.x *= -0.7; - } - ballOut->position.x = gMaxPos.x; - } else { - ballOut->delta.x -= min(wallForce / (d * d), 10.f); - } - } - - if (ballOut->position.x < (gMinPos.x + 20.f)) { - float d = ballOut->position.x - gMinPos.x; - if (d < 0.f) { - if (ballOut->delta.x < 0) { - ballOut->delta.x *= -0.7; - } - ballOut->position.x = gMinPos.x + 1.f; - } else { - ballOut->delta.x += min(wallForce / (d * d), 10.f); - } - } - - if (ballOut->position.y > (gMaxPos.y - 20.f)) { - float d = gMaxPos.y - ballOut->position.y; - if (d < 0.f) { - if (ballOut->delta.y > 0) { - ballOut->delta.y *= -0.7; - } - ballOut->position.y = gMaxPos.y; - } else { - ballOut->delta.y -= min(wallForce / (d * d), 10.f); - } - } - - if (ballOut->position.y < (gMinPos.y + 20.f)) { - float d = ballOut->position.y - gMinPos.y; - if (d < 0.f) { - if (ballOut->delta.y < 0) { - ballOut->delta.y *= -0.7; - } - ballOut->position.y = gMinPos.y + 1.f; - } else { - ballOut->delta.y += min(wallForce / (d * d * d), 10.f); - } - } - - ballOut->size = ballIn->size; - - //rsDebug("physics pos out", ballOut->position); -} - diff --git a/libs/rs/java/Balls/src/com/android/balls/balls.rs b/libs/rs/java/Balls/src/com/android/balls/balls.rs deleted file mode 100644 index 7dc7660..0000000 --- a/libs/rs/java/Balls/src/com/android/balls/balls.rs +++ /dev/null @@ -1,85 +0,0 @@ -#pragma version(1) -#pragma rs java_package_name(com.android.balls) -#include "rs_graphics.rsh" - -#include "balls.rsh" - -#pragma stateVertex(parent) -#pragma stateStore(parent) - -rs_program_fragment gPFPoints; -rs_program_fragment gPFLines; -rs_mesh partMesh; - -typedef struct __attribute__((packed, aligned(4))) Point { - float2 position; - float size; -} Point_t; -Point_t *point; - -typedef struct VpConsts { - rs_matrix4x4 MVP; -} VpConsts_t; -VpConsts_t *vpConstants; - -rs_script physics_script; - -Ball_t *balls1; -Ball_t *balls2; - -static int frame = 0; - -void initParts(int w, int h) -{ - uint32_t dimX = rsAllocationGetDimX(rsGetAllocation(balls1)); - - for (uint32_t ct=0; ct < dimX; ct++) { - balls1[ct].position.x = rsRand(0.f, (float)w); - balls1[ct].position.y = rsRand(0.f, (float)h); - balls1[ct].delta.x = 0.f; - balls1[ct].delta.y = 0.f; - balls1[ct].size = 1.f; - - float r = rsRand(100.f); - if (r > 90.f) { - balls1[ct].size += pow(10.f, rsRand(0.f, 2.f)) * 0.07; - } - } -} - - - -int root() { - rsgClearColor(0.f, 0.f, 0.f, 1.f); - - BallControl_t bc; - Ball_t *bout; - - if (frame & 1) { - rsSetObject(&bc.ain, rsGetAllocation(balls2)); - rsSetObject(&bc.aout, rsGetAllocation(balls1)); - bout = balls2; - } else { - rsSetObject(&bc.ain, rsGetAllocation(balls1)); - rsSetObject(&bc.aout, rsGetAllocation(balls2)); - bout = balls1; - } - - bc.dimX = rsAllocationGetDimX(bc.ain); - bc.dt = 1.f / 30.f; - - rsForEach(physics_script, bc.ain, bc.aout, &bc); - - for (uint32_t ct=0; ct < bc.dimX; ct++) { - point[ct].position = bout[ct].position; - point[ct].size = 6.f /*+ bout[ct].color.g * 6.f*/ * bout[ct].size; - } - - frame++; - rsgBindProgramFragment(gPFPoints); - rsgDrawMesh(partMesh); - rsClearObject(&bc.ain); - rsClearObject(&bc.aout); - return 1; -} - diff --git a/libs/rs/java/Balls/src/com/android/balls/balls.rsh b/libs/rs/java/Balls/src/com/android/balls/balls.rsh deleted file mode 100644 index fc886f9..0000000 --- a/libs/rs/java/Balls/src/com/android/balls/balls.rsh +++ /dev/null @@ -1,18 +0,0 @@ - -typedef struct __attribute__((packed, aligned(4))) Ball { - float2 delta; - float2 position; - //float3 color; - float size; - //int arcID; - //float arcStr; -} Ball_t; -Ball_t *balls; - - -typedef struct BallControl { - uint32_t dimX; - rs_allocation ain; - rs_allocation aout; - float dt; -} BallControl_t; diff --git a/libs/rs/java/Fountain/Android.mk b/libs/rs/java/Fountain/Android.mk deleted file mode 100644 index 71944b2..0000000 --- a/libs/rs/java/Fountain/Android.mk +++ /dev/null @@ -1,31 +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. -# - -ifneq ($(TARGET_SIMULATOR),true) - -LOCAL_PATH := $(call my-dir) -include $(CLEAR_VARS) - -LOCAL_MODULE_TAGS := optional - -LOCAL_SRC_FILES := $(call all-java-files-under, src) $(call all-renderscript-files-under, src) -#LOCAL_STATIC_JAVA_LIBRARIES := android.renderscript - -LOCAL_PACKAGE_NAME := Fountain - -include $(BUILD_PACKAGE) - -endif diff --git a/libs/rs/java/Fountain/AndroidManifest.xml b/libs/rs/java/Fountain/AndroidManifest.xml deleted file mode 100644 index 5126e5c..0000000 --- a/libs/rs/java/Fountain/AndroidManifest.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<manifest xmlns:android="http://schemas.android.com/apk/res/android" - package="com.android.fountain"> - <uses-sdk android:minSdkVersion="11" /> - <application - android:label="Fountain" - android:icon="@drawable/test_pattern"> - <activity android:name="Fountain"> - <intent-filter> - <action android:name="android.intent.action.MAIN" /> - <category android:name="android.intent.category.LAUNCHER" /> - </intent-filter> - </activity> - </application> -</manifest> diff --git a/libs/rs/java/Fountain/_index.html b/libs/rs/java/Fountain/_index.html deleted file mode 100644 index 223242f..0000000 --- a/libs/rs/java/Fountain/_index.html +++ /dev/null @@ -1,5 +0,0 @@ -<p>An example that renders many dots on the screen that follow a user's touch. The dots fall -to the bottom of the screen when the user releases the finger.</p> - - - diff --git a/libs/rs/java/Fountain/res/drawable/test_pattern.png b/libs/rs/java/Fountain/res/drawable/test_pattern.png Binary files differdeleted file mode 100644 index e7d1455..0000000 --- a/libs/rs/java/Fountain/res/drawable/test_pattern.png +++ /dev/null diff --git a/libs/rs/java/Fountain/src/com/android/fountain/Fountain.java b/libs/rs/java/Fountain/src/com/android/fountain/Fountain.java deleted file mode 100644 index 116c478..0000000 --- a/libs/rs/java/Fountain/src/com/android/fountain/Fountain.java +++ /dev/null @@ -1,96 +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 com.android.fountain; - -import android.renderscript.RSSurfaceView; -import android.renderscript.RenderScript; - -import android.app.Activity; -import android.content.res.Configuration; -import android.os.Bundle; -import android.os.Handler; -import android.os.Looper; -import android.os.Message; -import android.provider.Settings.System; -import android.util.Config; -import android.util.Log; -import android.view.Menu; -import android.view.MenuItem; -import android.view.View; -import android.view.Window; -import android.widget.Button; -import android.widget.ListView; - -import java.lang.Runtime; - -public class Fountain extends Activity { - //EventListener mListener = new EventListener(); - - private static final String LOG_TAG = "libRS_jni"; - private static final boolean DEBUG = false; - private static final boolean LOG_ENABLED = DEBUG ? Config.LOGD : Config.LOGV; - - private FountainView mView; - - // get the current looper (from your Activity UI thread for instance - - - - @Override - public void onCreate(Bundle icicle) { - super.onCreate(icicle); - - // Create our Preview view and set it as the content of our - // Activity - mView = new FountainView(this); - setContentView(mView); - } - - @Override - protected void onResume() { - Log.e("rs", "onResume"); - - // Ideally a game should implement onResume() and onPause() - // to take appropriate action when the activity looses focus - super.onResume(); - mView.resume(); - } - - @Override - protected void onPause() { - Log.e("rs", "onPause"); - - // Ideally a game should implement onResume() and onPause() - // to take appropriate action when the activity looses focus - super.onPause(); - mView.pause(); - - - - //Runtime.getRuntime().exit(0); - } - - - static void log(String message) { - if (LOG_ENABLED) { - Log.v(LOG_TAG, message); - } - } - - -} - diff --git a/libs/rs/java/Fountain/src/com/android/fountain/FountainRS.java b/libs/rs/java/Fountain/src/com/android/fountain/FountainRS.java deleted file mode 100644 index be2f9ca..0000000 --- a/libs/rs/java/Fountain/src/com/android/fountain/FountainRS.java +++ /dev/null @@ -1,72 +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 com.android.fountain; - -import android.content.res.Resources; -import android.renderscript.*; -import android.util.Log; - - -public class FountainRS { - public static final int PART_COUNT = 50000; - - public FountainRS() { - } - - private Resources mRes; - private RenderScriptGL mRS; - private ScriptC_fountain mScript; - public void init(RenderScriptGL rs, Resources res, int width, int height) { - mRS = rs; - mRes = res; - - ProgramFragmentFixedFunction.Builder pfb = new ProgramFragmentFixedFunction.Builder(rs); - pfb.setVaryingColor(true); - rs.bindProgramFragment(pfb.create()); - - ScriptField_Point points = new ScriptField_Point(mRS, PART_COUNT);// - // Allocation.USAGE_GRAPHICS_VERTEX); - - Mesh.AllocationBuilder smb = new Mesh.AllocationBuilder(mRS); - smb.addVertexAllocation(points.getAllocation()); - smb.addIndexSetType(Mesh.Primitive.POINT); - Mesh sm = smb.create(); - - mScript = new ScriptC_fountain(mRS, mRes, R.raw.fountain); - mScript.set_partMesh(sm); - mScript.bind_point(points); - mRS.bindRootScript(mScript); - } - - boolean holdingColor[] = new boolean[10]; - public void newTouchPosition(float x, float y, float pressure, int id) { - if (id >= holdingColor.length) { - return; - } - int rate = (int)(pressure * pressure * 500.f); - if (rate > 500) { - rate = 500; - } - if (rate > 0) { - mScript.invoke_addParticles(rate, x, y, id, !holdingColor[id]); - holdingColor[id] = true; - } else { - holdingColor[id] = false; - } - - } -} diff --git a/libs/rs/java/Fountain/src/com/android/fountain/FountainView.java b/libs/rs/java/Fountain/src/com/android/fountain/FountainView.java deleted file mode 100644 index 69b181d..0000000 --- a/libs/rs/java/Fountain/src/com/android/fountain/FountainView.java +++ /dev/null @@ -1,106 +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 com.android.fountain; - -import java.io.Writer; -import java.util.ArrayList; -import java.util.concurrent.Semaphore; - -import android.renderscript.RSSurfaceView; -import android.renderscript.RenderScript; -import android.renderscript.RenderScriptGL; - -import android.content.Context; -import android.content.res.Resources; -import android.graphics.Bitmap; -import android.graphics.drawable.BitmapDrawable; -import android.graphics.drawable.Drawable; -import android.os.Handler; -import android.os.Message; -import android.util.AttributeSet; -import android.util.Log; -import android.view.Surface; -import android.view.SurfaceHolder; -import android.view.SurfaceView; -import android.view.KeyEvent; -import android.view.MotionEvent; - -public class FountainView extends RSSurfaceView { - - public FountainView(Context context) { - super(context); - //setFocusable(true); - } - - private RenderScriptGL mRS; - private FountainRS mRender; - - public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) { - super.surfaceChanged(holder, format, w, h); - if (mRS == null) { - RenderScriptGL.SurfaceConfig sc = new RenderScriptGL.SurfaceConfig(); - mRS = createRenderScriptGL(sc); - mRS.setSurface(holder, w, h); - mRender = new FountainRS(); - mRender.init(mRS, getResources(), w, h); - } - } - - @Override - protected void onDetachedFromWindow() { - if (mRS != null) { - mRS = null; - destroyRenderScriptGL(); - } - } - - - @Override - public boolean onTouchEvent(MotionEvent ev) - { - int act = ev.getActionMasked(); - if (act == ev.ACTION_UP) { - mRender.newTouchPosition(0, 0, 0, ev.getPointerId(0)); - return false; - } else if (act == MotionEvent.ACTION_POINTER_UP) { - // only one pointer going up, we can get the index like this - int pointerIndex = ev.getActionIndex(); - int pointerId = ev.getPointerId(pointerIndex); - mRender.newTouchPosition(0, 0, 0, pointerId); - } - int count = ev.getHistorySize(); - int pcount = ev.getPointerCount(); - - for (int p=0; p < pcount; p++) { - int id = ev.getPointerId(p); - mRender.newTouchPosition(ev.getX(p), - ev.getY(p), - ev.getPressure(p), - id); - - for (int i=0; i < count; i++) { - mRender.newTouchPosition(ev.getHistoricalX(p, i), - ev.getHistoricalY(p, i), - ev.getHistoricalPressure(p, i), - id); - } - } - return true; - } -} - - diff --git a/libs/rs/java/Fountain/src/com/android/fountain/fountain.rs b/libs/rs/java/Fountain/src/com/android/fountain/fountain.rs deleted file mode 100644 index b8f57a3..0000000 --- a/libs/rs/java/Fountain/src/com/android/fountain/fountain.rs +++ /dev/null @@ -1,69 +0,0 @@ -// Fountain test script -#pragma version(1) - -#pragma rs java_package_name(com.android.fountain) - -#pragma stateFragment(parent) - -#include "rs_graphics.rsh" - -static int newPart = 0; -rs_mesh partMesh; - -typedef struct __attribute__((packed, aligned(4))) Point { - float2 delta; - float2 position; - uchar4 color; -} Point_t; -Point_t *point; - -int root() { - float dt = min(rsGetDt(), 0.1f); - rsgClearColor(0.f, 0.f, 0.f, 1.f); - const float height = rsgGetHeight(); - const int size = rsAllocationGetDimX(rsGetAllocation(point)); - float dy2 = dt * (10.f); - Point_t * p = point; - for (int ct=0; ct < size; ct++) { - p->delta.y += dy2; - p->position += p->delta; - if ((p->position.y > height) && (p->delta.y > 0)) { - p->delta.y *= -0.3f; - } - p++; - } - - rsgDrawMesh(partMesh); - return 1; -} - -static float4 partColor[10]; -void addParticles(int rate, float x, float y, int index, bool newColor) -{ - if (newColor) { - partColor[index].x = rsRand(0.5f, 1.0f); - partColor[index].y = rsRand(1.0f); - partColor[index].z = rsRand(1.0f); - } - float rMax = ((float)rate) * 0.02f; - int size = rsAllocationGetDimX(rsGetAllocation(point)); - uchar4 c = rsPackColorTo8888(partColor[index]); - - Point_t * np = &point[newPart]; - float2 p = {x, y}; - while (rate--) { - float angle = rsRand(3.14f * 2.f); - float len = rsRand(rMax); - np->delta.x = len * sin(angle); - np->delta.y = len * cos(angle); - np->position = p; - np->color = c; - newPart++; - np++; - if (newPart >= size) { - newPart = 0; - np = &point[newPart]; - } - } -} - diff --git a/libs/rs/java/HelloCompute/Android.mk b/libs/rs/java/HelloCompute/Android.mk deleted file mode 100644 index 3881bb0..0000000 --- a/libs/rs/java/HelloCompute/Android.mk +++ /dev/null @@ -1,31 +0,0 @@ -# -# Copyright (C) 2011 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. -# - -ifneq ($(TARGET_SIMULATOR),true) - -LOCAL_PATH := $(call my-dir) -include $(CLEAR_VARS) - -LOCAL_MODULE_TAGS := optional - -LOCAL_SRC_FILES := $(call all-java-files-under, src) \ - $(call all-renderscript-files-under, src) - -LOCAL_PACKAGE_NAME := HelloCompute - -include $(BUILD_PACKAGE) - -endif diff --git a/libs/rs/java/HelloCompute/AndroidManifest.xml b/libs/rs/java/HelloCompute/AndroidManifest.xml deleted file mode 100644 index 8c7ac2f..0000000 --- a/libs/rs/java/HelloCompute/AndroidManifest.xml +++ /dev/null @@ -1,30 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Copyright (C) 2011 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. ---> - -<manifest xmlns:android="http://schemas.android.com/apk/res/android" - package="com.android.example.hellocompute"> - - <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> - <uses-sdk android:minSdkVersion="11" /> - <application android:label="HelloCompute"> - <activity android:name="HelloCompute"> - <intent-filter> - <action android:name="android.intent.action.MAIN" /> - <category android:name="android.intent.category.LAUNCHER" /> - </intent-filter> - </activity> - </application> -</manifest> diff --git a/libs/rs/java/HelloCompute/_index.html b/libs/rs/java/HelloCompute/_index.html deleted file mode 100644 index abfd978..0000000 --- a/libs/rs/java/HelloCompute/_index.html +++ /dev/null @@ -1,2 +0,0 @@ -<p>A Renderscript compute sample that filters a bitmap. No Renderscript graphics APIs are used -in this sample.</p>
\ No newline at end of file diff --git a/libs/rs/java/HelloCompute/res/drawable/data.jpg b/libs/rs/java/HelloCompute/res/drawable/data.jpg Binary files differdeleted file mode 100644 index 81a87b1..0000000 --- a/libs/rs/java/HelloCompute/res/drawable/data.jpg +++ /dev/null diff --git a/libs/rs/java/HelloCompute/res/layout/main.xml b/libs/rs/java/HelloCompute/res/layout/main.xml deleted file mode 100644 index 3f7de43..0000000 --- a/libs/rs/java/HelloCompute/res/layout/main.xml +++ /dev/null @@ -1,31 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Copyright (C) 2011 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. ---> - -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="match_parent" - android:layout_height="match_parent"> - - <ImageView - android:id="@+id/displayin" - android:layout_width="320dip" - android:layout_height="266dip" /> - - <ImageView - android:id="@+id/displayout" - android:layout_width="320dip" - android:layout_height="266dip" /> - -</LinearLayout> diff --git a/libs/rs/java/HelloCompute/src/com/android/example/hellocompute/HelloCompute.java b/libs/rs/java/HelloCompute/src/com/android/example/hellocompute/HelloCompute.java deleted file mode 100644 index 123c37b..0000000 --- a/libs/rs/java/HelloCompute/src/com/android/example/hellocompute/HelloCompute.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright (C) 2011 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 com.android.example.hellocompute; - -import android.app.Activity; -import android.os.Bundle; -import android.graphics.BitmapFactory; -import android.graphics.Bitmap; -import android.renderscript.RenderScript; -import android.renderscript.Allocation; -import android.widget.ImageView; - -public class HelloCompute extends Activity { - private Bitmap mBitmapIn; - private Bitmap mBitmapOut; - - private RenderScript mRS; - private Allocation mInAllocation; - private Allocation mOutAllocation; - private ScriptC_mono mScript; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.main); - - mBitmapIn = loadBitmap(R.drawable.data); - mBitmapOut = Bitmap.createBitmap(mBitmapIn.getWidth(), mBitmapIn.getHeight(), - mBitmapIn.getConfig()); - - ImageView in = (ImageView) findViewById(R.id.displayin); - in.setImageBitmap(mBitmapIn); - - ImageView out = (ImageView) findViewById(R.id.displayout); - out.setImageBitmap(mBitmapOut); - - createScript(); - } - - - private void createScript() { - mRS = RenderScript.create(this); - - mInAllocation = Allocation.createFromBitmap(mRS, mBitmapIn, - Allocation.MipmapControl.MIPMAP_NONE, - Allocation.USAGE_SCRIPT); - mOutAllocation = Allocation.createTyped(mRS, mInAllocation.getType()); - - mScript = new ScriptC_mono(mRS, getResources(), R.raw.mono); - - mScript.set_gIn(mInAllocation); - mScript.set_gOut(mOutAllocation); - mScript.set_gScript(mScript); - mScript.invoke_filter(); - mOutAllocation.copyTo(mBitmapOut); - } - - private Bitmap loadBitmap(int resource) { - final BitmapFactory.Options options = new BitmapFactory.Options(); - options.inPreferredConfig = Bitmap.Config.ARGB_8888; - return BitmapFactory.decodeResource(getResources(), resource, options); - } -} diff --git a/libs/rs/java/HelloCompute/src/com/android/example/hellocompute/mono.rs b/libs/rs/java/HelloCompute/src/com/android/example/hellocompute/mono.rs deleted file mode 100644 index 9647c61..0000000 --- a/libs/rs/java/HelloCompute/src/com/android/example/hellocompute/mono.rs +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (C) 2011 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. - */ - -#pragma version(1) -#pragma rs java_package_name(com.android.example.hellocompute) - -rs_allocation gIn; -rs_allocation gOut; -rs_script gScript; - -const static float3 gMonoMult = {0.299f, 0.587f, 0.114f}; - -void root(const uchar4 *v_in, uchar4 *v_out, const void *usrData, uint32_t x, uint32_t y) { - float4 f4 = rsUnpackColor8888(*v_in); - - float3 mono = dot(f4.rgb, gMonoMult); - *v_out = rsPackColorTo8888(mono); -} - -void filter() { - rsForEach(gScript, gIn, gOut, 0); -} - diff --git a/libs/rs/java/HelloWorld/Android.mk b/libs/rs/java/HelloWorld/Android.mk deleted file mode 100644 index 72f0f03..0000000 --- a/libs/rs/java/HelloWorld/Android.mk +++ /dev/null @@ -1,30 +0,0 @@ -# -# Copyright (C) 2011 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. -# - -ifneq ($(TARGET_SIMULATOR),true) - -LOCAL_PATH := $(call my-dir) -include $(CLEAR_VARS) - -LOCAL_MODULE_TAGS := optional - -LOCAL_SRC_FILES := $(call all-java-files-under, src) $(call all-renderscript-files-under, src) - -LOCAL_PACKAGE_NAME := HelloWorld - -include $(BUILD_PACKAGE) - -endif diff --git a/libs/rs/java/HelloWorld/AndroidManifest.xml b/libs/rs/java/HelloWorld/AndroidManifest.xml deleted file mode 100644 index e7c9a95..0000000 --- a/libs/rs/java/HelloWorld/AndroidManifest.xml +++ /dev/null @@ -1,31 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Copyright (C) 2011 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. ---> - -<manifest xmlns:android="http://schemas.android.com/apk/res/android" - package="com.android.rs.helloworld"> - <uses-sdk android:minSdkVersion="11" /> - <application android:label="HelloWorld" - android:icon="@drawable/test_pattern"> - <activity android:name="HelloWorld" - android:label="HelloWorld" - android:theme="@android:style/Theme.Black.NoTitleBar"> - <intent-filter> - <action android:name="android.intent.action.MAIN" /> - <category android:name="android.intent.category.LAUNCHER" /> - </intent-filter> - </activity> - </application> -</manifest> diff --git a/libs/rs/java/HelloWorld/_index.html b/libs/rs/java/HelloWorld/_index.html deleted file mode 100644 index 4cab738..0000000 --- a/libs/rs/java/HelloWorld/_index.html +++ /dev/null @@ -1 +0,0 @@ -<p>A Renderscript graphics application that draws the text "Hello, World!" where the user touches.</p>
\ No newline at end of file diff --git a/libs/rs/java/HelloWorld/res/drawable/test_pattern.png b/libs/rs/java/HelloWorld/res/drawable/test_pattern.png Binary files differdeleted file mode 100644 index e7d1455..0000000 --- a/libs/rs/java/HelloWorld/res/drawable/test_pattern.png +++ /dev/null diff --git a/libs/rs/java/HelloWorld/src/com/android/rs/helloworld/HelloWorld.java b/libs/rs/java/HelloWorld/src/com/android/rs/helloworld/HelloWorld.java deleted file mode 100644 index f63015e..0000000 --- a/libs/rs/java/HelloWorld/src/com/android/rs/helloworld/HelloWorld.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (C) 2011 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 com.android.rs.helloworld; - -import android.app.Activity; -import android.os.Bundle; - -// Renderscript activity -public class HelloWorld extends Activity { - - // Custom view to use with RenderScript - private HelloWorldView mView; - - @Override - public void onCreate(Bundle icicle) { - super.onCreate(icicle); - - // Create our view and set it as the content of our Activity - mView = new HelloWorldView(this); - setContentView(mView); - } - - @Override - protected void onResume() { - // Ideally an app should implement onResume() and onPause() - // to take appropriate action when the activity loses focus - super.onResume(); - mView.resume(); - } - - @Override - protected void onPause() { - // Ideally an app should implement onResume() and onPause() - // to take appropriate action when the activity loses focus - super.onPause(); - mView.pause(); - } - -} - diff --git a/libs/rs/java/HelloWorld/src/com/android/rs/helloworld/HelloWorldRS.java b/libs/rs/java/HelloWorld/src/com/android/rs/helloworld/HelloWorldRS.java deleted file mode 100644 index c9c1316..0000000 --- a/libs/rs/java/HelloWorld/src/com/android/rs/helloworld/HelloWorldRS.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (C) 2011 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 com.android.rs.helloworld; - -import android.content.res.Resources; -import android.renderscript.*; - -// This is the renderer for the HelloWorldView -public class HelloWorldRS { - private Resources mRes; - private RenderScriptGL mRS; - - private ScriptC_helloworld mScript; - - public HelloWorldRS() { - } - - // This provides us with the renderscript context and resources that - // allow us to create the script that does rendering - public void init(RenderScriptGL rs, Resources res) { - mRS = rs; - mRes = res; - initRS(); - } - - public void onActionDown(int x, int y) { - mScript.set_gTouchX(x); - mScript.set_gTouchY(y); - } - - private void initRS() { - mScript = new ScriptC_helloworld(mRS, mRes, R.raw.helloworld); - mRS.bindRootScript(mScript); - } -} - - - diff --git a/libs/rs/java/HelloWorld/src/com/android/rs/helloworld/HelloWorldView.java b/libs/rs/java/HelloWorld/src/com/android/rs/helloworld/HelloWorldView.java deleted file mode 100644 index 8cddb2a..0000000 --- a/libs/rs/java/HelloWorld/src/com/android/rs/helloworld/HelloWorldView.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright (C) 2011 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 com.android.rs.helloworld; - -import android.renderscript.RSSurfaceView; -import android.renderscript.RenderScriptGL; - -import android.content.Context; -import android.view.MotionEvent; - -public class HelloWorldView extends RSSurfaceView { - // Renderscipt context - private RenderScriptGL mRS; - // Script that does the rendering - private HelloWorldRS mRender; - - public HelloWorldView(Context context) { - super(context); - ensureRenderScript(); - } - - private void ensureRenderScript() { - if (mRS == null) { - // Initialize renderscript with desired surface characteristics. - // In this case, just use the defaults - RenderScriptGL.SurfaceConfig sc = new RenderScriptGL.SurfaceConfig(); - mRS = createRenderScriptGL(sc); - // Create an instance of the script that does the rendering - mRender = new HelloWorldRS(); - mRender.init(mRS, getResources()); - } - } - - @Override - protected void onAttachedToWindow() { - super.onAttachedToWindow(); - ensureRenderScript(); - } - - @Override - protected void onDetachedFromWindow() { - // Handle the system event and clean up - mRender = null; - if (mRS != null) { - mRS = null; - destroyRenderScriptGL(); - } - } - - @Override - public boolean onTouchEvent(MotionEvent ev) { - // Pass touch events from the system to the rendering script - if (ev.getAction() == MotionEvent.ACTION_DOWN) { - mRender.onActionDown((int)ev.getX(), (int)ev.getY()); - return true; - } - - return false; - } -} - - diff --git a/libs/rs/java/HelloWorld/src/com/android/rs/helloworld/helloworld.rs b/libs/rs/java/HelloWorld/src/com/android/rs/helloworld/helloworld.rs deleted file mode 100644 index fa171f5..0000000 --- a/libs/rs/java/HelloWorld/src/com/android/rs/helloworld/helloworld.rs +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright (C) 2011 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. - -#pragma version(1) - -// Tell which java package name the reflected files should belong to -#pragma rs java_package_name(com.android.rs.helloworld) - -// Built-in header with graphics API's -#include "rs_graphics.rsh" - -// gTouchX and gTouchY are variables that will be reflected for use -// by the java API. We can use them to notify the script of touch events. -int gTouchX; -int gTouchY; - -// This is invoked automatically when the script is created -void init() { - gTouchX = 50.0f; - gTouchY = 50.0f; -} - -int root(int launchID) { - - // Clear the background color - rsgClearColor(0.0f, 0.0f, 0.0f, 0.0f); - // Tell the runtime what the font color should be - rsgFontColor(1.0f, 1.0f, 1.0f, 1.0f); - // Introuduce ourselves to the world by drawing a greeting - // at the position user touched on the screen - rsgDrawText("Hello World!", gTouchX, gTouchY); - - // Return value tells RS roughly how often to redraw - // in this case 20 ms - return 20; -} diff --git a/libs/rs/java/Samples/Android.mk b/libs/rs/java/Samples/Android.mk deleted file mode 100644 index 65ae734..0000000 --- a/libs/rs/java/Samples/Android.mk +++ /dev/null @@ -1,31 +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. -# - -ifneq ($(TARGET_SIMULATOR),true) - -LOCAL_PATH := $(call my-dir) -include $(CLEAR_VARS) - -LOCAL_MODULE_TAGS := optional - -LOCAL_SRC_FILES := $(call all-java-files-under, src) $(call all-renderscript-files-under, src) -#LOCAL_STATIC_JAVA_LIBRARIES := android.renderscript - -LOCAL_PACKAGE_NAME := Samples - -include $(BUILD_PACKAGE) - -endif diff --git a/libs/rs/java/Samples/AndroidManifest.xml b/libs/rs/java/Samples/AndroidManifest.xml deleted file mode 100644 index c08a264..0000000 --- a/libs/rs/java/Samples/AndroidManifest.xml +++ /dev/null @@ -1,25 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<manifest xmlns:android="http://schemas.android.com/apk/res/android" - package="com.android.samples"> - <uses-sdk android:minSdkVersion="11" /> - <application android:label="Samples" - android:icon="@drawable/test_pattern"> - <activity android:name="RsList" - android:label="RsList" - android:theme="@android:style/Theme.Black.NoTitleBar"> - <intent-filter> - <action android:name="android.intent.action.MAIN" /> - <category android:name="android.intent.category.LAUNCHER" /> - </intent-filter> - </activity> - - <activity android:name="RsRenderStates" - android:label="RsStates" - android:theme="@android:style/Theme.Black.NoTitleBar"> - <intent-filter> - <action android:name="android.intent.action.MAIN" /> - <category android:name="android.intent.category.LAUNCHER" /> - </intent-filter> - </activity> - </application> -</manifest> diff --git a/libs/rs/java/Samples/_index.html b/libs/rs/java/Samples/_index.html deleted file mode 100644 index 5872431..0000000 --- a/libs/rs/java/Samples/_index.html +++ /dev/null @@ -1 +0,0 @@ -<p>A set of samples that demonstrate how to use various features of the Renderscript APIs.</p>
\ No newline at end of file diff --git a/libs/rs/java/Samples/res/drawable/checker.png b/libs/rs/java/Samples/res/drawable/checker.png Binary files differdeleted file mode 100644 index b631e1e..0000000 --- a/libs/rs/java/Samples/res/drawable/checker.png +++ /dev/null diff --git a/libs/rs/java/Samples/res/drawable/cubemap_test.png b/libs/rs/java/Samples/res/drawable/cubemap_test.png Binary files differdeleted file mode 100644 index baf35d0..0000000 --- a/libs/rs/java/Samples/res/drawable/cubemap_test.png +++ /dev/null diff --git a/libs/rs/java/Samples/res/drawable/data.png b/libs/rs/java/Samples/res/drawable/data.png Binary files differdeleted file mode 100644 index 8e34714..0000000 --- a/libs/rs/java/Samples/res/drawable/data.png +++ /dev/null diff --git a/libs/rs/java/Samples/res/drawable/leaf.png b/libs/rs/java/Samples/res/drawable/leaf.png Binary files differdeleted file mode 100644 index 3cd3775..0000000 --- a/libs/rs/java/Samples/res/drawable/leaf.png +++ /dev/null diff --git a/libs/rs/java/Samples/res/drawable/test_pattern.png b/libs/rs/java/Samples/res/drawable/test_pattern.png Binary files differdeleted file mode 100644 index e7d1455..0000000 --- a/libs/rs/java/Samples/res/drawable/test_pattern.png +++ /dev/null diff --git a/libs/rs/java/Samples/res/drawable/torusmap.png b/libs/rs/java/Samples/res/drawable/torusmap.png Binary files differdeleted file mode 100644 index 1e08f3b..0000000 --- a/libs/rs/java/Samples/res/drawable/torusmap.png +++ /dev/null diff --git a/libs/rs/java/Samples/res/raw/multitexf.glsl b/libs/rs/java/Samples/res/raw/multitexf.glsl deleted file mode 100644 index e492a47..0000000 --- a/libs/rs/java/Samples/res/raw/multitexf.glsl +++ /dev/null @@ -1,13 +0,0 @@ -varying vec2 varTex0; - -void main() { - vec2 t0 = varTex0.xy; - lowp vec4 col0 = texture2D(UNI_Tex0, t0).rgba; - lowp vec4 col1 = texture2D(UNI_Tex1, t0*4.0).rgba; - lowp vec4 col2 = texture2D(UNI_Tex2, t0).rgba; - col0.xyz = col0.xyz*col1.xyz*1.5; - col0.xyz = mix(col0.xyz, col2.xyz, col2.w); - col0.w = 0.5; - gl_FragColor = col0; -} - diff --git a/libs/rs/java/Samples/res/raw/shader2f.glsl b/libs/rs/java/Samples/res/raw/shader2f.glsl deleted file mode 100644 index 5fc05f1..0000000 --- a/libs/rs/java/Samples/res/raw/shader2f.glsl +++ /dev/null @@ -1,29 +0,0 @@ -varying vec3 varWorldPos; -varying vec3 varWorldNormal; -varying vec2 varTex0; - -void main() { - - vec3 V = normalize(-varWorldPos.xyz); - vec3 worldNorm = normalize(varWorldNormal); - - vec3 light0Vec = normalize(UNI_light0_Posision.xyz - varWorldPos); - vec3 light0R = -reflect(light0Vec, worldNorm); - float light0_Diffuse = clamp(dot(worldNorm, light0Vec), 0.0, 1.0) * UNI_light0_Diffuse; - float light0Spec = clamp(dot(light0R, V), 0.001, 1.0); - float light0_Specular = pow(light0Spec, UNI_light0_CosinePower) * UNI_light0_Specular; - - vec3 light1Vec = normalize(UNI_light1_Posision.xyz - varWorldPos); - vec3 light1R = reflect(light1Vec, worldNorm); - float light1_Diffuse = clamp(dot(worldNorm, light1Vec), 0.0, 1.0) * UNI_light1_Diffuse; - float light1Spec = clamp(dot(light1R, V), 0.001, 1.0); - float light1_Specular = pow(light1Spec, UNI_light1_CosinePower) * UNI_light1_Specular; - - vec2 t0 = varTex0.xy; - lowp vec4 col = texture2D(UNI_Tex0, t0).rgba; - col.xyz = col.xyz * (light0_Diffuse * UNI_light0_DiffuseColor.xyz + light1_Diffuse * UNI_light1_DiffuseColor.xyz); - col.xyz += light0_Specular * UNI_light0_SpecularColor.xyz; - col.xyz += light1_Specular * UNI_light1_SpecularColor.xyz; - gl_FragColor = col; -} - diff --git a/libs/rs/java/Samples/res/raw/shader2movev.glsl b/libs/rs/java/Samples/res/raw/shader2movev.glsl deleted file mode 100644 index a2c807e..0000000 --- a/libs/rs/java/Samples/res/raw/shader2movev.glsl +++ /dev/null @@ -1,21 +0,0 @@ -varying vec3 varWorldPos; -varying vec3 varWorldNormal; -varying vec2 varTex0; - -// This is where actual shader code begins -void main() { - vec4 objPos = ATTRIB_position; - vec3 oldPos = objPos.xyz; - objPos.xyz += 0.1*sin(objPos.xyz*2.0 + UNI_time); - objPos.xyz += 0.05*sin(objPos.xyz*4.0 + UNI_time*0.5); - objPos.xyz += 0.02*sin(objPos.xyz*7.0 + UNI_time*0.75); - vec4 worldPos = UNI_model * objPos; - gl_Position = UNI_proj * worldPos; - - mat3 model3 = mat3(UNI_model[0].xyz, UNI_model[1].xyz, UNI_model[2].xyz); - vec3 worldNorm = model3 * (ATTRIB_normal + oldPos - objPos.xyz); - - varWorldPos = worldPos.xyz; - varWorldNormal = worldNorm; - varTex0 = ATTRIB_texture0; -} diff --git a/libs/rs/java/Samples/res/raw/shader2v.glsl b/libs/rs/java/Samples/res/raw/shader2v.glsl deleted file mode 100644 index e6885a3..0000000 --- a/libs/rs/java/Samples/res/raw/shader2v.glsl +++ /dev/null @@ -1,17 +0,0 @@ -varying vec3 varWorldPos; -varying vec3 varWorldNormal; -varying vec2 varTex0; - -// This is where actual shader code begins -void main() { - vec4 objPos = ATTRIB_position; - vec4 worldPos = UNI_model * objPos; - gl_Position = UNI_proj * worldPos; - - mat3 model3 = mat3(UNI_model[0].xyz, UNI_model[1].xyz, UNI_model[2].xyz); - vec3 worldNorm = model3 * ATTRIB_normal; - - varWorldPos = worldPos.xyz; - varWorldNormal = worldNorm; - varTex0 = ATTRIB_texture0; -} diff --git a/libs/rs/java/Samples/res/raw/shaderarrayf.glsl b/libs/rs/java/Samples/res/raw/shaderarrayf.glsl deleted file mode 100644 index 238ecad..0000000 --- a/libs/rs/java/Samples/res/raw/shaderarrayf.glsl +++ /dev/null @@ -1,16 +0,0 @@ - -varying lowp float light0_Diffuse; -varying lowp float light0_Specular; -varying lowp float light1_Diffuse; -varying lowp float light1_Specular; -varying vec2 varTex0; - -void main() { - vec2 t0 = varTex0.xy; - lowp vec4 col = texture2D(UNI_Tex0, t0).rgba; - col.xyz = col.xyz * (light0_Diffuse * UNI_light_DiffuseColor[0].xyz + light1_Diffuse * UNI_light_DiffuseColor[1].xyz); - col.xyz += light0_Specular * UNI_light_SpecularColor[0].xyz; - col.xyz += light1_Specular * UNI_light_SpecularColor[1].xyz; - gl_FragColor = col; -} - diff --git a/libs/rs/java/Samples/res/raw/shaderarrayv.glsl b/libs/rs/java/Samples/res/raw/shaderarrayv.glsl deleted file mode 100644 index 7a1310a..0000000 --- a/libs/rs/java/Samples/res/raw/shaderarrayv.glsl +++ /dev/null @@ -1,32 +0,0 @@ -varying float light0_Diffuse; -varying float light0_Specular; -varying float light1_Diffuse; -varying float light1_Specular; -varying vec2 varTex0; - -// This is where actual shader code begins -void main() { - vec4 worldPos = UNI_model[0] * ATTRIB_position; - worldPos = UNI_model[1] * worldPos; - gl_Position = UNI_proj * worldPos; - - mat4 model0 = UNI_model[0]; - mat3 model3 = mat3(model0[0].xyz, model0[1].xyz, model0[2].xyz); - vec3 worldNorm = model3 * ATTRIB_normal; - vec3 V = normalize(-worldPos.xyz); - - vec3 light0Vec = normalize(UNI_light_Posision[0].xyz - worldPos.xyz); - vec3 light0R = -reflect(light0Vec, worldNorm); - light0_Diffuse = clamp(dot(worldNorm, light0Vec), 0.0, 1.0) * UNI_light_Diffuse[0]; - float light0Spec = clamp(dot(light0R, V), 0.001, 1.0); - light0_Specular = pow(light0Spec, UNI_light_CosinePower[0]) * UNI_light_Specular[0]; - - vec3 light1Vec = normalize(UNI_light_Posision[1].xyz - worldPos.xyz); - vec3 light1R = reflect(light1Vec, worldNorm); - light1_Diffuse = clamp(dot(worldNorm, light1Vec), 0.0, 1.0) * UNI_light_Diffuse[1]; - float light1Spec = clamp(dot(light1R, V), 0.001, 1.0); - light1_Specular = pow(light1Spec, UNI_light_CosinePower[1]) * UNI_light_Specular[1]; - - gl_PointSize = 1.0; - varTex0 = ATTRIB_texture0; -} diff --git a/libs/rs/java/Samples/res/raw/shadercubef.glsl b/libs/rs/java/Samples/res/raw/shadercubef.glsl deleted file mode 100644 index 15696a4..0000000 --- a/libs/rs/java/Samples/res/raw/shadercubef.glsl +++ /dev/null @@ -1,8 +0,0 @@ - -varying vec3 worldNormal; - -void main() { - lowp vec4 col = textureCube(UNI_Tex0, worldNormal); - gl_FragColor = col; -} - diff --git a/libs/rs/java/Samples/res/raw/shadercubev.glsl b/libs/rs/java/Samples/res/raw/shadercubev.glsl deleted file mode 100644 index 70f5cd6..0000000 --- a/libs/rs/java/Samples/res/raw/shadercubev.glsl +++ /dev/null @@ -1,10 +0,0 @@ -varying vec3 worldNormal; - -// This is where actual shader code begins -void main() { - vec4 worldPos = UNI_model * ATTRIB_position; - gl_Position = UNI_proj * worldPos; - - mat3 model3 = mat3(UNI_model[0].xyz, UNI_model[1].xyz, UNI_model[2].xyz); - worldNormal = model3 * ATTRIB_normal; -} diff --git a/libs/rs/java/Samples/res/raw/shaderf.glsl b/libs/rs/java/Samples/res/raw/shaderf.glsl deleted file mode 100644 index d56e203..0000000 --- a/libs/rs/java/Samples/res/raw/shaderf.glsl +++ /dev/null @@ -1,16 +0,0 @@ - -varying lowp float light0_Diffuse; -varying lowp float light0_Specular; -varying lowp float light1_Diffuse; -varying lowp float light1_Specular; -varying vec2 varTex0; - -void main() { - vec2 t0 = varTex0.xy; - lowp vec4 col = texture2D(UNI_Tex0, t0).rgba; - col.xyz = col.xyz * (light0_Diffuse * UNI_light0_DiffuseColor.xyz + light1_Diffuse * UNI_light1_DiffuseColor.xyz); - col.xyz += light0_Specular * UNI_light0_SpecularColor.xyz; - col.xyz += light1_Specular * UNI_light1_SpecularColor.xyz; - gl_FragColor = col; -} - diff --git a/libs/rs/java/Samples/res/raw/shaderv.glsl b/libs/rs/java/Samples/res/raw/shaderv.glsl deleted file mode 100644 index f7d01de..0000000 --- a/libs/rs/java/Samples/res/raw/shaderv.glsl +++ /dev/null @@ -1,30 +0,0 @@ -varying float light0_Diffuse; -varying float light0_Specular; -varying float light1_Diffuse; -varying float light1_Specular; -varying vec2 varTex0; - -// This is where actual shader code begins -void main() { - vec4 worldPos = UNI_model * ATTRIB_position; - gl_Position = UNI_proj * worldPos; - - mat3 model3 = mat3(UNI_model[0].xyz, UNI_model[1].xyz, UNI_model[2].xyz); - vec3 worldNorm = model3 * ATTRIB_normal; - vec3 V = normalize(-worldPos.xyz); - - vec3 light0Vec = normalize(UNI_light0_Posision.xyz - worldPos.xyz); - vec3 light0R = -reflect(light0Vec, worldNorm); - light0_Diffuse = clamp(dot(worldNorm, light0Vec), 0.0, 1.0) * UNI_light0_Diffuse; - float light0Spec = clamp(dot(light0R, V), 0.001, 1.0); - light0_Specular = pow(light0Spec, UNI_light0_CosinePower) * UNI_light0_Specular; - - vec3 light1Vec = normalize(UNI_light1_Posision.xyz - worldPos.xyz); - vec3 light1R = reflect(light1Vec, worldNorm); - light1_Diffuse = clamp(dot(worldNorm, light1Vec), 0.0, 1.0) * UNI_light1_Diffuse; - float light1Spec = clamp(dot(light1R, V), 0.001, 1.0); - light1_Specular = pow(light1Spec, UNI_light1_CosinePower) * UNI_light1_Specular; - - gl_PointSize = 1.0; - varTex0 = ATTRIB_texture0; -} diff --git a/libs/rs/java/Samples/res/raw/torus.a3d b/libs/rs/java/Samples/res/raw/torus.a3d Binary files differdeleted file mode 100644 index 0322b01..0000000 --- a/libs/rs/java/Samples/res/raw/torus.a3d +++ /dev/null diff --git a/libs/rs/java/Samples/src/com/android/samples/RsList.java b/libs/rs/java/Samples/src/com/android/samples/RsList.java deleted file mode 100644 index 2d7add0..0000000 --- a/libs/rs/java/Samples/src/com/android/samples/RsList.java +++ /dev/null @@ -1,53 +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 com.android.samples; - -import android.app.Activity; -import android.os.Bundle; - -public class RsList extends Activity { - - private RsListView mView; - - @Override - public void onCreate(Bundle icicle) { - super.onCreate(icicle); - - // Create our Preview view and set it as the content of our - // Activity - mView = new RsListView(this); - setContentView(mView); - } - - @Override - protected void onResume() { - // Ideally a game should implement onResume() and onPause() - // to take appropriate action when the activity loses focus - super.onResume(); - mView.resume(); - } - - @Override - protected void onPause() { - // Ideally a game should implement onResume() and onPause() - // to take appropriate action when the activity loses focus - super.onPause(); - mView.pause(); - } - -} - diff --git a/libs/rs/java/Samples/src/com/android/samples/RsListRS.java b/libs/rs/java/Samples/src/com/android/samples/RsListRS.java deleted file mode 100644 index 6ee545ac..0000000 --- a/libs/rs/java/Samples/src/com/android/samples/RsListRS.java +++ /dev/null @@ -1,140 +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 com.android.samples; - -import java.io.Writer; -import java.util.Vector; - -import android.content.res.Resources; -import android.renderscript.*; -import android.renderscript.ProgramStore.DepthFunc; -import android.util.Log; - - -public class RsListRS { - - private final int STATE_LAST_FOCUS = 1; - - private static final String[] DATA_LIST = { - "Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra", - "Angola", "Anguilla", "Antarctica", "Antigua and Barbuda", "Argentina", - "Armenia", "Aruba", "Australia", "Austria", "Azerbaijan", - "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium", - "Belize", "Benin", "Bermuda", "Bhutan", "Bolivia", - "Bosnia and Herzegovina", "Botswana", "Bouvet Island", "Brazil", - "British Indian Ocean Territory", "British Virgin Islands", "Brunei", "Bulgaria", - "Burkina Faso", "Burundi", "Cote d'Ivoire", "Cambodia", "Cameroon", "Canada", "Cape Verde", - "Cayman Islands", "Central African Republic", "Chad", "Chile", "China", - "Christmas Island", "Cocos (Keeling) Islands", "Colombia", "Comoros", "Congo", - "Cook Islands", "Costa Rica", "Croatia", "Cuba", "Cyprus", "Czech Republic", - "Democratic Republic of the Congo", "Denmark", "Djibouti", "Dominica", "Dominican Republic", - "East Timor", "Ecuador", "Egypt", "El Salvador", "Equatorial Guinea", "Eritrea", - "Estonia", "Ethiopia", "Faeroe Islands", "Falkland Islands", "Fiji", "Finland", - "Former Yugoslav Republic of Macedonia", "France", "French Guiana", "French Polynesia", - "French Southern Territories", "Gabon", "Georgia", "Germany", "Ghana", "Gibraltar", - "Greece", "Greenland", "Grenada", "Guadeloupe", "Guam", "Guatemala", "Guinea", "Guinea-Bissau", - "Guyana", "Haiti", "Heard Island and McDonald Islands", "Honduras", "Hong Kong", "Hungary", - "Iceland", "India", "Indonesia", "Iran", "Iraq", "Ireland", "Israel", "Italy", "Jamaica", - "Japan", "Jordan", "Kazakhstan", "Kenya", "Kiribati", "Kuwait", "Kyrgyzstan", "Laos", - "Latvia", "Lebanon", "Lesotho", "Liberia", "Libya", "Liechtenstein", "Lithuania", "Luxembourg", - "Macau", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta", "Marshall Islands", - "Martinique", "Mauritania", "Mauritius", "Mayotte", "Mexico", "Micronesia", "Moldova", - "Monaco", "Mongolia", "Montserrat", "Morocco", "Mozambique", "Myanmar", "Namibia", - "Nauru", "Nepal", "Netherlands", "Netherlands Antilles", "New Caledonia", "New Zealand", - "Nicaragua", "Niger", "Nigeria", "Niue", "Norfolk Island", "North Korea", "Northern Marianas", - "Norway", "Oman", "Pakistan", "Palau", "Panama", "Papua New Guinea", "Paraguay", "Peru", - "Philippines", "Pitcairn Islands", "Poland", "Portugal", "Puerto Rico", "Qatar", - "Reunion", "Romania", "Russia", "Rwanda", "Sqo Tome and Principe", "Saint Helena", - "Saint Kitts and Nevis", "Saint Lucia", "Saint Pierre and Miquelon", - "Saint Vincent and the Grenadines", "Samoa", "San Marino", "Saudi Arabia", "Senegal", - "Seychelles", "Sierra Leone", "Singapore", "Slovakia", "Slovenia", "Solomon Islands", - "Somalia", "South Africa", "South Georgia and the South Sandwich Islands", "South Korea", - "Spain", "Sri Lanka", "Sudan", "Suriname", "Svalbard and Jan Mayen", "Swaziland", "Sweden", - "Switzerland", "Syria", "Taiwan", "Tajikistan", "Tanzania", "Thailand", "The Bahamas", - "The Gambia", "Togo", "Tokelau", "Tonga", "Trinidad and Tobago", "Tunisia", "Turkey", - "Turkmenistan", "Turks and Caicos Islands", "Tuvalu", "Virgin Islands", "Uganda", - "Ukraine", "United Arab Emirates", "United Kingdom", - "United States", "United States Minor Outlying Islands", "Uruguay", "Uzbekistan", - "Vanuatu", "Vatican City", "Venezuela", "Vietnam", "Wallis and Futuna", "Western Sahara", - "Yemen", "Yugoslavia", "Zambia", "Zimbabwe" - }; - - public RsListRS() { - } - - public void init(RenderScriptGL rs, Resources res) { - mRS = rs; - mRes = res; - initRS(); - } - - private Resources mRes; - private RenderScriptGL mRS; - private Font mItalic; - - ScriptField_ListAllocs_s mListAllocs; - - private ScriptC_rslist mScript; - - int mLastX; - int mLastY; - - public void onActionDown(int x, int y) { - mScript.set_gDY(0.0f); - - mLastX = x; - mLastY = y; - } - - public void onActionMove(int x, int y) { - int dx = mLastX - x; - int dy = mLastY - y; - - if (Math.abs(dy) <= 2) { - dy = 0; - } - - mScript.set_gDY(dy); - - mLastX = x; - mLastY = y; - } - - private void initRS() { - - mScript = new ScriptC_rslist(mRS, mRes, R.raw.rslist); - - mListAllocs = new ScriptField_ListAllocs_s(mRS, DATA_LIST.length); - for (int i = 0; i < DATA_LIST.length; i ++) { - ScriptField_ListAllocs_s.Item listElem = new ScriptField_ListAllocs_s.Item(); - listElem.text = Allocation.createFromString(mRS, DATA_LIST[i], Allocation.USAGE_SCRIPT); - mListAllocs.set(listElem, i, false); - } - - mListAllocs.copyAll(); - - mScript.bind_gList(mListAllocs); - - mItalic = Font.create(mRS, mRes, "serif", Font.Style.BOLD_ITALIC, 8); - mScript.set_gItalic(mItalic); - - mRS.bindRootScript(mScript); - } -} - - - diff --git a/libs/rs/java/Samples/src/com/android/samples/RsListView.java b/libs/rs/java/Samples/src/com/android/samples/RsListView.java deleted file mode 100644 index b67bd48..0000000 --- a/libs/rs/java/Samples/src/com/android/samples/RsListView.java +++ /dev/null @@ -1,75 +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 com.android.samples; -import android.renderscript.RSSurfaceView; -import android.renderscript.RenderScriptGL; - -import android.content.Context; -import android.view.MotionEvent; - -public class RsListView extends RSSurfaceView { - - public RsListView(Context context) { - super(context); - ensureRenderScript(); - } - - private RenderScriptGL mRS; - private RsListRS mRender; - - private void ensureRenderScript() { - if (mRS == null) { - RenderScriptGL.SurfaceConfig sc = new RenderScriptGL.SurfaceConfig(); - mRS = createRenderScriptGL(sc); - mRender = new RsListRS(); - mRender.init(mRS, getResources()); - } - } - - @Override - protected void onAttachedToWindow() { - super.onAttachedToWindow(); - ensureRenderScript(); - } - - @Override - protected void onDetachedFromWindow() { - mRender = null; - if (mRS != null) { - mRS = null; - destroyRenderScriptGL(); - } - } - - @Override - public boolean onTouchEvent(MotionEvent ev) - { - boolean ret = false; - int act = ev.getAction(); - if (act == MotionEvent.ACTION_DOWN) { - mRender.onActionDown((int)ev.getX(), (int)ev.getY()); - ret = true; - } else if (act == MotionEvent.ACTION_MOVE) { - mRender.onActionMove((int)ev.getX(), (int)ev.getY()); - ret = true; - } - - return ret; - } -} - - diff --git a/libs/rs/java/Samples/src/com/android/samples/RsRenderStates.java b/libs/rs/java/Samples/src/com/android/samples/RsRenderStates.java deleted file mode 100644 index ff8c2de..0000000 --- a/libs/rs/java/Samples/src/com/android/samples/RsRenderStates.java +++ /dev/null @@ -1,53 +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 com.android.samples; - -import android.app.Activity; -import android.os.Bundle; - -public class RsRenderStates extends Activity { - - private RsRenderStatesView mView; - - @Override - public void onCreate(Bundle icicle) { - super.onCreate(icicle); - - // Create our Preview view and set it as the content of our - // Activity - mView = new RsRenderStatesView(this); - setContentView(mView); - } - - @Override - protected void onResume() { - // Ideally a game should implement onResume() and onPause() - // to take appropriate action when the activity looses focus - super.onResume(); - mView.resume(); - } - - @Override - protected void onPause() { - // Ideally a game should implement onResume() and onPause() - // to take appropriate action when the activity looses focus - super.onPause(); - mView.pause(); - } - -} - diff --git a/libs/rs/java/Samples/src/com/android/samples/RsRenderStatesRS.java b/libs/rs/java/Samples/src/com/android/samples/RsRenderStatesRS.java deleted file mode 100644 index 49b65d6..0000000 --- a/libs/rs/java/Samples/src/com/android/samples/RsRenderStatesRS.java +++ /dev/null @@ -1,422 +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 com.android.samples; - -import android.content.res.Resources; -import android.graphics.Bitmap; -import android.graphics.BitmapFactory; -import android.renderscript.*; -import android.renderscript.Font.Style; -import android.renderscript.Program.TextureType; -import android.renderscript.ProgramStore.DepthFunc; -import android.renderscript.ProgramStore.BlendSrcFunc; -import android.renderscript.ProgramStore.BlendDstFunc; -import android.renderscript.Sampler.Value; -import android.util.Log; - - -public class RsRenderStatesRS { - - int mWidth; - int mHeight; - - public RsRenderStatesRS() { - } - - public void init(RenderScriptGL rs, Resources res) { - mRS = rs; - mWidth = mRS.getWidth(); - mHeight = mRS.getHeight(); - mRes = res; - mOptionsARGB.inScaled = false; - mOptionsARGB.inPreferredConfig = Bitmap.Config.ARGB_8888; - mMode = 0; - mMaxModes = 0; - initRS(); - } - - public void surfaceChanged() { - mWidth = mRS.getWidth(); - mHeight = mRS.getHeight(); - - Matrix4f proj = new Matrix4f(); - proj.loadOrthoWindow(mWidth, mHeight); - mPVA.setProjection(proj); - } - - private Resources mRes; - private RenderScriptGL mRS; - - private Sampler mLinearClamp; - private Sampler mLinearWrap; - private Sampler mMipLinearWrap; - private Sampler mNearestClamp; - private Sampler mMipLinearAniso8; - private Sampler mMipLinearAniso15; - - private ProgramStore mProgStoreBlendNoneDepth; - private ProgramStore mProgStoreBlendNone; - private ProgramStore mProgStoreBlendAlpha; - private ProgramStore mProgStoreBlendAdd; - - private ProgramFragment mProgFragmentTexture; - private ProgramFragment mProgFragmentColor; - - private ProgramVertex mProgVertex; - private ProgramVertexFixedFunction.Constants mPVA; - - // Custom shaders - private ProgramVertex mProgVertexCustom; - private ProgramFragment mProgFragmentCustom; - private ProgramFragment mProgFragmentMultitex; - private ScriptField_VertexShaderConstants_s mVSConst; - private ScriptField_VertexShaderConstants2_s mVSConst2; - private ScriptField_FragentShaderConstants_s mFSConst; - private ScriptField_FragentShaderConstants2_s mFSConst2; - - private ProgramVertex mProgVertexCustom2; - private ProgramFragment mProgFragmentCustom2; - - private ProgramVertex mProgVertexCube; - private ProgramFragment mProgFragmentCube; - - private ProgramRaster mCullBack; - private ProgramRaster mCullFront; - private ProgramRaster mCullNone; - - private Allocation mTexTorus; - private Allocation mTexOpaque; - private Allocation mTexTransparent; - private Allocation mTexChecker; - private Allocation mTexCube; - - private Mesh mMbyNMesh; - private Mesh mTorus; - - Font mFontSans; - Font mFontSerif; - Font mFontSerifBold; - Font mFontSerifItalic; - Font mFontSerifBoldItalic; - Font mFontMono; - private Allocation mTextAlloc; - - private ScriptC_rsrenderstates mScript; - - private final BitmapFactory.Options mOptionsARGB = new BitmapFactory.Options(); - - int mMode; - int mMaxModes; - - public void onActionDown(int x, int y) { - mMode ++; - mMode = mMode % mMaxModes; - mScript.set_gDisplayMode(mMode); - } - - ProgramStore BLEND_ADD_DEPTH_NONE(RenderScript rs) { - ProgramStore.Builder builder = new ProgramStore.Builder(rs); - builder.setDepthFunc(ProgramStore.DepthFunc.ALWAYS); - builder.setBlendFunc(BlendSrcFunc.ONE, BlendDstFunc.ONE); - builder.setDitherEnabled(false); - builder.setDepthMaskEnabled(false); - return builder.create(); - } - - private Mesh getMbyNMesh(float width, float height, int wResolution, int hResolution) { - - Mesh.TriangleMeshBuilder tmb = new Mesh.TriangleMeshBuilder(mRS, - 2, Mesh.TriangleMeshBuilder.TEXTURE_0); - - for (int y = 0; y <= hResolution; y++) { - final float normalizedY = (float)y / hResolution; - final float yOffset = (normalizedY - 0.5f) * height; - for (int x = 0; x <= wResolution; x++) { - float normalizedX = (float)x / wResolution; - float xOffset = (normalizedX - 0.5f) * width; - tmb.setTexture(normalizedX, normalizedY); - tmb.addVertex(xOffset, yOffset); - } - } - - for (int y = 0; y < hResolution; y++) { - final int curY = y * (wResolution + 1); - final int belowY = (y + 1) * (wResolution + 1); - for (int x = 0; x < wResolution; x++) { - int curV = curY + x; - int belowV = belowY + x; - tmb.addTriangle(curV, belowV, curV + 1); - tmb.addTriangle(belowV, belowV + 1, curV + 1); - } - } - - return tmb.create(true); - } - - private void initProgramStore() { - // Use stock the stock program store object - mProgStoreBlendNoneDepth = ProgramStore.BLEND_NONE_DEPTH_TEST(mRS); - mProgStoreBlendNone = ProgramStore.BLEND_NONE_DEPTH_NONE(mRS); - - // Create a custom program store - ProgramStore.Builder builder = new ProgramStore.Builder(mRS); - builder.setDepthFunc(ProgramStore.DepthFunc.ALWAYS); - builder.setBlendFunc(ProgramStore.BlendSrcFunc.SRC_ALPHA, - ProgramStore.BlendDstFunc.ONE_MINUS_SRC_ALPHA); - builder.setDitherEnabled(false); - builder.setDepthMaskEnabled(false); - mProgStoreBlendAlpha = builder.create(); - - mProgStoreBlendAdd = BLEND_ADD_DEPTH_NONE(mRS); - - mScript.set_gProgStoreBlendNoneDepth(mProgStoreBlendNoneDepth); - mScript.set_gProgStoreBlendNone(mProgStoreBlendNone); - mScript.set_gProgStoreBlendAlpha(mProgStoreBlendAlpha); - mScript.set_gProgStoreBlendAdd(mProgStoreBlendAdd); - } - - private void initProgramFragment() { - - ProgramFragmentFixedFunction.Builder texBuilder = new ProgramFragmentFixedFunction.Builder(mRS); - texBuilder.setTexture(ProgramFragmentFixedFunction.Builder.EnvMode.REPLACE, - ProgramFragmentFixedFunction.Builder.Format.RGBA, 0); - mProgFragmentTexture = texBuilder.create(); - mProgFragmentTexture.bindSampler(mLinearClamp, 0); - - ProgramFragmentFixedFunction.Builder colBuilder = new ProgramFragmentFixedFunction.Builder(mRS); - colBuilder.setVaryingColor(false); - mProgFragmentColor = colBuilder.create(); - - mScript.set_gProgFragmentColor(mProgFragmentColor); - mScript.set_gProgFragmentTexture(mProgFragmentTexture); - } - - private void initProgramVertex() { - ProgramVertexFixedFunction.Builder pvb = new ProgramVertexFixedFunction.Builder(mRS); - mProgVertex = pvb.create(); - - mPVA = new ProgramVertexFixedFunction.Constants(mRS); - ((ProgramVertexFixedFunction)mProgVertex).bindConstants(mPVA); - Matrix4f proj = new Matrix4f(); - proj.loadOrthoWindow(mWidth, mHeight); - mPVA.setProjection(proj); - - mScript.set_gProgVertex(mProgVertex); - } - - private void initCustomShaders() { - mVSConst = new ScriptField_VertexShaderConstants_s(mRS, 1); - mVSConst2 = new ScriptField_VertexShaderConstants2_s(mRS, 1); - mFSConst = new ScriptField_FragentShaderConstants_s(mRS, 1); - mFSConst2 = new ScriptField_FragentShaderConstants2_s(mRS, 1); - - mScript.bind_gVSConstants(mVSConst); - mScript.bind_gVSConstants2(mVSConst2); - mScript.bind_gFSConstants(mFSConst); - mScript.bind_gFSConstants2(mFSConst2); - - // Initialize the shader builder - ProgramVertex.Builder pvbCustom = new ProgramVertex.Builder(mRS); - // Specify the resource that contains the shader string - pvbCustom.setShader(mRes, R.raw.shaderv); - // Use a script field to spcify the input layout - pvbCustom.addInput(ScriptField_VertexShaderInputs_s.createElement(mRS)); - // Define the constant input layout - pvbCustom.addConstant(mVSConst.getAllocation().getType()); - mProgVertexCustom = pvbCustom.create(); - // Bind the source of constant data - mProgVertexCustom.bindConstants(mVSConst.getAllocation(), 0); - - ProgramFragment.Builder pfbCustom = new ProgramFragment.Builder(mRS); - // Specify the resource that contains the shader string - pfbCustom.setShader(mRes, R.raw.shaderf); - //Tell the builder how many textures we have - pfbCustom.addTexture(Program.TextureType.TEXTURE_2D); - // Define the constant input layout - pfbCustom.addConstant(mFSConst.getAllocation().getType()); - mProgFragmentCustom = pfbCustom.create(); - // Bind the source of constant data - mProgFragmentCustom.bindConstants(mFSConst.getAllocation(), 0); - - pvbCustom = new ProgramVertex.Builder(mRS); - pvbCustom.setShader(mRes, R.raw.shaderarrayv); - pvbCustom.addInput(ScriptField_VertexShaderInputs_s.createElement(mRS)); - pvbCustom.addConstant(mVSConst2.getAllocation().getType()); - mProgVertexCustom2 = pvbCustom.create(); - mProgVertexCustom2.bindConstants(mVSConst2.getAllocation(), 0); - - pfbCustom = new ProgramFragment.Builder(mRS); - pfbCustom.setShader(mRes, R.raw.shaderarrayf); - pfbCustom.addTexture(Program.TextureType.TEXTURE_2D); - pfbCustom.addConstant(mFSConst2.getAllocation().getType()); - mProgFragmentCustom2 = pfbCustom.create(); - mProgFragmentCustom2.bindConstants(mFSConst2.getAllocation(), 0); - - // Cubemap test shaders - pvbCustom = new ProgramVertex.Builder(mRS); - pvbCustom.setShader(mRes, R.raw.shadercubev); - pvbCustom.addInput(ScriptField_VertexShaderInputs_s.createElement(mRS)); - pvbCustom.addConstant(mVSConst.getAllocation().getType()); - mProgVertexCube = pvbCustom.create(); - mProgVertexCube.bindConstants(mVSConst.getAllocation(), 0); - - pfbCustom = new ProgramFragment.Builder(mRS); - pfbCustom.setShader(mRes, R.raw.shadercubef); - pfbCustom.addTexture(Program.TextureType.TEXTURE_CUBE); - mProgFragmentCube = pfbCustom.create(); - - pfbCustom = new ProgramFragment.Builder(mRS); - pfbCustom.setShader(mRes, R.raw.multitexf); - for (int texCount = 0; texCount < 3; texCount ++) { - pfbCustom.addTexture(Program.TextureType.TEXTURE_2D); - } - mProgFragmentMultitex = pfbCustom.create(); - - mScript.set_gProgVertexCustom(mProgVertexCustom); - mScript.set_gProgFragmentCustom(mProgFragmentCustom); - mScript.set_gProgVertexCustom2(mProgVertexCustom2); - mScript.set_gProgFragmentCustom2(mProgFragmentCustom2); - mScript.set_gProgVertexCube(mProgVertexCube); - mScript.set_gProgFragmentCube(mProgFragmentCube); - mScript.set_gProgFragmentMultitex(mProgFragmentMultitex); - } - - private Allocation loadTextureRGB(int id) { - return Allocation.createFromBitmapResource(mRS, mRes, id, - Allocation.MipmapControl.MIPMAP_ON_SYNC_TO_TEXTURE, - Allocation.USAGE_GRAPHICS_TEXTURE); - } - - private Allocation loadTextureARGB(int id) { - Bitmap b = BitmapFactory.decodeResource(mRes, id, mOptionsARGB); - return Allocation.createFromBitmap(mRS, b, - Allocation.MipmapControl.MIPMAP_ON_SYNC_TO_TEXTURE, - Allocation.USAGE_GRAPHICS_TEXTURE); - } - - private void loadImages() { - mTexTorus = loadTextureRGB(R.drawable.torusmap); - mTexOpaque = loadTextureRGB(R.drawable.data); - mTexTransparent = loadTextureARGB(R.drawable.leaf); - mTexChecker = loadTextureRGB(R.drawable.checker); - Bitmap b = BitmapFactory.decodeResource(mRes, R.drawable.cubemap_test); - mTexCube = Allocation.createCubemapFromBitmap(mRS, b); - - mScript.set_gTexTorus(mTexTorus); - mScript.set_gTexOpaque(mTexOpaque); - mScript.set_gTexTransparent(mTexTransparent); - mScript.set_gTexChecker(mTexChecker); - mScript.set_gTexCube(mTexCube); - } - - private void initFonts() { - // Sans font by family name - mFontSans = Font.create(mRS, mRes, "sans-serif", Font.Style.NORMAL, 8); - mFontSerif = Font.create(mRS, mRes, "serif", Font.Style.NORMAL, 8); - // Create fonts by family and style - mFontSerifBold = Font.create(mRS, mRes, "serif", Font.Style.BOLD, 8); - mFontSerifItalic = Font.create(mRS, mRes, "serif", Font.Style.ITALIC, 8); - mFontSerifBoldItalic = Font.create(mRS, mRes, "serif", Font.Style.BOLD_ITALIC, 8); - mFontMono = Font.create(mRS, mRes, "mono", Font.Style.NORMAL, 8); - - mTextAlloc = Allocation.createFromString(mRS, "String from allocation", Allocation.USAGE_SCRIPT); - - mScript.set_gFontSans(mFontSans); - mScript.set_gFontSerif(mFontSerif); - mScript.set_gFontSerifBold(mFontSerifBold); - mScript.set_gFontSerifItalic(mFontSerifItalic); - mScript.set_gFontSerifBoldItalic(mFontSerifBoldItalic); - mScript.set_gFontMono(mFontMono); - mScript.set_gTextAlloc(mTextAlloc); - } - - private void initMesh() { - mMbyNMesh = getMbyNMesh(256, 256, 10, 10); - mScript.set_gMbyNMesh(mMbyNMesh); - - FileA3D model = FileA3D.createFromResource(mRS, mRes, R.raw.torus); - FileA3D.IndexEntry entry = model.getIndexEntry(0); - if (entry == null || entry.getEntryType() != FileA3D.EntryType.MESH) { - Log.e("rs", "could not load model"); - } else { - mTorus = (Mesh)entry.getObject(); - mScript.set_gTorusMesh(mTorus); - } - } - - private void initSamplers() { - Sampler.Builder bs = new Sampler.Builder(mRS); - bs.setMinification(Sampler.Value.LINEAR); - bs.setMagnification(Sampler.Value.LINEAR); - bs.setWrapS(Sampler.Value.WRAP); - bs.setWrapT(Sampler.Value.WRAP); - mLinearWrap = bs.create(); - - mLinearClamp = Sampler.CLAMP_LINEAR(mRS); - mNearestClamp = Sampler.CLAMP_NEAREST(mRS); - mMipLinearWrap = Sampler.WRAP_LINEAR_MIP_LINEAR(mRS); - - bs = new Sampler.Builder(mRS); - bs.setMinification(Sampler.Value.LINEAR_MIP_LINEAR); - bs.setMagnification(Sampler.Value.LINEAR); - bs.setWrapS(Sampler.Value.WRAP); - bs.setWrapT(Sampler.Value.WRAP); - bs.setAnisotropy(8.0f); - mMipLinearAniso8 = bs.create(); - bs.setAnisotropy(15.0f); - mMipLinearAniso15 = bs.create(); - - mScript.set_gLinearClamp(mLinearClamp); - mScript.set_gLinearWrap(mLinearWrap); - mScript.set_gMipLinearWrap(mMipLinearWrap); - mScript.set_gMipLinearAniso8(mMipLinearAniso8); - mScript.set_gMipLinearAniso15(mMipLinearAniso15); - mScript.set_gNearestClamp(mNearestClamp); - } - - private void initProgramRaster() { - mCullBack = ProgramRaster.CULL_BACK(mRS); - mCullFront = ProgramRaster.CULL_FRONT(mRS); - mCullNone = ProgramRaster.CULL_NONE(mRS); - - mScript.set_gCullBack(mCullBack); - mScript.set_gCullFront(mCullFront); - mScript.set_gCullNone(mCullNone); - } - - private void initRS() { - - mScript = new ScriptC_rsrenderstates(mRS, mRes, R.raw.rsrenderstates); - - mMaxModes = mScript.get_gMaxModes(); - - initSamplers(); - initProgramStore(); - initProgramFragment(); - initProgramVertex(); - initFonts(); - loadImages(); - initMesh(); - initProgramRaster(); - initCustomShaders(); - - mRS.bindRootScript(mScript); - } -} - - - diff --git a/libs/rs/java/Samples/src/com/android/samples/RsRenderStatesView.java b/libs/rs/java/Samples/src/com/android/samples/RsRenderStatesView.java deleted file mode 100644 index 4d339dd..0000000 --- a/libs/rs/java/Samples/src/com/android/samples/RsRenderStatesView.java +++ /dev/null @@ -1,78 +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 com.android.samples; - -import android.renderscript.RSSurfaceView; -import android.renderscript.RenderScriptGL; - -import android.content.Context; -import android.view.MotionEvent; -import android.view.SurfaceHolder; - -public class RsRenderStatesView extends RSSurfaceView { - - public RsRenderStatesView(Context context) { - super(context); - ensureRenderScript(); - } - - private RenderScriptGL mRS; - private RsRenderStatesRS mRender; - - private void ensureRenderScript() { - if (mRS == null) { - RenderScriptGL.SurfaceConfig sc = new RenderScriptGL.SurfaceConfig(); - sc.setDepth(16, 24); - mRS = createRenderScriptGL(sc); - mRender = new RsRenderStatesRS(); - mRender.init(mRS, getResources()); - } - } - - @Override - protected void onAttachedToWindow() { - super.onAttachedToWindow(); - ensureRenderScript(); - } - - @Override - public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) { - super.surfaceChanged(holder, format, w, h); - mRender.surfaceChanged(); - } - - @Override - protected void onDetachedFromWindow() { - mRender = null; - if (mRS != null) { - mRS = null; - destroyRenderScriptGL(); - } - } - - @Override - public boolean onTouchEvent(MotionEvent ev) { - if (ev.getAction() == MotionEvent.ACTION_DOWN) { - mRender.onActionDown((int)ev.getX(), (int)ev.getY()); - return true; - } - - return false; - } -} - - diff --git a/libs/rs/java/Samples/src/com/android/samples/rslist.rs b/libs/rs/java/Samples/src/com/android/samples/rslist.rs deleted file mode 100644 index 52c870a..0000000 --- a/libs/rs/java/Samples/src/com/android/samples/rslist.rs +++ /dev/null @@ -1,70 +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. - -#pragma version(1) - -#pragma rs java_package_name(com.android.samples) - -#include "rs_graphics.rsh" - -float gDY; - -rs_font gItalic; - -typedef struct ListAllocs_s { - rs_allocation text; -} ListAllocs; - -ListAllocs *gList; - -void init() { - gDY = 0.0f; -} - -int textPos = 0; - -int root(int launchID) { - - rsgClearColor(0.0f, 0.0f, 0.0f, 0.0f); - - textPos -= (int)gDY*2; - gDY *= 0.95; - - rsgFontColor(0.9f, 0.9f, 0.9f, 1.0f); - rsgBindFont(gItalic); - - rs_allocation listAlloc; - rsSetObject(&listAlloc, rsGetAllocation(gList)); - int allocSize = rsAllocationGetDimX(listAlloc); - - int width = rsgGetWidth(); - int height = rsgGetHeight(); - - int itemHeight = 80; - int currentYPos = itemHeight + textPos; - - for (int i = 0; i < allocSize; i ++) { - if (currentYPos - itemHeight > height) { - break; - } - - if (currentYPos > 0) { - rsgDrawRect(0, currentYPos - 1, width, currentYPos, 0); - rsgDrawText(gList[i].text, 30, currentYPos - 32); - } - currentYPos += itemHeight; - } - - return 10; -} diff --git a/libs/rs/java/Samples/src/com/android/samples/rsrenderstates.rs b/libs/rs/java/Samples/src/com/android/samples/rsrenderstates.rs deleted file mode 100644 index 9019533..0000000 --- a/libs/rs/java/Samples/src/com/android/samples/rsrenderstates.rs +++ /dev/null @@ -1,680 +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. - -#pragma version(1) - -#pragma rs java_package_name(com.android.samples) - -#include "rs_graphics.rsh" -#include "shader_def.rsh" - -const int gMaxModes = 11; - -rs_program_vertex gProgVertex; -rs_program_fragment gProgFragmentColor; -rs_program_fragment gProgFragmentTexture; - -rs_program_store gProgStoreBlendNoneDepth; -rs_program_store gProgStoreBlendNone; -rs_program_store gProgStoreBlendAlpha; -rs_program_store gProgStoreBlendAdd; - -rs_allocation gTexOpaque; -rs_allocation gTexTorus; -rs_allocation gTexTransparent; -rs_allocation gTexChecker; -rs_allocation gTexCube; - -rs_mesh gMbyNMesh; -rs_mesh gTorusMesh; - -rs_font gFontSans; -rs_font gFontSerif; -rs_font gFontSerifBold; -rs_font gFontSerifItalic; -rs_font gFontSerifBoldItalic; -rs_font gFontMono; -rs_allocation gTextAlloc; - -int gDisplayMode; - -rs_sampler gLinearClamp; -rs_sampler gLinearWrap; -rs_sampler gMipLinearWrap; -rs_sampler gMipLinearAniso8; -rs_sampler gMipLinearAniso15; -rs_sampler gNearestClamp; - -rs_program_raster gCullBack; -rs_program_raster gCullFront; -rs_program_raster gCullNone; - -// Custom vertex shader compunents -VertexShaderConstants *gVSConstants; -VertexShaderConstants2 *gVSConstants2; -FragentShaderConstants *gFSConstants; -FragentShaderConstants2 *gFSConstants2; -// Export these out to easily set the inputs to shader -VertexShaderInputs *gVSInputs; -// Custom shaders we use for lighting -rs_program_vertex gProgVertexCustom; -rs_program_fragment gProgFragmentCustom; -rs_program_vertex gProgVertexCustom2; -rs_program_fragment gProgFragmentCustom2; -rs_program_vertex gProgVertexCube; -rs_program_fragment gProgFragmentCube; -rs_program_fragment gProgFragmentMultitex; - -float gDt = 0; - -void init() { -} - -static void displayFontSamples() { - rsgFontColor(1.0f, 1.0f, 1.0f, 1.0f); - int yPos = 100; - rsgBindFont(gFontSans); - rsgDrawText("Sans font sample", 30, yPos); - yPos += 30; - rsgFontColor(0.5f, 0.9f, 0.5f, 1.0f); - rsgBindFont(gFontSerif); - rsgDrawText("Serif font sample", 30, yPos); - yPos += 30; - rsgFontColor(0.7f, 0.7f, 0.7f, 1.0f); - rsgBindFont(gFontSerifBold); - rsgDrawText("Serif Bold font sample", 30, yPos); - yPos += 30; - rsgFontColor(0.5f, 0.5f, 0.9f, 1.0f); - rsgBindFont(gFontSerifItalic); - rsgDrawText("Serif Italic font sample", 30, yPos); - yPos += 30; - rsgFontColor(1.0f, 1.0f, 1.0f, 1.0f); - rsgBindFont(gFontSerifBoldItalic); - rsgDrawText("Serif Bold Italic font sample", 30, yPos); - yPos += 30; - rsgBindFont(gFontMono); - rsgDrawText("Monospace font sample", 30, yPos); - yPos += 50; - - // Now use text metrics to center the text - uint width = rsgGetWidth(); - uint height = rsgGetHeight(); - int left = 0, right = 0, top = 0, bottom = 0; - - rsgFontColor(0.9f, 0.9f, 0.95f, 1.0f); - rsgBindFont(gFontSerifBoldItalic); - - rsgMeasureText(gTextAlloc, &left, &right, &top, &bottom); - int centeredPos = width / 2 - (right - left) / 2; - rsgDrawText(gTextAlloc, centeredPos, yPos); - yPos += 30; - - const char* text = "Centered Text Sample"; - rsgMeasureText(text, &left, &right, &top, &bottom); - centeredPos = width / 2 - (right - left) / 2; - rsgDrawText(text, centeredPos, yPos); - yPos += 30; - - rsgBindFont(gFontSans); - text = "More Centered Text Samples"; - rsgMeasureText(text, &left, &right, &top, &bottom); - centeredPos = width / 2 - (right - left) / 2; - rsgDrawText(text, centeredPos, yPos); - yPos += 30; - - // Now draw bottom and top right aligned text - text = "Top-right aligned text"; - rsgMeasureText(text, &left, &right, &top, &bottom); - rsgDrawText(text, width - right, top); - - text = "Top-left"; - rsgMeasureText(text, &left, &right, &top, &bottom); - rsgDrawText(text, -left, top); - - text = "Bottom-right aligned text"; - rsgMeasureText(text, &left, &right, &top, &bottom); - rsgDrawText(text, width - right, height + bottom); - -} - -static void bindProgramVertexOrtho() { - // Default vertex sahder - rsgBindProgramVertex(gProgVertex); - // Setup the projectioni matrix - rs_matrix4x4 proj; - rsMatrixLoadOrtho(&proj, 0, rsgGetWidth(), rsgGetHeight(), 0, -500, 500); - rsgProgramVertexLoadProjectionMatrix(&proj); -} - -static void displayShaderSamples() { - bindProgramVertexOrtho(); - rs_matrix4x4 matrix; - rsMatrixLoadIdentity(&matrix); - rsgProgramVertexLoadModelMatrix(&matrix); - - // Fragment shader with texture - rsgBindProgramStore(gProgStoreBlendNone); - rsgBindProgramFragment(gProgFragmentTexture); - rsgBindSampler(gProgFragmentTexture, 0, gLinearClamp); - rsgBindTexture(gProgFragmentTexture, 0, gTexOpaque); - - float startX = 0, startY = 0; - float width = 256, height = 256; - rsgDrawQuadTexCoords(startX, startY, 0, 0, 0, - startX, startY + height, 0, 0, 1, - startX + width, startY + height, 0, 1, 1, - startX + width, startY, 0, 1, 0); - - startX = 200; startY = 0; - width = 128; height = 128; - rsgDrawQuadTexCoords(startX, startY, 0, 0, 0, - startX, startY + height, 0, 0, 1, - startX + width, startY + height, 0, 1, 1, - startX + width, startY, 0, 1, 0); - - rsgBindProgramStore(gProgStoreBlendAlpha); - rsgBindTexture(gProgFragmentTexture, 0, gTexTransparent); - startX = 0; startY = 200; - width = 128; height = 128; - rsgDrawQuadTexCoords(startX, startY, 0, 0, 0, - startX, startY + height, 0, 0, 1, - startX + width, startY + height, 0, 1, 1, - startX + width, startY, 0, 1, 0); - - // Fragment program with simple color - rsgBindProgramFragment(gProgFragmentColor); - rsgProgramFragmentConstantColor(gProgFragmentColor, 0.9, 0.3, 0.3, 1); - rsgDrawRect(200, 300, 350, 450, 0); - rsgProgramFragmentConstantColor(gProgFragmentColor, 0.3, 0.9, 0.3, 1); - rsgDrawRect(50, 400, 400, 600, 0); - - rsgFontColor(1.0f, 1.0f, 1.0f, 1.0f); - rsgBindFont(gFontMono); - rsgDrawText("Texture shader", 10, 50); - rsgDrawText("Alpha-blended texture shader", 10, 280); - rsgDrawText("Flat color shader", 100, 450); -} - -static void displayBlendingSamples() { - int i; - - bindProgramVertexOrtho(); - rs_matrix4x4 matrix; - rsMatrixLoadIdentity(&matrix); - rsgProgramVertexLoadModelMatrix(&matrix); - - rsgBindProgramFragment(gProgFragmentColor); - - rsgBindProgramStore(gProgStoreBlendNone); - for (i = 0; i < 3; i ++) { - float iPlusOne = (float)(i + 1); - rsgProgramFragmentConstantColor(gProgFragmentColor, - 0.1f*iPlusOne, 0.2f*iPlusOne, 0.3f*iPlusOne, 1); - float yPos = 150 * (float)i; - rsgDrawRect(0, yPos, 200, yPos + 200, 0); - } - - rsgBindProgramStore(gProgStoreBlendAlpha); - for (i = 0; i < 3; i ++) { - float iPlusOne = (float)(i + 1); - rsgProgramFragmentConstantColor(gProgFragmentColor, - 0.2f*iPlusOne, 0.3f*iPlusOne, 0.1f*iPlusOne, 0.5); - float yPos = 150 * (float)i; - rsgDrawRect(150, yPos, 350, yPos + 200, 0); - } - - rsgBindProgramStore(gProgStoreBlendAdd); - for (i = 0; i < 3; i ++) { - float iPlusOne = (float)(i + 1); - rsgProgramFragmentConstantColor(gProgFragmentColor, - 0.3f*iPlusOne, 0.1f*iPlusOne, 0.2f*iPlusOne, 0.5); - float yPos = 150 * (float)i; - rsgDrawRect(300, yPos, 500, yPos + 200, 0); - } - - - rsgFontColor(1.0f, 1.0f, 1.0f, 1.0f); - rsgBindFont(gFontMono); - rsgDrawText("No Blending", 10, 50); - rsgDrawText("Alpha Blending", 160, 150); - rsgDrawText("Additive Blending", 320, 250); - -} - -static void displayMeshSamples() { - - bindProgramVertexOrtho(); - rs_matrix4x4 matrix; - rsMatrixLoadTranslate(&matrix, 128, 128, 0); - rsgProgramVertexLoadModelMatrix(&matrix); - - // Fragment shader with texture - rsgBindProgramStore(gProgStoreBlendNone); - rsgBindProgramFragment(gProgFragmentTexture); - rsgBindSampler(gProgFragmentTexture, 0, gLinearClamp); - rsgBindTexture(gProgFragmentTexture, 0, gTexOpaque); - - rsgDrawMesh(gMbyNMesh); - - rsgFontColor(1.0f, 1.0f, 1.0f, 1.0f); - rsgBindFont(gFontMono); - rsgDrawText("User gen 10 by 10 grid mesh", 10, 250); -} - -static void displayTextureSamplers() { - - bindProgramVertexOrtho(); - rs_matrix4x4 matrix; - rsMatrixLoadIdentity(&matrix); - rsgProgramVertexLoadModelMatrix(&matrix); - - // Fragment shader with texture - rsgBindProgramStore(gProgStoreBlendNone); - rsgBindProgramFragment(gProgFragmentTexture); - rsgBindTexture(gProgFragmentTexture, 0, gTexOpaque); - - // Linear clamp - rsgBindSampler(gProgFragmentTexture, 0, gLinearClamp); - float startX = 0, startY = 0; - float width = 300, height = 300; - rsgDrawQuadTexCoords(startX, startY, 0, 0, 0, - startX, startY + height, 0, 0, 1.1, - startX + width, startY + height, 0, 1.1, 1.1, - startX + width, startY, 0, 1.1, 0); - - // Linear Wrap - rsgBindSampler(gProgFragmentTexture, 0, gLinearWrap); - startX = 0; startY = 300; - width = 300; height = 300; - rsgDrawQuadTexCoords(startX, startY, 0, 0, 0, - startX, startY + height, 0, 0, 1.1, - startX + width, startY + height, 0, 1.1, 1.1, - startX + width, startY, 0, 1.1, 0); - - // Nearest - rsgBindSampler(gProgFragmentTexture, 0, gNearestClamp); - startX = 300; startY = 0; - width = 300; height = 300; - rsgDrawQuadTexCoords(startX, startY, 0, 0, 0, - startX, startY + height, 0, 0, 1.1, - startX + width, startY + height, 0, 1.1, 1.1, - startX + width, startY, 0, 1.1, 0); - - rsgBindSampler(gProgFragmentTexture, 0, gMipLinearWrap); - startX = 300; startY = 300; - width = 300; height = 300; - rsgDrawQuadTexCoords(startX, startY, 0, 0, 0, - startX, startY + height, 0, 0, 1.5, - startX + width, startY + height, 0, 1.5, 1.5, - startX + width, startY, 0, 1.5, 0); - - rsgFontColor(1.0f, 1.0f, 1.0f, 1.0f); - rsgBindFont(gFontMono); - rsgDrawText("Filtering: linear clamp", 10, 290); - rsgDrawText("Filtering: linear wrap", 10, 590); - rsgDrawText("Filtering: nearest clamp", 310, 290); - rsgDrawText("Filtering: miplinear wrap", 310, 590); -} - -static float gTorusRotation = 0; - -static void displayCullingSamples() { - rsgBindProgramVertex(gProgVertex); - // Setup the projectioni matrix with 60 degree field of view - rs_matrix4x4 proj; - float aspect = (float)rsgGetWidth() / (float)rsgGetHeight(); - rsMatrixLoadPerspective(&proj, 30.0f, aspect, 0.1f, 100.0f); - rsgProgramVertexLoadProjectionMatrix(&proj); - - // Fragment shader with texture - rsgBindProgramStore(gProgStoreBlendNoneDepth); - rsgBindProgramFragment(gProgFragmentTexture); - rsgBindSampler(gProgFragmentTexture, 0, gLinearClamp); - rsgBindTexture(gProgFragmentTexture, 0, gTexTorus); - - // Aplly a rotation to our mesh - gTorusRotation += 50.0f * gDt; - if (gTorusRotation > 360.0f) { - gTorusRotation -= 360.0f; - } - - rs_matrix4x4 matrix; - // Position our model on the screen - rsMatrixLoadTranslate(&matrix, -2.0f, 0.0f, -10.0f); - rsMatrixRotate(&matrix, gTorusRotation, 1.0f, 0.0f, 0.0f); - rsgProgramVertexLoadModelMatrix(&matrix); - // Use front face culling - rsgBindProgramRaster(gCullFront); - rsgDrawMesh(gTorusMesh); - - rsMatrixLoadTranslate(&matrix, 2.0f, 0.0f, -10.0f); - rsMatrixRotate(&matrix, gTorusRotation, 1.0f, 0.0f, 0.0f); - rsgProgramVertexLoadModelMatrix(&matrix); - // Use back face culling - rsgBindProgramRaster(gCullBack); - rsgDrawMesh(gTorusMesh); - - rsgFontColor(1.0f, 1.0f, 1.0f, 1.0f); - rsgBindFont(gFontMono); - rsgDrawText("Displaying mesh front/back face culling", 10, rsgGetHeight() - 10); -} - -static float gLight0Rotation = 0; -static float gLight1Rotation = 0; - -static void setupCustomShaderLights() { - float4 light0Pos = {-5.0f, 5.0f, -10.0f, 1.0f}; - float4 light1Pos = {2.0f, 5.0f, 15.0f, 1.0f}; - float4 light0DiffCol = {0.9f, 0.7f, 0.7f, 1.0f}; - float4 light0SpecCol = {0.9f, 0.6f, 0.6f, 1.0f}; - float4 light1DiffCol = {0.5f, 0.5f, 0.9f, 1.0f}; - float4 light1SpecCol = {0.5f, 0.5f, 0.9f, 1.0f}; - - gLight0Rotation += 50.0f * gDt; - if (gLight0Rotation > 360.0f) { - gLight0Rotation -= 360.0f; - } - gLight1Rotation -= 50.0f * gDt; - if (gLight1Rotation > 360.0f) { - gLight1Rotation -= 360.0f; - } - - rs_matrix4x4 l0Mat; - rsMatrixLoadRotate(&l0Mat, gLight0Rotation, 1.0f, 0.0f, 0.0f); - light0Pos = rsMatrixMultiply(&l0Mat, light0Pos); - rs_matrix4x4 l1Mat; - rsMatrixLoadRotate(&l1Mat, gLight1Rotation, 0.0f, 0.0f, 1.0f); - light1Pos = rsMatrixMultiply(&l1Mat, light1Pos); - - // Set light 0 properties - gVSConstants->light0_Posision = light0Pos; - gVSConstants->light0_Diffuse = 1.0f; - gVSConstants->light0_Specular = 0.5f; - gVSConstants->light0_CosinePower = 10.0f; - // Set light 1 properties - gVSConstants->light1_Posision = light1Pos; - gVSConstants->light1_Diffuse = 1.0f; - gVSConstants->light1_Specular = 0.7f; - gVSConstants->light1_CosinePower = 25.0f; - rsgAllocationSyncAll(rsGetAllocation(gVSConstants)); - - gVSConstants2->light_Posision[0] = light0Pos; - gVSConstants2->light_Diffuse[0] = 1.0f; - gVSConstants2->light_Specular[0] = 0.5f; - gVSConstants2->light_CosinePower[0] = 10.0f; - gVSConstants2->light_Posision[1] = light1Pos; - gVSConstants2->light_Diffuse[1] = 1.0f; - gVSConstants2->light_Specular[1] = 0.7f; - gVSConstants2->light_CosinePower[1] = 25.0f; - rsgAllocationSyncAll(rsGetAllocation(gVSConstants2)); - - // Update fragmetn shader constants - // Set light 0 colors - gFSConstants->light0_DiffuseColor = light0DiffCol; - gFSConstants->light0_SpecularColor = light0SpecCol; - // Set light 1 colors - gFSConstants->light1_DiffuseColor = light1DiffCol; - gFSConstants->light1_SpecularColor = light1SpecCol; - rsgAllocationSyncAll(rsGetAllocation(gFSConstants)); - - gFSConstants2->light_DiffuseColor[0] = light0DiffCol; - gFSConstants2->light_SpecularColor[0] = light0SpecCol; - // Set light 1 colors - gFSConstants2->light_DiffuseColor[1] = light1DiffCol; - gFSConstants2->light_SpecularColor[1] = light1SpecCol; - rsgAllocationSyncAll(rsGetAllocation(gFSConstants2)); -} - -static void displayCustomShaderSamples() { - - // Update vertex shader constants - // Load model matrix - // Aplly a rotation to our mesh - gTorusRotation += 50.0f * gDt; - if (gTorusRotation > 360.0f) { - gTorusRotation -= 360.0f; - } - - // Position our model on the screen - rsMatrixLoadTranslate(&gVSConstants->model, 0.0f, 0.0f, -10.0f); - rsMatrixRotate(&gVSConstants->model, gTorusRotation, 1.0f, 0.0f, 0.0f); - rsMatrixRotate(&gVSConstants->model, gTorusRotation, 0.0f, 0.0f, 1.0f); - // Setup the projectioni matrix - float aspect = (float)rsgGetWidth() / (float)rsgGetHeight(); - rsMatrixLoadPerspective(&gVSConstants->proj, 30.0f, aspect, 0.1f, 100.0f); - setupCustomShaderLights(); - - rsgBindProgramVertex(gProgVertexCustom); - - // Fragment shader with texture - rsgBindProgramStore(gProgStoreBlendNoneDepth); - rsgBindProgramFragment(gProgFragmentCustom); - rsgBindSampler(gProgFragmentCustom, 0, gLinearClamp); - rsgBindTexture(gProgFragmentCustom, 0, gTexTorus); - - // Use back face culling - rsgBindProgramRaster(gCullBack); - rsgDrawMesh(gTorusMesh); - - rsgFontColor(1.0f, 1.0f, 1.0f, 1.0f); - rsgBindFont(gFontMono); - rsgDrawText("Custom shader sample", 10, rsgGetHeight() - 10); -} - -static void displayCustomShaderSamples2() { - - // Update vertex shader constants - // Load model matrix - // Aplly a rotation to our mesh - gTorusRotation += 50.0f * gDt; - if (gTorusRotation > 360.0f) { - gTorusRotation -= 360.0f; - } - - // Position our model on the screen - rsMatrixLoadTranslate(&gVSConstants2->model[1], 0.0f, 0.0f, -10.0f); - rsMatrixLoadIdentity(&gVSConstants2->model[0]); - rsMatrixRotate(&gVSConstants2->model[0], gTorusRotation, 1.0f, 0.0f, 0.0f); - rsMatrixRotate(&gVSConstants2->model[0], gTorusRotation, 0.0f, 0.0f, 1.0f); - // Setup the projectioni matrix - float aspect = (float)rsgGetWidth() / (float)rsgGetHeight(); - rsMatrixLoadPerspective(&gVSConstants2->proj, 30.0f, aspect, 0.1f, 100.0f); - setupCustomShaderLights(); - - rsgBindProgramVertex(gProgVertexCustom2); - - // Fragment shader with texture - rsgBindProgramStore(gProgStoreBlendNoneDepth); - rsgBindProgramFragment(gProgFragmentCustom2); - rsgBindSampler(gProgFragmentCustom2, 0, gLinearClamp); - rsgBindTexture(gProgFragmentCustom2, 0, gTexTorus); - - // Use back face culling - rsgBindProgramRaster(gCullBack); - rsgDrawMesh(gTorusMesh); - - rsgFontColor(1.0f, 1.0f, 1.0f, 1.0f); - rsgBindFont(gFontMono); - rsgDrawText("Custom shader sample with array uniforms", 10, rsgGetHeight() - 10); -} - -static void displayCubemapShaderSample() { - // Update vertex shader constants - // Load model matrix - // Aplly a rotation to our mesh - gTorusRotation += 50.0f * gDt; - if (gTorusRotation > 360.0f) { - gTorusRotation -= 360.0f; - } - - // Position our model on the screen - // Position our model on the screen - rsMatrixLoadTranslate(&gVSConstants->model, 0.0f, 0.0f, -10.0f); - rsMatrixRotate(&gVSConstants->model, gTorusRotation, 1.0f, 0.0f, 0.0f); - rsMatrixRotate(&gVSConstants->model, gTorusRotation, 0.0f, 0.0f, 1.0f); - // Setup the projectioni matrix - float aspect = (float)rsgGetWidth() / (float)rsgGetHeight(); - rsMatrixLoadPerspective(&gVSConstants->proj, 30.0f, aspect, 0.1f, 100.0f); - rsgAllocationSyncAll(rsGetAllocation(gFSConstants)); - - rsgBindProgramVertex(gProgVertexCube); - - // Fragment shader with texture - rsgBindProgramStore(gProgStoreBlendNoneDepth); - rsgBindProgramFragment(gProgFragmentCube); - rsgBindSampler(gProgFragmentCube, 0, gLinearClamp); - rsgBindTexture(gProgFragmentCube, 0, gTexCube); - - // Use back face culling - rsgBindProgramRaster(gCullBack); - rsgDrawMesh(gTorusMesh); - - rsgFontColor(1.0f, 1.0f, 1.0f, 1.0f); - rsgBindFont(gFontMono); - rsgDrawText("Cubemap shader sample", 10, rsgGetHeight() - 10); -} - -static void displayMultitextureSample() { - bindProgramVertexOrtho(); - rs_matrix4x4 matrix; - rsMatrixLoadIdentity(&matrix); - rsgProgramVertexLoadModelMatrix(&matrix); - - // Fragment shader with texture - rsgBindProgramStore(gProgStoreBlendNone); - rsgBindProgramFragment(gProgFragmentMultitex); - rsgBindSampler(gProgFragmentMultitex, 0, gLinearClamp); - rsgBindSampler(gProgFragmentMultitex, 1, gLinearWrap); - rsgBindSampler(gProgFragmentMultitex, 2, gLinearClamp); - rsgBindTexture(gProgFragmentMultitex, 0, gTexChecker); - rsgBindTexture(gProgFragmentMultitex, 1, gTexTorus); - rsgBindTexture(gProgFragmentMultitex, 2, gTexTransparent); - - float startX = 0, startY = 0; - float width = 256, height = 256; - rsgDrawQuadTexCoords(startX, startY, 0, 0, 0, - startX, startY + height, 0, 0, 1, - startX + width, startY + height, 0, 1, 1, - startX + width, startY, 0, 1, 0); - - rsgFontColor(1.0f, 1.0f, 1.0f, 1.0f); - rsgBindFont(gFontMono); - rsgDrawText("Custom shader with multitexturing", 10, 280); -} - -static float gAnisoTime = 0.0f; -static uint anisoMode = 0; -static void displayAnisoSample() { - - gAnisoTime += gDt; - - rsgBindProgramVertex(gProgVertex); - float aspect = (float)rsgGetWidth() / (float)rsgGetHeight(); - rs_matrix4x4 proj; - rsMatrixLoadPerspective(&proj, 30.0f, aspect, 0.1f, 100.0f); - rsgProgramVertexLoadProjectionMatrix(&proj); - - rs_matrix4x4 matrix; - // Fragment shader with texture - rsgBindProgramStore(gProgStoreBlendNone); - rsgBindProgramFragment(gProgFragmentTexture); - rsMatrixLoadTranslate(&matrix, 0.0f, 0.0f, -10.0f); - rsMatrixRotate(&matrix, -80, 1.0f, 0.0f, 0.0f); - rsgProgramVertexLoadModelMatrix(&matrix); - - rsgBindProgramRaster(gCullNone); - - rsgBindTexture(gProgFragmentTexture, 0, gTexChecker); - - if (gAnisoTime >= 5.0f) { - gAnisoTime = 0.0f; - anisoMode ++; - anisoMode = anisoMode % 3; - } - - if (anisoMode == 0) { - rsgBindSampler(gProgFragmentTexture, 0, gMipLinearAniso8); - } else if (anisoMode == 1) { - rsgBindSampler(gProgFragmentTexture, 0, gMipLinearAniso15); - } else { - rsgBindSampler(gProgFragmentTexture, 0, gMipLinearWrap); - } - - float startX = -15; - float startY = -15; - float width = 30; - float height = 30; - rsgDrawQuadTexCoords(startX, startY, 0, 0, 0, - startX, startY + height, 0, 0, 10, - startX + width, startY + height, 0, 10, 10, - startX + width, startY, 0, 10, 0); - - rsgBindProgramRaster(gCullBack); - - rsgFontColor(1.0f, 1.0f, 1.0f, 1.0f); - rsgBindFont(gFontMono); - if (anisoMode == 0) { - rsgDrawText("Anisotropic filtering 8", 10, 40); - } else if (anisoMode == 1) { - rsgDrawText("Anisotropic filtering 15", 10, 40); - } else { - rsgDrawText("Miplinear filtering", 10, 40); - } -} - -int root(int launchID) { - - gDt = rsGetDt(); - - rsgClearColor(0.2f, 0.2f, 0.2f, 0.0f); - rsgClearDepth(1.0f); - - switch (gDisplayMode) { - case 0: - displayFontSamples(); - break; - case 1: - displayShaderSamples(); - break; - case 2: - displayBlendingSamples(); - break; - case 3: - displayMeshSamples(); - break; - case 4: - displayTextureSamplers(); - break; - case 5: - displayCullingSamples(); - break; - case 6: - displayCustomShaderSamples(); - break; - case 7: - displayMultitextureSample(); - break; - case 8: - displayAnisoSample(); - break; - case 9: - displayCustomShaderSamples2(); - break; - case 10: - displayCubemapShaderSample(); - break; - } - - return 10; -} diff --git a/libs/rs/java/Samples/src/com/android/samples/shader_def.rsh b/libs/rs/java/Samples/src/com/android/samples/shader_def.rsh deleted file mode 100644 index 1d804c6..0000000 --- a/libs/rs/java/Samples/src/com/android/samples/shader_def.rsh +++ /dev/null @@ -1,83 +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. - -#pragma version(1) - -#pragma rs java_package_name(com.android.samples) - -typedef struct VertexShaderConstants_s { - rs_matrix4x4 model; - rs_matrix4x4 proj; - float4 light0_Posision; - float light0_Diffuse; - float light0_Specular; - float light0_CosinePower; - - float4 light1_Posision; - float light1_Diffuse; - float light1_Specular; - float light1_CosinePower; -} VertexShaderConstants; - -typedef struct VertexShaderConstants2_s { - rs_matrix4x4 model[2]; - rs_matrix4x4 proj; - float4 light_Posision[2]; - float light_Diffuse[2]; - float light_Specular[2]; - float light_CosinePower[2]; -} VertexShaderConstants2; - -typedef struct VertexShaderConstants3_s { - rs_matrix4x4 model; - rs_matrix4x4 proj; - float time; -} VertexShaderConstants3; - - -typedef struct FragentShaderConstants_s { - float4 light0_DiffuseColor; - float4 light0_SpecularColor; - - float4 light1_DiffuseColor; - float4 light1_SpecularColor; -} FragentShaderConstants; - -typedef struct FragentShaderConstants2_s { - float4 light_DiffuseColor[2]; - float4 light_SpecularColor[2]; -} FragentShaderConstants2; - -typedef struct FragentShaderConstants3_s { - float4 light0_DiffuseColor; - float4 light0_SpecularColor; - float4 light0_Posision; - float light0_Diffuse; - float light0_Specular; - float light0_CosinePower; - - float4 light1_DiffuseColor; - float4 light1_SpecularColor; - float4 light1_Posision; - float light1_Diffuse; - float light1_Specular; - float light1_CosinePower; -} FragentShaderConstants3; - -typedef struct VertexShaderInputs_s { - float4 position; - float3 normal; - float2 texture0; -} VertexShaderInputs; - diff --git a/libs/rs/java/_index.html b/libs/rs/java/_index.html deleted file mode 100644 index 5872431..0000000 --- a/libs/rs/java/_index.html +++ /dev/null @@ -1 +0,0 @@ -<p>A set of samples that demonstrate how to use various features of the Renderscript APIs.</p>
\ No newline at end of file |