From b6e9dad7823fd5458f381530c09bd71fcfcef98f Mon Sep 17 00:00:00 2001 From: Alex Sakhartchouk Date: Tue, 13 Dec 2011 15:22:34 -0800 Subject: Properly detecting blending case. Change-Id: I9963e50928f17610c509d00780714aea0cb00613 --- .../SceneGraph/src/com/android/scenegraph/FullscreenBlur.java | 2 +- .../SceneGraph/src/com/android/scenegraph/TestAppRS.java | 8 ++++---- .../SceneGraph/src/com/android/scenegraph/render.rs | 7 ++++++- 3 files changed, 11 insertions(+), 6 deletions(-) (limited to 'tests/RenderScriptTests/SceneGraph') diff --git a/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/FullscreenBlur.java b/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/FullscreenBlur.java index 2e365aa0098f..049083b77d9d 100644 --- a/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/FullscreenBlur.java +++ b/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/FullscreenBlur.java @@ -31,7 +31,7 @@ import android.util.Log; import java.util.ArrayList; -class GaussianBlur { +class FullscreenBlur { static Allocation sRenderTargetBlur0Color; static Allocation sRenderTargetBlur0Depth; diff --git a/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/TestAppRS.java b/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/TestAppRS.java index 94347ce30eb8..7b710eed2b45 100644 --- a/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/TestAppRS.java +++ b/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/TestAppRS.java @@ -310,7 +310,7 @@ public class TestAppRS { mPF_Texture.bindConstants(mFsConst.getAllocation(), 0); mPF_Texture.bindSampler(Sampler.WRAP_LINEAR_MIP_LINEAR(mRS), 0); - GaussianBlur.initShaders(mRes, mRS, mVsConst, mFsConst); + FullscreenBlur.initShaders(mRes, mRS, mVsConst, mFsConst); } // This needs to be cleaned up a bit, it's one of the default render state objects @@ -366,7 +366,7 @@ public class TestAppRS { int numDraw = allDraw.size(); if (mUseBlur) { - GaussianBlur.addBlurPasses(mActiveScene, mRS, mSceneManager); + FullscreenBlur.addBlurPasses(mActiveScene, mRS, mSceneManager); } RenderPass mainPass = new RenderPass(); @@ -381,7 +381,7 @@ public class TestAppRS { mActiveScene.appendRenderPass(mainPass); if (mUseBlur) { - GaussianBlur.addCompositePass(mActiveScene, mRS, mSceneManager); + FullscreenBlur.addCompositePass(mActiveScene, mRS, mSceneManager); } } @@ -431,7 +431,7 @@ public class TestAppRS { private void initRS() { - GaussianBlur.createRenderTargets(mRS, mWidth, mHeight); + FullscreenBlur.createRenderTargets(mRS, mWidth, mHeight); initPaintShaders(); new ImageLoaderTask().execute(); diff --git a/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/render.rs b/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/render.rs index 289165741be3..d7343dccbf99 100644 --- a/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/render.rs +++ b/tests/RenderScriptTests/SceneGraph/src/com/android/scenegraph/render.rs @@ -150,7 +150,12 @@ static void sortToBucket(SgDrawable *obj) { } const SgRenderState *renderState = (const SgRenderState *)rsGetElementAt(obj->render_state, 0); if (rsIsObject(renderState->ps)) { - gBackToFront[gBackToFrontCount++] = (uint32_t)obj; + if ((rsgProgramStoreGetBlendSrcFunc(renderState->ps) == RS_BLEND_SRC_ONE) && + (rsgProgramStoreGetBlendDstFunc(renderState->ps) == RS_BLEND_DST_ZERO)) { + gFrontToBack[gFrontToBackCount++] = (uint32_t)obj; + } else { + gBackToFront[gBackToFrontCount++] = (uint32_t)obj; + } } else { gFrontToBack[gFrontToBackCount++] = (uint32_t)obj; } -- cgit v1.2.3-59-g8ed1b