glGetError()
最初の関数呼び出しでエラーが最初にOpenGLによって報告されるという、バイナリ検索の形式を使用して絞り込むために、条件付き印刷とチェックを挿入するのに長い時間がかかる場合があります。
失敗する可能性のあるすべてのGL呼び出しをラップアラウンドできるマクロを作成する方法があれば、それはクールだと思います。このマクロは、glGetError
直後に条件付きで呼び出されます。特別なターゲット用にコンパイルする場合glGetError
、非常に細かい粒度でチェックすることができますが、通常のリリースまたはデバッグ用にコンパイルすると、これは有効になりません(1フレームに1回だけチェックします)。
これは意味がありますか?これを少し検索すると、glGetError
描画されていないすべてのgl-callの後に呼び出すことを推奨している人が何人かいます。これは、基本的に私が説明していることと同じです。
したがって、この場合、gl呼び出しをこのようにインストルメント化するプロセスを簡素化するために私ができる賢いことはありますか(コンテキスト:GLEWを使用しています)?この時点で、各OpenGL関数呼び出しの周りにマクロをラップするようにコードを変換するのはかなりの量の作業になります。コードのどのセクションをインストルメント化するかを手動で決定せずに、何か賢いことをしてこれらすべてを実行できれば素晴らしいことです(ただし、これにも潜在的な利点があります...しかし実際にはそうではありません。パフォーマンスについては本当に気にしません。エラーの原因をデバッグしているときまでに)。