簡體   English   中英

Android NDK C ++ openGL ES 2上下文顯示不正確

[英]Android NDK C++ openGL ES 2 context gives bad display

我正在嘗試使用C ++中的NDK實現openGL ES 2.0游戲。 我的測試設備是ASUS Zenphone 5,我可以肯定它支持openGL ES 2.0,因為它可以非常流暢地運行來自Play商店的基於openGL ES 2的游戲,還可以運行androind NDK中的helloGl2示例。

當我調用glCreateShader日志貓通過glCreateShader了一個錯誤“未實現的api”,我發現這是因為該應用默認情況下使用的是openGL ES 1上下文。

因此,我從以下位置修改了EGL上下文創建代碼:

context = eglCreateContext(display, config, NULL, NULL);

EGLint contextAttrs[] = {
        EGL_CONTEXT_CLIENT_VERSION,2,EGL_NONE
};

context = eglCreateContext(display, config, NULL, contextAttrs);

現在這給了另一個錯誤

 E/libEGL(12670): validate_display:257 error 3008 (EGL_BAD_DISPLAY)

但是,當我在銀河s3(GT-I9100)上進行測試時,沒有錯誤顯示錯誤,但是應用程序在使用致命信號SIGSEV調用glCreateShader時崩潰

這里發生了什么?

如果要創建ES 2上下文,則還需要在EGL配置的屬性中包括EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BITEGL_CONTEXT_CLIENT_VERSION, 2向上下文屬性添加EGL_CONTEXT_CLIENT_VERSION, 2是不夠的。

另外,請確保您鏈接到libGLESv2.so( -lGLESv2中的LOCAL_LDLIBS ),並確保您沒有偶然地鏈接到libGLESv1_CM.so。 (在相同的過程中使用它們都需要一些額外的技巧。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM