1package com.android.noisefield;
2
3import android.content.Context;
4import android.renderscript.RSSurfaceView;
5import android.renderscript.RenderScriptGL;
6import android.view.SurfaceHolder;
7
8public class NoiseFieldView extends RSSurfaceView {
9
10    private RenderScriptGL mRS;
11    private NoiseFieldRS mRender;
12
13    public NoiseFieldView(Context context) {
14        super(context);
15        setFocusable(true);
16        setFocusableInTouchMode(true);
17    }
18
19    public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
20        super.surfaceChanged(holder, format, w, h);
21
22        if (mRS == null) {
23            RenderScriptGL.SurfaceConfig sc = new RenderScriptGL.SurfaceConfig();
24            mRS = createRenderScriptGL(sc);
25            mRS.setSurface(holder, w, h);
26
27            mRender = new NoiseFieldRS();
28            mRender.init(240, mRS, getResources(), w, h);
29        }
30    }
31
32    @Override
33    protected void onDetachedFromWindow() {
34        if (mRS != null) {
35            mRS.setSurface(null, 0, 0);
36            mRS = null;
37            destroyRenderScriptGL();
38        }
39    }
40
41}