From 684267525b349eb12f4e31d88061c51115678dec Mon Sep 17 00:00:00 2001 From: Alex Sakhartchouk Date: Tue, 13 Dec 2011 17:02:52 -0800 Subject: Rename some elements to be more in line with rest of framework. Change-Id: Icb007bafca9c76959eee2e8134b1d7c592ca885c --- .../src/com/android/scenegraph/ColladaParser.java | 12 +- .../src/com/android/scenegraph/Drawable.java | 178 --------------------- .../src/com/android/scenegraph/DrawableBase.java | 39 ----- .../src/com/android/scenegraph/DrawableGroup.java | 47 ------ .../src/com/android/scenegraph/FullscreenBlur.java | 24 +-- .../src/com/android/scenegraph/RenderPass.java | 8 +- .../src/com/android/scenegraph/Renderable.java | 178 +++++++++++++++++++++ .../src/com/android/scenegraph/RenderableBase.java | 39 +++++ .../com/android/scenegraph/RenderableGroup.java | 47 ++++++ .../src/com/android/scenegraph/Scene.java | 80 ++++----- .../src/com/android/scenegraph/TestAppRS.java | 8 +- .../src/com/android/scenegraph/export.rs | 2 +- .../src/com/android/scenegraph/render.rs | 30 ++-- .../src/com/android/scenegraph/transform_def.rsh | 4 +- 14 files changed, 348 insertions(+), 348 deletions(-) delete mode 100644 tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/Drawable.java delete mode 100644 tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/DrawableBase.java delete mode 100644 tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/DrawableGroup.java create mode 100644 tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/Renderable.java create mode 100644 tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/RenderableBase.java create mode 100644 tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/RenderableGroup.java (limited to 'tests/RenderScriptTests/SceneGraph') diff --git a/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/ColladaParser.java b/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/ColladaParser.java index c7caf8d4b4cc..8a141feba577 100644 --- a/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/ColladaParser.java +++ b/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/ColladaParser.java @@ -147,11 +147,11 @@ public class ColladaParser { } } - private void getDrawable(Element shape, Transform t) { + private void getRenderable(Element shape, Transform t) { String geoURL = shape.getAttribute("url"); - //DrawableGroup group = new DrawableGroup(); + //RenderableGroup group = new RenderableGroup(); //group.setName(geoURL.substring(1)); - //mScene.appendDrawable(group); + //mScene.appendRenderable(group); NodeList nl = shape.getElementsByTagName("instance_material"); if (nl != null) { for(int i = 0; i < nl.getLength(); i++) { @@ -159,7 +159,7 @@ public class ColladaParser { String meshIndexName = materialRef.getAttribute("symbol"); String materialName = materialRef.getAttribute("target"); - Drawable d = new Drawable(); + Renderable d = new Renderable(); d.setMesh(geoURL.substring(1), meshIndexName); d.setMaterialName(materialName); d.setName(geoURL.substring(1)); @@ -180,7 +180,7 @@ public class ColladaParser { d.appendSourceParams(materialParams.get(pI)); //Log.v(TAG, "Set source param i: " + pI + " name " + materialParams.get(pI).getParamName()); } - mScene.appendDrawable(d); + mScene.appendRenderable(d); //group.appendChildren(d); } } @@ -244,7 +244,7 @@ public class ColladaParser { //Log.v(TAG, indent + " scale " + description + toString(value)); current.addComponent(new ScaleComponent(description, value)); } else if (fieldName.equals("instance_geometry")) { - getDrawable(field, current); + getRenderable(field, current); } else if (fieldName.equals("instance_light")) { updateLight(field, current); } else if (fieldName.equals("instance_camera")) { diff --git a/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/Drawable.java b/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/Drawable.java deleted file mode 100644 index 2eaca138bacc..000000000000 --- a/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/Drawable.java +++ /dev/null @@ -1,178 +0,0 @@ -/* - * Copyright (C) 2011 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.scenegraph; - -import java.lang.Math; -import java.util.ArrayList; -import java.util.HashMap; - -import android.renderscript.Allocation; -import android.renderscript.Matrix4f; -import android.renderscript.Mesh; -import android.renderscript.ProgramFragment; -import android.renderscript.ProgramStore; -import android.renderscript.ProgramVertex; -import android.renderscript.RenderScriptGL; -import android.util.Log; -import android.content.res.Resources; - -/** - * @hide - */ -public class Drawable extends DrawableBase { - Allocation mVertexParams; - Allocation mFragmentParams; - ArrayList mFragmentTextures; - ArrayList mVertexParam; - ArrayList mFragmentParam; - ArrayList mSourceParams; - Mesh mMesh; - int mMeshIndex; - - int mCullType; - - RenderState mRenderState; - - Transform mTransform; - - String mMeshName; - String mMeshIndexName; - - public String mMaterialName; - - // quick hack to prototype - int sceneIndex; - - ScriptField_Drawable_s mRsField; - ScriptField_Drawable_s.Item mRsFieldItem; - - public Drawable() { - mSourceParams = new ArrayList(); - } - - public void setCullType(int cull) { - mCullType = cull; - } - - public void setRenderState(RenderState renderState) { - mRenderState = renderState; - } - - public void setMesh(Mesh mesh) { - mMesh = mesh; - } - - public void setMesh(String mesh, String indexName) { - mMeshName = mesh; - mMeshIndexName = indexName; - } - - public void setMaterialName(String name) { - mMaterialName = name; - } - - public void setTransform(Transform t) { - mTransform = t; - } - - public void appendSourceParams(ShaderParam p) { - mSourceParams.add(p); - } - - public void resolveMeshData(Mesh mMesh) { - mMesh = mMesh; - if (mMesh == null) { - Log.v("DRAWABLE: ", "*** NO MESH *** " + mMeshName); - return; - } - int subIndexCount = mMesh.getPrimitiveCount(); - if (subIndexCount == 1 || mMeshIndexName == null) { - mMeshIndex = 0; - } else { - for (int i = 0; i < subIndexCount; i ++) { - if (mMesh.getIndexSetAllocation(i).getName().equals(mMeshIndexName)) { - mMeshIndex = i; - break; - } - } - } - - mRsFieldItem.mesh = mMesh; - mRsFieldItem.meshIndex = mMeshIndex; - - mRsField.set(mRsFieldItem, 0, true); - } - - void updateTextures(RenderScriptGL rs, Resources res) { - for (int i = 0; i < mSourceParams.size(); i ++) { - ShaderParam sp = mSourceParams.get(i); - if (sp instanceof TextureParam) { - TextureParam p = (TextureParam)sp; - mRsFieldItem.pf_textures[0] = p.getTexture().getRsData(rs, res); - break; - } - } - mRsField.set(mRsFieldItem, 0, true); - } - - void updateTextures(RenderScriptGL rs, Allocation a, int slot) { - getRsFieldItem(rs, null); - mRsFieldItem.pf_textures[slot] = a; - } - - void setVisible(RenderScriptGL rs, boolean vis) { - getRsField(rs, null); - mRsFieldItem.cullType = vis ? 0 : 2; - mRsField.set(mRsFieldItem, 0, true); - } - - ScriptField_Drawable_s getRsField(RenderScriptGL rs, Resources res) { - if (mRsField != null) { - return mRsField; - } - getRsFieldItem(rs, res); - - mRsField = new ScriptField_Drawable_s(rs, 1); - mRsField.set(mRsFieldItem, 0, true); - - return mRsField; - } - - void getRsFieldItem(RenderScriptGL rs, Resources res) { - if (mRsFieldItem != null) { - return; - } - - mRsFieldItem = new ScriptField_Drawable_s.Item(); - mRsFieldItem.mesh = mMesh; - mRsFieldItem.meshIndex = mMeshIndex; - mRsFieldItem.pv_const = mVertexParams; - mRsFieldItem.pf_const = mFragmentParams; - if (mTransform != null) { - mRsFieldItem.transformMatrix = mTransform.getRSData(rs).getAllocation(); - } - mRsFieldItem.name = getStringAsAllocation(rs, getName()); - mRsFieldItem.render_state = mRenderState.getRSData(rs).getAllocation(); - mRsFieldItem.bVolInitialized = 0; - mRsFieldItem.cullType = mCullType; - } -} - - - - - diff --git a/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/DrawableBase.java b/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/DrawableBase.java deleted file mode 100644 index 113ccd4c1c22..000000000000 --- a/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/DrawableBase.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (C) 2011 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.scenegraph; - -import java.lang.Math; -import java.util.ArrayList; - -import android.renderscript.Matrix4f; -import android.renderscript.ProgramFragment; -import android.renderscript.ProgramStore; -import android.renderscript.ProgramVertex; -import android.util.Log; - -/** - * @hide - */ -public class DrawableBase extends SceneGraphBase { - public DrawableBase() { - } -} - - - - - diff --git a/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/DrawableGroup.java b/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/DrawableGroup.java deleted file mode 100644 index ac44f0be4947..000000000000 --- a/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/DrawableGroup.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (C) 2011 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.scenegraph; - -import java.lang.Math; -import java.util.ArrayList; - -import android.renderscript.Matrix4f; -import android.renderscript.ProgramFragment; -import android.renderscript.ProgramStore; -import android.renderscript.ProgramVertex; -import android.util.Log; - -/** - * @hide - */ -public class DrawableGroup extends DrawableBase { - - ArrayList mChildren; - - public DrawableGroup() { - mChildren = new ArrayList(); - } - - public void appendChildren(DrawableBase d) { - mChildren.add(d); - } -} - - - - - diff --git a/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/FullscreenBlur.java b/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/FullscreenBlur.java index 049083b77d9d..0026872ca01b 100644 --- a/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/FullscreenBlur.java +++ b/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/FullscreenBlur.java @@ -81,8 +81,8 @@ class FullscreenBlur { Allocation.USAGE_GRAPHICS_RENDER_TARGET); } - private static Drawable getDrawableQuad(String name, RenderState state, SceneManager sceneManager) { - Drawable quad = new Drawable(); + private static Renderable getRenderableQuad(String name, RenderState state, SceneManager sceneManager) { + Renderable quad = new Renderable(); quad.setTransform(new MatrixTransform()); quad.setMesh(sceneManager.getScreenAlignedQuad()); quad.setName(name); @@ -92,7 +92,7 @@ class FullscreenBlur { } static void addBlurPasses(Scene scene, RenderScriptGL rs, SceneManager sceneManager) { - ArrayList allDraw = scene.getDrawables(); + ArrayList allDraw = scene.getRenderables(); int numDraw = allDraw.size(); RenderState drawTex = new RenderState(mPV_Blur, mPF_Texture, @@ -120,7 +120,7 @@ class FullscreenBlur { blurSourcePass.setShouldClearDepth(true); blurSourcePass.setCamera(scene.getCameras().get(1)); for (int i = 0; i < numDraw; i ++) { - blurSourcePass.appendDrawable((Drawable)allDraw.get(i)); + blurSourcePass.appendRenderable((Renderable)allDraw.get(i)); } scene.appendRenderPass(blurSourcePass); @@ -131,9 +131,9 @@ class FullscreenBlur { selectColorPass.setShouldClearDepth(false); selectColorPass.setCamera(scene.getCameras().get(1)); // Make blur shape - Drawable quad = getDrawableQuad("ScreenAlignedQuadS", selectCol, sceneManager); + Renderable quad = getRenderableQuad("ScreenAlignedQuadS", selectCol, sceneManager); quad.updateTextures(rs, sRenderTargetBlur0Color, 0); - selectColorPass.appendDrawable(quad); + selectColorPass.appendRenderable(quad); scene.appendRenderPass(selectColorPass); RenderPass horizontalBlurPass = new RenderPass(); @@ -143,9 +143,9 @@ class FullscreenBlur { horizontalBlurPass.setShouldClearDepth(false); horizontalBlurPass.setCamera(scene.getCameras().get(1)); // Make blur shape - quad = getDrawableQuad("ScreenAlignedQuadH", hBlur, sceneManager); + quad = getRenderableQuad("ScreenAlignedQuadH", hBlur, sceneManager); quad.updateTextures(rs, sRenderTargetBlur2Color, 0); - horizontalBlurPass.appendDrawable(quad); + horizontalBlurPass.appendRenderable(quad); scene.appendRenderPass(horizontalBlurPass); RenderPass verticalBlurPass = new RenderPass(); @@ -155,9 +155,9 @@ class FullscreenBlur { verticalBlurPass.setShouldClearDepth(false); verticalBlurPass.setCamera(scene.getCameras().get(1)); // Make blur shape - quad = getDrawableQuad("ScreenAlignedQuadV", vBlur, sceneManager); + quad = getRenderableQuad("ScreenAlignedQuadV", vBlur, sceneManager); quad.updateTextures(rs, sRenderTargetBlur1Color, 0); - verticalBlurPass.appendDrawable(quad); + verticalBlurPass.appendRenderable(quad); scene.appendRenderPass(verticalBlurPass); } @@ -173,9 +173,9 @@ class FullscreenBlur { compositePass.setClearDepth(1.0f); compositePass.setShouldClearDepth(false); compositePass.setCamera(scene.getCameras().get(1)); - Drawable quad = getDrawableQuad("ScreenAlignedQuad", drawTex, sceneManager); + Renderable quad = getRenderableQuad("ScreenAlignedQuad", drawTex, sceneManager); quad.updateTextures(rs, sRenderTargetBlur2Color, 0); - compositePass.appendDrawable(quad); + compositePass.appendRenderable(quad); scene.appendRenderPass(compositePass); } diff --git a/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/RenderPass.java b/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/RenderPass.java index 0012b1097188..6ba063744c29 100644 --- a/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/RenderPass.java +++ b/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/RenderPass.java @@ -37,21 +37,21 @@ public class RenderPass extends SceneGraphBase { float mClearDepth; boolean mShouldClearDepth; - ArrayList mObjectsToDraw; + ArrayList mObjectsToDraw; Camera mCamera; ScriptField_RenderPass_s.Item mRsField; public RenderPass() { - mObjectsToDraw = new ArrayList(); + mObjectsToDraw = new ArrayList(); mClearColor = new Float4(0.0f, 0.0f, 0.0f, 0.0f); mShouldClearColor = true; mClearDepth = 1.0f; mShouldClearDepth = true; } - public void appendDrawable(Drawable d) { + public void appendRenderable(Renderable d) { mObjectsToDraw.add(d); } @@ -95,7 +95,7 @@ public class RenderPass extends SceneGraphBase { mObjectsToDraw.size()); Allocation[] drawableAllocs = new Allocation[mObjectsToDraw.size()]; for (int i = 0; i < mObjectsToDraw.size(); i ++) { - Drawable dI = (Drawable)mObjectsToDraw.get(i); + Renderable dI = (Renderable)mObjectsToDraw.get(i); drawableAllocs[i] = dI.getRsField(rs, res).getAllocation(); } drawableData.copyFrom(drawableAllocs); diff --git a/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/Renderable.java b/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/Renderable.java new file mode 100644 index 000000000000..dbbb1ba9fb36 --- /dev/null +++ b/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/Renderable.java @@ -0,0 +1,178 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.scenegraph; + +import java.lang.Math; +import java.util.ArrayList; +import java.util.HashMap; + +import android.renderscript.Allocation; +import android.renderscript.Matrix4f; +import android.renderscript.Mesh; +import android.renderscript.ProgramFragment; +import android.renderscript.ProgramStore; +import android.renderscript.ProgramVertex; +import android.renderscript.RenderScriptGL; +import android.util.Log; +import android.content.res.Resources; + +/** + * @hide + */ +public class Renderable extends RenderableBase { + Allocation mVertexParams; + Allocation mFragmentParams; + ArrayList mFragmentTextures; + ArrayList mVertexParam; + ArrayList mFragmentParam; + ArrayList mSourceParams; + Mesh mMesh; + int mMeshIndex; + + int mCullType; + + RenderState mRenderState; + + Transform mTransform; + + String mMeshName; + String mMeshIndexName; + + public String mMaterialName; + + // quick hack to prototype + int sceneIndex; + + ScriptField_Renderable_s mRsField; + ScriptField_Renderable_s.Item mRsFieldItem; + + public Renderable() { + mSourceParams = new ArrayList(); + } + + public void setCullType(int cull) { + mCullType = cull; + } + + public void setRenderState(RenderState renderState) { + mRenderState = renderState; + } + + public void setMesh(Mesh mesh) { + mMesh = mesh; + } + + public void setMesh(String mesh, String indexName) { + mMeshName = mesh; + mMeshIndexName = indexName; + } + + public void setMaterialName(String name) { + mMaterialName = name; + } + + public void setTransform(Transform t) { + mTransform = t; + } + + public void appendSourceParams(ShaderParam p) { + mSourceParams.add(p); + } + + public void resolveMeshData(Mesh mMesh) { + mMesh = mMesh; + if (mMesh == null) { + Log.v("DRAWABLE: ", "*** NO MESH *** " + mMeshName); + return; + } + int subIndexCount = mMesh.getPrimitiveCount(); + if (subIndexCount == 1 || mMeshIndexName == null) { + mMeshIndex = 0; + } else { + for (int i = 0; i < subIndexCount; i ++) { + if (mMesh.getIndexSetAllocation(i).getName().equals(mMeshIndexName)) { + mMeshIndex = i; + break; + } + } + } + + mRsFieldItem.mesh = mMesh; + mRsFieldItem.meshIndex = mMeshIndex; + + mRsField.set(mRsFieldItem, 0, true); + } + + void updateTextures(RenderScriptGL rs, Resources res) { + for (int i = 0; i < mSourceParams.size(); i ++) { + ShaderParam sp = mSourceParams.get(i); + if (sp instanceof TextureParam) { + TextureParam p = (TextureParam)sp; + mRsFieldItem.pf_textures[0] = p.getTexture().getRsData(rs, res); + break; + } + } + mRsField.set(mRsFieldItem, 0, true); + } + + void updateTextures(RenderScriptGL rs, Allocation a, int slot) { + getRsFieldItem(rs, null); + mRsFieldItem.pf_textures[slot] = a; + } + + void setVisible(RenderScriptGL rs, boolean vis) { + getRsField(rs, null); + mRsFieldItem.cullType = vis ? 0 : 2; + mRsField.set(mRsFieldItem, 0, true); + } + + ScriptField_Renderable_s getRsField(RenderScriptGL rs, Resources res) { + if (mRsField != null) { + return mRsField; + } + getRsFieldItem(rs, res); + + mRsField = new ScriptField_Renderable_s(rs, 1); + mRsField.set(mRsFieldItem, 0, true); + + return mRsField; + } + + void getRsFieldItem(RenderScriptGL rs, Resources res) { + if (mRsFieldItem != null) { + return; + } + + mRsFieldItem = new ScriptField_Renderable_s.Item(); + mRsFieldItem.mesh = mMesh; + mRsFieldItem.meshIndex = mMeshIndex; + mRsFieldItem.pv_const = mVertexParams; + mRsFieldItem.pf_const = mFragmentParams; + if (mTransform != null) { + mRsFieldItem.transformMatrix = mTransform.getRSData(rs).getAllocation(); + } + mRsFieldItem.name = getStringAsAllocation(rs, getName()); + mRsFieldItem.render_state = mRenderState.getRSData(rs).getAllocation(); + mRsFieldItem.bVolInitialized = 0; + mRsFieldItem.cullType = mCullType; + } +} + + + + + diff --git a/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/RenderableBase.java b/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/RenderableBase.java new file mode 100644 index 000000000000..74535dd94987 --- /dev/null +++ b/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/RenderableBase.java @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.scenegraph; + +import java.lang.Math; +import java.util.ArrayList; + +import android.renderscript.Matrix4f; +import android.renderscript.ProgramFragment; +import android.renderscript.ProgramStore; +import android.renderscript.ProgramVertex; +import android.util.Log; + +/** + * @hide + */ +public class RenderableBase extends SceneGraphBase { + public RenderableBase() { + } +} + + + + + diff --git a/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/RenderableGroup.java b/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/RenderableGroup.java new file mode 100644 index 000000000000..590bbab9c5f8 --- /dev/null +++ b/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/RenderableGroup.java @@ -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. + */ + +package com.android.scenegraph; + +import java.lang.Math; +import java.util.ArrayList; + +import android.renderscript.Matrix4f; +import android.renderscript.ProgramFragment; +import android.renderscript.ProgramStore; +import android.renderscript.ProgramVertex; +import android.util.Log; + +/** + * @hide + */ +public class RenderableGroup extends RenderableBase { + + ArrayList mChildren; + + public RenderableGroup() { + mChildren = new ArrayList(); + } + + public void appendChildren(RenderableBase d) { + mChildren.add(d); + } +} + + + + + diff --git a/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/Scene.java b/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/Scene.java index b1ae365d5531..cb1ad8b13193 100644 --- a/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/Scene.java +++ b/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/Scene.java @@ -38,8 +38,8 @@ public class Scene extends SceneGraphBase { private class ImageLoaderTask extends AsyncTask { protected Boolean doInBackground(String... names) { long start = System.currentTimeMillis(); - for (int i = 0; i < mDrawables.size(); i ++) { - Drawable dI = (Drawable)mDrawables.get(i); + for (int i = 0; i < mRenderables.size(); i ++) { + Renderable dI = (Renderable)mRenderables.get(i); dI.updateTextures(mRS, mRes); } long end = System.currentTimeMillis(); @@ -56,11 +56,11 @@ public class Scene extends SceneGraphBase { ArrayList mRenderPasses; ArrayList mLights; ArrayList mCameras; - ArrayList mDrawables; - HashMap mDrawableMap; + ArrayList mRenderables; + HashMap mRenderableMap; ArrayList mTextures; - HashMap > mDrawableMeshMap; + HashMap > mRenderableMeshMap; // RS Specific stuff ScriptField_SgTransform mTransformRSData; @@ -74,9 +74,9 @@ public class Scene extends SceneGraphBase { mRenderPasses = new ArrayList(); mLights = new ArrayList(); mCameras = new ArrayList(); - mDrawables = new ArrayList(); - mDrawableMap = new HashMap(); - mDrawableMeshMap = new HashMap >(); + mRenderables = new ArrayList(); + mRenderableMap = new HashMap(); + mRenderableMeshMap = new HashMap >(); mTextures = new ArrayList(); mRootTransforms = new CompoundTransform(); mRootTransforms.setName("_scene_root_"); @@ -116,17 +116,17 @@ public class Scene extends SceneGraphBase { return mCameras; } - public void appendDrawable(DrawableBase d) { - mDrawables.add(d); - mDrawableMap.put(d.getName(), d); + public void appendRenderable(RenderableBase d) { + mRenderables.add(d); + mRenderableMap.put(d.getName(), d); } - public ArrayList getDrawables() { - return mDrawables; + public ArrayList getRenderables() { + return mRenderables; } - public DrawableBase getDrawableByName(String name) { - return mDrawableMap.get(name); + public RenderableBase getRenderableByName(String name) { + return mRenderableMap.get(name); } public void appendTextures(Texture2D tex) { @@ -135,9 +135,9 @@ public class Scene extends SceneGraphBase { public void assignRenderStateToMaterial(RenderState renderState, String regex) { Pattern pattern = Pattern.compile(regex); - int numDrawables = mDrawables.size(); - for (int i = 0; i < numDrawables; i ++) { - Drawable shape = (Drawable)mDrawables.get(i); + int numRenderables = mRenderables.size(); + for (int i = 0; i < numRenderables; i ++) { + Renderable shape = (Renderable)mRenderables.get(i); Matcher m = pattern.matcher(shape.mMaterialName); if (m.find()) { shape.setRenderState(renderState); @@ -146,28 +146,28 @@ public class Scene extends SceneGraphBase { } public void assignRenderState(RenderState renderState) { - int numDrawables = mDrawables.size(); - for (int i = 0; i < numDrawables; i ++) { - Drawable shape = (Drawable)mDrawables.get(i); + int numRenderables = mRenderables.size(); + for (int i = 0; i < numRenderables; i ++) { + Renderable shape = (Renderable)mRenderables.get(i); shape.setRenderState(renderState); } } public void meshLoaded(Mesh m) { - ArrayList entries = mDrawableMeshMap.get(m.getName()); + ArrayList entries = mRenderableMeshMap.get(m.getName()); int numEntries = entries.size(); for (int i = 0; i < numEntries; i++) { - Drawable d = entries.get(i); + Renderable d = entries.get(i); d.resolveMeshData(m); - //mDrawablesField.set(d.getRsField(mRS, mRes), d.sceneIndex, true); + //mRenderablesField.set(d.getRsField(mRS, mRes), d.sceneIndex, true); } } - void addToMeshMap(Drawable d) { - ArrayList entries = mDrawableMeshMap.get(d.mMeshName); + void addToMeshMap(Renderable d) { + ArrayList entries = mRenderableMeshMap.get(d.mMeshName); if (entries == null) { - entries = new ArrayList(); - mDrawableMeshMap.put(d.mMeshName, entries); + entries = new ArrayList(); + mRenderableMeshMap.put(d.mMeshName, entries); } entries.add(d); } @@ -175,7 +175,7 @@ public class Scene extends SceneGraphBase { public void destroyRS(SceneManager sceneManager) { mTransformRSData = null; sceneManager.mRenderLoop.bind_gRootNode(mTransformRSData); - sceneManager.mRenderLoop.set_gDrawableObjects(null); + sceneManager.mRenderLoop.set_gRenderableObjects(null); mRenderPassAlloc = null; sceneManager.mRenderLoop.set_gRenderPasses(null); sceneManager.mRenderLoop.bind_gFrontToBack(null); @@ -186,10 +186,10 @@ public class Scene extends SceneGraphBase { mRenderPasses = null; mLights = null; mCameras = null; - mDrawables = null; - mDrawableMap = null; + mRenderables = null; + mRenderableMap = null; mTextures = null; - mDrawableMeshMap = null; + mRenderableMeshMap = null; mRootTransforms = null; } @@ -220,27 +220,27 @@ public class Scene extends SceneGraphBase { start = System.currentTimeMillis(); Allocation drawableData = Allocation.createSized(rs, Element.ALLOCATION(rs), - mDrawables.size()); - Allocation[] drawableAllocs = new Allocation[mDrawables.size()]; - for (int i = 0; i < mDrawables.size(); i ++) { - Drawable dI = (Drawable)mDrawables.get(i); + mRenderables.size()); + Allocation[] drawableAllocs = new Allocation[mRenderables.size()]; + for (int i = 0; i < mRenderables.size(); i ++) { + Renderable dI = (Renderable)mRenderables.get(i); dI.sceneIndex = i; addToMeshMap(dI); drawableAllocs[i] = dI.getRsField(rs, res).getAllocation(); } drawableData.copyFrom(drawableAllocs); - sceneManager.mRenderLoop.set_gDrawableObjects(drawableData); + sceneManager.mRenderLoop.set_gRenderableObjects(drawableData); initRenderPassRS(rs, sceneManager); new ImageLoaderTask().execute(); end = System.currentTimeMillis(); - Log.v(TIMER_TAG, "Drawable init time: " + (end - start)); + Log.v(TIMER_TAG, "Renderable init time: " + (end - start)); - Allocation opaqueBuffer = Allocation.createSized(rs, Element.U32(rs), mDrawables.size()); + Allocation opaqueBuffer = Allocation.createSized(rs, Element.U32(rs), mRenderables.size()); Allocation transparentBuffer = Allocation.createSized(rs, - Element.U32(rs), mDrawables.size()); + Element.U32(rs), mRenderables.size()); sceneManager.mRenderLoop.bind_gFrontToBack(opaqueBuffer); sceneManager.mRenderLoop.bind_gBackToFront(transparentBuffer); diff --git a/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/TestAppRS.java b/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/TestAppRS.java index 7b710eed2b45..5bb821ff479c 100644 --- a/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/TestAppRS.java +++ b/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/TestAppRS.java @@ -84,7 +84,7 @@ public class TestAppRS { // This is just a hardcoded object in the scene that gets turned on and off for the demo // to make things look a bit better. This could be deleted in the cleanup - Drawable plane = (Drawable)mActiveScene.getDrawableByName("pPlaneShape1"); + Renderable plane = (Renderable)mActiveScene.getRenderableByName("pPlaneShape1"); if (plane != null) { plane.setVisible(mRS, !mUseBlur); } @@ -362,7 +362,7 @@ public class TestAppRS { } void initRenderPasses() { - ArrayList allDraw = mActiveScene.getDrawables(); + ArrayList allDraw = mActiveScene.getRenderables(); int numDraw = allDraw.size(); if (mUseBlur) { @@ -376,7 +376,7 @@ public class TestAppRS { mainPass.setShouldClearDepth(true); mainPass.setCamera(mActiveScene.getCameras().get(1)); for (int i = 0; i < numDraw; i ++) { - mainPass.appendDrawable((Drawable)allDraw.get(i)); + mainPass.appendRenderable((Renderable)allDraw.get(i)); } mActiveScene.appendRenderPass(mainPass); @@ -412,7 +412,7 @@ public class TestAppRS { mActiveScene.assignRenderStateToMaterial(glassTransp, "^#GlassLight"); - Drawable plane = (Drawable)mActiveScene.getDrawableByName("pPlaneShape1"); + Renderable plane = (Renderable)mActiveScene.getRenderableByName("pPlaneShape1"); if (plane != null) { RenderState texState = new RenderState(mPV_Paint, mPF_Texture, null, null); plane.setRenderState(texState); diff --git a/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/export.rs b/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/export.rs index 1dfe63338c72..e00e507c21a3 100644 --- a/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/export.rs +++ b/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/export.rs @@ -21,7 +21,7 @@ #include "transform_def.rsh" SgTransform *exportPtr; SgRenderState *sExport; -SgDrawable *drExport; +SgRenderable *drExport; SgRenderPass *pExport; SgCamera *exportPtrCam; FBlurOffsets *blurExport; diff --git a/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/render.rs b/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/render.rs index d7343dccbf99..4b85d726b804 100644 --- a/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/render.rs +++ b/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/render.rs @@ -24,7 +24,7 @@ rs_script gCameraScript; SgTransform *gRootNode; rs_allocation gCameras; -rs_allocation gDrawableObjects; +rs_allocation gRenderableObjects; rs_allocation gRenderPasses; @@ -46,7 +46,7 @@ static float4 gFrustumPlanes[6]; static rs_allocation nullAlloc; //#define DEBUG_RENDERABLES -static void draw(SgDrawable *obj) { +static void draw(SgRenderable *obj) { const SgRenderState *renderState = (const SgRenderState *)rsGetElementAt(obj->render_state, 0); const SgTransform *objTransform = (const SgTransform *)rsGetElementAt(obj->transformMatrix, 0); @@ -90,7 +90,7 @@ static void draw(SgDrawable *obj) { rsgDrawMesh(obj->mesh, obj->meshIndex); } -static void getTransformedSphere(SgDrawable *obj) { +static void getTransformedSphere(SgRenderable *obj) { obj->worldBoundingSphere = obj->boundingSphere; obj->worldBoundingSphere.w = 1.0f; const SgTransform *objTransform = (const SgTransform *)rsGetElementAt(obj->transformMatrix, 0); @@ -102,7 +102,7 @@ static void getTransformedSphere(SgDrawable *obj) { obj->worldBoundingSphere.w = obj->boundingSphere.w * length(scaledVec); } -static bool frustumCulled(SgDrawable *obj) { +static bool frustumCulled(SgRenderable *obj) { if (!obj->bVolInitialized) { float minX, minY, minZ, maxX, maxY, maxZ; rsgMeshComputeBoundingBox(obj->mesh, @@ -133,7 +133,7 @@ static bool frustumCulled(SgDrawable *obj) { &gFrustumPlanes[3], &gFrustumPlanes[4]); } -static void sortToBucket(SgDrawable *obj) { +static void sortToBucket(SgRenderable *obj) { // Not loaded yet if (!rsIsObject(obj->mesh) || obj->cullType == 2) { return; @@ -178,12 +178,12 @@ static void prepareCameras() { static void drawSorted() { for (int i = 0; i < gFrontToBackCount; i ++) { - SgDrawable *current = (SgDrawable*)gFrontToBack[i]; + SgRenderable *current = (SgRenderable*)gFrontToBack[i]; draw(current); } for (int i = 0; i < gBackToFrontCount; i ++) { - SgDrawable *current = (SgDrawable*)gBackToFront[i]; + SgRenderable *current = (SgRenderable*)gBackToFront[i]; draw(current); } } @@ -192,10 +192,10 @@ static void drawAllObjects(rs_allocation allObj) { if (!rsIsObject(allObj)) { return; } - int numDrawables = rsAllocationGetDimX(allObj); - for (int i = 0; i < numDrawables; i ++) { + int numRenderables = rsAllocationGetDimX(allObj); + for (int i = 0; i < numRenderables; i ++) { rs_allocation *drawAlloc = (rs_allocation*)rsGetElementAt(allObj, i); - SgDrawable *current = (SgDrawable*)rsGetElementAt(*drawAlloc, 0); + SgRenderable *current = (SgRenderable*)rsGetElementAt(*drawAlloc, 0); sortToBucket(current); } drawSorted(); @@ -211,7 +211,7 @@ void root(const void *v_in, void *v_out) { rsgClearDepth(1.0f); - int numDrawables = rsAllocationGetDimX(gDrawableObjects); + int numRenderables = rsAllocationGetDimX(gRenderableObjects); if (rsIsObject(gRenderPasses)) { int numPasses = rsAllocationGetDimX(gRenderPasses); for (uint i = 0; i < numPasses; i ++) { @@ -245,11 +245,11 @@ void root(const void *v_in, void *v_out) { rsgClearDepth(1.0f); rs_allocation *camAlloc = (rs_allocation*)rsGetElementAt(gCameras, 1); updateActiveCamera(*camAlloc); - drawAllObjects(gDrawableObjects); + drawAllObjects(gRenderableObjects); } } -static bool intersect(const SgDrawable *obj, float3 pnt, float3 vec) { +static bool intersect(const SgRenderable *obj, float3 pnt, float3 vec) { // Solving for t^2 + Bt + C = 0 float3 originMinusCenter = pnt - obj->worldBoundingSphere.xyz; float B = dot(originMinusCenter, vec) * 2.0f; @@ -284,7 +284,7 @@ void pick(int screenX, int screenY) { getCameraRay(gActiveCamera, screenX, screenY, &pnt, &vec); for (int i = 0; i < gFrontToBackCount; i ++) { - SgDrawable *current = (SgDrawable*)gFrontToBack[i]; + SgRenderable *current = (SgRenderable*)gFrontToBack[i]; bool isPicked = intersect(current, pnt, vec); if (isPicked) { current->cullType = 2; @@ -292,7 +292,7 @@ void pick(int screenX, int screenY) { } for (int i = 0; i < gBackToFrontCount; i ++) { - SgDrawable *current = (SgDrawable*)gBackToFront[i]; + SgRenderable *current = (SgRenderable*)gBackToFront[i]; bool isPicked = intersect(current, pnt, vec); if (isPicked) { current->cullType = 2; diff --git a/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/transform_def.rsh b/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/transform_def.rsh index e093bf956f34..143e50d07d9b 100644 --- a/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/transform_def.rsh +++ b/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/transform_def.rsh @@ -55,7 +55,7 @@ typedef struct RenderState_s { rs_program_raster pr; } SgRenderState; -typedef struct Drawable_s { +typedef struct Renderable_s { rs_allocation render_state; rs_allocation pv_const; rs_allocation pf_const; @@ -69,7 +69,7 @@ typedef struct Drawable_s { float4 worldBoundingSphere; int bVolInitialized; int cullType; // specifies whether to frustum cull -} SgDrawable; +} SgRenderable; typedef struct RenderPass_s { rs_allocation color_target; -- cgit v1.2.3-59-g8ed1b