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.
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