簡體   English   中英

如果不支持EGL_NATIVE_RENDERABLE,如何通過C ++ / NDK訪問OpenGL ES 2?

[英]How to access OpenGL ES 2 via C++/NDK if EGL_NATIVE_RENDERABLE is not supported?

我的應用程序(使用Java引導程序代碼以C ++編寫)在我的Android MID設備上運行完美,但是在朋友的Moto MB865手機上無法正常工作。 在研究了GL上下文創建過程之后,對於所有支持OpenGL ES 2.0的配置,我發現EGL_NATIVE_RENDERABLEGL_FALSE

這意味着我無法使用本機代碼訪問OpenGL ES 2.0。

為什么系統有這個奇怪的限制? 我以為本地代碼可以在此之前訪問所有OpenGL配置。

有什么辦法可以解決此限制? 還是我必須編寫一個委托才能通過JNI訪問EGL2?

EGL_NATIVE_RENDERABLE與NDK無關。

它僅表示本機渲染API繪制緩沖區的功能。

請參閱EGL規范: http : //www.khronos.org/registry/egl/specs/eglspec.1.4.pdf2.2.3 Interaction With Native Rendering2.2.3 Interaction With Native Rendering

像素映射表面將始終支持本地渲染(在本地渲染API可以繪制到本地像素地圖的范圍內)。 當需要混合本機和客戶端API渲染時,通常會使用Pixmap曲面,因為不需要在客戶端API可見的后台緩沖區和本機渲染API可見的本機pixmap之間移動數據。 但是,出於相同的原因,相對於窗口和pbuffer表面,像素圖表面可能具有受限的功能和性能。 pbuffer表面將不支持本機渲染,因為pbuffer的顏色緩沖區由EGL在內部分配,並且無法通過任何其他方式訪問。

問題的原因可能有所不同(不支持GLES 2.0等)。

暫無
暫無

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

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