2016-05-28 8 views
3

SDL2プロジェクトでは、SDL_PollEvents(SDL_Event* e)はイベントを送信せず、常に0を返します。したがって、イベントは処理できません。私のイベント処理ループが正常に見える:SDL2は何もイベントを受け取っていません

SDL_Event e; 

while(SDL_PollEvent(&e) > 0) 
{ 
    //this is never reached ! 
    printf("recieved event %d\n", e.type); 

    switch(e.type) 
    { 
     case SDL_QUIT: 
      quit = true; 
    } 
} 

一方、(私はそれが各フレームでメッセージをプリントアウト作られた)、それは作品を描く、罰金コンパイルし、私はそれが無限ループに陥っていないと確信しています。

私はSDL2と他のすべての依存関係とリンクしています。私はgcc/g++sdl-config --cflagsと呼んでいます。どのようにこれを修正することができますか?

答えて

0

sdl-config --cflagsに電話をかけてはいけません。これはSDL(ライブラリの最初のバージョン)で、SDL2ではありません。それは何らかの形で衝突し、すべてのイベントがSDL_PollEvents()に達するのを止めます。それを取り除くとうまくいくはずです!

+0

もし誰かがイベントを止める方法を知っていれば、私は知ってうれしいです! –

+0

'--cflags'はインクルードパスをSDL1のインクルードに追加し、SDL2には追加しません。特に、 ''や ''を含めるかどうかを指定していないので、確かに分かりにくいですが、おそらくSDL1とSDL1の間の 'SDL_Event'構造(レイアウト*と*サイズの両方)の不一致でしょうSDL2を使用すると、未定義の動作が発生します。 –

+0

@TimCăsThans!私はLinuxを使っているので、 '' –

関連する問題