全画面表示モードでない場合は、オブジェクトのSize
プロパティを呼び出すだけでウィンドウのサイズを変更できます。GameWindow
あなたはすでにプロパティについて知っていWindowState
ます。
主に行う必要があるのは、クラスのOnResize
メソッドをオーバーライドすることです。GameWindow
これは、フル スクリーン モードへの設定など、ゲーム ウィンドウのサイズが変更されたときに自動的に呼び出されます。そこから、ビューポートを再初期化できます。
たとえば、現在テストしているプロジェクトでは、次のコードは、ウィンドウのサイズを変更したり、フル スクリーン モードから出入りしたりするたびに、ビュー ポートのサイズを正しく変更します。全画面表示モードに移行するときに解像度の切り替えを使用していませんが、それも完全にうまくいくと思います。以下の例yoursizehere
では 640x640 で、GL.Ortho メソッドを使用してスケーリングされ、GameWindow.ClientSize
. (私はOpenTK(およびその点でOpenGL)の初心者なので、まだ自分で学ぶことがたくさんありますが、以下は私にとってはうまくいきます)
protected override void OnResize(EventArgs e)
{
base.OnResize(e);
GL.Viewport(this.ClientRectangle);
GL.MatrixMode(MatrixMode.Projection);
GL.LoadIdentity();
GL.Ortho(0, yoursizehere.Width, yoursizehere.Height, 0, -1, 0);
}
上記の例は、私が現在実験しているものである 2D ビューポート用です... 3 どころか 2 次元で OpenGL の概念を理解するのに十分な問題があります!
お役に立てれば