glutReshapeFuncはカレントウィンドウに対し, リシェイプ・コールバックを指定します.
Usage
void glutReshapeFunc(void (*func)(int width, int height));
Description
glutReshapeFuncは カレントウィンドウに対するリシェイプ・コールバック関数を指定する. リシェイプ・コールバック関数はウィンドウが変形した際にコールされる. また,ウィンドウが生成された直後の,最初のディスプレイ・コールバックが コールされる直前や, そのウィンドウへのオーバーレイが設定された時はいつでもコールされる. コールバックの引数widthとheightは新しいウィンドウのサイズ (ピクセル値)である.コールバックの前に, カレントウィンドウはリシェイプされたウィンドウにセットされる.
ウィンドウに対してリシェイプ・コールバック関数が登録されていないか, あるいは(直前に登録されたコールバックを登録削除するために) 引数NULLがglutReshapeFuncに渡された場合は, デフォルトのリシェイプ・コールバックが用いられる. デフォルトのコールバックは,ノーマルプレーン上で (オーバーレイがあれば,オーバーレイでも)単に glViewport(0,0,width,height)をコールする.
ウィンドウに対し,オーバーレイが設定されているときは 単一のリシェイプ・コールバックが生成される. (必要に応じて 使用中のレイヤーを変更しながら) ウィンドウのノーマル(プレーン),オーバーレイをアップデートするのは コールバックの責任である.
トップレベル・ウィンドウがリシェイプされた時は サブウィンドウはリシェイプされない. GLUT プログラムで扱えるのは,トップレベル・ウィンドウ内での サブウィンドウのサイズと位置までである. なお,リシェイプ・コールバックはサブウィンドウに対しても, glutReshapeWindowを用いてサイズが変更された場合にコールされる.