Write test timings to /sdcard/glperf.csv

Change-Id: If09e209a9d8049f03320dbd7df257137bf06949e
diff --git a/opengl/tests/gl_perfapp/AndroidManifest.xml b/opengl/tests/gl_perfapp/AndroidManifest.xml
index df50b99..305d95f 100644
--- a/opengl/tests/gl_perfapp/AndroidManifest.xml
+++ b/opengl/tests/gl_perfapp/AndroidManifest.xml
@@ -19,8 +19,10 @@
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.android.glperf">
+    package="com.android.glperf"
+    android:versionName="1.0.0" android:versionCode="10000" >
     <uses-sdk android:targetSdkVersion="7" android:minSdkVersion="7" />
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
     <application
             android:label="@string/glperf_activity">
         <activity android:name="GLPerfActivity"
diff --git a/opengl/tests/gl_perfapp/jni/gl_code.cpp b/opengl/tests/gl_perfapp/jni/gl_code.cpp
index 2ee25a2..13b90bb 100644
--- a/opengl/tests/gl_perfapp/jni/gl_code.cpp
+++ b/opengl/tests/gl_perfapp/jni/gl_code.cpp
@@ -13,6 +13,8 @@
 #include <stdlib.h>
 #include <math.h>
 
+FILE * out;
+
 static void printGLString(const char *name, GLenum s) {
     const char *v = (const char *) glGetString(s);
     LOGI("GL %s = %s\n", name, v);
@@ -122,6 +124,7 @@
     double dc60 = pixels / delta / (w * h) / 60;
 
     LOGI("%s, %f, %f\n", str, mpps, dc60);
+    if (out) fprintf(out, "%s, %f, %f\r\n", str, mpps, dc60);
 }
 
 static const char gVertexShader[] =
@@ -247,7 +250,7 @@
 
 //////////////////////////
 
-// Tells us what to draw next
+// Width and height of the screen
 
 uint32_t w;
 uint32_t h;
@@ -259,6 +262,8 @@
 const int doSingleTestStates = 2;
 bool done;
 
+// Saves the parameters of the test (so we can print them out when we finish the timing.)
+
 char saveBuf[1024];
 
 static void doLoop(uint32_t w, uint32_t h, const char *str) {
@@ -386,8 +391,13 @@
        testSubState = testState % 8;
     }
     if (texCount >= 3) {
-       // LOGI("done\n");
+       LOGI("done\n");
+       if (out) {
+           fclose(out);
+           out = NULL;
+       }
        done = true;
+       exit(0);
        return;
     }
 
@@ -436,8 +446,15 @@
     done = false;
     setupVA();
     genTextures();
+    const char* fileName = "/sdcard/glperf.csv";
+    LOGI("Writing to: %s\n",fileName);
+    out = fopen(fileName, "w");
+    if (out == NULL) {
+        LOGE("Could not open: %s\n", fileName);
+    }
 
     LOGI("\nvarColor, texCount, modulate, extraMath, texSize, blend, Mpps, DC60\n");
+    if (out) fprintf(out,"\nvarColor, texCount, modulate, extraMath, texSize, blend, Mpps, DC60\r\n");
 }
 
 JNIEXPORT void JNICALL Java_com_android_glperf_GLPerfLib_step(JNIEnv * env, jobject obj)