4

私の C# OpenTK スクリーンセーバー アプリケーションには非常に奇妙な問題があります。拡張子を変更する前にプログラムをコンパイルして実行すると、EXEファイルとして正常に動作します。しかし、拡張子を SCR に変更して実行すると、System.EntryPointNotFound 例外 (この場合は glCreateProgram 関数) でクラッシュします。デバッガーで、実行時に次のことを確認しました。

EXE ファイルとして: GL.GetString(StringName.Vendor) -> "Intel" GL.GetString(StringName.Version) -> "2.1.0 - Build 8.15.10.2622"

SCR ファイルとして: GL.GetString(StringName.Vendor) -> "Microsoft" GL.GetString(StringName.Version) -> "1.1.0"

私のアプリケーションでは、GameWindow クラスのパラメーターなしのコンストラクターを使用して OpenGL コンテキストを作成しています。ちょっとした実験で、拡張機能を BAT に変更したところ、完全にうまく動作しました。私の OpenGL コンテキストがファイル拡張子に依存する理由がわかりません。スクリーンセーバーは何らかのオーバーレイでシステムによって実行されると推測していますが、本当にこの問題の解決策を見つけることができませんでした。

何か案は?

4

1 に答える 1

1

最後に、長い間検索した結果、Intel が OpenGL を使用するスクリーンセーバーのハードウェア サポートをブロックしていることがわかりました。拡張子を「sCr」に変更してドライバーをだますと、すべて正常に動作するようになりました。

リンク: opengl.org フォーラム

于 2012-03-26T07:06:33.773 に答える