51 #include <SDL_syswm.h>
52 #if defined(__APPLE__)
53 #include "TargetConditionals.h"
56 #define SDL_HAS_CAPTURE_AND_GLOBAL_MOUSE SDL_VERSION_ATLEAST(2,0,4)
57 #define SDL_HAS_VULKAN SDL_VERSION_ATLEAST(2,0,6)
77 SDL_SetClipboardText(text);
98 case SDL_MOUSEBUTTONDOWN:
113 int key =
event->key.keysym.scancode;
116 io.
KeyShift = ((SDL_GetModState() & KMOD_SHIFT) != 0);
117 io.
KeyCtrl = ((SDL_GetModState() & KMOD_CTRL) != 0);
118 io.
KeyAlt = ((SDL_GetModState() & KMOD_ALT) != 0);
122 io.
KeySuper = ((SDL_GetModState() & KMOD_GUI) != 0);
183 SDL_SysWMinfo wmInfo;
184 SDL_VERSION(&wmInfo.version);
185 SDL_GetWindowWMInfo(window, &wmInfo);
196 (
void)sdl_gl_context;
247 Uint32 mouse_buttons = SDL_GetMouseState(&mx, &my);
253 #if SDL_HAS_CAPTURE_AND_GLOBAL_MOUSE && !defined(__EMSCRIPTEN__) && !defined(__ANDROID__) && !(defined(__APPLE__) && TARGET_OS_IOS)
254 SDL_Window* focused_window = SDL_GetKeyboardFocus();
263 SDL_GetWindowPosition(focused_window, &wx, &wy);
264 SDL_GetGlobalMouseState(&mx, &my);
274 SDL_CaptureMouse(any_mouse_button_down ? SDL_TRUE : SDL_FALSE);
276 if (SDL_GetWindowFlags(
g_Window) & SDL_WINDOW_INPUT_FOCUS)
291 SDL_ShowCursor(SDL_FALSE);
297 SDL_ShowCursor(SDL_TRUE);
309 SDL_GameController* game_controller = SDL_GameControllerOpen(0);
310 if (!game_controller)
317 #define MAP_BUTTON(NAV_NO, BUTTON_NO) { io.NavInputs[NAV_NO] = (SDL_GameControllerGetButton(game_controller, BUTTON_NO) != 0) ? 1.0f : 0.0f; }
318 #define MAP_ANALOG(NAV_NO, AXIS_NO, V0, V1) { float vn = (float)(SDL_GameControllerGetAxis(game_controller, AXIS_NO) - V0) / (float)(V1 - V0); if (vn > 1.0f) vn = 1.0f; if (vn > 0.0f && io.NavInputs[NAV_NO] < vn) io.NavInputs[NAV_NO] = vn; }
319 const int thumb_dead_zone = 8000;
345 IM_ASSERT(io.
Fonts->
IsBuilt() &&
"Font atlas not built! It is generally built by the renderer back-end. Missing call to renderer _NewFrame() function? e.g. ImGui_ImplOpenGL3_NewFrame().");
349 int display_w, display_h;
350 SDL_GetWindowSize(window, &
w, &
h);
351 SDL_GL_GetDrawableSize(window, &display_w, &display_h);
357 static Uint64 frequency = SDL_GetPerformanceFrequency();
358 Uint64 current_time = SDL_GetPerformanceCounter();