setEGLConfigChooser後導致EGL_BAD_MATCH

應用裏用到了opengl。

爲了適配某個聯想的機子,修改了setEGLConfigChooser。但是其他的機型卻因此導致應用崩潰。報錯EGL_BAD_MATCH。

google一把發現這裏說明了原因。大概意思是,holder.setFormat()的參數需要與setEGLConfigChooser的參數相匹配,否則就會失敗。

雖然android提供了PixelFormat.TRANSLUCENT這個值來爲setFormat()自動匹配合適參數,但是,看來在聯想的那個特殊機型下,這個值匹配失敗了。

所以,必須手動設置與setEGLConfigChooser想匹配的值。測試可行的匹配:

1、

setEGLConfigChooser(5, 6, 5, 0, 16, 0);

holder.setFormat(PixelFormat.RGB_565);

2、

setEGLConfigChooser(8, 8, 8, 8, 16, 0);

holder.setFormat(PixelFormat.RGB_8888);


順帶一提,這個不能適配的手機,是用軟方法實現opengles的,可能android因此沒有能通過PixelFormat.TRANSLUCENT正確匹配參數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章