From e5f2f66f8c802d64ecf869081036ae13d4e9e19c Mon Sep 17 00:00:00 2001 From: Jason Sams Date: Wed, 16 May 2012 15:43:25 -0700 Subject: [PATCH] Move gfx samples to test directory for compatibility testing. Change-Id: Iede1c0a14abf9aa3f31ab219fba3bf3a15ef8c90 --- tests/RenderScriptTests/Balls/Android.mk | 26 + .../Balls/AndroidManifest.xml | 16 + tests/RenderScriptTests/Balls/_index.html | 1 + .../Balls/res/drawable/flares.png | Bin 0 -> 413 bytes .../Balls/res/drawable/test_pattern.png | Bin 0 -> 307 bytes .../com/example/android/rs/balls/Balls.java | 118 +++ .../com/example/android/rs/balls/BallsRS.java | 143 ++++ .../example/android/rs/balls/BallsView.java | 116 +++ .../example/android/rs/balls/ball_physics.rs | 146 ++++ .../src/com/example/android/rs/balls/balls.rs | 83 +++ .../com/example/android/rs/balls/balls.rsh | 18 + tests/RenderScriptTests/Fountain/Android.mk | 29 + .../Fountain/AndroidManifest.xml | 16 + tests/RenderScriptTests/Fountain/_index.html | 5 + .../Fountain/res/drawable/test_pattern.png | Bin 0 -> 307 bytes .../example/android/rs/fountain/Fountain.java | 95 +++ .../android/rs/fountain/FountainRS.java | 72 ++ .../android/rs/fountain/FountainView.java | 109 +++ .../example/android/rs/fountain/fountain.rs | 70 ++ .../RenderScriptTests/FountainFbo/Android.mk | 29 + .../FountainFbo/AndroidManifest.xml | 16 + .../RenderScriptTests/FountainFbo/_index.html | 7 + .../FountainFbo/res/drawable/test_pattern.png | Bin 0 -> 307 bytes .../android/rs/fountainfbo/FountainFbo.java | 65 ++ .../android/rs/fountainfbo/FountainFboRS.java | 99 +++ .../rs/fountainfbo/FountainFboView.java | 91 +++ .../android/rs/fountainfbo/fountainfbo.rs | 106 +++ tests/RenderScriptTests/HelloWorld/Android.mk | 28 + .../HelloWorld/AndroidManifest.xml | 31 + .../RenderScriptTests/HelloWorld/_index.html | 1 + .../HelloWorld/res/drawable/test_pattern.png | Bin 0 -> 307 bytes .../android/rs/helloworld/HelloWorld.java | 54 ++ .../android/rs/helloworld/HelloWorldRS.java | 52 ++ .../android/rs/helloworld/HelloWorldView.java | 76 ++ .../android/rs/helloworld/helloworld.rs | 47 ++ .../RenderScriptTests/MiscSamples/Android.mk | 28 + .../MiscSamples/AndroidManifest.xml | 25 + .../RenderScriptTests/MiscSamples/_index.html | 1 + .../res/drawable-nodpi/checker.png | Bin 0 -> 3732 bytes .../res/drawable-nodpi/cubemap_test.png | Bin 0 -> 2870 bytes .../MiscSamples/res/drawable-nodpi/data.png | Bin 0 -> 97800 bytes .../MiscSamples/res/drawable-nodpi/leaf.png | Bin 0 -> 18837 bytes .../res/drawable-nodpi/test_pattern.png | Bin 0 -> 307 bytes .../res/drawable-nodpi/torusmap.png | Bin 0 -> 47127 bytes .../MiscSamples/res/raw/multitexf.glsl | 13 + .../MiscSamples/res/raw/shader2f.glsl | 29 + .../MiscSamples/res/raw/shader2movev.glsl | 21 + .../MiscSamples/res/raw/shader2v.glsl | 17 + .../MiscSamples/res/raw/shaderarrayf.glsl | 16 + .../MiscSamples/res/raw/shaderarrayv.glsl | 32 + .../MiscSamples/res/raw/shadercubef.glsl | 8 + .../MiscSamples/res/raw/shadercubev.glsl | 10 + .../MiscSamples/res/raw/shaderf.glsl | 16 + .../MiscSamples/res/raw/shaderv.glsl | 30 + .../MiscSamples/res/raw/torus.a3d | Bin 0 -> 571248 bytes .../android/rs/miscsamples/RsList.java | 53 ++ .../android/rs/miscsamples/RsListRS.java | 140 ++++ .../android/rs/miscsamples/RsListView.java | 75 ++ .../rs/miscsamples/RsRenderStates.java | 53 ++ .../rs/miscsamples/RsRenderStatesRS.java | 422 +++++++++++ .../rs/miscsamples/RsRenderStatesView.java | 78 ++ .../example/android/rs/miscsamples/rslist.rs | 70 ++ .../android/rs/miscsamples/rsrenderstates.rs | 680 ++++++++++++++++++ .../android/rs/miscsamples/shader_def.rsh | 83 +++ 64 files changed, 3665 insertions(+) create mode 100644 tests/RenderScriptTests/Balls/Android.mk create mode 100644 tests/RenderScriptTests/Balls/AndroidManifest.xml create mode 100644 tests/RenderScriptTests/Balls/_index.html create mode 100644 tests/RenderScriptTests/Balls/res/drawable/flares.png create mode 100644 tests/RenderScriptTests/Balls/res/drawable/test_pattern.png create mode 100644 tests/RenderScriptTests/Balls/src/com/example/android/rs/balls/Balls.java create mode 100644 tests/RenderScriptTests/Balls/src/com/example/android/rs/balls/BallsRS.java create mode 100644 tests/RenderScriptTests/Balls/src/com/example/android/rs/balls/BallsView.java create mode 100644 tests/RenderScriptTests/Balls/src/com/example/android/rs/balls/ball_physics.rs create mode 100644 tests/RenderScriptTests/Balls/src/com/example/android/rs/balls/balls.rs create mode 100644 tests/RenderScriptTests/Balls/src/com/example/android/rs/balls/balls.rsh create mode 100644 tests/RenderScriptTests/Fountain/Android.mk create mode 100644 tests/RenderScriptTests/Fountain/AndroidManifest.xml create mode 100644 tests/RenderScriptTests/Fountain/_index.html create mode 100644 tests/RenderScriptTests/Fountain/res/drawable/test_pattern.png create mode 100644 tests/RenderScriptTests/Fountain/src/com/example/android/rs/fountain/Fountain.java create mode 100644 tests/RenderScriptTests/Fountain/src/com/example/android/rs/fountain/FountainRS.java create mode 100644 tests/RenderScriptTests/Fountain/src/com/example/android/rs/fountain/FountainView.java create mode 100644 tests/RenderScriptTests/Fountain/src/com/example/android/rs/fountain/fountain.rs create mode 100644 tests/RenderScriptTests/FountainFbo/Android.mk create mode 100644 tests/RenderScriptTests/FountainFbo/AndroidManifest.xml create mode 100644 tests/RenderScriptTests/FountainFbo/_index.html create mode 100644 tests/RenderScriptTests/FountainFbo/res/drawable/test_pattern.png create mode 100644 tests/RenderScriptTests/FountainFbo/src/com/example/android/rs/fountainfbo/FountainFbo.java create mode 100644 tests/RenderScriptTests/FountainFbo/src/com/example/android/rs/fountainfbo/FountainFboRS.java create mode 100644 tests/RenderScriptTests/FountainFbo/src/com/example/android/rs/fountainfbo/FountainFboView.java create mode 100644 tests/RenderScriptTests/FountainFbo/src/com/example/android/rs/fountainfbo/fountainfbo.rs create mode 100644 tests/RenderScriptTests/HelloWorld/Android.mk create mode 100644 tests/RenderScriptTests/HelloWorld/AndroidManifest.xml create mode 100644 tests/RenderScriptTests/HelloWorld/_index.html create mode 100644 tests/RenderScriptTests/HelloWorld/res/drawable/test_pattern.png create mode 100644 tests/RenderScriptTests/HelloWorld/src/com/example/android/rs/helloworld/HelloWorld.java create mode 100644 tests/RenderScriptTests/HelloWorld/src/com/example/android/rs/helloworld/HelloWorldRS.java create mode 100644 tests/RenderScriptTests/HelloWorld/src/com/example/android/rs/helloworld/HelloWorldView.java create mode 100644 tests/RenderScriptTests/HelloWorld/src/com/example/android/rs/helloworld/helloworld.rs create mode 100644 tests/RenderScriptTests/MiscSamples/Android.mk create mode 100644 tests/RenderScriptTests/MiscSamples/AndroidManifest.xml create mode 100644 tests/RenderScriptTests/MiscSamples/_index.html create mode 100644 tests/RenderScriptTests/MiscSamples/res/drawable-nodpi/checker.png create mode 100644 tests/RenderScriptTests/MiscSamples/res/drawable-nodpi/cubemap_test.png create mode 100644 tests/RenderScriptTests/MiscSamples/res/drawable-nodpi/data.png create mode 100644 tests/RenderScriptTests/MiscSamples/res/drawable-nodpi/leaf.png create mode 100644 tests/RenderScriptTests/MiscSamples/res/drawable-nodpi/test_pattern.png create mode 100644 tests/RenderScriptTests/MiscSamples/res/drawable-nodpi/torusmap.png create mode 100644 tests/RenderScriptTests/MiscSamples/res/raw/multitexf.glsl create mode 100644 tests/RenderScriptTests/MiscSamples/res/raw/shader2f.glsl create mode 100644 tests/RenderScriptTests/MiscSamples/res/raw/shader2movev.glsl create mode 100644 tests/RenderScriptTests/MiscSamples/res/raw/shader2v.glsl create mode 100644 tests/RenderScriptTests/MiscSamples/res/raw/shaderarrayf.glsl create mode 100644 tests/RenderScriptTests/MiscSamples/res/raw/shaderarrayv.glsl create mode 100644 tests/RenderScriptTests/MiscSamples/res/raw/shadercubef.glsl create mode 100644 tests/RenderScriptTests/MiscSamples/res/raw/shadercubev.glsl create mode 100644 tests/RenderScriptTests/MiscSamples/res/raw/shaderf.glsl create mode 100644 tests/RenderScriptTests/MiscSamples/res/raw/shaderv.glsl create mode 100644 tests/RenderScriptTests/MiscSamples/res/raw/torus.a3d create mode 100644 tests/RenderScriptTests/MiscSamples/src/com/example/android/rs/miscsamples/RsList.java create mode 100644 tests/RenderScriptTests/MiscSamples/src/com/example/android/rs/miscsamples/RsListRS.java create mode 100644 tests/RenderScriptTests/MiscSamples/src/com/example/android/rs/miscsamples/RsListView.java create mode 100644 tests/RenderScriptTests/MiscSamples/src/com/example/android/rs/miscsamples/RsRenderStates.java create mode 100644 tests/RenderScriptTests/MiscSamples/src/com/example/android/rs/miscsamples/RsRenderStatesRS.java create mode 100644 tests/RenderScriptTests/MiscSamples/src/com/example/android/rs/miscsamples/RsRenderStatesView.java create mode 100644 tests/RenderScriptTests/MiscSamples/src/com/example/android/rs/miscsamples/rslist.rs create mode 100644 tests/RenderScriptTests/MiscSamples/src/com/example/android/rs/miscsamples/rsrenderstates.rs create mode 100644 tests/RenderScriptTests/MiscSamples/src/com/example/android/rs/miscsamples/shader_def.rsh diff --git a/tests/RenderScriptTests/Balls/Android.mk b/tests/RenderScriptTests/Balls/Android.mk new file mode 100644 index 0000000000000..b1095849332a3 --- /dev/null +++ b/tests/RenderScriptTests/Balls/Android.mk @@ -0,0 +1,26 @@ +# +# Copyright (C) 2008 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +LOCAL_PATH := $(call my-dir) +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 := RsBalls + +include $(BUILD_PACKAGE) diff --git a/tests/RenderScriptTests/Balls/AndroidManifest.xml b/tests/RenderScriptTests/Balls/AndroidManifest.xml new file mode 100644 index 0000000000000..80e6b39845e05 --- /dev/null +++ b/tests/RenderScriptTests/Balls/AndroidManifest.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + diff --git a/tests/RenderScriptTests/Balls/_index.html b/tests/RenderScriptTests/Balls/_index.html new file mode 100644 index 0000000000000..87604854d3d18 --- /dev/null +++ b/tests/RenderScriptTests/Balls/_index.html @@ -0,0 +1 @@ +

