summaryrefslogtreecommitdiffstats
path: root/tests/RenderScriptTests/SceneGraph/src/com/android/testapp
diff options
context:
space:
mode:
authorAlex Sakhartchouk <alexst@google.com>2012-01-27 15:00:34 -0800
committerAlex Sakhartchouk <alexst@google.com>2012-01-27 15:00:34 -0800
commit4bda82de0bca754f3ce387e9968170c5122241a9 (patch)
treeb4226b2d3d18b2b47e72e37f4eea5aeca4bb285c /tests/RenderScriptTests/SceneGraph/src/com/android/testapp
parenta18d676edefbafc0b745ab98edab8f50b1c81c61 (diff)
downloadframeworks_base-4bda82de0bca754f3ce387e9968170c5122241a9.zip
frameworks_base-4bda82de0bca754f3ce387e9968170c5122241a9.tar.gz
frameworks_base-4bda82de0bca754f3ce387e9968170c5122241a9.tar.bz2
Better constant names, removed unused code, general cleanup.
Change-Id: Iebf6d6c930c146e83d6963674d63ee322e831f3e
Diffstat (limited to 'tests/RenderScriptTests/SceneGraph/src/com/android/testapp')
-rw-r--r--tests/RenderScriptTests/SceneGraph/src/com/android/testapp/FullscreenBlur.java4
-rw-r--r--tests/RenderScriptTests/SceneGraph/src/com/android/testapp/TestAppLoadingScreen.java4
-rw-r--r--tests/RenderScriptTests/SceneGraph/src/com/android/testapp/TestAppRS.java86
-rw-r--r--tests/RenderScriptTests/SceneGraph/src/com/android/testapp/TouchHandler.java98
-rw-r--r--tests/RenderScriptTests/SceneGraph/src/com/android/testapp/test_app.rs3
-rw-r--r--tests/RenderScriptTests/SceneGraph/src/com/android/testapp/test_app.rsh19
6 files changed, 79 insertions, 135 deletions
diff --git a/tests/RenderScriptTests/SceneGraph/src/com/android/testapp/FullscreenBlur.java b/tests/RenderScriptTests/SceneGraph/src/com/android/testapp/FullscreenBlur.java
index 2e764e9..2299b72 100644
--- a/tests/RenderScriptTests/SceneGraph/src/com/android/testapp/FullscreenBlur.java
+++ b/tests/RenderScriptTests/SceneGraph/src/com/android/testapp/FullscreenBlur.java
@@ -166,9 +166,9 @@ class FullscreenBlur {
}
static void initShaders(Resources res, RenderScriptGL rs) {
- ScriptField_FBlurOffsets_s blurConst = new ScriptField_FBlurOffsets_s(rs, 1);
+ ScriptField_BlurOffsets blurConst = new ScriptField_BlurOffsets(rs, 1);
VertexShader.Builder vb = new VertexShader.Builder(rs);
- vb.addInput(ScriptField_VertexShaderInputs_s.createElement(rs));
+ vb.addInput(ScriptField_VertexShaderInputs.createElement(rs));
vb.setShader(res, R.raw.blur_vertex);
mPV_Blur = vb.create();
diff --git a/tests/RenderScriptTests/SceneGraph/src/com/android/testapp/TestAppLoadingScreen.java b/tests/RenderScriptTests/SceneGraph/src/com/android/testapp/TestAppLoadingScreen.java
index b818833..60616cc 100644
--- a/tests/RenderScriptTests/SceneGraph/src/com/android/testapp/TestAppLoadingScreen.java
+++ b/tests/RenderScriptTests/SceneGraph/src/com/android/testapp/TestAppLoadingScreen.java
@@ -38,9 +38,6 @@ public class TestAppLoadingScreen {
private static String TAG = "TestAppLoadingScreen";
- int mWidth;
- int mHeight;
-
private Resources mRes;
private RenderScriptGL mRS;
private ScriptC_test_app mScript;
@@ -108,7 +105,6 @@ public class TestAppLoadingScreen {
mRS.bindRootScript(mScript);
}
-
public void setRenderLoop(ScriptC renderLoop) {
mScript.set_gRenderLoop(renderLoop);
Allocation dummyAlloc = Allocation.createSized(mRS, Element.I32(mRS), 1);
diff --git a/tests/RenderScriptTests/SceneGraph/src/com/android/testapp/TestAppRS.java b/tests/RenderScriptTests/SceneGraph/src/com/android/testapp/TestAppRS.java
index e24b1a7..0892fdb 100644
--- a/tests/RenderScriptTests/SceneGraph/src/com/android/testapp/TestAppRS.java
+++ b/tests/RenderScriptTests/SceneGraph/src/com/android/testapp/TestAppRS.java
@@ -62,10 +62,6 @@ public class TestAppRS {
private Resources mRes;
private RenderScriptGL mRS;
- ScriptField_FShaderParams_s mFsConst;
- ScriptField_FShaderLightParams_s mFsConst2;
- ScriptField_VShaderParams_s mVsConst;
-
// Shaders
private FragmentShader mPaintF;
private FragmentShader mLightsF;
@@ -73,18 +69,10 @@ public class TestAppRS {
private FragmentShader mPlasticF;
private FragmentShader mDiffuseF;
private FragmentShader mTextureF;
- private VertexShader mPaintV;
-
- private Allocation mDefaultCube;
- private TextureCube mEnvCube;
- private TextureCube mDiffCube;
+ private VertexShader mGenericV;
Scene mActiveScene;
- public TestAppRS() {
- mUseBlur = false;
- }
-
// This is a part of the test app, it's used to tests multiple render passes and is toggled
// on and off in the menu, off by default
void toggleBlur() {
@@ -103,6 +91,7 @@ public class TestAppRS {
}
public void init(RenderScriptGL rs, Resources res, int width, int height) {
+ mUseBlur = false;
mRS = rs;
mRes = res;
mWidth = width;
@@ -117,7 +106,9 @@ public class TestAppRS {
mLoadingScreen = new TestAppLoadingScreen(mRS, mRes);
// Initi renderscript stuff specific to the app. This will need to be abstracted out later.
- initRS();
+ FullscreenBlur.createRenderTargets(mRS, mWidth, mHeight);
+ initPaintShaders();
+ mLoadingScreen.setRenderLoop(mSceneManager.getRenderLoop());
// Load a scene to render
mSceneManager.loadModel(mFilePath + modelName, mLoadedCallback);
@@ -126,14 +117,12 @@ public class TestAppRS {
// When a new model file is selected from the UI, this function gets called to init everything
void loadModel(String path) {
mLoadingScreen.showLoadingScreen(true);
- mActiveScene.destroyRS(mSceneManager);
+ mActiveScene.destroyRS();
mSceneManager.loadModel(path, mLoadedCallback);
}
public void onActionDown(float x, float y) {
mTouchHandler.onActionDown(x, y);
-
- //mSceneManager.getRenderLoop().invoke_pick((int)x, (int)y);
}
public void onActionScale(float scale) {
@@ -144,9 +133,9 @@ public class TestAppRS {
mTouchHandler.onActionMove(x, y);
}
- FragmentShader createFromResource(int id, boolean addCubemap) {
+ FragmentShader createFromResource(int id, boolean addCubemap, Type constType) {
FragmentShader.Builder fb = new FragmentShader.Builder(mRS);
- fb.setShaderConst(mFsConst.getAllocation().getType());
+ fb.setShaderConst(constType);
fb.setShader(mRes, id);
fb.addTexture(TextureType.TEXTURE_2D, "diffuse");
if (addCubemap) {
@@ -161,30 +150,34 @@ public class TestAppRS {
}
private void initPaintShaders() {
- ScriptField_VObjectParams_s objConst = new ScriptField_VObjectParams_s(mRS, 1);
- ScriptField_VSParams_s shaderConst = new ScriptField_VSParams_s(mRS, 1);
+ ScriptField_ModelParams objConst = new ScriptField_ModelParams(mRS, 1);
+ ScriptField_ViewProjParams shaderConst = new ScriptField_ViewProjParams(mRS, 1);
VertexShader.Builder vb = new VertexShader.Builder(mRS);
- vb.addInput(ScriptField_VertexShaderInputs_s.createElement(mRS));
+ vb.addInput(ScriptField_VertexShaderInputs.createElement(mRS));
vb.setShader(mRes, R.raw.shader2v);
vb.setObjectConst(objConst.getAllocation().getType());
vb.setShaderConst(shaderConst.getAllocation().getType());
- mPaintV = vb.create();
+ mGenericV = vb.create();
+
+ ScriptField_CameraParams fsConst = new ScriptField_CameraParams(mRS, 1);
+ ScriptField_LightParams fsConst2 = new ScriptField_LightParams(mRS, 1);
- mFsConst = new ScriptField_FShaderParams_s(mRS, 1);
- mFsConst2 = new ScriptField_FShaderLightParams_s(mRS, 1);
+ mPaintF = createFromResource(R.raw.paintf, true, fsConst.getAllocation().getType());
+ // Assign a reflection map
+ TextureCube envCube = new TextureCube("sdcard/scenegraph/", "cube_env.png");
+ mPaintF.appendSourceParams(new TextureParam("reflection", envCube));
- mPaintF = createFromResource(R.raw.paintf, true);
- mPaintF.appendSourceParams(new TextureParam("reflection", mEnvCube));
- mAluminumF = createFromResource(R.raw.metal, true);
- mAluminumF.appendSourceParams(new TextureParam("reflection", mDiffCube));
+ mAluminumF = createFromResource(R.raw.metal, true, fsConst.getAllocation().getType());
+ TextureCube diffCube = new TextureCube("sdcard/scenegraph/", "cube_spec.png");
+ mAluminumF.appendSourceParams(new TextureParam("reflection", diffCube));
- mPlasticF = createFromResource(R.raw.plastic, false);
- mDiffuseF = createFromResource(R.raw.diffuse, false);
- mTextureF = createFromResource(R.raw.texture, false);
+ mPlasticF = createFromResource(R.raw.plastic, false, fsConst.getAllocation().getType());
+ mDiffuseF = createFromResource(R.raw.diffuse, false, fsConst.getAllocation().getType());
+ mTextureF = createFromResource(R.raw.texture, false, fsConst.getAllocation().getType());
FragmentShader.Builder fb = new FragmentShader.Builder(mRS);
- fb.setObjectConst(mFsConst2.getAllocation().getType());
+ fb.setObjectConst(fsConst2.getAllocation().getType());
fb.setShader(mRes, R.raw.plastic_lights);
mLightsF = fb.create();
@@ -222,19 +215,19 @@ public class TestAppRS {
mActiveScene.appendShader(mPlasticF);
mActiveScene.appendShader(mDiffuseF);
mActiveScene.appendShader(mTextureF);
- mActiveScene.appendShader(mPaintV);
+ mActiveScene.appendShader(mGenericV);
}
public void prepareToRender(Scene s) {
mSceneManager.setActiveScene(s);
mActiveScene = s;
addShadersToScene();
- RenderState plastic = new RenderState(mPaintV, mPlasticF, null, null);
- RenderState diffuse = new RenderState(mPaintV, mDiffuseF, null, null);
- RenderState paint = new RenderState(mPaintV, mPaintF, null, null);
- RenderState aluminum = new RenderState(mPaintV, mAluminumF, null, null);
- RenderState lights = new RenderState(mPaintV, mLightsF, null, null);
- RenderState glassTransp = new RenderState(mPaintV, mPaintF,
+ RenderState plastic = new RenderState(mGenericV, mPlasticF, null, null);
+ RenderState diffuse = new RenderState(mGenericV, mDiffuseF, null, null);
+ RenderState paint = new RenderState(mGenericV, mPaintF, null, null);
+ RenderState aluminum = new RenderState(mGenericV, mAluminumF, null, null);
+ RenderState lights = new RenderState(mGenericV, mLightsF, null, null);
+ RenderState glassTransp = new RenderState(mGenericV, mPaintF,
ProgramStore.BLEND_ALPHA_DEPTH_TEST(mRS), null);
initRenderPasses();
@@ -257,7 +250,7 @@ public class TestAppRS {
Renderable plane = (Renderable)mActiveScene.getRenderableByName("pPlaneShape1");
if (plane != null) {
- RenderState texState = new RenderState(mPaintV, mTextureF, null, null);
+ RenderState texState = new RenderState(mGenericV, mTextureF, null, null);
plane.setRenderState(texState);
plane.setVisible(mRS, !mUseBlur);
}
@@ -271,15 +264,4 @@ public class TestAppRS {
mLoadingScreen.showLoadingScreen(false);
}
-
- private void initRS() {
-
- FullscreenBlur.createRenderTargets(mRS, mWidth, mHeight);
- // Reflection maps from SD card
- mEnvCube = new TextureCube("sdcard/scenegraph/", "cube_env.png");
- mDiffCube = new TextureCube("sdcard/scenegraph/", "cube_spec.png");
- initPaintShaders();
-
- mLoadingScreen.setRenderLoop(mSceneManager.getRenderLoop());
- }
}
diff --git a/tests/RenderScriptTests/SceneGraph/src/com/android/testapp/TouchHandler.java b/tests/RenderScriptTests/SceneGraph/src/com/android/testapp/TouchHandler.java
index 4d30341..5dcc9f8 100644
--- a/tests/RenderScriptTests/SceneGraph/src/com/android/testapp/TouchHandler.java
+++ b/tests/RenderScriptTests/SceneGraph/src/com/android/testapp/TouchHandler.java
@@ -16,62 +16,38 @@
package com.android.testapp;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.FileInputStream;
-import java.io.BufferedInputStream;
-import java.io.Writer;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Vector;
-
-import android.content.res.Resources;
-import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
-import android.os.AsyncTask;
-import android.renderscript.*;
-import android.renderscript.Allocation.MipmapControl;
-import android.renderscript.Element.Builder;
-import android.renderscript.Font.Style;
-import android.renderscript.Program.TextureType;
-import android.renderscript.ProgramStore.DepthFunc;
import android.util.Log;
-
+import android.renderscript.Float3;
import com.android.scenegraph.*;
+import com.android.scenegraph.CompoundTransform.RotateComponent;
+import com.android.scenegraph.CompoundTransform.TranslateComponent;
public class TouchHandler {
-
private static String TAG = "TouchHandler";
- public TouchHandler() {
- }
-
- public void init(Scene scene) {
- mCameraRotate = (CompoundTransform)scene.getTransformByName("CameraAim");
- mCameraDist = (CompoundTransform)scene.getTransformByName("CameraDist");
-
- if (mCameraRotate != null && mCameraDist != null) {
- mRotateX = mCameraRotate.mTransformComponents.get(2);
- mRotateY = mCameraRotate.mTransformComponents.get(1);
- mDist = mCameraDist.mTransformComponents.get(0);
- }
- }
-
-
- private Resources mRes;
- private RenderScriptGL mRS;
-
float mLastX;
float mLastY;
- CompoundTransform mCameraRotate;
- CompoundTransform mCameraDist;
+ RotateComponent mRotateX;
+ float mRotateXValue;
+ RotateComponent mRotateY;
+ float mRotateYValue;
+ TranslateComponent mDist;
+ Float3 mDistValue;
- CompoundTransform.Component mRotateX;
- CompoundTransform.Component mRotateY;
- CompoundTransform.Component mDist;
+ public void init(Scene scene) {
+ CompoundTransform cameraRotate = (CompoundTransform)scene.getTransformByName("CameraAim");
+ CompoundTransform cameraDist = (CompoundTransform)scene.getTransformByName("CameraDist");
+
+ if (cameraRotate != null && cameraDist != null) {
+ mRotateX = (RotateComponent)cameraRotate.mTransformComponents.get(2);
+ mRotateXValue = mRotateX.getAngle();
+ mRotateY = (RotateComponent)cameraRotate.mTransformComponents.get(1);
+ mRotateYValue = mRotateY.getAngle();
+ mDist = (TranslateComponent)cameraDist.mTransformComponents.get(0);
+ mDistValue = mDist.getValue();
+ }
+ }
public void onActionDown(float x, float y) {
mLastX = x;
@@ -79,16 +55,16 @@ public class TouchHandler {
}
public void onActionScale(float scale) {
- if (mCameraDist == null) {
+ if (mDist == null) {
return;
}
- mDist.mValue.z *= 1.0f / scale;
- mDist.mValue.z = Math.max(20.0f, Math.min(mDist.mValue.z, 100.0f));
- mCameraDist.updateRSData();
+ mDistValue.z *= 1.0f / scale;
+ mDistValue.z = Math.max(20.0f, Math.min(mDistValue.z, 100.0f));
+ mDist.setValue(mDistValue);
}
public void onActionMove(float x, float y) {
- if (mCameraRotate == null) {
+ if (mRotateX == null) {
return;
}
@@ -102,21 +78,17 @@ public class TouchHandler {
dx = 0.0f;
}
- mRotateY.mValue.w += dx*0.25;
- if (mRotateY.mValue.w > 360) {
- mRotateY.mValue.w -= 360;
- }
- if (mRotateY.mValue.w < 0) {
- mRotateY.mValue.w += 360;
- }
+ mRotateYValue += dx * 0.25f;
+ mRotateYValue %= 360.0f;
- mRotateX.mValue.w += dy*0.25;
- mRotateX.mValue.w = Math.max(mRotateX.mValue.w, -80.0f);
- mRotateX.mValue.w = Math.min(mRotateX.mValue.w, 0.0f);
+ mRotateXValue += dy * 0.25f;
+ mRotateXValue = Math.max(mRotateXValue , -80.0f);
+ mRotateXValue = Math.min(mRotateXValue , 0.0f);
+
+ mRotateX.setAngle(mRotateXValue);
+ mRotateY.setAngle(mRotateYValue);
mLastX = x;
mLastY = y;
-
- mCameraRotate.updateRSData();
}
}
diff --git a/tests/RenderScriptTests/SceneGraph/src/com/android/testapp/test_app.rs b/tests/RenderScriptTests/SceneGraph/src/com/android/testapp/test_app.rs
index cb4e3d0..e4dcc39 100644
--- a/tests/RenderScriptTests/SceneGraph/src/com/android/testapp/test_app.rs
+++ b/tests/RenderScriptTests/SceneGraph/src/com/android/testapp/test_app.rs
@@ -21,8 +21,7 @@
// Making sure these get reflected
FBlurOffsets *blurExport;
-VertexShaderInputs *iExport;
-VShaderParams *vConst;
+VShaderInputs *iExport;
FShaderParams *fConst;
FShaderLightParams *fConts2;
VSParams *vConst2;
diff --git a/tests/RenderScriptTests/SceneGraph/src/com/android/testapp/test_app.rsh b/tests/RenderScriptTests/SceneGraph/src/com/android/testapp/test_app.rsh
index 2885ac5..5fbcbb2 100644
--- a/tests/RenderScriptTests/SceneGraph/src/com/android/testapp/test_app.rsh
+++ b/tests/RenderScriptTests/SceneGraph/src/com/android/testapp/test_app.rsh
@@ -17,24 +17,19 @@
#pragma rs java_package_name(com.android.testapp)
// Helpers
-typedef struct VShaderParams_s {
- rs_matrix4x4 model;
- rs_matrix4x4 viewProj;
-} VShaderParams;
-
-typedef struct VSParams_s {
+typedef struct ViewProjParams {
rs_matrix4x4 viewProj;
} VSParams;
-typedef struct VObjectParams_s {
+typedef struct ModelParams {
rs_matrix4x4 model;
} VObjectParams;
-typedef struct FShaderParams_s {
+typedef struct CameraParams {
float4 cameraPos;
} FShaderParams;
-typedef struct FShaderLightParams_s {
+typedef struct LightParams {
float4 lightPos_0;
float4 lightColor_0;
float4 lightPos_1;
@@ -43,15 +38,15 @@ typedef struct FShaderLightParams_s {
float4 diffuse;
} FShaderLightParams;
-typedef struct FBlurOffsets_s {
+typedef struct BlurOffsets {
float blurOffset0;
float blurOffset1;
float blurOffset2;
float blurOffset3;
} FBlurOffsets;
-typedef struct VertexShaderInputs_s {
+typedef struct VertexShaderInputs {
float4 position;
float3 normal;
float2 texture0;
-} VertexShaderInputs;
+} VShaderInputs;