>>201
シェーダ書きました。
まだまだ改良の余地はありますが、単体テストではいい感じになりました。
教えて頂いて感謝です。

次に共存・共生についてですが
実はこのレンダリングを行う関数はDLL内部にあります。
DLLの初期化時にシェーダプログラムを作成し、親玉のレンダリング処理の一貫として
DLL内のレンダリング関数が呼び出される造りです。

単体テストで「親玉」に相当するものはシェーダなど全く使っていないため
いい感じで動作しました。
ところが「本物の親玉」では既にシェーダを使っていることが分かりました。

glUseProgram() でシェーダを切り替える必要があるのですが
DLL内のレンダリング関数が終了する直前に親玉のシェーダに戻したい場合
どうすればいいか悩んでいます。
(DLLのレンダリング関数を呼び出すときにIDも一緒に渡しておく... ちょ、I/F変更??)


そこで質問です。
その時点で使用されているシェーダのIDを取得する関数はありますか?
例) GLuint program = glNowUsingThisProgram(void);

よろしくお願いします