{
  "header": "SDL_video.h",
  "opaque_types": [
    {
      "name": "SDL_DisplayModeData"
    },
    {
      "name": "SDL_Window"
    }
  ],
  "typedefs": [
    {
      "name": "SDL_DisplayID",
      "underlying_type": "Uint32"
    },
    {
      "name": "SDL_WindowID",
      "underlying_type": "Uint32"
    },
    {
      "name": "SDL_GLContext",
      "underlying_type": "struct SDL_GLContextState *"
    },
    {
      "name": "SDL_EGLDisplay",
      "underlying_type": "void *"
    },
    {
      "name": "SDL_EGLConfig",
      "underlying_type": "void *"
    },
    {
      "name": "SDL_EGLSurface",
      "underlying_type": "void *"
    },
    {
      "name": "SDL_EGLAttrib",
      "underlying_type": "intptr_t"
    },
    {
      "name": "SDL_EGLint",
      "underlying_type": "int"
    },
    {
      "name": "SDL_GLProfile",
      "underlying_type": "Uint32"
    },
    {
      "name": "SDL_GLContextFlag",
      "underlying_type": "Uint32"
    },
    {
      "name": "SDL_GLContextReleaseFlag",
      "underlying_type": "Uint32"
    },
    {
      "name": "SDL_GLContextResetNotification",
      "underlying_type": "Uint32"
    }
  ],
  "function_pointers": [],
  "c_type_aliases": [
    {
      "name": "SDL_EGLAttribArrayCallback"
    },
    {
      "name": "SDL_EGLIntArrayCallback"
    },
    {
      "name": "SDL_HitTest"
    }
  ],
  "enums": [
    {
      "name": "SDL_SystemTheme",
      "values": [
        {
          "name": "SDL_SYSTEM_THEME_UNKNOWN",
          "comment": "Unknown system theme"
        },
        {
          "name": "SDL_SYSTEM_THEME_LIGHT",
          "comment": "Light colored system theme"
        },
        {
          "name": "SDL_SYSTEM_THEME_DARK",
          "comment": "Dark colored system theme"
        }
      ]
    },
    {
      "name": "SDL_DisplayOrientation",
      "values": [
        {
          "name": "SDL_ORIENTATION_UNKNOWN",
          "comment": "The display orientation can't be determined"
        },
        {
          "name": "SDL_ORIENTATION_LANDSCAPE",
          "comment": "The display is in landscape mode, with the right side up, relative to portrait mode"
        },
        {
          "name": "SDL_ORIENTATION_LANDSCAPE_FLIPPED",
          "comment": "The display is in landscape mode, with the left side up, relative to portrait mode"
        },
        {
          "name": "SDL_ORIENTATION_PORTRAIT",
          "comment": "The display is in portrait mode"
        },
        {
          "name": "SDL_ORIENTATION_PORTRAIT_FLIPPED"
        }
      ]
    },
    {
      "name": "SDL_FlashOperation",
      "values": [
        {
          "name": "SDL_FLASH_CANCEL",
          "comment": "Cancel any window flash state"
        },
        {
          "name": "SDL_FLASH_BRIEFLY",
          "comment": "Flash the window briefly to get attention"
        },
        {
          "name": "SDL_FLASH_UNTIL_FOCUSED",
          "comment": "Flash the window until it gets focus"
        }
      ]
    },
    {
      "name": "SDL_ProgressState",
      "values": [
        {
          "name": "SDL_PROGRESS_STATE_INVALID",
          "value": "-1",
          "comment": "An invalid progress state indicating an error; check SDL_GetError()"
        },
        {
          "name": "SDL_PROGRESS_STATE_NONE",
          "comment": "No progress bar is shown"
        },
        {
          "name": "SDL_PROGRESS_STATE_INDETERMINATE",
          "comment": "The progress bar is shown in a indeterminate state"
        },
        {
          "name": "SDL_PROGRESS_STATE_NORMAL",
          "comment": "The progress bar is shown in a normal state"
        },
        {
          "name": "SDL_PROGRESS_STATE_PAUSED",
          "comment": "The progress bar is shown in a paused state"
        },
        {
          "name": "SDL_PROGRESS_STATE_ERROR",
          "comment": "The progress bar is shown in a state indicating the application had an error"
        }
      ]
    },
    {
      "name": "SDL_GLAttr",
      "values": [
        {
          "name": "SDL_GL_RED_SIZE",
          "comment": "the minimum number of bits for the red channel of the color buffer; defaults to 8."
        },
        {
          "name": "SDL_GL_GREEN_SIZE",
          "comment": "the minimum number of bits for the green channel of the color buffer; defaults to 8."
        },
        {
          "name": "SDL_GL_BLUE_SIZE",
          "comment": "the minimum number of bits for the blue channel of the color buffer; defaults to 8."
        },
        {
          "name": "SDL_GL_ALPHA_SIZE",
          "comment": "the minimum number of bits for the alpha channel of the color buffer; defaults to 8."
        },
        {
          "name": "SDL_GL_BUFFER_SIZE",
          "comment": "the minimum number of bits for frame buffer size; defaults to 0."
        },
        {
          "name": "SDL_GL_DOUBLEBUFFER",
          "comment": "whether the output is single or double buffered; defaults to double buffering on."
        },
        {
          "name": "SDL_GL_DEPTH_SIZE",
          "comment": "the minimum number of bits in the depth buffer; defaults to 16."
        },
        {
          "name": "SDL_GL_STENCIL_SIZE",
          "comment": "the minimum number of bits in the stencil buffer; defaults to 0."
        },
        {
          "name": "SDL_GL_ACCUM_RED_SIZE",
          "comment": "the minimum number of bits for the red channel of the accumulation buffer; defaults to 0."
        },
        {
          "name": "SDL_GL_ACCUM_GREEN_SIZE",
          "comment": "the minimum number of bits for the green channel of the accumulation buffer; defaults to 0."
        },
        {
          "name": "SDL_GL_ACCUM_BLUE_SIZE",
          "comment": "the minimum number of bits for the blue channel of the accumulation buffer; defaults to 0."
        },
        {
          "name": "SDL_GL_ACCUM_ALPHA_SIZE",
          "comment": "the minimum number of bits for the alpha channel of the accumulation buffer; defaults to 0."
        },
        {
          "name": "SDL_GL_STEREO",
          "comment": "whether the output is stereo 3D; defaults to off."
        },
        {
          "name": "SDL_GL_MULTISAMPLEBUFFERS",
          "comment": "the number of buffers used for multisample anti-aliasing; defaults to 0."
        },
        {
          "name": "SDL_GL_MULTISAMPLESAMPLES",
          "comment": "the number of samples used around the current pixel used for multisample anti-aliasing."
        },
        {
          "name": "SDL_GL_ACCELERATED_VISUAL",
          "comment": "set to 1 to require hardware acceleration, set to 0 to force software rendering; defaults to allow either."
        },
        {
          "name": "SDL_GL_RETAINED_BACKING",
          "comment": "not used (deprecated)."
        },
        {
          "name": "SDL_GL_CONTEXT_MAJOR_VERSION",
          "comment": "OpenGL context major version."
        },
        {
          "name": "SDL_GL_CONTEXT_MINOR_VERSION",
          "comment": "OpenGL context minor version."
        },
        {
          "name": "SDL_GL_CONTEXT_FLAGS",
          "comment": "some combination of 0 or more of elements of the SDL_GLContextFlag enumeration; defaults to 0."
        },
        {
          "name": "SDL_GL_CONTEXT_PROFILE_MASK",
          "comment": "type of GL context (Core, Compatibility, ES). See SDL_GLProfile; default value depends on platform."
        },
        {
          "name": "SDL_GL_SHARE_WITH_CURRENT_CONTEXT",
          "comment": "OpenGL context sharing; defaults to 0."
        },
        {
          "name": "SDL_GL_FRAMEBUFFER_SRGB_CAPABLE",
          "comment": "requests sRGB-capable visual if 1. Defaults to -1 (\"don't care\"). This is a request; GL drivers might not comply!"
        },
        {
          "name": "SDL_GL_CONTEXT_RELEASE_BEHAVIOR",
          "comment": "sets context the release behavior. See SDL_GLContextReleaseFlag; defaults to FLUSH."
        },
        {
          "name": "SDL_GL_CONTEXT_RESET_NOTIFICATION",
          "comment": "set context reset notification. See SDL_GLContextResetNotification; defaults to NO_NOTIFICATION."
        },
        {
          "name": "SDL_GL_CONTEXT_NO_ERROR"
        },
        {
          "name": "SDL_GL_FLOATBUFFERS"
        },
        {
          "name": "SDL_GL_EGL_PLATFORM"
        }
      ]
    },
    {
      "name": "SDL_HitTestResult",
      "values": [
        {
          "name": "SDL_HITTEST_NORMAL",
          "comment": "Region is normal. No special properties."
        },
        {
          "name": "SDL_HITTEST_DRAGGABLE",
          "comment": "Region can drag entire window."
        },
        {
          "name": "SDL_HITTEST_RESIZE_TOPLEFT",
          "comment": "Region is the resizable top-left corner border."
        },
        {
          "name": "SDL_HITTEST_RESIZE_TOP",
          "comment": "Region is the resizable top border."
        },
        {
          "name": "SDL_HITTEST_RESIZE_TOPRIGHT",
          "comment": "Region is the resizable top-right corner border."
        },
        {
          "name": "SDL_HITTEST_RESIZE_RIGHT",
          "comment": "Region is the resizable right border."
        },
        {
          "name": "SDL_HITTEST_RESIZE_BOTTOMRIGHT",
          "comment": "Region is the resizable bottom-right corner border."
        },
        {
          "name": "SDL_HITTEST_RESIZE_BOTTOM",
          "comment": "Region is the resizable bottom border."
        },
        {
          "name": "SDL_HITTEST_RESIZE_BOTTOMLEFT",
          "comment": "Region is the resizable bottom-left corner border."
        },
        {
          "name": "SDL_HITTEST_RESIZE_LEFT",
          "comment": "Region is the resizable left border."
        }
      ]
    }
  ],
  "structs": [
    {
      "name": "SDL_DisplayMode",
      "fields": [
        {
          "name": "displayID",
          "type": "SDL_DisplayID",
          "comment": "the display this mode is associated with"
        },
        {
          "name": "format",
          "type": "SDL_PixelFormat",
          "comment": "pixel format"
        },
        {
          "name": "w",
          "type": "int",
          "comment": "width"
        },
        {
          "name": "h",
          "type": "int",
          "comment": "height"
        },
        {
          "name": "pixel_density",
          "type": "float",
          "comment": "scale converting size to pixels (e.g. a 1920x1080 mode with 2.0 scale would have 3840x2160 pixels)"
        },
        {
          "name": "refresh_rate",
          "type": "float",
          "comment": "refresh rate (or 0.0f for unspecified)"
        },
        {
          "name": "refresh_rate_numerator",
          "type": "int",
          "comment": "precise refresh rate numerator (or 0 for unspecified)"
        },
        {
          "name": "refresh_rate_denominator",
          "type": "int",
          "comment": "precise refresh rate denominator"
        },
        {
          "name": "internal",
          "type": "SDL_DisplayModeData *",
          "comment": "Private"
        }
      ]
    }
  ],
  "unions": [],
  "flags": [
    {
      "name": "SDL_WindowFlags",
      "underlying_type": "Uint64",
      "values": [
        {
          "name": "SDL_WINDOW_FULLSCREEN",
          "value": "SDL_UINT64_C(0x0000000000000001)",
          "comment": "window is in fullscreen mode"
        },
        {
          "name": "SDL_WINDOW_OPENGL",
          "value": "SDL_UINT64_C(0x0000000000000002)",
          "comment": "window usable with OpenGL context"
        },
        {
          "name": "SDL_WINDOW_OCCLUDED",
          "value": "SDL_UINT64_C(0x0000000000000004)",
          "comment": "window is occluded"
        },
        {
          "name": "SDL_WINDOW_HIDDEN",
          "value": "SDL_UINT64_C(0x0000000000000008)",
          "comment": "window is neither mapped onto the desktop nor shown in the taskbar/dock/window list; SDL_ShowWindow() is required for it to become visible"
        },
        {
          "name": "SDL_WINDOW_BORDERLESS",
          "value": "SDL_UINT64_C(0x0000000000000010)",
          "comment": "no window decoration"
        },
        {
          "name": "SDL_WINDOW_RESIZABLE",
          "value": "SDL_UINT64_C(0x0000000000000020)",
          "comment": "window can be resized"
        },
        {
          "name": "SDL_WINDOW_MINIMIZED",
          "value": "SDL_UINT64_C(0x0000000000000040)",
          "comment": "window is minimized"
        },
        {
          "name": "SDL_WINDOW_MAXIMIZED",
          "value": "SDL_UINT64_C(0x0000000000000080)",
          "comment": "window is maximized"
        },
        {
          "name": "SDL_WINDOW_MOUSE_GRABBED",
          "value": "SDL_UINT64_C(0x0000000000000100)",
          "comment": "window has grabbed mouse input"
        },
        {
          "name": "SDL_WINDOW_INPUT_FOCUS",
          "value": "SDL_UINT64_C(0x0000000000000200)",
          "comment": "window has input focus"
        },
        {
          "name": "SDL_WINDOW_MOUSE_FOCUS",
          "value": "SDL_UINT64_C(0x0000000000000400)",
          "comment": "window has mouse focus"
        },
        {
          "name": "SDL_WINDOW_EXTERNAL",
          "value": "SDL_UINT64_C(0x0000000000000800)",
          "comment": "window not created by SDL"
        },
        {
          "name": "SDL_WINDOW_MODAL",
          "value": "SDL_UINT64_C(0x0000000000001000)",
          "comment": "window is modal"
        },
        {
          "name": "SDL_WINDOW_HIGH_PIXEL_DENSITY",
          "value": "SDL_UINT64_C(0x0000000000002000)",
          "comment": "window uses high pixel density back buffer if possible"
        },
        {
          "name": "SDL_WINDOW_MOUSE_CAPTURE",
          "value": "SDL_UINT64_C(0x0000000000004000)",
          "comment": "window has mouse captured (unrelated to MOUSE_GRABBED)"
        },
        {
          "name": "SDL_WINDOW_MOUSE_RELATIVE_MODE",
          "value": "SDL_UINT64_C(0x0000000000008000)",
          "comment": "window has relative mode enabled"
        },
        {
          "name": "SDL_WINDOW_ALWAYS_ON_TOP",
          "value": "SDL_UINT64_C(0x0000000000010000)",
          "comment": "window should always be above others"
        },
        {
          "name": "SDL_WINDOW_UTILITY",
          "value": "SDL_UINT64_C(0x0000000000020000)",
          "comment": "window should be treated as a utility window, not showing in the task bar and window list"
        },
        {
          "name": "SDL_WINDOW_TOOLTIP",
          "value": "SDL_UINT64_C(0x0000000000040000)",
          "comment": "window should be treated as a tooltip and does not get mouse or keyboard focus, requires a parent window"
        },
        {
          "name": "SDL_WINDOW_POPUP_MENU",
          "value": "SDL_UINT64_C(0x0000000000080000)",
          "comment": "window should be treated as a popup menu, requires a parent window"
        },
        {
          "name": "SDL_WINDOW_KEYBOARD_GRABBED",
          "value": "SDL_UINT64_C(0x0000000000100000)",
          "comment": "window has grabbed keyboard input"
        },
        {
          "name": "SDL_WINDOW_FILL_DOCUMENT",
          "value": "SDL_UINT64_C(0x0000000000200000)",
          "comment": "window is in fill-document mode (Emscripten only), since SDL 3.4.0"
        },
        {
          "name": "SDL_WINDOW_VULKAN",
          "value": "SDL_UINT64_C(0x0000000010000000)",
          "comment": "window usable for Vulkan surface"
        },
        {
          "name": "SDL_WINDOW_METAL",
          "value": "SDL_UINT64_C(0x0000000020000000)",
          "comment": "window usable for Metal view"
        },
        {
          "name": "SDL_WINDOW_TRANSPARENT",
          "value": "SDL_UINT64_C(0x0000000040000000)",
          "comment": "window with transparent buffer"
        },
        {
          "name": "SDL_WINDOW_NOT_FOCUSABLE",
          "value": "SDL_UINT64_C(0x0000000080000000)",
          "comment": "window should not be focusable"
        }
      ]
    }
  ],
  "functions": [
    {
      "name": "SDL_GetNumVideoDrivers",
      "return_type": "int",
      "parameters": []
    },
    {
      "name": "SDL_GetVideoDriver",
      "return_type": "const char *",
      "parameters": [
        {
          "name": "index",
          "type": "int"
        }
      ]
    },
    {
      "name": "SDL_GetCurrentVideoDriver",
      "return_type": "const char *",
      "parameters": []
    },
    {
      "name": "SDL_GetSystemTheme",
      "return_type": "SDL_SystemTheme",
      "parameters": []
    },
    {
      "name": "SDL_GetDisplays",
      "return_type": "SDL_DisplayID *",
      "parameters": [
        {
          "name": "count",
          "type": "int *"
        }
      ]
    },
    {
      "name": "SDL_GetPrimaryDisplay",
      "return_type": "SDL_DisplayID",
      "parameters": []
    },
    {
      "name": "SDL_GetDisplayProperties",
      "return_type": "SDL_PropertiesID",
      "parameters": [
        {
          "name": "displayID",
          "type": "SDL_DisplayID"
        }
      ]
    },
    {
      "name": "SDL_GetDisplayName",
      "return_type": "const char *",
      "parameters": [
        {
          "name": "displayID",
          "type": "SDL_DisplayID"
        }
      ]
    },
    {
      "name": "SDL_GetDisplayBounds",
      "return_type": "bool",
      "parameters": [
        {
          "name": "displayID",
          "type": "SDL_DisplayID"
        },
        {
          "name": "rect",
          "type": "SDL_Rect *"
        }
      ]
    },
    {
      "name": "SDL_GetDisplayUsableBounds",
      "return_type": "bool",
      "parameters": [
        {
          "name": "displayID",
          "type": "SDL_DisplayID"
        },
        {
          "name": "rect",
          "type": "SDL_Rect *"
        }
      ]
    },
    {
      "name": "SDL_GetNaturalDisplayOrientation",
      "return_type": "SDL_DisplayOrientation",
      "parameters": [
        {
          "name": "displayID",
          "type": "SDL_DisplayID"
        }
      ]
    },
    {
      "name": "SDL_GetCurrentDisplayOrientation",
      "return_type": "SDL_DisplayOrientation",
      "parameters": [
        {
          "name": "displayID",
          "type": "SDL_DisplayID"
        }
      ]
    },
    {
      "name": "SDL_GetDisplayContentScale",
      "return_type": "float",
      "parameters": [
        {
          "name": "displayID",
          "type": "SDL_DisplayID"
        }
      ]
    },
    {
      "name": "SDL_GetFullscreenDisplayModes",
      "return_type": "SDL_DisplayMode **",
      "parameters": [
        {
          "name": "displayID",
          "type": "SDL_DisplayID"
        },
        {
          "name": "count",
          "type": "int *"
        }
      ]
    },
    {
      "name": "SDL_GetClosestFullscreenDisplayMode",
      "return_type": "bool",
      "parameters": [
        {
          "name": "displayID",
          "type": "SDL_DisplayID"
        },
        {
          "name": "w",
          "type": "int"
        },
        {
          "name": "h",
          "type": "int"
        },
        {
          "name": "refresh_rate",
          "type": "float"
        },
        {
          "name": "include_high_density_modes",
          "type": "bool"
        },
        {
          "name": "closest",
          "type": "SDL_DisplayMode *"
        }
      ]
    },
    {
      "name": "SDL_GetDesktopDisplayMode",
      "return_type": "const SDL_DisplayMode *",
      "parameters": [
        {
          "name": "displayID",
          "type": "SDL_DisplayID"
        }
      ]
    },
    {
      "name": "SDL_GetCurrentDisplayMode",
      "return_type": "const SDL_DisplayMode *",
      "parameters": [
        {
          "name": "displayID",
          "type": "SDL_DisplayID"
        }
      ]
    },
    {
      "name": "SDL_GetDisplayForPoint",
      "return_type": "SDL_DisplayID",
      "parameters": [
        {
          "name": "point",
          "type": "const SDL_Point *"
        }
      ]
    },
    {
      "name": "SDL_GetDisplayForRect",
      "return_type": "SDL_DisplayID",
      "parameters": [
        {
          "name": "rect",
          "type": "const SDL_Rect *"
        }
      ]
    },
    {
      "name": "SDL_GetDisplayForWindow",
      "return_type": "SDL_DisplayID",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        }
      ]
    },
    {
      "name": "SDL_GetWindowPixelDensity",
      "return_type": "float",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        }
      ]
    },
    {
      "name": "SDL_GetWindowDisplayScale",
      "return_type": "float",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        }
      ]
    },
    {
      "name": "SDL_SetWindowFullscreenMode",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        },
        {
          "name": "mode",
          "type": "const SDL_DisplayMode *"
        }
      ]
    },
    {
      "name": "SDL_GetWindowFullscreenMode",
      "return_type": "const SDL_DisplayMode *",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        }
      ]
    },
    {
      "name": "SDL_GetWindowICCProfile",
      "return_type": "void *",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        },
        {
          "name": "size",
          "type": "size_t *"
        }
      ]
    },
    {
      "name": "SDL_GetWindowPixelFormat",
      "return_type": "SDL_PixelFormat",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        }
      ]
    },
    {
      "name": "SDL_GetWindows",
      "return_type": "SDL_Window **",
      "parameters": [
        {
          "name": "count",
          "type": "int *"
        }
      ]
    },
    {
      "name": "SDL_CreateWindow",
      "return_type": "SDL_Window *",
      "parameters": [
        {
          "name": "title",
          "type": "const char *"
        },
        {
          "name": "w",
          "type": "int"
        },
        {
          "name": "h",
          "type": "int"
        },
        {
          "name": "flags",
          "type": "SDL_WindowFlags"
        }
      ]
    },
    {
      "name": "SDL_CreatePopupWindow",
      "return_type": "SDL_Window *",
      "parameters": [
        {
          "name": "parent",
          "type": "SDL_Window *"
        },
        {
          "name": "offset_x",
          "type": "int"
        },
        {
          "name": "offset_y",
          "type": "int"
        },
        {
          "name": "w",
          "type": "int"
        },
        {
          "name": "h",
          "type": "int"
        },
        {
          "name": "flags",
          "type": "SDL_WindowFlags"
        }
      ]
    },
    {
      "name": "SDL_CreateWindowWithProperties",
      "return_type": "SDL_Window *",
      "parameters": [
        {
          "name": "props",
          "type": "SDL_PropertiesID"
        }
      ]
    },
    {
      "name": "SDL_GetWindowID",
      "return_type": "SDL_WindowID",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        }
      ]
    },
    {
      "name": "SDL_GetWindowFromID",
      "return_type": "SDL_Window *",
      "parameters": [
        {
          "name": "id",
          "type": "SDL_WindowID"
        }
      ]
    },
    {
      "name": "SDL_GetWindowParent",
      "return_type": "SDL_Window *",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        }
      ]
    },
    {
      "name": "SDL_GetWindowProperties",
      "return_type": "SDL_PropertiesID",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        }
      ]
    },
    {
      "name": "SDL_GetWindowFlags",
      "return_type": "SDL_WindowFlags",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        }
      ]
    },
    {
      "name": "SDL_SetWindowTitle",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        },
        {
          "name": "title",
          "type": "const char *"
        }
      ]
    },
    {
      "name": "SDL_GetWindowTitle",
      "return_type": "const char *",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        }
      ]
    },
    {
      "name": "SDL_SetWindowIcon",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        },
        {
          "name": "icon",
          "type": "SDL_Surface *"
        }
      ]
    },
    {
      "name": "SDL_SetWindowPosition",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        },
        {
          "name": "x",
          "type": "int"
        },
        {
          "name": "y",
          "type": "int"
        }
      ]
    },
    {
      "name": "SDL_GetWindowPosition",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        },
        {
          "name": "x",
          "type": "int *"
        },
        {
          "name": "y",
          "type": "int *"
        }
      ]
    },
    {
      "name": "SDL_SetWindowSize",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        },
        {
          "name": "w",
          "type": "int"
        },
        {
          "name": "h",
          "type": "int"
        }
      ]
    },
    {
      "name": "SDL_GetWindowSize",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        },
        {
          "name": "w",
          "type": "int *"
        },
        {
          "name": "h",
          "type": "int *"
        }
      ]
    },
    {
      "name": "SDL_GetWindowSafeArea",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        },
        {
          "name": "rect",
          "type": "SDL_Rect *"
        }
      ]
    },
    {
      "name": "SDL_SetWindowAspectRatio",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        },
        {
          "name": "min_aspect",
          "type": "float"
        },
        {
          "name": "max_aspect",
          "type": "float"
        }
      ]
    },
    {
      "name": "SDL_GetWindowAspectRatio",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        },
        {
          "name": "min_aspect",
          "type": "float *"
        },
        {
          "name": "max_aspect",
          "type": "float *"
        }
      ]
    },
    {
      "name": "SDL_GetWindowBordersSize",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        },
        {
          "name": "top",
          "type": "int *"
        },
        {
          "name": "left",
          "type": "int *"
        },
        {
          "name": "bottom",
          "type": "int *"
        },
        {
          "name": "right",
          "type": "int *"
        }
      ]
    },
    {
      "name": "SDL_GetWindowSizeInPixels",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        },
        {
          "name": "w",
          "type": "int *"
        },
        {
          "name": "h",
          "type": "int *"
        }
      ]
    },
    {
      "name": "SDL_SetWindowMinimumSize",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        },
        {
          "name": "min_w",
          "type": "int"
        },
        {
          "name": "min_h",
          "type": "int"
        }
      ]
    },
    {
      "name": "SDL_GetWindowMinimumSize",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        },
        {
          "name": "w",
          "type": "int *"
        },
        {
          "name": "h",
          "type": "int *"
        }
      ]
    },
    {
      "name": "SDL_SetWindowMaximumSize",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        },
        {
          "name": "max_w",
          "type": "int"
        },
        {
          "name": "max_h",
          "type": "int"
        }
      ]
    },
    {
      "name": "SDL_GetWindowMaximumSize",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        },
        {
          "name": "w",
          "type": "int *"
        },
        {
          "name": "h",
          "type": "int *"
        }
      ]
    },
    {
      "name": "SDL_SetWindowBordered",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        },
        {
          "name": "bordered",
          "type": "bool"
        }
      ]
    },
    {
      "name": "SDL_SetWindowResizable",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        },
        {
          "name": "resizable",
          "type": "bool"
        }
      ]
    },
    {
      "name": "SDL_SetWindowAlwaysOnTop",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        },
        {
          "name": "on_top",
          "type": "bool"
        }
      ]
    },
    {
      "name": "SDL_SetWindowFillDocument",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        },
        {
          "name": "fill",
          "type": "bool"
        }
      ]
    },
    {
      "name": "SDL_ShowWindow",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        }
      ]
    },
    {
      "name": "SDL_HideWindow",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        }
      ]
    },
    {
      "name": "SDL_RaiseWindow",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        }
      ]
    },
    {
      "name": "SDL_MaximizeWindow",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        }
      ]
    },
    {
      "name": "SDL_MinimizeWindow",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        }
      ]
    },
    {
      "name": "SDL_RestoreWindow",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        }
      ]
    },
    {
      "name": "SDL_SetWindowFullscreen",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        },
        {
          "name": "fullscreen",
          "type": "bool"
        }
      ]
    },
    {
      "name": "SDL_SyncWindow",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        }
      ]
    },
    {
      "name": "SDL_WindowHasSurface",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        }
      ]
    },
    {
      "name": "SDL_GetWindowSurface",
      "return_type": "SDL_Surface *",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        }
      ]
    },
    {
      "name": "SDL_SetWindowSurfaceVSync",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        },
        {
          "name": "vsync",
          "type": "int"
        }
      ]
    },
    {
      "name": "SDL_GetWindowSurfaceVSync",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        },
        {
          "name": "vsync",
          "type": "int *"
        }
      ]
    },
    {
      "name": "SDL_UpdateWindowSurface",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        }
      ]
    },
    {
      "name": "SDL_UpdateWindowSurfaceRects",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        },
        {
          "name": "rects",
          "type": "const SDL_Rect *"
        },
        {
          "name": "numrects",
          "type": "int"
        }
      ]
    },
    {
      "name": "SDL_DestroyWindowSurface",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        }
      ]
    },
    {
      "name": "SDL_SetWindowKeyboardGrab",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        },
        {
          "name": "grabbed",
          "type": "bool"
        }
      ]
    },
    {
      "name": "SDL_SetWindowMouseGrab",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        },
        {
          "name": "grabbed",
          "type": "bool"
        }
      ]
    },
    {
      "name": "SDL_GetWindowKeyboardGrab",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        }
      ]
    },
    {
      "name": "SDL_GetWindowMouseGrab",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        }
      ]
    },
    {
      "name": "SDL_GetGrabbedWindow",
      "return_type": "SDL_Window *",
      "parameters": []
    },
    {
      "name": "SDL_SetWindowMouseRect",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        },
        {
          "name": "rect",
          "type": "const SDL_Rect *"
        }
      ]
    },
    {
      "name": "SDL_GetWindowMouseRect",
      "return_type": "const SDL_Rect *",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        }
      ]
    },
    {
      "name": "SDL_SetWindowOpacity",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        },
        {
          "name": "opacity",
          "type": "float"
        }
      ]
    },
    {
      "name": "SDL_GetWindowOpacity",
      "return_type": "float",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        }
      ]
    },
    {
      "name": "SDL_SetWindowParent",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        },
        {
          "name": "parent",
          "type": "SDL_Window *"
        }
      ]
    },
    {
      "name": "SDL_SetWindowModal",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        },
        {
          "name": "modal",
          "type": "bool"
        }
      ]
    },
    {
      "name": "SDL_SetWindowFocusable",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        },
        {
          "name": "focusable",
          "type": "bool"
        }
      ]
    },
    {
      "name": "SDL_ShowWindowSystemMenu",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        },
        {
          "name": "x",
          "type": "int"
        },
        {
          "name": "y",
          "type": "int"
        }
      ]
    },
    {
      "name": "SDL_SetWindowHitTest",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        },
        {
          "name": "callback",
          "type": "SDL_HitTest"
        },
        {
          "name": "callback_data",
          "type": "void *"
        }
      ]
    },
    {
      "name": "SDL_SetWindowShape",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        },
        {
          "name": "shape",
          "type": "SDL_Surface *"
        }
      ]
    },
    {
      "name": "SDL_FlashWindow",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        },
        {
          "name": "operation",
          "type": "SDL_FlashOperation"
        }
      ]
    },
    {
      "name": "SDL_SetWindowProgressState",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        },
        {
          "name": "state",
          "type": "SDL_ProgressState"
        }
      ]
    },
    {
      "name": "SDL_GetWindowProgressState",
      "return_type": "SDL_ProgressState",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        }
      ]
    },
    {
      "name": "SDL_SetWindowProgressValue",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        },
        {
          "name": "value",
          "type": "float"
        }
      ]
    },
    {
      "name": "SDL_GetWindowProgressValue",
      "return_type": "float",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        }
      ]
    },
    {
      "name": "SDL_DestroyWindow",
      "return_type": "void",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        }
      ]
    },
    {
      "name": "SDL_ScreenSaverEnabled",
      "return_type": "bool",
      "parameters": []
    },
    {
      "name": "SDL_EnableScreenSaver",
      "return_type": "bool",
      "parameters": []
    },
    {
      "name": "SDL_DisableScreenSaver",
      "return_type": "bool",
      "parameters": []
    },
    {
      "name": "SDL_GL_LoadLibrary",
      "return_type": "bool",
      "parameters": [
        {
          "name": "path",
          "type": "const char *"
        }
      ]
    },
    {
      "name": "SDL_GL_GetProcAddress",
      "return_type": "SDL_FunctionPointer",
      "parameters": [
        {
          "name": "proc",
          "type": "const char *"
        }
      ]
    },
    {
      "name": "SDL_EGL_GetProcAddress",
      "return_type": "SDL_FunctionPointer",
      "parameters": [
        {
          "name": "proc",
          "type": "const char *"
        }
      ]
    },
    {
      "name": "SDL_GL_UnloadLibrary",
      "return_type": "void",
      "parameters": []
    },
    {
      "name": "SDL_GL_ExtensionSupported",
      "return_type": "bool",
      "parameters": [
        {
          "name": "extension",
          "type": "const char *"
        }
      ]
    },
    {
      "name": "SDL_GL_ResetAttributes",
      "return_type": "void",
      "parameters": []
    },
    {
      "name": "SDL_GL_SetAttribute",
      "return_type": "bool",
      "parameters": [
        {
          "name": "attr",
          "type": "SDL_GLAttr"
        },
        {
          "name": "value",
          "type": "int"
        }
      ]
    },
    {
      "name": "SDL_GL_GetAttribute",
      "return_type": "bool",
      "parameters": [
        {
          "name": "attr",
          "type": "SDL_GLAttr"
        },
        {
          "name": "value",
          "type": "int *"
        }
      ]
    },
    {
      "name": "SDL_GL_CreateContext",
      "return_type": "SDL_GLContext",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        }
      ]
    },
    {
      "name": "SDL_GL_MakeCurrent",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        },
        {
          "name": "context",
          "type": "SDL_GLContext"
        }
      ]
    },
    {
      "name": "SDL_GL_GetCurrentWindow",
      "return_type": "SDL_Window *",
      "parameters": []
    },
    {
      "name": "SDL_GL_GetCurrentContext",
      "return_type": "SDL_GLContext",
      "parameters": []
    },
    {
      "name": "SDL_EGL_GetCurrentDisplay",
      "return_type": "SDL_EGLDisplay",
      "parameters": []
    },
    {
      "name": "SDL_EGL_GetCurrentConfig",
      "return_type": "SDL_EGLConfig",
      "parameters": []
    },
    {
      "name": "SDL_EGL_GetWindowSurface",
      "return_type": "SDL_EGLSurface",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        }
      ]
    },
    {
      "name": "SDL_EGL_SetAttributeCallbacks",
      "return_type": "void",
      "parameters": [
        {
          "name": "platformAttribCallback",
          "type": "SDL_EGLAttribArrayCallback"
        },
        {
          "name": "surfaceAttribCallback",
          "type": "SDL_EGLIntArrayCallback"
        },
        {
          "name": "contextAttribCallback",
          "type": "SDL_EGLIntArrayCallback"
        },
        {
          "name": "userdata",
          "type": "void *"
        }
      ]
    },
    {
      "name": "SDL_GL_SetSwapInterval",
      "return_type": "bool",
      "parameters": [
        {
          "name": "interval",
          "type": "int"
        }
      ]
    },
    {
      "name": "SDL_GL_GetSwapInterval",
      "return_type": "bool",
      "parameters": [
        {
          "name": "interval",
          "type": "int *"
        }
      ]
    },
    {
      "name": "SDL_GL_SwapWindow",
      "return_type": "bool",
      "parameters": [
        {
          "name": "window",
          "type": "SDL_Window *"
        }
      ]
    },
    {
      "name": "SDL_GL_DestroyContext",
      "return_type": "bool",
      "parameters": [
        {
          "name": "context",
          "type": "SDL_GLContext"
        }
      ]
    }
  ]
}