Loading opengl/tests/testFramerate/Android.mk 0 → 100644 +19 −0 Original line number Diff line number Diff line ######################################################################### # Test framerate and look for hiccups ######################################################################### TOP_LOCAL_PATH:= $(call my-dir) # Build activity LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE_TAGS := optional LOCAL_SRC_FILES := $(call all-subdir-java-files) LOCAL_PACKAGE_NAME := TestFramerate include $(BUILD_PACKAGE) opengl/tests/testFramerate/AndroidManifest.xml 0 → 100644 +37 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- /* ** ** Copyright 2009, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. ** You may obtain a copy of the License at ** ** http://www.apache.org/licenses/LICENSE-2.0 ** ** Unless required by applicable law or agreed to in writing, software ** distributed under the License is distributed on an "AS IS" BASIS, ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ** See the License for the specific language governing permissions and ** limitations under the License. */ --> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.testframerate"> <uses-sdk android:targetSdkVersion="8" android:minSdkVersion="8" /> <application android:label="@string/testFramerate_activity"> <activity android:name="TestFramerateActivity" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:launchMode="singleTask" android:configChanges="orientation|keyboardHidden"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> opengl/tests/testFramerate/res/values/strings.xml 0 → 100644 +29 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- /* ** ** Copyright 2006, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. ** You may obtain a copy of the License at ** ** http://www.apache.org/licenses/LICENSE-2.0 ** ** Unless required by applicable law or agreed to in writing, software ** distributed under the License is distributed on an "AS IS" BASIS, ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ** See the License for the specific language governing permissions and ** limitations under the License. */ --> <!-- This file contains resource definitions for displayed strings, allowing them to be changed based on the locale and options. --> <resources> <!-- Simple strings. --> <string name="testFramerate_activity">TestFramerate</string> </resources> opengl/tests/testFramerate/src/com/android/testframerate/TestFramerateActivity.java 0 → 100644 +47 −0 Original line number Diff line number Diff line /* * Copyright (C) 2007 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.testframerate; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.WindowManager; import java.io.File; public class TestFramerateActivity extends Activity { TestFramerateView mView; @Override protected void onCreate(Bundle icicle) { super.onCreate(icicle); mView = new TestFramerateView(getApplication()); setContentView(mView); mView.setFocusableInTouchMode(true); } @Override protected void onPause() { super.onPause(); mView.onPause(); } @Override protected void onResume() { super.onResume(); mView.onResume(); } } opengl/tests/testFramerate/src/com/android/testframerate/TestFramerateView.java 0 → 100644 +91 −0 Original line number Diff line number Diff line /* * Copyright (C) 2009 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.testframerate; import android.content.Context; import android.opengl.GLSurfaceView; import android.os.SystemProperties; import android.util.AttributeSet; import android.util.Log; import android.view.KeyEvent; import android.view.MotionEvent; import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.nio.FloatBuffer; import javax.microedition.khronos.egl.EGL10; import javax.microedition.khronos.egl.EGLConfig; import javax.microedition.khronos.egl.EGLContext; import javax.microedition.khronos.egl.EGLDisplay; import javax.microedition.khronos.opengles.GL10; import android.opengl.GLES20; class TestFramerateView extends GLSurfaceView { private static String TAG = "TestFramerateView"; public TestFramerateView(Context context) { super(context); setEGLContextClientVersion(2); setRenderer(new Renderer()); } private long mLastTime_us = 0; private long mNumShortFramesElapsed = 0; private void registerTime(long now_us) { long longFrameTime_ms = Integer.parseInt(SystemProperties.get("debug.longframe_ms", "16")); long elapsedTime_us = now_us - mLastTime_us; float fps = 1000000.f / elapsedTime_us; if (mLastTime_us > 0 && elapsedTime_us > longFrameTime_ms*1000) { Log.v(TAG, "Long frame: " + elapsedTime_us/1000.f + " ms (" + fps + " fps)"); if (mNumShortFramesElapsed > 0) { Log.v(TAG, " Short frames since last long frame: " + mNumShortFramesElapsed); mNumShortFramesElapsed = 0; } } else { ++mNumShortFramesElapsed; } mLastTime_us = now_us; } private class Renderer implements GLSurfaceView.Renderer { public Renderer() { } public void onDrawFrame(GL10 gl) { long now_us = System.nanoTime() / 1000; registerTime(now_us); float red = (now_us % 1000000) / 1000000.f; float green = (now_us % 2000000) / 2000000.f; float blue = (now_us % 3000000) / 3000000.f; GLES20.glClearColor(red, green, blue, 1.0f); GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT); } public void onSurfaceChanged(GL10 gl, int width, int height) { GLES20.glViewport(0, 0, width, height); } public void onSurfaceCreated(GL10 gl, EGLConfig config) { } } } Loading
opengl/tests/testFramerate/Android.mk 0 → 100644 +19 −0 Original line number Diff line number Diff line ######################################################################### # Test framerate and look for hiccups ######################################################################### TOP_LOCAL_PATH:= $(call my-dir) # Build activity LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE_TAGS := optional LOCAL_SRC_FILES := $(call all-subdir-java-files) LOCAL_PACKAGE_NAME := TestFramerate include $(BUILD_PACKAGE)
opengl/tests/testFramerate/AndroidManifest.xml 0 → 100644 +37 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- /* ** ** Copyright 2009, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. ** You may obtain a copy of the License at ** ** http://www.apache.org/licenses/LICENSE-2.0 ** ** Unless required by applicable law or agreed to in writing, software ** distributed under the License is distributed on an "AS IS" BASIS, ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ** See the License for the specific language governing permissions and ** limitations under the License. */ --> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.testframerate"> <uses-sdk android:targetSdkVersion="8" android:minSdkVersion="8" /> <application android:label="@string/testFramerate_activity"> <activity android:name="TestFramerateActivity" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:launchMode="singleTask" android:configChanges="orientation|keyboardHidden"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
opengl/tests/testFramerate/res/values/strings.xml 0 → 100644 +29 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- /* ** ** Copyright 2006, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. ** You may obtain a copy of the License at ** ** http://www.apache.org/licenses/LICENSE-2.0 ** ** Unless required by applicable law or agreed to in writing, software ** distributed under the License is distributed on an "AS IS" BASIS, ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ** See the License for the specific language governing permissions and ** limitations under the License. */ --> <!-- This file contains resource definitions for displayed strings, allowing them to be changed based on the locale and options. --> <resources> <!-- Simple strings. --> <string name="testFramerate_activity">TestFramerate</string> </resources>
opengl/tests/testFramerate/src/com/android/testframerate/TestFramerateActivity.java 0 → 100644 +47 −0 Original line number Diff line number Diff line /* * Copyright (C) 2007 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.testframerate; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.WindowManager; import java.io.File; public class TestFramerateActivity extends Activity { TestFramerateView mView; @Override protected void onCreate(Bundle icicle) { super.onCreate(icicle); mView = new TestFramerateView(getApplication()); setContentView(mView); mView.setFocusableInTouchMode(true); } @Override protected void onPause() { super.onPause(); mView.onPause(); } @Override protected void onResume() { super.onResume(); mView.onResume(); } }
opengl/tests/testFramerate/src/com/android/testframerate/TestFramerateView.java 0 → 100644 +91 −0 Original line number Diff line number Diff line /* * Copyright (C) 2009 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.testframerate; import android.content.Context; import android.opengl.GLSurfaceView; import android.os.SystemProperties; import android.util.AttributeSet; import android.util.Log; import android.view.KeyEvent; import android.view.MotionEvent; import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.nio.FloatBuffer; import javax.microedition.khronos.egl.EGL10; import javax.microedition.khronos.egl.EGLConfig; import javax.microedition.khronos.egl.EGLContext; import javax.microedition.khronos.egl.EGLDisplay; import javax.microedition.khronos.opengles.GL10; import android.opengl.GLES20; class TestFramerateView extends GLSurfaceView { private static String TAG = "TestFramerateView"; public TestFramerateView(Context context) { super(context); setEGLContextClientVersion(2); setRenderer(new Renderer()); } private long mLastTime_us = 0; private long mNumShortFramesElapsed = 0; private void registerTime(long now_us) { long longFrameTime_ms = Integer.parseInt(SystemProperties.get("debug.longframe_ms", "16")); long elapsedTime_us = now_us - mLastTime_us; float fps = 1000000.f / elapsedTime_us; if (mLastTime_us > 0 && elapsedTime_us > longFrameTime_ms*1000) { Log.v(TAG, "Long frame: " + elapsedTime_us/1000.f + " ms (" + fps + " fps)"); if (mNumShortFramesElapsed > 0) { Log.v(TAG, " Short frames since last long frame: " + mNumShortFramesElapsed); mNumShortFramesElapsed = 0; } } else { ++mNumShortFramesElapsed; } mLastTime_us = now_us; } private class Renderer implements GLSurfaceView.Renderer { public Renderer() { } public void onDrawFrame(GL10 gl) { long now_us = System.nanoTime() / 1000; registerTime(now_us); float red = (now_us % 1000000) / 1000000.f; float green = (now_us % 2000000) / 2000000.f; float blue = (now_us % 3000000) / 3000000.f; GLES20.glClearColor(red, green, blue, 1.0f); GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT); } public void onSurfaceChanged(GL10 gl, int width, int height) { GLES20.glViewport(0, 0, width, height); } public void onSurfaceCreated(GL10 gl, EGLConfig config) { } } }