1

MonoGame と OpenTK 1.0 をインストールしたばかりで、Visual Studio 2012 で「Windows OpenGL Game」タイプの新しいプロジェクトを作成しました...しかし、プロジェクトを実行すると、次のエラーが発生します。

The type initializer for 'OpenTK.Graphics.GraphicsMode' threw an exception.

エラーはこの行にあります (base() 上のコンストラクター)

public Game1()
    : base() 
{
    graphics = new GraphicsDeviceManager(this);
    Content.RootDirectory = "Content";
}

私のラップトップにはインテル ボード グラフィックス 3000 が搭載されており、OpenGL をサポートしていると思います。何か案は?

4

2 に答える 2

1

ソース コードを見て、例外が処理されなかった場所を見つけることができます。「型初期化子」は基本的に静的コンストラクターを意味します。

static GraphicsMode()
{
    lock (SyncRoot)
    {
        implementation = Platform.Factory.Default.CreateGraphicsMode();
    }
}

残念ながら、掘り下げてCreateGraphicsModeも、例外の明らかな原因は1つも明らかになりません。

ここですべきことは、その例外のスタック トレースを取得して、例外がどこから発生したかを調べることCreateGraphicsModeです。例外が処理されない場合、デバッガーはこの情報を提供する必要があります。


少量の掘り下げで、スタック トレースを表示せずに (つまり、私はほとんど推測しています)、この潜在的な原因に遭遇しました。

throw new GraphicsModeException(
    "No GraphicsMode available. This should never happen, please report a bug at http://www.opentk.com");

もちろん、これは非常に役に立ちません。ただし、その場所に基づいて、適切なグラフィック モードが見つからないことを示しているように見えます。

この段階では、MonoGame と OpenTK をソースからビルドして、デバッガーを使用してそれらが何をしているかを正確に確認できるようにするのが最善だと思います。

于 2013-07-21T14:55:55.490 に答える
0

この問題は私にも発生していましたが、MonoGame のソース コードの問題ではないと思います。

A) openTK がインストールされていることを確認する必要があります ( http://www.opentk.com/ )。

B) craftworkgamesが言ったように、あなたのマシン(私が想定しているラップトップ)はOpenGLをサポートしていません。Sufrace Proでこの問題が発生し、Intelドライバーを最新に更新する必要がありました(この時点でguru3d.comとwww.guru3d.com/files_categories/videocards_intel_graphics_drivers.htmlを使用して15.31ドライバーをインストールしました)、その後動作し始めました.

于 2013-11-16T03:50:19.420 に答える