2016-09-26 5 views
3

SDL2プロジェクトでソフトウェアレンダリングを使用すると、すべて正常に動作します。呼び出し、何らかの理由でSDL:SDL_CreateRenderer Segfaultsを呼び出す

this->renderer = SDL_CreateRenderer(this->window, -1, SDL_RENDERER_ACCELERATED); 

:SDL_Rendererを作成するためのコードは次のようになりますときに私は、ハードウェアレンダリング、例えばを使用する場合

this->renderer = SDL_CreateRenderer(this->window, -1, SDL_RENDERER_SOFTWARE); 

:SDL_Rendererを作成するためのコードは次のようになります 例えばSDL_UpdateWindowSurfaceの結果はSEGFAULTになります。

// Update window surface 
SDL_UpdateWindowSurface(window); 

私はソフトウェアレンダリングSDL_Rendererでプログラムを実行すると、うまく動作し、セグメンテーションフォルトが得られていないので、私の窓を設置している方法は、正しいことを知っている:私は、標準的な方法でSDL_UpdateWindowSurfaceを呼び出します。

これを引き起こしている原因は何ですか?誰もこれの前にこのような何かを経験しましたか?

+1

この小さなコードでは、私たちのための推測ゲームです。 –

+2

[最小限で完全で検証可能な例を作成する方法] –

+0

謝罪、私は家にいれば質問を調整します。 – McMuffinton

答えて

1

SDL_GetWindowSurace documentation これを3DまたはこのウィンドウのレンダリングAPIと組み合わせることはできません。。サーフェスを生成して自分自身でウィンドウの表面を更新するか、ハードウェアアクセラレーションを忘れたり、SDL_Rendererを使用したり、ウィンドウの表面に触れたりしないでください(高速化されたバックエンドでは存在しません)。

関連する問題