Function sdl2_sys::SDL_CreateWindow
source · pub unsafe extern "C" fn SDL_CreateWindow(
title: *const c_char,
x: c_int,
y: c_int,
w: c_int,
h: c_int,
flags: Uint32,
) -> *mut SDL_Window
Expand description
Create a window with the specified position, dimensions, and flags.
flags
may be any of the following OR’d together:
SDL_WINDOW_FULLSCREEN
: fullscreen windowSDL_WINDOW_FULLSCREEN_DESKTOP
: fullscreen window at desktop resolutionSDL_WINDOW_OPENGL
: window usable with an OpenGL contextSDL_WINDOW_VULKAN
: window usable with a Vulkan instanceSDL_WINDOW_METAL
: window usable with a Metal instanceSDL_WINDOW_HIDDEN
: window is not visibleSDL_WINDOW_BORDERLESS
: no window decorationSDL_WINDOW_RESIZABLE
: window can be resizedSDL_WINDOW_MINIMIZED
: window is minimizedSDL_WINDOW_MAXIMIZED
: window is maximizedSDL_WINDOW_INPUT_GRABBED
: window has grabbed input focusSDL_WINDOW_ALLOW_HIGHDPI
: window should be created in high-DPI mode if supported (>= SDL 2.0.1)
SDL_WINDOW_SHOWN
is ignored by SDL_CreateWindow(). The SDL_Window is
implicitly shown if SDL_WINDOW_HIDDEN is not set. SDL_WINDOW_SHOWN
may be
queried later using SDL_GetWindowFlags().
On Apple’s macOS, you must set the NSHighResolutionCapable Info.plist property to YES, otherwise you will not receive a High-DPI OpenGL canvas.
If the window is created with the SDL_WINDOW_ALLOW_HIGHDPI
flag, its size
in pixels may differ from its size in screen coordinates on platforms with
high-DPI support (e.g. iOS and macOS). Use SDL_GetWindowSize() to query the
client area’s size in screen coordinates, and SDL_GL_GetDrawableSize() or
SDL_GetRendererOutputSize() to query the drawable size in pixels. Note that
when this flag is set, the drawable size can vary after the window is
created and should be queried after major window events such as when the
window is resized or moved between displays.
If the window is set fullscreen, the width and height parameters w
and
h
will not be used. However, invalid size parameters (e.g. too large) may
still fail. Window size is actually limited to 16384 x 16384 for all
platforms at window creation.
If the window is created with any of the SDL_WINDOW_OPENGL or SDL_WINDOW_VULKAN flags, then the corresponding LoadLibrary function (SDL_GL_LoadLibrary or SDL_Vulkan_LoadLibrary) is called and the corresponding UnloadLibrary function is called by SDL_DestroyWindow().
If SDL_WINDOW_VULKAN is specified and there isn’t a working Vulkan driver, SDL_CreateWindow() will fail because SDL_Vulkan_LoadLibrary() will fail.
If SDL_WINDOW_METAL is specified on an OS that does not support Metal, SDL_CreateWindow() will fail.
On non-Apple devices, SDL requires you to either not link to the Vulkan loader or link to a dynamic library version. This limitation may be removed in a future version of SDL.
\param title the title of the window, in UTF-8 encoding
\param x the x position of the window, SDL_WINDOWPOS_CENTERED
, or
SDL_WINDOWPOS_UNDEFINED
\param y the y position of the window, SDL_WINDOWPOS_CENTERED
, or
SDL_WINDOWPOS_UNDEFINED
\param w the width of the window, in screen coordinates
\param h the height of the window, in screen coordinates
\param flags 0, or one or more SDL_WindowFlags OR’d together
\returns the window that was created or NULL on failure; call
SDL_GetError() for more information.
\since This function is available since SDL 2.0.0.
\sa SDL_CreateWindowFrom \sa SDL_DestroyWindow