• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2010 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package android.view.cts;
18 
19 import android.app.Activity;
20 import android.opengl.GLSurfaceView;
21 import android.os.Bundle;
22 import android.view.Window;
23 
24 import javax.microedition.khronos.egl.EGLConfig;
25 import javax.microedition.khronos.opengles.GL10;
26 
27 /**
28  * A minimal activity for testing {@link android.opengl.GLSurfaceView}.
29  * Also accepts non-blank renderers to allow its use for more complex tests.
30  */
31 public class GLSurfaceViewCtsActivity extends Activity {
32 
33     private static class Renderer implements GLSurfaceView.Renderer {
34 
onDrawFrame(GL10 gl)35         public void onDrawFrame(GL10 gl) {
36             // Do nothing.
37         }
38 
onSurfaceChanged(GL10 gl, int width, int height)39         public void onSurfaceChanged(GL10 gl, int width, int height) {
40             // Do nothing.
41         }
42 
onSurfaceCreated(GL10 gl, EGLConfig config)43         public void onSurfaceCreated(GL10 gl, EGLConfig config) {
44             // Do nothing.
45         }
46     }
47 
48     private GLSurfaceView mView;
49 
50     /** To override the blank renderer, or other settings, these
51      * static set* methods must be called before onCreate() is called.
52      * If using ActivityInstrumentationTestCase2, that means the set
53      * methods need to be called before calling getActivity in the
54      * test setUp().
55      */
56     private static GLSurfaceView.Renderer mRenderer = null;
setRenderer(GLSurfaceView.Renderer renderer)57     public static void setRenderer(GLSurfaceView.Renderer renderer) {
58         mRenderer = renderer;
59     }
resetRenderer()60     public static void resetRenderer() {
61         mRenderer = null;
62     }
63 
64     private static int mRenderMode = 0;
65     private static boolean mRenderModeSet = false;
setRenderMode(int renderMode)66     public static void setRenderMode(int renderMode) {
67         mRenderModeSet = true;
68         mRenderMode = renderMode;
69     }
resetRenderMode()70     public static void resetRenderMode() {
71         mRenderModeSet = false;
72         mRenderMode = 0;
73     }
74 
75     private static int mGlVersion = 0;
76     private static boolean mGlVersionSet = false;
setGlVersion(int glVersion)77     public static void setGlVersion(int glVersion) {
78         mGlVersionSet = true;
79         mGlVersion = glVersion;
80     }
resetGlVersion()81     public static void resetGlVersion() {
82         mGlVersionSet = false;
83         mGlVersion = 0;
84     }
85 
86     private static boolean mFixedSizeSet = false;
87     private static int mFixedWidth, mFixedHeight;
setFixedSize(int width, int height)88     public static void setFixedSize(int width, int height) {
89         mFixedSizeSet = true;
90         mFixedWidth = width;
91         mFixedHeight = height;
92     }
resetFixedSize()93     public static void resetFixedSize() {
94         mFixedSizeSet = false;
95     }
96 
97     @Override
onCreate(Bundle savedInstanceState)98     public void onCreate(Bundle savedInstanceState) {
99         super.onCreate(savedInstanceState);
100         mView = new GLSurfaceView(this);
101         // Only set this if explicitly asked for
102         if (mGlVersionSet) {
103             mView.setEGLContextClientVersion(mGlVersion);
104         }
105         // Use no-op renderer by default
106         if (mRenderer == null) {
107             mView.setRenderer(new Renderer());
108         } else {
109             mView.setRenderer(mRenderer);
110         }
111         // Only set this if explicitly asked for
112         if (mRenderModeSet) {
113             mView.setRenderMode(mRenderMode);
114         }
115         if (mFixedSizeSet) {
116             mView.getHolder().setFixedSize(mFixedWidth, mFixedHeight);
117         }
118         this.requestWindowFeature(Window.FEATURE_NO_TITLE);
119         setContentView(mView);
120     }
121 
getView()122     public GLSurfaceView getView() {
123         return mView;
124     }
125 
126     @Override
onResume()127     protected void onResume() {
128         super.onResume();
129         mView.onResume();
130     }
131 
132     @Override
onPause()133     protected void onPause() {
134         super.onPause();
135         mView.onPause();
136     }
137 }
138