1c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams/*
2c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams * Copyright (C) 2012 The Android Open Source Project
3c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams *
4c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams * Licensed under the Apache License, Version 2.0 (the "License");
5c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams * you may not use this file except in compliance with the License.
6c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams * You may obtain a copy of the License at
7c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams *
8c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams *      http://www.apache.org/licenses/LICENSE-2.0
9c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams *
10c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams * Unless required by applicable law or agreed to in writing, software
11c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams * distributed under the License is distributed on an "AS IS" BASIS,
12c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams * See the License for the specific language governing permissions and
14c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams * limitations under the License.
15c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams */
16c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams
17c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Samspackage com.example.android.rs.sto;
18c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams
19c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams
20c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Samsimport android.renderscript.RSSurfaceView;
21c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Samsimport android.renderscript.RenderScriptGL;
22c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Samsimport android.content.Context;
23c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Samsimport android.content.res.Resources;
24c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Samsimport android.graphics.SurfaceTexture;
25c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Samsimport android.util.Log;
26c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams
27c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Samspublic class SurfaceTextureOpaqueView extends RSSurfaceView {
28c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams
29c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams    public SurfaceTextureOpaqueView(Context context) {
30c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams        super(context);
31c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams    }
32c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams
33c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams    RenderScriptGL mRS;
34c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams    SurfaceTextureOpaqueRS mRender;
35c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams
36c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams    @Override
37c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams    protected void onAttachedToWindow() {
38c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams        super.onAttachedToWindow();
39c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams    }
40c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams
41c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams    @Override
42c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams    protected void onDetachedFromWindow() {
43c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams        super.onDetachedFromWindow();
44c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams        if (mRS != null) {
45c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams            mRS = null;
46c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams            destroyRenderScriptGL();
47c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams        }
48c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams    }
49c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams
50c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams    SurfaceTexture getST() {
51c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams        RenderScriptGL.SurfaceConfig sc = new RenderScriptGL.SurfaceConfig();
52c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams        mRS = createRenderScriptGL(sc);
53c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams        mRender = new SurfaceTextureOpaqueRS();
54c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams        mRender.init(mRS, getResources());
55c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams        return mRender.getST();
56c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams    }
57c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams
58c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams}
59c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams
60c5f519c5ec57400f04f1d0bdc69f7bfddf47f8cbJason Sams
61