From 526c4f12577ebf5d20f910f66d092ecef99c590f Mon Sep 17 00:00:00 2001 From: pelya Date: Wed, 2 Jan 2013 17:17:26 +0200 Subject: [PATCH] Futile attempts to make rendering faster --- bugs.txt | 2 -- project/java/GLSurfaceView_SDL.java | 8 +++++++ project/java/MainActivity.java | 37 +++++++++++++++++++++++++++++ 3 files changed, 45 insertions(+), 2 deletions(-) diff --git a/bugs.txt b/bugs.txt index 582a94888..c2b476e7c 100644 --- a/bugs.txt +++ b/bugs.txt @@ -15,8 +15,6 @@ Known bugs - Option SdlVideoResizeKeepAspect has no effect -- GLSurfaceView is buffered, so the input lags - Requested features ================== diff --git a/project/java/GLSurfaceView_SDL.java b/project/java/GLSurfaceView_SDL.java index 3b33429dc..a0c6c4cba 100644 --- a/project/java/GLSurfaceView_SDL.java +++ b/project/java/GLSurfaceView_SDL.java @@ -896,6 +896,14 @@ public class GLSurfaceView_SDL extends SurfaceView implements SurfaceHolder.Call /* * Create an EGL surface we can render into. */ + /* + // This does not have any effect on Galaxy Note + int [] attribList = new int[4]; + attribList[0] = mEgl.EGL_RENDER_BUFFER; + attribList[1] = mEgl.EGL_SINGLE_BUFFER; + attribList[2] = mEgl.EGL_NONE; + attribList[3] = mEgl.EGL_NONE; + */ mEglSurface = mEgl.eglCreateWindowSurface(mEglDisplay, mEglConfig, holder, null); diff --git a/project/java/MainActivity.java b/project/java/MainActivity.java index c355b53fa..5b8702b73 100644 --- a/project/java/MainActivity.java +++ b/project/java/MainActivity.java @@ -294,8 +294,10 @@ public class MainActivity extends Activity _tv = null; _inputManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); _videoLayout = new FrameLayout(this); + SetLayerType.get().setLayerType(_videoLayout); setContentView(_videoLayout); mGLView = new DemoGLSurfaceView(this); + SetLayerType.get().setLayerType(mGLView); _videoLayout.addView(mGLView); mGLView.setFocusableInTouchMode(true); mGLView.setFocusable(true); @@ -1053,3 +1055,38 @@ abstract class DimSystemStatusBar } } } + +abstract class SetLayerType +{ + public static SetLayerType get() + { + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) + return SetLayerTypeHoneycomb.Holder.sInstance; + else + return SetLayerTypeDummy.Holder.sInstance; + } + public abstract void setLayerType(final View view); + + private static class SetLayerTypeHoneycomb extends SetLayerType + { + private static class Holder + { + private static final SetLayerTypeHoneycomb sInstance = new SetLayerTypeHoneycomb(); + } + public void setLayerType(final View view) + { + view.setLayerType(android.view.View.LAYER_TYPE_NONE, null); + //view.setLayerType(android.view.View.LAYER_TYPE_HARDWARE, null); + } + } + private static class SetLayerTypeDummy extends SetLayerType + { + private static class Holder + { + private static final SetLayerTypeDummy sInstance = new SetLayerTypeDummy(); + } + public void setLayerType(final View view) + { + } + } +}