diff options
| author | Alex Sakhartchouk <alexst@google.com> | 2012-01-27 15:00:34 -0800 |
|---|---|---|
| committer | Alex Sakhartchouk <alexst@google.com> | 2012-01-27 15:00:34 -0800 |
| commit | 4bda82de0bca754f3ce387e9968170c5122241a9 (patch) | |
| tree | b4226b2d3d18b2b47e72e37f4eea5aeca4bb285c /tests/RenderScriptTests/SceneGraph/src/com/android/testapp | |
| parent | a18d676edefbafc0b745ab98edab8f50b1c81c61 (diff) | |
| download | frameworks_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')
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; |
