SDL_CreateWindow
Use this function to create a window with the specified position, dimensions, and flags.
Contents
Syntax
SDL_Window* SDL_CreateWindow(const char* title,
int x,
int y,
int w,
int h,
Uint32 flags)
Function Parameters
title |
the title of the window, in UTF-8 encoding |
x |
the x position of the window, SDL_WINDOWPOS_CENTERED, or SDL_WINDOWPOS_UNDEFINED |
y |
the y position of the window, SDL_WINDOWPOS_CENTERED, or SDL_WINDOWPOS_UNDEFINED |
w |
the width of the window, in screen coordinates |
h |
the height of the window, in screen coordinates |
flags |
0, or one or more SDL_WindowFlags OR'd together; see Remarks for details |
Return Value
Returns the window that was created or NULL on failure; call SDL_GetError() for more information.
Code Examples
// Example program:
// Using SDL2 to create an application window
#include "SDL.h"
#include <stdio.h>
int main(int argc, char* argv[]) {
SDL_Window *window; // Declare a pointer
SDL_Init(SDL_INIT_VIDEO); // Initialize SDL2
// Create an application window with the following settings:
window = SDL_CreateWindow(
"An SDL2 window", // window title
SDL_WINDOWPOS_UNDEFINED, // initial x position
SDL_WINDOWPOS_UNDEFINED, // initial y position
640, // width, in pixels
480, // height, in pixels
SDL_WINDOW_OPENGL // flags - see below
);
// Check that the window was successfully created
if (window == NULL) {
// In the case that the window could not be made...
printf("Could not create window: %s\n", SDL_GetError());
return 1;
}
// The window is open: could enter program loop here (see SDL_PollEvent())
SDL_Delay(3000); // Pause execution for 3000 milliseconds, for example
// Close and destroy the window
SDL_DestroyWindow(window);
// Clean up
SDL_Quit();
return 0;
}
Remarks
flags may be any of the following OR'd together:
SDL_WINDOW_FULLSCREEN |
fullscreen window |
SDL_WINDOW_FULLSCREEN_DESKTOP |
fullscreen window at the current desktop resolution |
SDL_WINDOW_OPENGL |
window usable with OpenGL context |
SDL_WINDOW_VULKAN |
window usable with a Vulkan instance |
SDL_WINDOW_HIDDEN |
window is not visible |
SDL_WINDOW_BORDERLESS |
no window decoration |
SDL_WINDOW_RESIZABLE |
window can be resized |
SDL_WINDOW_MINIMIZED |
window is minimized |
SDL_WINDOW_MAXIMIZED |
window is maximized |
SDL_WINDOW_INPUT_GRABBED |
window has grabbed input focus |
SDL_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 OS X 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 Mac OS X). 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.
Version
This function is available since SDL 2.0.0.