diff options
Diffstat (limited to 'src/com/android/noisefield/NoiseFieldView.java')
-rw-r--r-- | src/com/android/noisefield/NoiseFieldView.java | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/com/android/noisefield/NoiseFieldView.java b/src/com/android/noisefield/NoiseFieldView.java new file mode 100644 index 0000000..aa9bf6a --- /dev/null +++ b/src/com/android/noisefield/NoiseFieldView.java @@ -0,0 +1,42 @@ +package com.android.noisefield; + +import android.content.Context; +import android.renderscript.RSSurfaceView; +import android.renderscript.RenderScriptGL; +import android.view.SurfaceHolder; + +public class NoiseFieldView extends RSSurfaceView { + + private RenderScriptGL mRS; + private NoiseFieldRS mRender; + + public NoiseFieldView(Context context) { + super(context); + setFocusable(true); + setFocusableInTouchMode(true); + } + + 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 NoiseFieldRS(); + mRender.init(240, mRS, getResources(), w, h); + } + + } + + @Override + protected void onDetachedFromWindow() { + if (mRS != null) { + mRS.setSurface(null, 0, 0); + mRS = null; + destroyRenderScriptGL(); + } + } + +} |