最近、私の進行中のゲーム エンジンが、可能であってはならない場所で OpenGL エラーをスローし始めました。いくつかのフレームをレンダリングした後、突然 glColor からエラーが発生し始めました。
print(gl.GetError()) --> nil
gl.Color(1, 1, 1, 1)
print(gl.GetError()) --> INVALID_OPERATION
ここで glColor を呼び出さないと、後で glMatrixMode から無効な操作エラーが発生します。
GL マニュアルによると、glColor は決してエラーを発生させるべきではなく、glBegin と glEnd の間にある場合にのみ glMatrixMode を発生させるべきであり、私が確認した場合はそうではありません。私が認識していない、これらの関数がエラーを発生させる可能性がある他の理由はありますか? おそらく render-to-texture/renderbuffer 拡張機能に関連していますか? 私は狂ったようにデバッグしてきましたが、そのような失敗の原因となるものは何も見つかりません。プログラム全体が大きすぎて複雑すぎて、ここに投稿することはできません。OpenGL API と SDL の薄いラッパーである luagl を使用しています。報告されているバージョンは次のとおりです: 2.1 Mesa 7.10.2