Remove init-time GLES per-frame callback
The GLES renderer interface now allows the per-frame callback to be
registered after initialization. This change updates the emulator to
use the new interface. Since reading back completed frames is slow
(due to pipeline flush/stall), a future change will enable the
callback only while multitouch emulation is actually in use.
Change-Id: I7ad23b4bebe1bd3077863da4d50333cc0578519e
diff --git a/android/opengles.c b/android/opengles.c
index 70e3f8c..6f0556f 100644
--- a/android/opengles.c
+++ b/android/opengles.c
@@ -47,6 +47,7 @@
DYNLINK_FUNC(initLibrary) \
DYNLINK_FUNC(setStreamMode) \
DYNLINK_FUNC(initOpenGLRenderer) \
+ DYNLINK_FUNC(setPostCallback) \
DYNLINK_FUNC(getHardwareStrings) \
DYNLINK_FUNC(createOpenGLSubwindow) \
DYNLINK_FUNC(destroyOpenGLSubwindow) \
@@ -139,20 +140,28 @@
}
int
-android_startOpenglesRenderer(int width, int height, OnPostFunc onPost, void* onPostContext)
+android_startOpenglesRenderer(int width, int height)
{
if (!rendererLib) {
D("Can't start OpenGLES renderer without support libraries");
return -1;
}
- if (!initOpenGLRenderer(width, height, ANDROID_OPENGLES_BASE_PORT, onPost, onPostContext)) {
+ if (!initOpenGLRenderer(width, height, ANDROID_OPENGLES_BASE_PORT)) {
D("Can't start OpenGLES renderer?");
return -1;
}
return 0;
}
+void
+android_setPostCallback(OnPostFunc onPost, void* onPostContext)
+{
+ if (rendererLib) {
+ setPostCallback(onPost, onPostContext);
+ }
+}
+
static void strncpy_safe(char* dst, const char* src, size_t n)
{
strncpy(dst, src, n);