

Android Lollipop に対応する実装を行っています。

KitKat までは異常無く動作するのですが、 Lollipop でアプリ起動時した場合にクラッシュしてしまいます。

Log を追ってみた所クラッシュは OpenGL 関数内 `glDrawArrays()` 呼び出しで起こっていました。

[code]

    glPushMatrix();
    glLoadIdentity();
    glVertexPointer(3, GL_FLOAT, 0, ver);
    glColorPointer(4, GL_FLOAT, 0, color);
    glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);  // crash
    glPopMatrix();
    
[/code]

を呼び出した時にクラッシュしています。KitKat までになかった WARNING です。

[code]

    WARNING: Couldn't find glCurrentPaletteMatrixOES in procAddrs table
    WARNING: Couldn't find glLoadPaletteFromModelViewMatrixOES in procAddrs table
    WARNING: Couldn't find glMatrixIndexPointerOES in procAddrs table
    WARNING: Couldn't find glWeightPointerOES in procAddrs table
    
[/code]

検索を行った所、他に全く例がありませんでした。

ご存知の方、解決方を教えて頂けないでしょうか。  
よろしくお願いいたします。


CC BY-SA 3.0
2015-01-21T07:15:43.850
4986
2015-10-09T17:19:42.013
2015-01-21T10:06:16.903
4978
7591
question
android opengl-es
Android Lollipop の OpenGL で、 glDrawArrays() 呼び出しがクラッシュする


ソースコードを拝見したところOpenGL ES 1.Xだと思いますが、  
1.XはLollipopだとクラッシュするという報告が多数上がっているようです。  
英語版stackoverflowにも多数質問がありますね…

Androidのバージョンアップで改修されるのを待つか、OpenGL ESの上位のバージョンでプログラムし直すしかないと思います。


CC BY-SA 3.0
2015-08-17T15:34:54.607
14541
2015-08-17T15:34:54.607
8461
4986
answer


glDrawArraysが呼び出された時点で必要なパラメータが初期化されていない可能性があります。  
Warningに記載してある関数が使われている場所の記載がないのでなんとも言えませんが、Matrix関係の値に不正な値が入っているような感じがします。  
該当Extensionをデバイスが正式サポートしているかをもう一度確認したほうが良いと思います。  
また各gl関数がエラーをセットしていないか確認するのも手がかりになると思います。


CC BY-SA 3.0
2015-09-09T16:36:23.170
16452
2015-09-09T16:36:23.170
7566
4986
answer