1daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich/*
2daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich * Copyright (C) 2009 The Android Open Source Project
3daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich *
4daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich * Licensed under the Apache License, Version 2.0 (the "License");
5daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich * you may not use this file except in compliance with the License.
6daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich * You may obtain a copy of the License at
7daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich *
8daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich *      http://www.apache.org/licenses/LICENSE-2.0
9daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich *
10daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich * Unless required by applicable law or agreed to in writing, software
11daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich * distributed under the License is distributed on an "AS IS" BASIS,
12daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich * See the License for the specific language governing permissions and
14daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich * limitations under the License.
15daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich */
16daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich
17daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevichpackage com.android.test;
18daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich/*
19daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich * Copyright (C) 2008 The Android Open Source Project
20daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich *
21daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich * Licensed under the Apache License, Version 2.0 (the "License");
22daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich * you may not use this file except in compliance with the License.
23daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich * You may obtain a copy of the License at
24daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich *
25daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich *      http://www.apache.org/licenses/LICENSE-2.0
26daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich *
27daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich * Unless required by applicable law or agreed to in writing, software
28daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich * distributed under the License is distributed on an "AS IS" BASIS,
29daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
30daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich * See the License for the specific language governing permissions and
31daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich * limitations under the License.
32daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich */
33daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich
34daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich
35daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevichimport android.content.Context;
36daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevichimport android.opengl.GLSurfaceView;
37daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevichimport android.util.AttributeSet;
38daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevichimport android.util.Log;
39daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevichimport android.view.KeyEvent;
40daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevichimport android.view.MotionEvent;
41daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich
42daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevichimport javax.microedition.khronos.egl.EGL10;
43daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevichimport javax.microedition.khronos.egl.EGLConfig;
44daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevichimport javax.microedition.khronos.opengles.GL10;
45daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich/**
46daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich * An implementation of SurfaceView that uses the dedicated surface for
47daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich * displaying an OpenGL animation.  This allows the animation to run in a
48daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich * separate thread, without requiring that it be driven by the update mechanism
49daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich * of the view hierarchy.
50daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich *
51daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich * The application-specific rendering code is delegated to a GLView.Renderer
52daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich * instance.
53daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich */
54daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevichclass TestView extends GLSurfaceView {
55daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich    TestView(Context context) {
56daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich        super(context);
57daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich        init();
58daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich    }
59daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich
60daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich    public TestView(Context context, AttributeSet attrs) {
61daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich        super(context, attrs);
62daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich        init();
63daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich    }
64daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich
65daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich    private void init() {
66daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich        setRenderer(new Renderer());
67daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich    }
68daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich
69daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich    private class Renderer implements GLSurfaceView.Renderer {
70daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich        private static final String TAG = "Renderer";
71daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich        public void onDrawFrame(GL10 gl) {
72daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich            // Do nothing.
73daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich        }
74daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich
75daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich        public void onSurfaceChanged(GL10 gl, int width, int height) {
76daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich            // Do nothing.
77daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich        }
78daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich
79daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich        public void onSurfaceCreated(GL10 gl, EGLConfig config) {
80daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich            // Do nothing.
81daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich        }
82daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich    }
83daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich}
84daf5537350c10c538d0a38567b5434f5cfb2d378Jack Palevich
85