Changeset d8cf709 in opengl-game for game-gui-sdl.cpp


Ignore:
Timestamp:
Feb 13, 2021, 11:41:39 PM (4 years ago)
Author:
Dmitry Portnoy <dportnoy@…>
Branches:
feature/imgui-sdl
Children:
c6f0793
Parents:
8b823e7
Message:

Change UIEvent to also include the original event from the UI library the game gui is currently using, such as SDL or GLFW.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • game-gui-sdl.cpp

    r8b823e7 rd8cf709  
    7979}
    8080
    81 int GameGui_SDL::pollEvent(UIEvent* event) {
     81int GameGui_SDL::pollEvent(UIEvent* uiEvent) {
    8282   SDL_Event e;
    8383
     
    8787
    8888   if (SDL_PollEvent(&e)) {
     89      uiEvent->rawEvent.sdl = e;
     90
     91      GameEvent* event = &uiEvent->event;
     92
    8993      switch(e.type) {
    9094         case SDL_QUIT:
     
    9397         case SDL_WINDOWEVENT:
    9498            if (e.window.event == SDL_WINDOWEVENT_SIZE_CHANGED ||
    95                e.window.event == SDL_WINDOWEVENT_MINIMIZED ||
    96                e.window.event == SDL_WINDOWEVENT_MAXIMIZED) {
     99                  e.window.event == SDL_WINDOWEVENT_MINIMIZED ||
     100                  e.window.event == SDL_WINDOWEVENT_MAXIMIZED) {
    97101               event->type = UI_EVENT_WINDOWRESIZE;
     102            } else if (e.window.event == SDL_WINDOWEVENT_CLOSE &&
     103                  e.window.windowID == SDL_GetWindowID(window)) {
     104               event->type = UI_EVENT_QUIT;
    98105            } else {
    99106               event->type = UI_EVENT_WINDOW;
     
    122129            event->mouse.y = e.motion.y;
    123130         case SDL_FINGERMOTION:
     131            // TODO: Get coordinates for finger events
    124132            event->type = UI_EVENT_MOUSEMOTION;
    125133            break;
    126          // Ignore the following events
     134         // The following events are not currently supported
    127135         case SDL_AUDIODEVICEADDED:
    128136         case SDL_AUDIODEVICEREMOVED:
    129137         case SDL_TEXTINPUT:
    130138         case SDL_TEXTEDITING:
     139         case SDL_MOUSEWHEEL:
    131140            event->type = UI_EVENT_UNKNOWN;
    132             event->unknown.eventType = e.type;
    133141            break;
    134142         default:
    135143            event->type = UI_EVENT_UNKNOWN;
    136             event->unknown.eventType = 0;
    137144      }
    138145
    139146      return 1;
     147   } else {
     148      return 0;
    140149   }
    141 
    142    event = nullptr;
    143    return 0;
    144150}
    145151
Note: See TracChangeset for help on using the changeset viewer.