diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/java/android/view/ThreadedRenderer.java | 5 | ||||
-rw-r--r-- | core/jni/android_view_ThreadedRenderer.cpp | 8 |
2 files changed, 11 insertions, 2 deletions
diff --git a/core/java/android/view/ThreadedRenderer.java b/core/java/android/view/ThreadedRenderer.java index 1c20923..1d7e5b2 100644 --- a/core/java/android/view/ThreadedRenderer.java +++ b/core/java/android/view/ThreadedRenderer.java @@ -113,8 +113,8 @@ public class ThreadedRenderer extends HardwareRenderer { @Override boolean safelyRun(Runnable action) { - // TODO: - return false; + nRunWithGlContext(mNativeProxy, action); + return true; } @Override @@ -256,6 +256,7 @@ public class ThreadedRenderer extends HardwareRenderer { private static native void nSetup(long nativeProxy, int width, int height); private static native void nDrawDisplayList(long nativeProxy, long displayList, int dirtyLeft, int dirtyTop, int dirtyRight, int dirtyBottom); + private static native void nRunWithGlContext(long nativeProxy, Runnable runnable); private static native void nDestroyCanvas(long nativeProxy); private static native void nAttachFunctor(long nativeProxy, long functor); diff --git a/core/jni/android_view_ThreadedRenderer.cpp b/core/jni/android_view_ThreadedRenderer.cpp index 8e121de..e86a2d4 100644 --- a/core/jni/android_view_ThreadedRenderer.cpp +++ b/core/jni/android_view_ThreadedRenderer.cpp @@ -131,6 +131,13 @@ static void android_view_ThreadedRenderer_detachFunctor(JNIEnv* env, jobject cla proxy->detachFunctor(functor); } +static void android_view_ThreadedRenderer_runWithGlContext(JNIEnv* env, jobject clazz, + jlong proxyPtr, jobject jrunnable) { + RenderProxy* proxy = reinterpret_cast<RenderProxy*>( proxyPtr); + RenderTask* task = new JavaTask(env, jrunnable); + proxy->runWithGlContext(task); +} + #endif // ---------------------------------------------------------------------------- @@ -151,6 +158,7 @@ static JNINativeMethod gMethods[] = { { "nDestroyCanvas", "(J)V", (void*) android_view_ThreadedRenderer_destroyCanvas}, { "nAttachFunctor", "(JJ)V", (void*) android_view_ThreadedRenderer_attachFunctor}, { "nDetachFunctor", "(JJ)V", (void*) android_view_ThreadedRenderer_detachFunctor}, + { "nRunWithGlContext", "(JLjava/lang/Runnable;)V", (void*) android_view_ThreadedRenderer_runWithGlContext }, #endif }; |