C++Builderでのコンポーネント作りの合間に、MDI子フォームの上でGLUTを使う方法を見つけた。

http://bdn.borland.com/article/0,1410,10528,00.html

リンク先のサンプルソースには一箇所間違いがある。

s/ReleaseDC(hdc)/ReleaseDC(Handle, hdc)

あとMDIでは、フォームを閉じた時に再描画を停止するために、TForm1::FormDestroyなどで

Application->OnIdle = NULL; 

しておくのがよさそうだ。

ためしに簡単な2Dイメージを描かせてみたところ問題なく動作した。
ただし、複数の子フォームを生成すると挙動がおかしくなる。ひとつの子フォームの描画が、別のフォームに影響してしまう。GLUT内部のグローバルデータが子フォーム間で共有されているのかもしれない。
ともかくフォームの個数を1個に制限すれば使えそうだということは分かった。