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