Wiki Page Content

Differences between revisions 29 and 30
Revision 29 as of 2015-07-16 02:17:41
Size: 3587
Editor: urkle
Comment: add note about getting HighDPI working on OS X
Revision 30 as of 2015-08-20 23:47:13
Size: 3845
Editor: ChrisBush
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.

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.


CategoryAPI, CategoryVideo

None: SDL_CreateWindow (last edited 2018-09-04 21:50:13 by ninepoints)

(Page Info.)
Feedback
Please include your contact information if you'd like to receive a reply.
Submit