2
使用GL ES 2可以使用Android的Vertex Array Objects ES扩展吗?使用GL ES 2可以使用Android的Vertex Array Objects ES扩展吗?
我期望在名为GLES20Ext
的类中找到VAO函数,就像我可以在GLES10Ext
中找到ES 1扩展一样,但我不能。
是否可以使用Android的Java GL ES 2绑定中的VAO?
如果不是,使用GLES2中最简单的方法是使用NDK桥接扩展调用?这种绑定是否已经存在?
要求ES 3或ES 3支持尚未广泛使用是否可行?
理论上,这应该是可以从NDK(给定Android API级别9 - 2.3+)实现的。问题是EGL的实际Java绑定很糟糕 - 它们隐藏了'eglGetProcAddress(...)'这是暴露任何供应商扩展或任何Android GLES2.0绑定发生的事情所必需的是很多)。你需要做的是在受支持的扩展列表中查找“GL_OES_vertex_array_object”,然后使用NDK获取过程地址......您可以使用Java来调用它,这样做。 –
简单地返回一个函数指针到Java代码并没有让你走得很远 - 你仍然需要编组参数,抛出异常,并完成(自动生成的)函数包装器所做的所有其他工作。动态生成字节码是一种选择,但在Android上并不简单。使用NDK组件支持任意扩展更容易(也可能更高效)。 (如果你知道一个聪明的方法,AOSP总是会欢迎高质量的补丁。) – fadden