在C线程中使用AndroidBitmap_lockPixels访问AndroidBitmap

时间:2013-03-05 22:29:59

标签: android multithreading bitmap android-ndk

我只是将带有NDK的C图形引擎移植到Android。引擎能够呈现为各种字节顺序的字节缓冲区。问题是如何使用AndroidBitmap_lockPixels调用来组织它。这需要Java env作为第一个参数。所以现在的情况是,现在我的Java线程调用了render函数,但是我的C线程调用了它。所以当我需要渲染到AndroidBitmap缓冲区时,我不在JNI调用中。

我尝试在初始化时提供Java env并保存它,但如果我稍后在JNI调用之外使用AndroidBitmap_lockPixels,则VM崩溃。我可以期待这不起作用。

问题是如何解决这个问题?我的lib是否总是呈现为通用缓冲区,然后通知Java新缓冲区可用,然后在JNI调用中使用AndroidBitmap_lockPixels并复制渲染缓冲区?

有一个例子可以显示这个吗?等离子渲染示例仅在JNI调用中直接渲染图像。这不是我的用例。

作为参考,我的日志输出: http://www.pasteall.org/40245

问候   安德烈亚斯

0 个答案:

没有答案