14fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich/* 24fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich * Copyright (C) 2009 The Android Open Source Project 34fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich * 44fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich * Licensed under the Apache License, Version 2.0 (the "License"); 54fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich * you may not use this file except in compliance with the License. 64fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich * You may obtain a copy of the License at 74fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich * 84fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich * http://www.apache.org/licenses/LICENSE-2.0 94fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich * 104fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich * Unless required by applicable law or agreed to in writing, software 114fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich * distributed under the License is distributed on an "AS IS" BASIS, 124fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 134fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich * See the License for the specific language governing permissions and 144fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich * limitations under the License. 154fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich */ 164fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich 174fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevichpackage com.android.test; 184fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich/* 194fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich * Copyright (C) 2008 The Android Open Source Project 204fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich * 214fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich * Licensed under the Apache License, Version 2.0 (the "License"); 224fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich * you may not use this file except in compliance with the License. 234fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich * You may obtain a copy of the License at 244fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich * 254fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich * http://www.apache.org/licenses/LICENSE-2.0 264fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich * 274fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich * Unless required by applicable law or agreed to in writing, software 284fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich * distributed under the License is distributed on an "AS IS" BASIS, 294fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 304fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich * See the License for the specific language governing permissions and 314fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich * limitations under the License. 324fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich */ 334fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich 344fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich 354fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevichimport android.content.Context; 364fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevichimport android.opengl.GLSurfaceView; 374fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevichimport android.util.AttributeSet; 384fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevichimport android.util.Log; 394fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevichimport android.view.KeyEvent; 404fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevichimport android.view.MotionEvent; 414fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich 424fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevichimport javax.microedition.khronos.egl.EGL10; 434fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevichimport javax.microedition.khronos.egl.EGLConfig; 444fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevichimport javax.microedition.khronos.opengles.GL10; 454fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich/** 464fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich * An implementation of SurfaceView that uses the dedicated surface for 474fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich * displaying an OpenGL animation. This allows the animation to run in a 484fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich * separate thread, without requiring that it be driven by the update mechanism 494fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich * of the view hierarchy. 504fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich * 514fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich * The application-specific rendering code is delegated to a GLView.Renderer 524fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich * instance. 534fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich */ 544fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevichclass TestView extends GLSurfaceView { 554fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich TestView(Context context) { 564fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich super(context); 574fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich init(); 584fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich } 594fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich 604fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich public TestView(Context context, AttributeSet attrs) { 614fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich super(context, attrs); 624fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich init(); 634fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich } 644fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich 654fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich private void init() { 664fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich setRenderer(new Renderer()); 674fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich } 684fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich 694fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich private class Renderer implements GLSurfaceView.Renderer { 704fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich private static final String TAG = "Renderer"; 714fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich public void onDrawFrame(GL10 gl) { 724fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich // Do nothing. 734fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich } 744fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich 754fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich public void onSurfaceChanged(GL10 gl, int width, int height) { 764fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich // Do nothing. 774fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich } 784fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich 794fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich public void onSurfaceCreated(GL10 gl, EGLConfig config) { 804fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich // Do nothing. 814fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich } 824fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich } 834fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich} 844fb265e877b70cf52c3b53f5c33bf6309dca2ee6Jack Palevich 85