English 中文(简体)
SDL_Event.type always empty after polling
原标题:
  • 时间:2009-11-15 05:00:37
  •  标签:
  • c++
  • sdl

I have a general function that is supposed to handle any event in the SDL event queue. So far, the function looks like this:

int eventhandler(void* args){
  cout << "Eventhandler started.
";
  while (!quit){
    while (SDL_PollEvent(&event)){
      cout << "Got event to handle: " << event.type << "
";
      switch (event.type){
        SDL_KEYDOWN:
          keyDownHandler(event.key.keysym.sym);
          break;
        default:
          break;
      }
    }
  }
}

However, when I test the function, I get a whole bunch of events but none of them seem to have a type. It doesn t even print 0 or anything — just nothing. The output when pressing any key looks like this:

Got event to handle:

And nothing else. Any tutorial and the SDL docs say that I should handle events like this, but it isn t working. Anybody else have this problem or a solution?

By the way, the eventhandler runs in an SDL_Thread, but I don t think that s the problem.

最佳回答

That nothing happens is a result of the missing case in front of SDL_KEYDOWN.
With case missing the compiler sees a jump label which you would use for e.g. goto SDL_KEYDOWN;, which results in the default label being the only label in the switch statement.

I don t see why event.type doesn t get output though unless you set some stream-flags somewhere.
event.type is an Uint8 which SDL just typedefs from integral types, so it should be handled like one. Like any integral type it also can t be "empty", but the output for it can be.

问题回答

暂无回答




相关问题
Undefined reference

I m getting this linker error. I know a way around it, but it s bugging me because another part of the project s linking fine and it s designed almost identically. First, I have namespace LCD. Then I ...

C++ Equivalent of Tidy

Is there an equivalent to tidy for HTML code for C++? I have searched on the internet, but I find nothing but C++ wrappers for tidy, etc... I think the keyword tidy is what has me hung up. I am ...

Template Classes in C++ ... a required skill set?

I m new to C++ and am wondering how much time I should invest in learning how to implement template classes. Are they widely used in industry, or is this something I should move through quickly?

Print possible strings created from a Number

Given a 10 digit Telephone Number, we have to print all possible strings created from that. The mapping of the numbers is the one as exactly on a phone s keypad. i.e. for 1,0-> No Letter for 2->...

typedef ing STL wstring

Why is it when i do the following i get errors when relating to with wchar_t? namespace Foo { typedef std::wstring String; } Now i declare all my strings as Foo::String through out the program, ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

Window iconification status via Xlib

Is it possible to check with the means of pure X11/Xlib only whether the given window is iconified/minimized, and, if it is, how?

热门标签