|
Size: 3587
Comment: add note about getting HighDPI working on OS X
|
Size: 3845
Comment: Per feedback form, add what happens to w and h when fullscreen flags are used; plus: max window size
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 91: | Line 91: |
| 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. | 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 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. |
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 |
h |
the height of the window |
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 made
if (window == NULL) {
// In the event that the window could not be made...
printf("Could not create window: %s\n", SDL_GetError());
return 1;
}
// The window is open: enter program loop (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_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 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.
