2010-01-12 80 views
3

我正在開發一個適用於Android的原生應用程序,我正在嘗試使用glIsEnabled之類的函數,這些函數似乎只在OpenGL ES 1.1中可用。谷歌的文檔聲稱,NDK 1.6R1支持OpenGL ES v1.1,但函數調用失敗,並且「未實現的Open GL ES API」,如果我做了glGetString(GL_VERSION),它將返回「OpenGL ES 1.0 CM」作爲版本。Android是否運行OpenGL ES 1.1或1.0?

所以,如果1.1是可用的,我有什麼要鏈接得到它或我需要改變什麼來得到它?

回答

4

Android的文檔說(3D with OpenGL):

最後,需要注意的是,雖然Android爲包括支持OpenGL ES 1.1的一些基本支持,支持沒有完成,並且不應該在這個被依賴時間。

我猜測這與NDK是一樣的。

11

如果你想在所有的Android設備上運行,你不能指望高於OpenGL ES 1.0的任何東西。但是,如果你絕對需要一些OpenGL ES 1.1方法,你可以在你的清單文件中定義一個minGLVersion,它會阻止人們將它下載到不受支持的設備上。這看起來是這樣的:

// the high 16 bit define the Major Version, 
// the low 16 bits define the Minor Version, 
// so this is OpenGL ES 1.1 
<uses-feature android:glEsVersion="0x00010001" /> 
1

如果,使用T NDK創建一個使用OpenGL ES API的本機庫,包含庫的應用程序只能部署到運行在如下表所述平臺的最低版本的設備。

OpenGL ES版本兼容的Android平臺(一個或多個)必需使用-SDK屬性 的OpenGL ES 1.1 Android 1.6及更高機器人:的minSdkVersion = 「4」 的OpenGL ES 2.0的Android 2.0以及更高機器人:的minSdkVersion = 「5」