A brute force physics simulation that renders many balls onto the screen and moves them according to user touch and gravity.

\ No newline at end of file diff --git a/tests/RenderScriptTests/Balls/res/drawable/flares.png b/tests/RenderScriptTests/Balls/res/drawable/flares.png new file mode 100644 index 0000000000000000000000000000000000000000..3a5c970fc2b9f94b599faad431de44bf0928c61e GIT binary patch literal 413 zcmV;O0b>4%P) z1hs;oxEA~m{%coVxsXCZd=wW-v1&^dW5#pk8x1ug#et6mX6D>;ALG3DF8W?Rns7M@ zME_ZT2{_0m6^O;Om=kZ}Nu=U^Jk4 zE?y(@9MZ}QEQ?hl*TsR@6Nxw%XW~xu#ErPOlu9_6!uFz=75m~uY~o-C+b!yl;%X3c zz%I^{vk4rDT~QHb(G`df-c`5 zlUU`_6907s`b4&2>X45A?JZc(*AYl^56LcH68-COeF!iBU6pMy=aw~!00000NkvXX Hu0mjfpna~)xpkVa$v}Yh!pi^u&tF~I$(^|Bvb&#nucFId znLOqU7nk>YbNqVdNv&Rfie1^QN5U}aNQWSV@x1%#{-k#mI`eeh)^tL}Ad(SVZ=A5+ z_rC0D>C3`3JYm0TRK;}!SN@n&@A9ysHZFT@+BHMj%Z9SQe+qwHKXdxK8ze?%B;Zb#H)7tF%xXkDL$r>95Py7)flb rOgdhc(;PZ+M(D*=Kd%4OJisvjZ?s&@i>PHl4>EYV`njxgN@xNAwH$^i literal 0 HcmV?d00001 diff --git a/tests/RenderScriptTests/Balls/src/com/example/android/rs/balls/Balls.java b/tests/RenderScriptTests/Balls/src/com/example/android/rs/balls/Balls.java new file mode 100644 index 0000000000000..2c6558e929a21 --- /dev/null +++ b/tests/RenderScriptTests/Balls/src/com/example/android/rs/balls/Balls.java @@ -0,0 +1,118 @@ +/* + * 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.example.android.rs.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.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 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 = false; + + 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(); + onStop(); + } + + @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/tests/RenderScriptTests/Balls/src/com/example/android/rs/balls/BallsRS.java b/tests/RenderScriptTests/Balls/src/com/example/android/rs/balls/BallsRS.java new file mode 100644 index 0000000000000..8cab9b8a8e4d4 --- /dev/null +++ b/tests/RenderScriptTests/Balls/src/com/example/android/rs/balls/BallsRS.java @@ -0,0 +1,143 @@ +/* + * 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.example.android.rs.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/tests/RenderScriptTests/Balls/src/com/example/android/rs/balls/BallsView.java b/tests/RenderScriptTests/Balls/src/com/example/android/rs/balls/BallsView.java new file mode 100644 index 0000000000000..b3b3756ce03bd --- /dev/null +++ b/tests/RenderScriptTests/Balls/src/com/example/android/rs/balls/BallsView.java @@ -0,0 +1,116 @@ +/* + * 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.example.android.rs.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/tests/RenderScriptTests/Balls/src/com/example/android/rs/balls/ball_physics.rs b/tests/RenderScriptTests/Balls/src/com/example/android/rs/balls/ball_physics.rs new file mode 100644 index 0000000000000..8a3db6d76f6ba --- /dev/null +++ b/tests/RenderScriptTests/Balls/src/com/example/android/rs/balls/ball_physics.rs @@ -0,0 +1,146 @@ +#pragma version(1) +#pragma rs java_package_name(com.example.android.rs.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; + continue; + } + // 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.7f; + } + 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.7f; + } + 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.7f; + } + 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.7f; + } + 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/tests/RenderScriptTests/Balls/src/com/example/android/rs/balls/balls.rs b/tests/RenderScriptTests/Balls/src/com/example/android/rs/balls/balls.rs new file mode 100644 index 0000000000000..dcdd586b0308a --- /dev/null +++ b/tests/RenderScriptTests/Balls/src/com/example/android/rs/balls/balls.rs @@ -0,0 +1,83 @@ +#pragma version(1) +#pragma rs java_package_name(com.example.android.rs.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.07f; + } + } +} + + + +int root() { + rsgClearColor(0.f, 0.f, 0.f, 1.f); + + BallControl_t bc; + Ball_t *bout; + + if (frame & 1) { + bc.ain = rsGetAllocation(balls2); + bc.aout = rsGetAllocation(balls1); + bout = balls1; + } else { + bc.ain = rsGetAllocation(balls1); + bc.aout = rsGetAllocation(balls2); + bout = balls2; + } + + bc.dimX = rsAllocationGetDimX(bc.ain); + bc.dt = 1.f / 30.f; + + rsForEach(physics_script, bc.ain, bc.aout, &bc, sizeof(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); + return 1; +} + diff --git a/tests/RenderScriptTests/Balls/src/com/example/android/rs/balls/balls.rsh b/tests/RenderScriptTests/Balls/src/com/example/android/rs/balls/balls.rsh new file mode 100644 index 0000000000000..fc886f9fb0ec6 --- /dev/null +++ b/tests/RenderScriptTests/Balls/src/com/example/android/rs/balls/balls.rsh @@ -0,0 +1,18 @@ + +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/tests/RenderScriptTests/Fountain/Android.mk b/tests/RenderScriptTests/Fountain/Android.mk new file mode 100644 index 0000000000000..2049ecfa4693e --- /dev/null +++ b/tests/RenderScriptTests/Fountain/Android.mk @@ -0,0 +1,29 @@ +# +# Copyright (C) 2008 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +LOCAL_PATH := $(call my-dir) +include $(CLEAR_VARS) + +LOCAL_MODULE_TAGS := optional + +LOCAL_SRC_FILES := $(call all-java-files-under, src) $(call all-renderscript-files-under, src) + +# TODO: build fails with this set +# LOCAL_SDK_VERSION := current + +LOCAL_PACKAGE_NAME := RsFountain + +include $(BUILD_PACKAGE) diff --git a/tests/RenderScriptTests/Fountain/AndroidManifest.xml b/tests/RenderScriptTests/Fountain/AndroidManifest.xml new file mode 100644 index 0000000000000..d19b8c3351125 --- /dev/null +++ b/tests/RenderScriptTests/Fountain/AndroidManifest.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + diff --git a/tests/RenderScriptTests/Fountain/_index.html b/tests/RenderScriptTests/Fountain/_index.html new file mode 100644 index 0000000000000..223242f73bc79 --- /dev/null +++ b/tests/RenderScriptTests/Fountain/_index.html @@ -0,0 +1,5 @@ +

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.

+ + + diff --git a/tests/RenderScriptTests/Fountain/res/drawable/test_pattern.png b/tests/RenderScriptTests/Fountain/res/drawable/test_pattern.png new file mode 100644 index 0000000000000000000000000000000000000000..e7d145554c007dda8309e3ec64502f7b3797170c GIT binary patch literal 307 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1SD_us|Wxo$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1GS3O-ELn>~)xpkVa$v}Yh!pi^u&tF~I$(^|Bvb&#nucFId znLOqU7nk>YbNqVdNv&Rfie1^QN5U}aNQWSV@x1%#{-k#mI`eeh)^tL}Ad(SVZ=A5+ z_rC0D>C3`3JYm0TRK;}!SN@n&@A9ysHZFT@+BHMj%Z9SQe+qwHKXdxK8ze?%B;Zb#H)7tF%xXkDL$r>95Py7)flb rOgdhc(;PZ+M(D*=Kd%4OJisvjZ?s&@i>PHl4>EYV`njxgN@xNAwH$^i literal 0 HcmV?d00001 diff --git a/tests/RenderScriptTests/Fountain/src/com/example/android/rs/fountain/Fountain.java b/tests/RenderScriptTests/Fountain/src/com/example/android/rs/fountain/Fountain.java new file mode 100644 index 0000000000000..311455ad932b3 --- /dev/null +++ b/tests/RenderScriptTests/Fountain/src/com/example/android/rs/fountain/Fountain.java @@ -0,0 +1,95 @@ +/* + * 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.example.android.rs.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.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 = false; + + 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/tests/RenderScriptTests/Fountain/src/com/example/android/rs/fountain/FountainRS.java b/tests/RenderScriptTests/Fountain/src/com/example/android/rs/fountain/FountainRS.java new file mode 100644 index 0000000000000..646c807e17fed --- /dev/null +++ b/tests/RenderScriptTests/Fountain/src/com/example/android/rs/fountain/FountainRS.java @@ -0,0 +1,72 @@ +/* + * 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.example.android.rs.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) { + 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/tests/RenderScriptTests/Fountain/src/com/example/android/rs/fountain/FountainView.java b/tests/RenderScriptTests/Fountain/src/com/example/android/rs/fountain/FountainView.java new file mode 100644 index 0000000000000..ba09421c0967b --- /dev/null +++ b/tests/RenderScriptTests/Fountain/src/com/example/android/rs/fountain/FountainView.java @@ -0,0 +1,109 @@ +/* + * 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.example.android.rs.fountain; + +import java.io.Writer; +import java.util.ArrayList; +import java.util.concurrent.Semaphore; + +import android.renderscript.RSTextureView; +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 RSTextureView { + + public FountainView(Context context) { + super(context); + //setFocusable(true); + } + + private RenderScriptGL mRS; + private FountainRS mRender; + + @Override + protected void onAttachedToWindow() { + super.onAttachedToWindow(); + android.util.Log.e("rs", "onAttachedToWindow"); + if (mRS == null) { + RenderScriptGL.SurfaceConfig sc = new RenderScriptGL.SurfaceConfig(); + mRS = createRenderScriptGL(sc); + mRender = new FountainRS(); + mRender.init(mRS, getResources()); + } + } + + @Override + protected void onDetachedFromWindow() { + super.onDetachedFromWindow(); + android.util.Log.e("rs", "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/tests/RenderScriptTests/Fountain/src/com/example/android/rs/fountain/fountain.rs b/tests/RenderScriptTests/Fountain/src/com/example/android/rs/fountain/fountain.rs new file mode 100644 index 0000000000000..151b68977dd1b --- /dev/null +++ b/tests/RenderScriptTests/Fountain/src/com/example/android/rs/fountain/fountain.rs @@ -0,0 +1,70 @@ +// Fountain test script +#pragma version(1) +#pragma rs_fp_relaxed + +#pragma rs java_package_name(com.example.android.rs.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/tests/RenderScriptTests/FountainFbo/Android.mk b/tests/RenderScriptTests/FountainFbo/Android.mk new file mode 100644 index 0000000000000..55a4fd83f3da2 --- /dev/null +++ b/tests/RenderScriptTests/FountainFbo/Android.mk @@ -0,0 +1,29 @@ +# +# Copyright (C) 2008 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +LOCAL_PATH := $(call my-dir) +include $(CLEAR_VARS) + +LOCAL_MODULE_TAGS := optional + +LOCAL_SRC_FILES := $(call all-java-files-under, src) $(call all-renderscript-files-under, src) + +# TODO: build fails with this set +# LOCAL_SDK_VERSION := current + +LOCAL_PACKAGE_NAME := RsFountainFbo + +include $(BUILD_PACKAGE) diff --git a/tests/RenderScriptTests/FountainFbo/AndroidManifest.xml b/tests/RenderScriptTests/FountainFbo/AndroidManifest.xml new file mode 100644 index 0000000000000..082744b6d8fc3 --- /dev/null +++ b/tests/RenderScriptTests/FountainFbo/AndroidManifest.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + diff --git a/tests/RenderScriptTests/FountainFbo/_index.html b/tests/RenderScriptTests/FountainFbo/_index.html new file mode 100644 index 0000000000000..550865795407f --- /dev/null +++ b/tests/RenderScriptTests/FountainFbo/_index.html @@ -0,0 +1,7 @@ +

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 no touch is detected. This example modifies +the Fountain sample to include rendering to a +a framebuffer object as well as the default framebuffer.

+ + + diff --git a/tests/RenderScriptTests/FountainFbo/res/drawable/test_pattern.png b/tests/RenderScriptTests/FountainFbo/res/drawable/test_pattern.png new file mode 100644 index 0000000000000000000000000000000000000000..e7d145554c007dda8309e3ec64502f7b3797170c GIT binary patch literal 307 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1SD_us|Wxo$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1GS3O-ELn>~)xpkVa$v}Yh!pi^u&tF~I$(^|Bvb&#nucFId znLOqU7nk>YbNqVdNv&Rfie1^QN5U}aNQWSV@x1%#{-k#mI`eeh)^tL}Ad(SVZ=A5+ z_rC0D>C3`3JYm0TRK;}!SN@n&@A9ysHZFT@+BHMj%Z9SQe+qwHKXdxK8ze?%B;Zb#H)7tF%xXkDL$r>95Py7)flb rOgdhc(;PZ+M(D*=Kd%4OJisvjZ?s&@i>PHl4>EYV`njxgN@xNAwH$^i literal 0 HcmV?d00001 diff --git a/tests/RenderScriptTests/FountainFbo/src/com/example/android/rs/fountainfbo/FountainFbo.java b/tests/RenderScriptTests/FountainFbo/src/com/example/android/rs/fountainfbo/FountainFbo.java new file mode 100644 index 0000000000000..d8ba30fd1c89d --- /dev/null +++ b/tests/RenderScriptTests/FountainFbo/src/com/example/android/rs/fountainfbo/FountainFbo.java @@ -0,0 +1,65 @@ +/* + * 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.example.android.rs.fountainfbo; + +import android.app.Activity; +import android.os.Bundle; +import android.util.Log; + +public class FountainFbo extends Activity { + private static final String LOG_TAG = "libRS_jni"; + private static final boolean DEBUG = false; + private static final boolean LOG_ENABLED = false; + + private FountainFboView 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 FountainFboView(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 loses 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 loses focus */ + super.onPause(); + mView.pause(); + } + + static void log(String message) { + if (LOG_ENABLED) { + Log.v(LOG_TAG, message); + } + } +} + diff --git a/tests/RenderScriptTests/FountainFbo/src/com/example/android/rs/fountainfbo/FountainFboRS.java b/tests/RenderScriptTests/FountainFbo/src/com/example/android/rs/fountainfbo/FountainFboRS.java new file mode 100644 index 0000000000000..3bf3ff1f38747 --- /dev/null +++ b/tests/RenderScriptTests/FountainFbo/src/com/example/android/rs/fountainfbo/FountainFboRS.java @@ -0,0 +1,99 @@ +/* + * 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.example.android.rs.fountainfbo; + +import android.content.res.Resources; +import android.renderscript.Allocation; +import android.renderscript.Element; +import android.renderscript.Mesh; +import android.renderscript.ProgramFragment; +import android.renderscript.ProgramFragmentFixedFunction; +import android.renderscript.RenderScriptGL; +import android.renderscript.Type; + +public class FountainFboRS { + public static final int PART_COUNT = 50000; + + public FountainFboRS() { + } + + private Resources mRes; + private RenderScriptGL mRS; + private ScriptC_fountainfbo mScript; + private Allocation mColorBuffer; + private ProgramFragment mProgramFragment; + private ProgramFragment mTextureProgramFragment; + public void init(RenderScriptGL rs, Resources res) { + mRS = rs; + mRes = res; + + ScriptField_Point points = new ScriptField_Point(mRS, PART_COUNT); + + Mesh.AllocationBuilder smb = new Mesh.AllocationBuilder(mRS); + smb.addVertexAllocation(points.getAllocation()); + smb.addIndexSetType(Mesh.Primitive.POINT); + Mesh sm = smb.create(); + + mScript = new ScriptC_fountainfbo(mRS, mRes, R.raw.fountainfbo); + mScript.set_partMesh(sm); + mScript.bind_point(points); + + ProgramFragmentFixedFunction.Builder pfb = new ProgramFragmentFixedFunction.Builder(rs); + pfb.setVaryingColor(true); + mProgramFragment = pfb.create(); + mScript.set_gProgramFragment(mProgramFragment); + + /* Second fragment shader to use a texture (framebuffer object) to draw with */ + pfb.setTexture(ProgramFragmentFixedFunction.Builder.EnvMode.REPLACE, + ProgramFragmentFixedFunction.Builder.Format.RGBA, 0); + + /* Set the fragment shader in the Renderscript runtime */ + mTextureProgramFragment = pfb.create(); + mScript.set_gTextureProgramFragment(mTextureProgramFragment); + + /* Create the allocation for the color buffer */ + Type.Builder colorBuilder = new Type.Builder(mRS, Element.RGBA_8888(mRS)); + colorBuilder.setX(256).setY(256); + mColorBuffer = Allocation.createTyped(mRS, colorBuilder.create(), + Allocation.USAGE_GRAPHICS_TEXTURE | + Allocation.USAGE_GRAPHICS_RENDER_TARGET); + + /* Set the allocation in the Renderscript runtime */ + mScript.set_gColorBuffer(mColorBuffer); + + 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/tests/RenderScriptTests/FountainFbo/src/com/example/android/rs/fountainfbo/FountainFboView.java b/tests/RenderScriptTests/FountainFbo/src/com/example/android/rs/fountainfbo/FountainFboView.java new file mode 100644 index 0000000000000..6e40da346281e --- /dev/null +++ b/tests/RenderScriptTests/FountainFbo/src/com/example/android/rs/fountainfbo/FountainFboView.java @@ -0,0 +1,91 @@ +/* + * 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.example.android.rs.fountainfbo; + + +import android.renderscript.RSTextureView; +import android.renderscript.RenderScriptGL; +import android.content.Context; +import android.view.MotionEvent; + +public class FountainFboView extends RSTextureView { + + public FountainFboView(Context context) { + super(context); + } + + private RenderScriptGL mRS; + private FountainFboRS mRender; + + @Override + protected void onAttachedToWindow() { + super.onAttachedToWindow(); + android.util.Log.e("rs", "onAttachedToWindow"); + if (mRS == null) { + RenderScriptGL.SurfaceConfig sc = new RenderScriptGL.SurfaceConfig(); + mRS = createRenderScriptGL(sc); + mRender = new FountainFboRS(); + mRender.init(mRS, getResources()); + } + } + + @Override + protected void onDetachedFromWindow() { + super.onDetachedFromWindow(); + android.util.Log.e("rs", "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/tests/RenderScriptTests/FountainFbo/src/com/example/android/rs/fountainfbo/fountainfbo.rs b/tests/RenderScriptTests/FountainFbo/src/com/example/android/rs/fountainfbo/fountainfbo.rs new file mode 100644 index 0000000000000..763f6bacffb23 --- /dev/null +++ b/tests/RenderScriptTests/FountainFbo/src/com/example/android/rs/fountainfbo/fountainfbo.rs @@ -0,0 +1,106 @@ +// Fountain test script +#pragma version(1) + +#pragma rs java_package_name(com.example.android.rs.fountainfbo) + +#pragma stateFragment(parent) + +#include "rs_graphics.rsh" + +static int newPart = 0; +rs_mesh partMesh; +rs_program_vertex gProgramVertex; + +//allocation for color buffer +rs_allocation gColorBuffer; +//fragment shader for rendering without a texture (used for rendering to framebuffer object) +rs_program_fragment gProgramFragment; +//fragment shader for rendering with a texture (used for rendering to default framebuffer) +rs_program_fragment gTextureProgramFragment; + +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++; + } + //Tell Renderscript runtime to render to the frame buffer object + rsgBindColorTarget(gColorBuffer, 0); + + //Begin rendering on a white background + rsgClearColor(1.f, 1.f, 1.f, 1.f); + rsgDrawMesh(partMesh); + + //When done, tell Renderscript runtime to stop rendering to framebuffer object + rsgClearAllRenderTargets(); + + //Bind a new fragment shader that declares the framebuffer object to be used as a texture + rsgBindProgramFragment(gTextureProgramFragment); + + //Bind the framebuffer object to the fragment shader at slot 0 as a texture + rsgBindTexture(gTextureProgramFragment, 0, gColorBuffer); + + //Draw a quad using the framebuffer object as the texture + float startX = 10, startY = 10; + float s = 256; + rsgDrawQuadTexCoords(startX, startY, 0, 0, 1, + startX, startY + s, 0, 0, 0, + startX + s, startY + s, 0, 1, 0, + startX + s, startY, 0, 1, 1); + + //Rebind the original fragment shader to render as normal + rsgBindProgramFragment(gProgramFragment); + + //Render the main scene + 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/tests/RenderScriptTests/HelloWorld/Android.mk b/tests/RenderScriptTests/HelloWorld/Android.mk new file mode 100644 index 0000000000000..2af1cdb68499f --- /dev/null +++ b/tests/RenderScriptTests/HelloWorld/Android.mk @@ -0,0 +1,28 @@ +# +# 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. +# + +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 := RsHelloWorld + +LOCAL_SDK_VERSION := current + +include $(BUILD_PACKAGE) diff --git a/tests/RenderScriptTests/HelloWorld/AndroidManifest.xml b/tests/RenderScriptTests/HelloWorld/AndroidManifest.xml new file mode 100644 index 0000000000000..1d37dc980ccfc --- /dev/null +++ b/tests/RenderScriptTests/HelloWorld/AndroidManifest.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + diff --git a/tests/RenderScriptTests/HelloWorld/_index.html b/tests/RenderScriptTests/HelloWorld/_index.html new file mode 100644 index 0000000000000..4cab73817684d --- /dev/null +++ b/tests/RenderScriptTests/HelloWorld/_index.html @@ -0,0 +1 @@ +

A Renderscript graphics application that draws the text "Hello, World!" where the user touches.

\ No newline at end of file diff --git a/tests/RenderScriptTests/HelloWorld/res/drawable/test_pattern.png b/tests/RenderScriptTests/HelloWorld/res/drawable/test_pattern.png new file mode 100644 index 0000000000000000000000000000000000000000..e7d145554c007dda8309e3ec64502f7b3797170c GIT binary patch literal 307 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1SD_us|Wxo$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1GS3O-ELn>~)xpkVa$v}Yh!pi^u&tF~I$(^|Bvb&#nucFId znLOqU7nk>YbNqVdNv&Rfie1^QN5U}aNQWSV@x1%#{-k#mI`eeh)^tL}Ad(SVZ=A5+ z_rC0D>C3`3JYm0TRK;}!SN@n&@A9ysHZFT@+BHMj%Z9SQe+qwHKXdxK8ze?%B;Zb#H)7tF%xXkDL$r>95Py7)flb rOgdhc(;PZ+M(D*=Kd%4OJisvjZ?s&@i>PHl4>EYV`njxgN@xNAwH$^i literal 0 HcmV?d00001 diff --git a/tests/RenderScriptTests/HelloWorld/src/com/example/android/rs/helloworld/HelloWorld.java b/tests/RenderScriptTests/HelloWorld/src/com/example/android/rs/helloworld/HelloWorld.java new file mode 100644 index 0000000000000..9b1697b2cf27a --- /dev/null +++ b/tests/RenderScriptTests/HelloWorld/src/com/example/android/rs/helloworld/HelloWorld.java @@ -0,0 +1,54 @@ +/* + * 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.example.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/tests/RenderScriptTests/HelloWorld/src/com/example/android/rs/helloworld/HelloWorldRS.java b/tests/RenderScriptTests/HelloWorld/src/com/example/android/rs/helloworld/HelloWorldRS.java new file mode 100644 index 0000000000000..431641173b0c8 --- /dev/null +++ b/tests/RenderScriptTests/HelloWorld/src/com/example/android/rs/helloworld/HelloWorldRS.java @@ -0,0 +1,52 @@ +/* + * 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.example.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/tests/RenderScriptTests/HelloWorld/src/com/example/android/rs/helloworld/HelloWorldView.java b/tests/RenderScriptTests/HelloWorld/src/com/example/android/rs/helloworld/HelloWorldView.java new file mode 100644 index 0000000000000..557ebc5a418f2 --- /dev/null +++ b/tests/RenderScriptTests/HelloWorld/src/com/example/android/rs/helloworld/HelloWorldView.java @@ -0,0 +1,76 @@ +/* + * 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.example.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/tests/RenderScriptTests/HelloWorld/src/com/example/android/rs/helloworld/helloworld.rs b/tests/RenderScriptTests/HelloWorld/src/com/example/android/rs/helloworld/helloworld.rs new file mode 100644 index 0000000000000..bcf624e20055a --- /dev/null +++ b/tests/RenderScriptTests/HelloWorld/src/com/example/android/rs/helloworld/helloworld.rs @@ -0,0 +1,47 @@ +// 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.example.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(void) { + + // 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/tests/RenderScriptTests/MiscSamples/Android.mk b/tests/RenderScriptTests/MiscSamples/Android.mk new file mode 100644 index 0000000000000..6b8b691bbcb92 --- /dev/null +++ b/tests/RenderScriptTests/MiscSamples/Android.mk @@ -0,0 +1,28 @@ +# +# Copyright (C) 2008 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +LOCAL_PATH := $(call my-dir) +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 := RsMiscSamples + +LOCAL_SDK_VERSION := current + +include $(BUILD_PACKAGE) diff --git a/tests/RenderScriptTests/MiscSamples/AndroidManifest.xml b/tests/RenderScriptTests/MiscSamples/AndroidManifest.xml new file mode 100644 index 0000000000000..08a3976afebe6 --- /dev/null +++ b/tests/RenderScriptTests/MiscSamples/AndroidManifest.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + diff --git a/tests/RenderScriptTests/MiscSamples/_index.html b/tests/RenderScriptTests/MiscSamples/_index.html new file mode 100644 index 0000000000000..5872431420e60 --- /dev/null +++ b/tests/RenderScriptTests/MiscSamples/_index.html @@ -0,0 +1 @@ +

A set of samples that demonstrate how to use various features of the Renderscript APIs.

\ No newline at end of file diff --git a/tests/RenderScriptTests/MiscSamples/res/drawable-nodpi/checker.png b/tests/RenderScriptTests/MiscSamples/res/drawable-nodpi/checker.png new file mode 100644 index 0000000000000000000000000000000000000000..b631e1ee4ba67c6ab5e1049df59d0a187bed60dc GIT binary patch literal 3732 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 =xR@m`TUeN^AoT|p41X%vV zBF&Z6M@M%8=gB>T=Ajg|-$Ws5;YQ=!;|GM07U%89h&R;k;{ZUqAbDW8P1nW>=>Fjs zWIv(`x=R#_SU;@Q8G^C7wqDo}Xb}KvfbSo==)WD-whj%3fpGjwGB^nS?_`pYuFKY{ zHb!Tz3F1$Kf&7i`BXClPnbJ%@lzAA!UXVh*3ub`pKX6>YZ1)_%VcU@1m54c-A4~sl pce0EBY~ufB{tsRiI&hjw1ET4iJd%ps%1@p>Ffp*yuYtQh`8Su^!-4<+ literal 0 HcmV?d00001 diff --git a/tests/RenderScriptTests/MiscSamples/res/drawable-nodpi/cubemap_test.png b/tests/RenderScriptTests/MiscSamples/res/drawable-nodpi/cubemap_test.png new file mode 100644 index 0000000000000000000000000000000000000000..baf35d0acbe9bc4d5f47779c8425cc69156379da GIT binary patch literal 2870 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 X+J|#dx!swE00000NkvXXu0mjf&22I* literal 0 HcmV?d00001 diff --git a/tests/RenderScriptTests/MiscSamples/res/drawable-nodpi/leaf.png b/tests/RenderScriptTests/MiscSamples/res/drawable-nodpi/leaf.png new file mode 100644 index 0000000000000000000000000000000000000000..3cd37755f549f158610359805f52243e6ac8b190 GIT binary patch literal 18837 zcmV)FK)=6KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z002I~NklgsN_q?T;Sk|p60%QkiZ0}tE>E+h~L zLm=D$7efLGCN~VZzzrn1fxsmR2?>zlVM+iykOYDW#25_NmM6)wEm?C*JrC72o#7ky z-s}GHot9-=>PgksV14}@J(9Zn)H!>}0yzqSXKIVlb`0Re%m3;H9Gsl=T zV45k^Q#1i7Vw}e=EPz}w>tj-AMA5k8@2udw#ag-azbh7a>c1x<)azS>X@d%&ijjz_ zLDgVQ0^=!nFJLmu&?}}?O-X7q`n?%sySd@7y^-GD1yV?thFwi8EiaQ7IVm=j3)fs(09fbo9$c1_ z^0Ko4w79&$$B1ddc~8XUoqfS>o&NIK){(E8%HqEiEba*)YI7^@3mWrw)l?{{UM!^b$|sXJriV6k89XXB+?`Kun}CMkVfS3?Krk(@>BZWa{kA9twM?WuF{|=t!&ruTDFu&Be>jeNjnVF7lqCLBT z>0JSHYTTIRl|PYs?Ik+fD2%Ruxh)2FJgqn&DrTX;4zlN!|9@rx&}Gx4S`b&DX@`%L zv4}3sz#^t0YJITj4Ute^{^?K3V5L9|SAtslq{AV`JpU~~iV@N_#X_IB)Be;7an?+= zouLRJO}{!-^}ET6e=C|Ui+4z(DE8^5lX5Odc~abF9#WzmkHN_E+ybZ)nwlirB-!aB zWzogK@9N?F`%`FhGd|wWt9Sm>c;I!vhs%$2PFybu2v(K)v?U)dApWvrSA8l3**s(W z&?(N`eHYVX$1!dhLUT<1q^}}^$urjPzL%r#_z1~Nu=$0z#CVIbkXpUugZD`<^qB#G zh!9fEY~wLB#T^HLhW1)No8BN%NEng@&fN1g?RfUH?XK&Q%yP+Dfq`l}kxtB5+FOEA z<`tVytmmcJsmy~2C*S*iPQUvDV0K}%?1JV+HL?D|2T8BKiT|QlG z8jdbHK2cSCyGWbo#1POhe5SGhP%LgRM75cpq#Xo+u#wh_Q&Mg0lL)bjh_x$4b?CR+ zYR|8S(GCAZQghiqVS76fHd`QJoW)KnMp=!zDMkeAE%~n9_~8H%CAFa|#Q2O90!Qz7 zAIIMQAwt&D-|dlFE@(ki1w}w)U@~`=Iq~rA;|W15RGL8^*OEAlK6n-)_2 z3<5w6lSvQMv!fM31+uJi3s?QIIeYA7SdS#dgtTC@@k`yA5B^YNvUh1d{PW9Ybz)w0 z6}5AxG8xX^dxXjQ{p3A|(;Bi7{R8{(gFOtd-;3|%Oivu=_`Cj;v!~Y)b=W++;K}Va zJq?@-OIfVH$v11?YTNdj?8tVWZhgh~Z-++$F<#`FD}K5_6Fi}*@pbde1%Vo87z{B! z?eywXe6@k~&6n4$eNAR^(m0Sjh*4rP*xAM)TYKR9vvODf7w`##1Q zjQ1Gtkdz2j#peC@QJp!A-&0U5JJQBF?X<=gebl7$eCzpXSHX~8y&&VCcE;W;ZQSDo zij~#>mF>Op$Kt+g-o3qb{NlL-)oy*xy~I3IL7=7DK1#V_>Fv4-O*^OyFak2&%e{Ag zUMq@**s+hZgmb3*Iri-BM#5^c?qstWE*^kMiG7P2i(J6uiZO`GFqx;>8k0gxZUy7~ z1y8(aI8f;Hc9+$!Dns?X5~Xj&;6_V_de`6j(|+H<|G-pdZQIP(?eY)MGvorg&0arz z4@SWH9CoTEAQqalf|v?p$%6{G6eyGvGfk!`ga!&T>Be#Y5&P!s`=-A`YH4?76TxL z6l%7Q9bvF^9VzV;9}tnc{t^^uV7lLC+{NFt?{S=%hS?Ty#@<>k9IxyeN`*u;Le zqcuzgP#Ia%yhhUGB?HF)GDOF$6unPQ}Vd}uXD9cb>J1R6qSpn_gdAR zDF|s7*&ET94BX_GVZ1NJuvArwrihdVx#49G_Lpw_Dy_mj*eg>bct!z$%!!SoceA?x zrFiSnr&Dhgi&mT0N!-{axe!oDLTb7++Xe-%_`V_6c$LIc(E;Q#*h^I*^Xc#AHoTcSTr*iN{vu;`lZ$C@tYJL1AWE;Vl$p`N zwYUEZS-#vM_?ZU)fHjWOr;jjg`&@P4YC_vwz6n@fE!;E8U+XN;KDX#Lgx9cNA={)sObH`cVrcn;4|< z#o9tNmby}sB#I(X?A^ar?tjg9`&~EudNKuR;{>9DCPkwnJKzb#dM3vopqJva0{{wG zpRso07|V-8vi=Z_@ls6*Xk4k+j{V%UO|BmzA`VOhYlyAGXiFG_DICc~v=%0gahmCE zei|!OPCc3VQ9314ve`vhr}-aQ^5`pMSbxDJOcr`!{C6~2q7{r4Y>1?2nN5{Y8~R1W zSY>-6eeGR)sty)SGh}4}6e@v`lm+X6c-cqac+2$O2iQ9NFnji2^Xve?xxBfajX8Yc z5w3gX8_-KFhl+*S`ipxyXO`mc=j-$CTh3gQ7N23+lX-qZ95%gJr!mRlzEHsi4+3a zXfRuP?HB!oU0AI3slNMSk2Hy->6ES#d2yvkV=dbc-cNIKlfHM4#}v;h03cw*aOmFm zVQ;vZ<45Rv%-Qm`OakOb01G`ARQ&?=$BfH;GR(-+6diP>l37Ac+K8^lWpBYXa`ab*Uo!_t(cuN*Hzcr#^D;Kg=Hclm9z&0Xs9l=c$Gy4^0=XixFBY*ccH}g2J?R zxE!oYV1yWzm>e4qKm3}!x#Ks6SH0>BRMYsP!ptYo>K6n+T&LaMfc^r+^y~(}xp-i6 z>kJP)ayK{M_GK6q&L?~kV@bR0FNVV(db6qPWtEPx6YVNr;vA`+gP{^+kTBLk6A%$% zB`_?{E^Iv91(5TdjsjavKs9xR8sji7r#|-JxAWj1{!s1}Z9OBGhGGoP%|#&^0m03> zfUm8EYV5EkVSL?176y`WNQx{rYYd9)-`k#yHC_rCc47Z-UB;=8zK43_1hTLUPmtj~ zYXR_hP`GxCwFe(y;D^NXXtD)k+gQn1M(-%#R%++s|)TJPTQkzKQB7zW;;@yb$?4$piKJfN`Q`*KNIVMY36~IG;6hKj= z<#BLLCJrT#mklQBJVtSt)Dcr|VR6eWul)BkJ;jc8p9rMZuzlnK#JEqx%d;8)GXHhx z)ScXV-Ay2!U5&Y_yHCegG&YoSr5TNX75 zQ&hOzVGX245vxdu*bIi(-}pazd-j~r(C+BwJL@=h;y9Dp6!RpyfoC-U0E{t=CtI8z zud{#OLE7*n0ig(_xZ9fXOP0!NrSA2xF?Q~;>C~@c6-^*zBHDx)?dVVitl% zKJE~Mq)6zEs0TM8C~6GM8rwd6_h0pCcC)daT-*fhxCR570x5LahEpLl%6Q9SoKTcA zOs3EVk{86=PDG-S!OD#v>tFSS-)E&4u{(JBlj3~N;j{P9wk`fivZ-f10M3En$dNR0tEFAs7uNLX(S1?2}XRxUYB5?_gicS?{Y{xSsn9dxk2Jgq%Ofc4>k#0Bx;5{r} zck^BO^>p8=rOmkc~w#a8L02fe{_mX9V={9z$-R`*Z?V@MyX?h=#0DSATqB?`rb0mCN#vM zJ8{?l*O%kp5Em_>%1I$%i!>i|q+O5WIa~%|YaQB3=nba$qT?bkbNy=s<6$Fm=WMv| z8+N7UK5ZuR8A3a;_lmX=yELR2*z@KIR~!H;4$Ra0VyfVr=lIDZ-0}W*^NL$JBD5GqH%SK)H$($d%gz~zP% z6Q&S+nQlvG{^IxBdirZ&@%DeLokV&Ej=oSXEp?MjE>JeOq5v>dZyc_D{6&nzol(rk z5$dP&e$F{gA34m!>bT`)ucXsvob#CpEf((&;t*{~B!Yr30@8G;Sg3N;Dj_6rbDB6A zoB|en50kCk_g5twzCBjkOt;q1)Z{%q^JX_NL`jHPXybgLO(zoz24le(VKNrRjc2f@ z>S_qaVx7T==~77p)){DpL5|DA;QDOww)a++=IJ%cDk28sJZ99V*t6XAU0#4DzM`$D zeqs4xjrVrDAgp#Z&C9EA`z+(|u?M;T(R+~0ffLj!Y9qRE;1`ni zH?0Gc3xk0mB1oRFS)g!Am>Sxtk{W@~%_>r(IO8atC8kN;jE_<`Q?y!iX?^MJ?QS+~Qw735i-?4Pt%iq#Z)y>20 zqd$|4kKbXct?x3lZ$R~GolBrqyNLYUf1eK^&Uqew#_> z?=;(i)Fwh5h*Qw1nHOsUshMXHK{`sf6|5R0Q$iCl>K}9|5!-}ow|;WK^xv9Rh+7G5 z6hp#@!34#i-MqjcoIK`O+bqd^)ma^}xJ)pa5);U*?RtM&#pDKYirVGMt=|3?3F&b# zp7+(xUrmB0VRkQ(uGvqzb{}%%b(~o{#G@bji%+j2K2t70RWX2Hy6WeaUN`z+_3(Rs z)f_*5y`Rl~9xED6I2B#-(U8&uSo5~bOPgq4j_Ca{HDeWjry`RlOK_dbIDYJ5vV6q8 z{WlRpjfjWE1OK&s?1SHGvhIXy(?#f3Iv=e`F-@oaum(sGNft#h0%o}UVCxFl+_*Mx zPkvjLr9y)N8@gPh?%2hwgcKASp`KV~Gt1KA7S7d}!eOiuT0n)^Bvce@45*?_iz`Rl z`QBH)Marc+JBeX-;n2=o)Y@)PMdoPw1u>nI_;)oFW9=oWhpv1Upo)fue0lZV`O=%- zAot(%Gqb}V`Uboe3cDIpy$bP*N=e^d>@ugUYxmdG%&LZ2ZSPeX{CZUL2MTwCw4cfp zo;ZFF!@&Z*!4fgfF#W+jDeG;g>11eX3q~;>XuK&CaCt{7Ya5XS+Cmb6q|7!9<8@(aIHkw~rtn}o7o;}P&cIp_HJu1F z>rZ;u-0(Yg@6A8e46gY|dydCA-x4MzAM{}`>|zZoV7hYi<4xzbi!^U3oP?JYbQRu8@_oxc0a^_+)`f|{<9uR%Hiuqq}gF7L88 z>x6u9*L_(&dT3+o7^c~LjZq~wf|JxOaAUghwl*QjQf(N{p0t#`gm)3+EI|aT5j9{i zI0Q+8c&HnLEbjeqDsKEKYp?o9Z*_&IRwI9+ja`gI#m-~Txhi>w=z`DeJdzYqO|$ag z%f73)>C4`r`GNO{q^`F$6Ou-(3Yj{xdG=_nU@g*j`nqL1`)>o;cu(Jqe??NdNma1c zGub@N(TDG$USDUrc3L&tb+1ScI$wNMOcG24M6o@^WI}R^5sO3crNHRwcUBbJ((kS2 zI{C6z65>IFc0wSlUEUv*dLy#6mf`#0$^hCGfvk;P$~o)6W}M)1gL97IAY*s7{yH1u z=S3Eb#DrMWO$9yo62TaQFCuUf0N#Ee=D#1{J)VhubLU0v$WDh_01Gg9WbWFdd2&0 zw2P50kSlZDHR{#hy5!gY$Z7TFpu({;$1%?0_8fexmJ7!T0c<2mAlT3aOk&XF&{@~t zkJB!Q5~sEp{;z2a#O*U*jU>c^rbucHq6TRNZD8w+2O|^<6|Mwh1DF<9w0IZEOUSIn zTaPmtR)oCtXmQ&=m*toJSk}+!71FiEIft>n8)PBfX*WhNoyZmC%1$Nw%mW}LMAO`t z1?aE*XS4h{-)OSk4`DjRY*r?07HMaoQ^nbc%?#dwm;@S$p{8vc#D;z^JNs{Z+WrS? z8(SPXc@(p_`?#*W=(m%L7~e^tj6iAvF)21#Obm$ae$S$aD~{Bf-Ltv2aTVLgzD83b zrZA^)=Txr3_8AZly@eWI&U+0-A+v#}XPd_(+Z2^3&tr1` z8L`Ay9smO3JgLZO@{)GJ)071%gP=3;88$Dm{o;%>nmciX8roJnEu9Obq=Z_qq|OS6 zVx)7LNn;ljhhW%xTi6k5xe|q)af@V2vR}OREtzia3MTLMsdJ zo2uWFO&|N-a>?U|2|r4>VHfyspM^GMWMxAepl!RdG70J$+F2J+n$}`sBDINf^`-xP z=|#8yHL}IA1ENzNU4N9jKX3;RA3e;WkKf&OtNRNNig?ZfAk{VMO4_36cyYq~6|s`A z1WcS!EU&(MaP8}V2m{tytaz-m_}r3}36+LWTTHMx57sMIJ9WG!I!d_R+BZ4<(2uN# zK&_@-*#C;RnIwoBoD-x_FhVm{LZzgc5GIj03rtP@4v#-btOq`$fA)-U?Iqg&qaRpR^u8{^|Va_R_=%2^)U zJj7&s6A{7r?6PwAoqVn+50KdbgKQ5<#+(*=N}NlqC=a~+U$v8mzbS1$_&FgM0)|#v zBtlA&KtLLcNf}}rTwkfGZsL_OhW;=zJ^tapw`LeUl$jqn=*nLZ-+znI=^`XF2aRnP zV9hM8cIsi(jLk>x|K`3{nEt%`XU_3&ttX}-XJNS_AAz&;U?5W@I8qdxH5gi~ILiGu zzO&f>nzw{(c-P_MhuJ)PhV4Ft?JZ0>#M`pd41B7fMdTSV0$29NkSr(PwHteZsTk*I z4`cl_HJ|@=(}!liBGaRLZ z&^AE?2^MuA8i_$zyykUpAMJb5zuT7l_m0fk=G6KlwCfwVy26Zxotd{DtUothj&s99 zHEB0d#0b_4q=5Avo8?!0bnF#o0_V*T7g^?10^;0#e)p@tL^k*SbU1zYcjTp@Dc}jT zO+aloy4|)7ZRIgm$or9ylzOaqC#6jC%$MRXSN17WahaXO9%-`XDdg1_}pI5Ro3 zb%xn^jNM$jWnp{$JL~9wqh<0@w$5H{OMgSMy*lHnGq%@zzp9SJm_7B0N6VxC^*1xk z7eBmm^R?~h;6WxQPjcb|@8zmDehI$p5w*G^(?g$?iXfjaY~_33@ZB=me6@1_E0VXw z2qr;`l1Q{|!elKP9n(#Z&6;_AK=2v#`v#E{Og6G&%L+vn5tC3conl6WBnfRh8raR_ z18s%bc4A{}>6I--zs1Z0$(WQliI|`amPb0e<|Y3rEZ_9wRg>;Ne(Gb)P8@l$-8%WD zezx}c{ZxHPndgfxm{&^Et|0O1cB3uZ3ADxO^@q+r^3h`R$lj$~SNl>IvqM||bSs$; z9DUzrFB|U4;-ubax7RrNk&m$Y+P}oEm%f~A_bS#Z(l+x9QJ-G`P!us4&KtyO=wJQH zudh#}|2M|tUv2ytV{)hiZHgTu7ZSb<$kY&KC7ErpMcYOD7QC}$E>f)}nkd-VQNrpv zwy_f%-nXY8$sK3@><@3l z#UJxwcJ(N1eYI6x@|nSv-DvqDZ$HlzhFB?1JW@tNeQL>`J@v-ILEk`TJ+o@|n!>if zH5zdX>9n8u{x9YWW!-KZU4HBj-nxF`gLnM?X!W{>S8jc!?!N6tRT4HY2(ubUh_Q%u z&kqaGbI_E#?A5Z z$Nu<@E^hu*&$X}1Bi>|!ib15)`Nu{fb*>|ZZUjxJyVA5Xu&37ru0C~xB}aq!WyaX9 z0aYx+z&{h4lTt=#VKzPeBh9^QzxCk9ANX7MeV}BNTUKBBr3_wtGqxy*vnkElQr)^6sXU*OlEZq#Y!axN&LzMM8$B@;7-`8DS~M9l z3r?Vp3DYD}D+CgyXcwHNjB2}P?To=@ipwjips03j=4K*HW*P1J+R)TT{!u2)tCtHY zZ4RjG`U@Jx#CfH#6k^qOHOnZZW-dRIuEya7R17A81ci_=r6)y29CN{|5VgDDQN5*C z%5KE$ZmQG&ygeQB+PSqy-}Xy?Qe1u0M|z7_pPU{22<^skq<;Xh4wL1GwwNqK&NE-= z*#Q9Q1PvIAHPYQ|InR$fR~G@ccfaIK|77yBs5A_>FiYFw4viMTyD{N?*8V3tZWq8SwKpI2JQ3* z-jf&M>x#@1qz^7)Z2H0NV~>32sfQl?FW!X>U*^mlt zj2TuSvygkCHxR6Kn4+89h3#(iP!D0Eq&AY;M3zIWL9+Q}7}L4J+jg60lVHw~eO90b zhk_GAojQ3^ib%AWps4eh3{n%(XfTB(B*hvFDxHELS}?Y9E`0OSlKvpBIBJqq3HgKd z55DU^H22)mH${I^o!$0fxPPs4FYTw*7u*$&>gL0k&U0U`3aM(SPp=Wyw|RJ$accc6 z3rFvy%q=lFCetbCgu&>8>|WhV)lMFrHPyeG>Yl?*IQu&`&BU32v4N%vw5`(Aiis6k zI%o@oKxtaiM5(Go<}A}m;@BEY6c)1?gOQN;EWOg<`wj`I8|kV6!4O(ST&GyXbTV@S z#IBCpsfFeX9O`+8aFR~NLq}M}0EC3q?)Ee>f-5}I%qi=ddD?8du61un0?vTy{6H9k zO^Jx<%OLxF@fHc`#a>~lkk>@%f0y%iAh8+umdkM&#(&Vn+ScB#L;G8bKJx4u5Fy<) zsbV`9peZrk+F~3U#4j+LO|UX$Hs0XO@gp>`d8t_a3We{sv6ajTDO2*yl35`cWwIUE znkAeKm^#peoLMZ8&@gKwZVDS4!ZZmh3(BsA9%awsN=r7#h|P=`6Do;NB{T?eUc_u0 zurXn*rJB)o9a)2^6l=PEMx^UK5EZPoG*hLGiZZ(DFq>Gy@qCI()S zpu}0r=DOi%skvt zKObhD>#?eMBORZR&Y4)HlJ3u@G`AS@=^?6uJ2$&1D%zf71iQP9jCb8#$SB4ba^K0! ztOLPdykQ7POk@lF(>@dLLt4aWGK0MzG}*3S3)53yT}E9UmSMCp3#OFjnmvWRX3_G6 zr3}CKInWv=q?E2MUG*cQLccN3q@UpNR%bN{FqouW*-i~c0(BGdnE`8XYPy!N1UieH zm>G^lr3A(&Bd1SJ>3JwhOOZLUT(FtoeWytE~U%!gfWWvIl0>d ziHg(~traDqD&%%amH1e?zXP>aQ84o^ZdM{Yer z?_r7;{jyoT?zg?Im&p5*>E^Tyv*IsIZ}2Z|UJi5o%Kkj0rM}*p`Nd-)g{kSU-0z;v z8?Pue8i9C6dB?fD6NDCAO?4Xm5mj&2Tx;cG8<`!p8Rj7a(T&tK|NF31Rufia$A%iMvGYyU*qvzOI;oet5378eD{>1G)i>BO;_V91bS z<-=ig%UkX8-gh%SjMC0W>~`4%DSr9|hx1FKIzJR27nnZFri69l)_iDhEM)RCnQy0;eH#zFISk@TO5G`vWXR@JDiZJYF#5Phjiqg>Q8K5N=tB3PjzUCWFuGN!acJG&6b(2Gk(x@YI1}R%Y4daQh zFmmKsMp?8ZlyQ~Kbh!94-e&)+=lyGpPQE3do_?(vR?bK_BS3AUsT5y$tW`oGoh-0D zr$iEBO_%cnREi{vF#&3a>*uthSf`XdhbV}Rh_;2>eap}1dv1EGR3{s4TVlR|*3+)n zeFtt_b65IA%l!4!8*dOJE=PBb4_dOCjxtGa0iq<;AbUG$9g26EC zJ0cyAV4OvaW3+nxyPCDN1JkWXug|r>4{!L3T`&Lo?@Yz+d&48|c*Qk?Q(vBkjEaP< z6V6#&Da6H=umzK;vQTuEgqRrk>0(pQ{>jOF<#V#${q-9kk6I0@hYv> zUe~nVW?3lmvN~u(Af!l;mduu22a%x@ux1W%V5ZuMQ@n{N<(g>n_F1) zPP=mTJyq~_1sbgsMW_d4@Y#OPEey?})eVKJe0CX~qY}#>AJY zs}E>$M>T{|H9PTz__&xmx2~F%vv$4c7ea0njKh!i9r69u-#6LlH+8T)PG{cpb9?sP z{-@bs>Cabgz5PGSaNq3ogCBC`@%R6D&yKUkdS=x0G{aZ}uAB4YM}cb7GOHYetVKi- zYw5X^Ei@;-WxBEThNEuu?L9ks=l3f9w92e8o5WknUGoVFt@o z(+T?6$G(0TPkcqxjMTIYOn1GIIw7;B3&v2)QbTBjW^5@&5uy@W!?G6^{q*`)$A36( zH-Guz``3S9VKiFXzkA=TTv)+aKh}Kl9rW!xd~RW)NE!C{0k?$hV_$5mlV4&9tEs6M zqFMT|ibS99c~`7f{*d0D_ZT_zTQqA#J3{)SxruMP!T~!|`+o*pz!P5Qtpw3(ifC-Q zK}#v18qj1=@rcbI5Z{$q#S9)AUGwVSG@&9Dt4!BUgIH3mu-OvBa?eMT6Pin0 zWdp+YNwTdYUu$wh69dKsL=90BF6+#FiupshX2s-bA$Ju`ESYT@@~mUs)G5YUisW69 zHQzSY?N@Jahi`dsZT;^4!jyxz-NqnWAZqATP^uvIl;p!x#%Ax-dh{bC-R)AbAa?X{ z6HOAEp`n@2`wer+dz}CK^FR~0lV#ygEJz}yh-g4lJ5P7?lgkgPNT|_=Kg{&8dr0;4 zx-4w}CGi=?HQj6gqYygAF}ap7;{ll!A9F?cN+~S)LPfPv(rO~hQda~rO50|*kQkP{ z%)8kityTHguAMyku8EvvW$&%*>+i-QwC8%g^xWXUlvFtd<`m~rHl6o5JcGhu!}IY; zk-lpvjo>wsXIbV7XH#lGJ+}1NQm}b~5RoK!U%eWW{U@8*ZBa1ZP%gHJ=3TH|D>4J4 zEvhXk1@eMDON;T>`U7rBvE}gTLp-3{oRzwxv!8Tl^;xx4&np0&>#;1fBF_u_(mt}~ zefa(|Mso4xs^)z`GX)14rL(w=V1(VOZ5}82AJUPxNUmi438D6c&~*kI8!+XZq7F)b zz}36@tU_g59$}qF>P=4Ak_h-`+3A1&06-HWj{b0!UT*=F9x)X} zEr>BAE?o7YdgbbOPfp!CsLyt{h=rJlRm7ALw7c9Wj3HTCbw2awzZD-D{LEWdmJk92**Mv}!4Co+&6HGBb0?uH1 zitmFR$mgk9dWVS?V;$nU?jd6h#ljR~MydrX5t}Eh>v|ncf@Fn(pS+~MasPkOIvnUq zyWKgr-S`Mj8_PXT_-F*Eyxpw_Dyzl{oiIb8yhwUs1Vz3#*cMMW@fZoIi^XNvWo|pdQwtS8A<9$ zi+fhsvyz%*m=+nrC&ZX`UWJ>WJY*w&NyyTK)wW>o#wULN1q*PIVZU42jcEfi9wU?K zlfKyA#;ZT&ecp8dg)aIxe%?%BwVNQC5_a+0&1}z$A5(YmKgA009-ljm6|f;JEu!KbM)5B=`<=*HpOa;?EhN-1@%WuNj& zNjokpCN^EhncQPSx*`LiKJzZ%BCj;NtoIecE$-?DJY1;xR1BIO_-MKJmiIPmA9<|| z>FV?btPw~Cti|;`#M$mxZy{yAVXnFDZ>RD07iMPj8sjtCkgze5ypk=>s5krQ6rx(J z28@QT14S%F+U`vsyX*hTu7BgVlp!))8nU?D>r%_7`dR{cRO+o7Gp&(Y=Mzk>T*`1o z0T4zDsIiZ4*pB&q?b@e(Zn~ARa^W;F@1M1MZvC~m_Tkqir_8pMOl>z(-k2^15G7gX zQZ^#@p25PtaoXf3<-{NUYf}ic5Ss4m_%a}&;>_s*Mb?nn*jW|rf=cljc|7~N&{T`L zF&leVM)Vf^c>!>a%&K7Nq-D0|c^yK(EAbIx0y_U5Z~ z%=%Z;l#57x?k3NRxmVCq`0M^mxN2&flf7Y{hyhYGSkvWW8VtOP*)i)u7 zH~d1qedbNNeaF{$@8&|zmZV_ImeFuRz2!)Ky2ewLZjNtZ>Bkc!%b3792&$Fc7a0>ML4>Nm z44G$f-g9@ki)gY8#?!6lqk>)T)VJpvSjCSJ*ZWX7d+Kpby{1In>*IR)C$b5&=^uFQ zkJe3lnvFAG<aDCj6pOI8X>e@`&g_j&Qzs4{qY}*gVlG6FxzniNY^%Zx$pa# zr-IK}f+vFDNzT2HsGG>z=?zla_{4PqRSBy0YSK;BzO3(S9bt2Qq6{?lm)5g%e3@jr z_N_2j*C1<1`}k*4lzKX&%>5Irj&`l)gKK}T*nj)a`_q5+%kkJ9-z3Rkvy5gK(5WX@ ziSC!jSI1r>{l~srmtXudJFV*NBEQh}v_EHR0iOzj6p?c#D+DA(VmTx(?Ps{(bXUO7 zH$OFjRJ9!lF4+Y*W>&VgtUu9c@Av#vzC$vLu?@yAe!%&~!>WO9FmSi$sfA`T`=q!- zRnZj4%OVyB-}uAh?Qy~BNB?qO?tWC_;p+vZ8hb*Mz*#aIkm>s8#6dm3t8QmWF_U>B z#dE9}^mt6L3m4DQ76ocEQg$uvXoL=iIA`%s$eYC(>a}gQ9(c3^#ia&=)(|$FgyoqX&Mv z3BS-|>E$;;OQ-9;R10wOcs0KB-M#YqTTkj;kFKTZ)-J#2;0MgU+kQ5L^l4fG5VQ^R z85i;-2QWga(b1mYNh|yCMfGFxp+ElFaxm!`8>u%f$t2RQtWEuLK0-!!-VL0)cR-#? z0C=3&?|R%jP@LaKih%8V)<67UC(*hDDne!yMxvR?}Kzw-yBv5%M| zkIslsesOb(k+8Z8*FR6_5o6b8HoE#3&9!ej?9RORm*bh!E9xCp?J&m=y-s&s{nyj( zgTF{>cYGOTJ~#QfWdSY+FG(@Equ8@Z*qY3F{EJ*9Ytb-hCW=)_eLGrtyXL(gbi;iQ z*ug4K1ppL6xNy-)RUtO`JuiB@*|qwGTEG7vcscQ=aC~F6oh2*B9{wH{uKg8o)lO#v za*iN+z5}2;$wINZ#Oa5RTvDM)j3Lxjlh6>24*cG0|1>_f_XNB4ypNtcFTbAXbc7ed zuA;HQ6vL0X{jdB++pK+S-1wjWQBzJ@J9(=)dGwpit^@zR8xyj#ZXj78x0i&i=Oh3$ zCS1Q@bn}at9$!1}9K26<9|jxR?QQS2r^ip`!)x|7<-QmFUMntjle+Z0o~oUK?_Z>$ zjRBh_+}`Vd)ve$7P2s@@zgSxcuk0Z$tic;@C$6lC^LCH{d>vY%?X;x6Xe zmhSeji`}quxw)o5)?b(nU-g&1C066#nml&+_07@ye!{=v4PQ?PJFoRg@uJfDe=LOEcImS6!?6%b3hx15Aj}|w);!E?< zzJGD%?mPY_*T3YC^OtuN@-1ze z9OXy|*V9gw4H5z>=O>7s7p-9_B-~;jx3oamnw)=Tz7dSElNj|H zI~*cSeQA-l!kM*-V&w309#V!Uh?cbL`VmzmrA`)BSJ<9^U*7AJY=OwmSpWelW2s}H zug`M}aBhKZ;mMZ=OdmRe$(}l*7v~5~m^Nv)uU=mxh4#`HHz`Lafg2CZ1sEwI@e_ep zl5Wm#vYmcG#n2dt#uIvd=w(!HiKbklc8jQ{9d8S(M9Fxz2|})<6=(v3>-W=~+@LzS zjyU@i0PvWs9Jd==3sKZ0%cUPZBW#9@wato^l^)ankb2msDjn5uFOm5*a7iB*up}d> z6v)z2*99m`2to)!Qrh|EiHofZJ#PTe1!;-?i}!zmUy&!v0zBFB(wW)WQ4W63#xa0DvlP z*dx+i=I~@C0#QiTo)T4)FD&FLQePG&E1+#8u1#=z23^xBd`dQ<7kOAOqmH{n&+`fZ z;w)SD9HLq~`;^R}SW67yWNbp&hOk6dY;id$*!=d7v^K*o_ntiyA3j?FAVvt=Q{uR$ zw|nua-M4i}Y$oHnT8QKARkvgx)p+?SSen!{$1VARWi+N20Pu`G#?Wp|Nt0?G0P0i3 z31G$65@ObFZLG>*fIgiYIg?VK+9KOC0&jMv@#6&mT>9ycvzqatlSr1G*PW^{NLDn0 ziS1|P{=_yPbvbDQ6B08In=zSRo`(;|ix;uN1v>*@4W#t8bf(=daE zz?r-5<-nV6pI-&9F96^(bNGd}fu>FuB@h)!BqY>jF`I2|-PZQAC6krwJK?*xV@r1I zB&%0nMQqy_0PvZ3Qi7;C{XM;l28ArS;KF}Xc);EP}J4&T$N+MMn(;?C?u zBA-%Z`{aZ47Z>~W4E(JkQ#$+8)99d;)uo|sV23SWExV_Kxh%Yg1%~V z;|xt*U1mG?#cgJ+TT&A)Z2?7y_3U8QFAhl#g71_bI}*Xmytrd7O0ur!E_2#xCQ!hH zh~4g_^C}jRgv$&D-(@~od1V3c!t)%UPhMDp7Xa|W^8x@~cwPX&3(pGxc;R^g053eB cWzYXV04=`;o!J$gAOHXW07*qoM6N<$f=$%@-T(jq literal 0 HcmV?d00001 diff --git a/tests/RenderScriptTests/MiscSamples/res/drawable-nodpi/test_pattern.png b/tests/RenderScriptTests/MiscSamples/res/drawable-nodpi/test_pattern.png new file mode 100644 index 0000000000000000000000000000000000000000..e7d145554c007dda8309e3ec64502f7b3797170c GIT binary patch literal 307 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1SD_us|Wxo$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1GS3O-ELn>~)xpkVa$v}Yh!pi^u&tF~I$(^|Bvb&#nucFId znLOqU7nk>YbNqVdNv&Rfie1^QN5U}aNQWSV@x1%#{-k#mI`eeh)^tL}Ad(SVZ=A5+ z_rC0D>C3`3JYm0TRK;}!SN@n&@A9ysHZFT@+BHMj%Z9SQe+qwHKXdxK8ze?%B;Zb#H)7tF%xXkDL$r>95Py7)flb rOgdhc(;PZ+M(D*=Kd%4OJisvjZ?s&@i>PHl4>EYV`njxgN@xNAwH$^i literal 0 HcmV?d00001 diff --git a/tests/RenderScriptTests/MiscSamples/res/drawable-nodpi/torusmap.png b/tests/RenderScriptTests/MiscSamples/res/drawable-nodpi/torusmap.png new file mode 100644 index 0000000000000000000000000000000000000000..1e08f3b9ac3edddd8e9d271e79ae0cc21755c01c GIT binary patch literal 47127 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 literal 0 HcmV?d00001 diff --git a/tests/RenderScriptTests/MiscSamples/res/raw/multitexf.glsl b/tests/RenderScriptTests/MiscSamples/res/raw/multitexf.glsl new file mode 100644 index 0000000000000..e492a477ff5bc --- /dev/null +++ b/tests/RenderScriptTests/MiscSamples/res/raw/multitexf.glsl @@ -0,0 +1,13 @@ +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/tests/RenderScriptTests/MiscSamples/res/raw/shader2f.glsl b/tests/RenderScriptTests/MiscSamples/res/raw/shader2f.glsl new file mode 100644 index 0000000000000..5fc05f14a8125 --- /dev/null +++ b/tests/RenderScriptTests/MiscSamples/res/raw/shader2f.glsl @@ -0,0 +1,29 @@ +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/tests/RenderScriptTests/MiscSamples/res/raw/shader2movev.glsl b/tests/RenderScriptTests/MiscSamples/res/raw/shader2movev.glsl new file mode 100644 index 0000000000000..a2c807e838cca --- /dev/null +++ b/tests/RenderScriptTests/MiscSamples/res/raw/shader2movev.glsl @@ -0,0 +1,21 @@ +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/tests/RenderScriptTests/MiscSamples/res/raw/shader2v.glsl b/tests/RenderScriptTests/MiscSamples/res/raw/shader2v.glsl new file mode 100644 index 0000000000000..e6885a38aca0d --- /dev/null +++ b/tests/RenderScriptTests/MiscSamples/res/raw/shader2v.glsl @@ -0,0 +1,17 @@ +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/tests/RenderScriptTests/MiscSamples/res/raw/shaderarrayf.glsl b/tests/RenderScriptTests/MiscSamples/res/raw/shaderarrayf.glsl new file mode 100644 index 0000000000000..238ecad56cf1a --- /dev/null +++ b/tests/RenderScriptTests/MiscSamples/res/raw/shaderarrayf.glsl @@ -0,0 +1,16 @@ + +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/tests/RenderScriptTests/MiscSamples/res/raw/shaderarrayv.glsl b/tests/RenderScriptTests/MiscSamples/res/raw/shaderarrayv.glsl new file mode 100644 index 0000000000000..7a1310ac1ef44 --- /dev/null +++ b/tests/RenderScriptTests/MiscSamples/res/raw/shaderarrayv.glsl @@ -0,0 +1,32 @@ +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/tests/RenderScriptTests/MiscSamples/res/raw/shadercubef.glsl b/tests/RenderScriptTests/MiscSamples/res/raw/shadercubef.glsl new file mode 100644 index 0000000000000..15696a4723d58 --- /dev/null +++ b/tests/RenderScriptTests/MiscSamples/res/raw/shadercubef.glsl @@ -0,0 +1,8 @@ + +varying vec3 worldNormal; + +void main() { + lowp vec4 col = textureCube(UNI_Tex0, worldNormal); + gl_FragColor = col; +} + diff --git a/tests/RenderScriptTests/MiscSamples/res/raw/shadercubev.glsl b/tests/RenderScriptTests/MiscSamples/res/raw/shadercubev.glsl new file mode 100644 index 0000000000000..70f5cd64e371e --- /dev/null +++ b/tests/RenderScriptTests/MiscSamples/res/raw/shadercubev.glsl @@ -0,0 +1,10 @@ +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/tests/RenderScriptTests/MiscSamples/res/raw/shaderf.glsl b/tests/RenderScriptTests/MiscSamples/res/raw/shaderf.glsl new file mode 100644 index 0000000000000..d56e203496c3c --- /dev/null +++ b/tests/RenderScriptTests/MiscSamples/res/raw/shaderf.glsl @@ -0,0 +1,16 @@ + +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/tests/RenderScriptTests/MiscSamples/res/raw/shaderv.glsl b/tests/RenderScriptTests/MiscSamples/res/raw/shaderv.glsl new file mode 100644 index 0000000000000..f7d01de384cbc --- /dev/null +++ b/tests/RenderScriptTests/MiscSamples/res/raw/shaderv.glsl @@ -0,0 +1,30 @@ +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/tests/RenderScriptTests/MiscSamples/res/raw/torus.a3d b/tests/RenderScriptTests/MiscSamples/res/raw/torus.a3d new file mode 100644 index 0000000000000000000000000000000000000000..0322b01be8a809544956c41c833c3c000210da17 GIT binary patch literal 571248 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

&z{rRT=N(o+&tf0^Qin9nZI{V{e)lo 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

^^*IjwLE_an=IWzxZvW}#>LcYh$XtDwp?_EZ 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�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

huqtb-rZU>(Rl{O@IJNmS!bRoIh$)`i556Rum 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 M-4fUr_7VdBA4)Cdi~s-t literal 0 HcmV?d00001 diff --git a/tests/RenderScriptTests/MiscSamples/src/com/example/android/rs/miscsamples/RsList.java b/tests/RenderScriptTests/MiscSamples/src/com/example/android/rs/miscsamples/RsList.java new file mode 100644 index 0000000000000..dade3b3cb4495 --- /dev/null +++ b/tests/RenderScriptTests/MiscSamples/src/com/example/android/rs/miscsamples/RsList.java @@ -0,0 +1,53 @@ +/* + * 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.example.android.rs.miscsamples; + +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/tests/RenderScriptTests/MiscSamples/src/com/example/android/rs/miscsamples/RsListRS.java b/tests/RenderScriptTests/MiscSamples/src/com/example/android/rs/miscsamples/RsListRS.java new file mode 100644 index 0000000000000..eeb2480cc720a --- /dev/null +++ b/tests/RenderScriptTests/MiscSamples/src/com/example/android/rs/miscsamples/RsListRS.java @@ -0,0 +1,140 @@ +/* + * 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.example.android.rs.miscsamples; + +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/tests/RenderScriptTests/MiscSamples/src/com/example/android/rs/miscsamples/RsListView.java b/tests/RenderScriptTests/MiscSamples/src/com/example/android/rs/miscsamples/RsListView.java new file mode 100644 index 0000000000000..db6e6c516a3af --- /dev/null +++ b/tests/RenderScriptTests/MiscSamples/src/com/example/android/rs/miscsamples/RsListView.java @@ -0,0 +1,75 @@ +/* + * 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.example.android.rs.miscsamples; +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/tests/RenderScriptTests/MiscSamples/src/com/example/android/rs/miscsamples/RsRenderStates.java b/tests/RenderScriptTests/MiscSamples/src/com/example/android/rs/miscsamples/RsRenderStates.java new file mode 100644 index 0000000000000..f4ea76ef6f353 --- /dev/null +++ b/tests/RenderScriptTests/MiscSamples/src/com/example/android/rs/miscsamples/RsRenderStates.java @@ -0,0 +1,53 @@ +/* + * 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.example.android.rs.miscsamples; + +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/tests/RenderScriptTests/MiscSamples/src/com/example/android/rs/miscsamples/RsRenderStatesRS.java b/tests/RenderScriptTests/MiscSamples/src/com/example/android/rs/miscsamples/RsRenderStatesRS.java new file mode 100644 index 0000000000000..0e319fe9052c2 --- /dev/null +++ b/tests/RenderScriptTests/MiscSamples/src/com/example/android/rs/miscsamples/RsRenderStatesRS.java @@ -0,0 +1,422 @@ +/* + * 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.example.android.rs.miscsamples; + +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/tests/RenderScriptTests/MiscSamples/src/com/example/android/rs/miscsamples/RsRenderStatesView.java b/tests/RenderScriptTests/MiscSamples/src/com/example/android/rs/miscsamples/RsRenderStatesView.java new file mode 100644 index 0000000000000..a15e38f8b9fd0 --- /dev/null +++ b/tests/RenderScriptTests/MiscSamples/src/com/example/android/rs/miscsamples/RsRenderStatesView.java @@ -0,0 +1,78 @@ +/* + * 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.example.android.rs.miscsamples; + +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/tests/RenderScriptTests/MiscSamples/src/com/example/android/rs/miscsamples/rslist.rs b/tests/RenderScriptTests/MiscSamples/src/com/example/android/rs/miscsamples/rslist.rs new file mode 100644 index 0000000000000..d9d450dc4f62e --- /dev/null +++ b/tests/RenderScriptTests/MiscSamples/src/com/example/android/rs/miscsamples/rslist.rs @@ -0,0 +1,70 @@ +// 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.example.android.rs.miscsamples) + +#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(void) { + + 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; + 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/tests/RenderScriptTests/MiscSamples/src/com/example/android/rs/miscsamples/rsrenderstates.rs b/tests/RenderScriptTests/MiscSamples/src/com/example/android/rs/miscsamples/rsrenderstates.rs new file mode 100644 index 0000000000000..5dabd00bc133a --- /dev/null +++ b/tests/RenderScriptTests/MiscSamples/src/com/example/android/rs/miscsamples/rsrenderstates.rs @@ -0,0 +1,680 @@ +// 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.example.android.rs.miscsamples) + +#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(void) { + + 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/tests/RenderScriptTests/MiscSamples/src/com/example/android/rs/miscsamples/shader_def.rsh b/tests/RenderScriptTests/MiscSamples/src/com/example/android/rs/miscsamples/shader_def.rsh new file mode 100644 index 0000000000000..08cf361e8fe59 --- /dev/null +++ b/tests/RenderScriptTests/MiscSamples/src/com/example/android/rs/miscsamples/shader_def.rsh @@ -0,0 +1,83 @@ +// 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.example.android.rs.miscsamples) + +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; +