aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Wright <michaelwr@google.com>2012-06-27 15:16:53 -0700
committerMichael Wright <michaelwr@google.com>2012-07-11 10:33:02 -0700
commit6aa45b21c241f88ee1ca42d39109d4b949fa83e6 (patch)
tree845da26338fd6a32aac77005196c41d5e6cd0b6c
parent2736114dc80ec26f3fc77328d7d594c67627b8eb (diff)
downloadsdk-6aa45b21c241f88ee1ca42d39109d4b949fa83e6.zip
sdk-6aa45b21c241f88ee1ca42d39109d4b949fa83e6.tar.gz
sdk-6aa45b21c241f88ee1ca42d39109d4b949fa83e6.tar.bz2
Updated DeviceConfig to write out more OpenGL information
Change-Id: I045a2d8c9fabc1a3c0f818e9858cc3e10c8a883a
-rw-r--r--apps/DeviceConfig/src/com/example/android/deviceconfig/ConfigGenerator.java64
-rw-r--r--apps/DeviceConfig/src/com/example/android/deviceconfig/MyActivity.java61
2 files changed, 99 insertions, 26 deletions
diff --git a/apps/DeviceConfig/src/com/example/android/deviceconfig/ConfigGenerator.java b/apps/DeviceConfig/src/com/example/android/deviceconfig/ConfigGenerator.java
index 0bfe5d0..e8d6333 100644
--- a/apps/DeviceConfig/src/com/example/android/deviceconfig/ConfigGenerator.java
+++ b/apps/DeviceConfig/src/com/example/android/deviceconfig/ConfigGenerator.java
@@ -16,6 +16,27 @@
package com.example.android.deviceconfig;
+import android.annotation.SuppressLint;
+import android.annotation.TargetApi;
+import android.content.Context;
+import android.content.pm.FeatureInfo;
+import android.content.pm.PackageManager;
+import android.content.res.Configuration;
+import android.content.res.Resources;
+import android.hardware.Camera;
+import android.hardware.Camera.CameraInfo;
+import android.os.Build;
+import android.os.Environment;
+import android.os.StatFs;
+import android.util.DisplayMetrics;
+import android.util.Log;
+import android.view.ViewConfiguration;
+import android.widget.Toast;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Text;
+
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
@@ -38,26 +59,9 @@ import javax.xml.transform.TransformerFactoryConfigurationError;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Text;
-
-import android.annotation.SuppressLint;
-import android.annotation.TargetApi;
-import android.content.Context;
-import android.content.pm.PackageManager;
-import android.content.res.Configuration;
-import android.content.res.Resources;
-import android.hardware.Camera;
-import android.hardware.Camera.CameraInfo;
-import android.os.Environment;
-import android.os.StatFs;
-import android.util.DisplayMetrics;
-import android.util.Log;
-import android.widget.Toast;
-
public class ConfigGenerator {
private Context mCtx;
+ private String mExtensions;
public static final String NS_DEVICES_XSD = "http://schemas.android.com/sdk/devices/1";
@@ -151,8 +155,9 @@ public class ConfigGenerator {
private static final String TAG = "ConfigGenerator";
- public ConfigGenerator(Context ctx) {
- mCtx = ctx;
+ public ConfigGenerator(Context context, String extensions) {
+ mCtx = context;
+ mExtensions = extensions;
}
@SuppressLint("WorldReadableFiles")
@@ -547,14 +552,29 @@ public class ConfigGenerator {
Element glVersion = doc.createElement(PREFIX + NODE_GL_VERSION);
software.appendChild(glVersion);
- glVersion.appendChild(doc.createTextNode(" "));
+ String glVersionString = " ";
+
+ FeatureInfo[] features = packageMgr.getSystemAvailableFeatures();
+ for (FeatureInfo feature : features) {
+ if (feature.reqGlEsVersion > 0) {
+ glVersionString = feature.getGlEsVersion();
+ break;
+ }
+ }
+
+ glVersion.appendChild(doc.createTextNode(glVersionString));
Element glExtensions = doc.createElement(PREFIX + NODE_GL_EXTENSIONS);
software.appendChild(glExtensions);
- glExtensions.appendChild(doc.createTextNode(" "));
+ if (mExtensions != null && !mExtensions.trim().equals("")) {
+ glExtensions.appendChild(doc.createTextNode(mExtensions));
+ } else {
+ glExtensions.appendChild(doc.createTextNode(" "));
+ }
Transformer tf = TransformerFactory.newInstance().newTransformer();
tf.setOutputProperty(OutputKeys.INDENT, "yes");
+ tf.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
DOMSource source = new DOMSource(doc);
String filename = String.format("devices_%1$tm_%1$td_%1$ty.xml", Calendar.getInstance()
.getTime());
diff --git a/apps/DeviceConfig/src/com/example/android/deviceconfig/MyActivity.java b/apps/DeviceConfig/src/com/example/android/deviceconfig/MyActivity.java
index 837d072..38a78cd 100644
--- a/apps/DeviceConfig/src/com/example/android/deviceconfig/MyActivity.java
+++ b/apps/DeviceConfig/src/com/example/android/deviceconfig/MyActivity.java
@@ -16,27 +16,44 @@
package com.example.android.deviceconfig;
-import java.io.File;
-
import android.app.Activity;
+import android.content.Context;
import android.content.Intent;
import android.content.res.Configuration;
import android.net.Uri;
+import android.opengl.GLSurfaceView;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.View;
import android.view.View.OnClickListener;
+import android.view.ViewGroup;
import android.widget.Button;
+import android.widget.LinearLayout;
import android.widget.TextView;
-import com.example.android.deviceconfig.R;
+
+import java.io.File;
+
+import javax.microedition.khronos.egl.EGLConfig;
+import javax.microedition.khronos.opengles.GL10;
public class MyActivity extends Activity implements OnClickListener {
+ public static final String TAG = "DeviceConfig";
+ private static GLView mGl;
+
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+
setContentView(R.layout.main);
+ // Instantiate a GL surface view so we can get extensions information
+ mGl = new GLView(this);
+ LinearLayout vg = (LinearLayout) findViewById(R.id.buttonHolder);
+ // If we set the layout to be 0, it just won't render
+ ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(1, 1);
+ mGl.setLayoutParams(params);
+ vg.addView(mGl);
Button btn = (Button) findViewById(R.id.generateConfigButton);
btn.setOnClickListener(this);
@@ -114,7 +131,7 @@ public class MyActivity extends Activity implements OnClickListener {
}
public void onClick(View v) {
- ConfigGenerator configGen = new ConfigGenerator(this);
+ ConfigGenerator configGen = new ConfigGenerator(this, mGl.getExtensions());
final String filename = configGen.generateConfig();
if (filename != null) {
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
@@ -130,4 +147,40 @@ public class MyActivity extends Activity implements OnClickListener {
}
}
+ private static class GLView extends GLSurfaceView {
+ private GlRenderer mRenderer;
+
+ public GLView(Context context) {
+ super(context);
+ setEGLContextClientVersion(2);
+ mRenderer = new GlRenderer();
+ setRenderer(mRenderer);
+ requestRender();
+ }
+
+ public String getExtensions() {
+ return mRenderer.extensions;
+ }
+
+ }
+
+ private static class GlRenderer implements GLSurfaceView.Renderer {
+ public String extensions = "";
+
+ public void onDrawFrame(GL10 gl) {
+ }
+
+ public void onSurfaceChanged(GL10 gl, int width, int height) {
+ gl.glViewport(0, 0, 0, 0);
+ }
+
+ public void onSurfaceCreated(GL10 gl, EGLConfig config) {
+ if (extensions.equals("")) {
+ String extensions10 = gl.glGetString(GL10.GL_EXTENSIONS);
+ if(extensions10 != null) {
+ extensions += extensions10;
+ }
+ }
+ }
+ }
}