1

私は現在OpenGLレンダラーを作成しており、ドロップダウンリストで使用するディスプレイアダプター、デバイス、およびモードを列挙するためのクラスの作成を途中で行っています。

EnumDisplayDevicesを使用してアダプターを取得し、次に各デバイスのEnumDisplaySettingsを使用して、bpp、幅、高さ、およびリフレッシュレートを取得しています。ただし、フルスクリーンで使用できるモードを確認する方法がわかりません(DEVMODE構造体にフラグが表示されていないようです)。リストされているすべてのモードは、原則としてフルスクリーンでインスタンス化できると想定できますか?

フォローアップの質問として、デバイス列挙へのこのアプローチは、一般的にWindowsで必要な情報を取得するための最良の方法ですか?

4

3 に答える 3

2

OpenGLには、ウィンドウモードとフルスクリーンモードのこの区別はありません。OpenGLプログラムをフルスクリーンにしたい場合は、ウィンドウをトップレベル、フチなし、装飾なしに設定し、トップと最大サイズを維持します。

于 2010-12-18T10:50:56.617 に答える
1

上記は実際にはばかげた質問です。定義上、ウィンドウモードは現在の表示設定である必要があります。他のすべてのモードはフルスクリーンで使用できる必要があります(OSがそれらをサポートしている場合、つまりVista / 7では640x480はお勧めできません)。

于 2010-12-17T21:11:20.740 に答える
1

うーん、まったく正しくない、そして態度も。さまざまな機能を利用できます。

SetPixelFormat、ChoosePixelFormat、ChangeDisplaySettings。

PixelFormat関数を使用すると、列挙子で使用可能なモードを使用できます。ChangeDisplaySettingsを使用すると、アプリで必要な画面モード(ビット深度を含む)を設定できます。それらをMSDNで調べてください。

于 2010-12-19T23:15:44.810 に答える