Wiki Page Content

Differences between revisions 13 and 34 (spanning 21 versions)
Revision 13 as of 2012-05-26 07:53:59
Size: 2863
Editor: ChrisBush
Comment:
Revision 34 as of 2018-09-04 21:50:13
Size: 4410
Editor: ninepoints
Comment: Add SDL_WINDOW_VULKAN flag
Deletions are marked like this. Additions are marked like this.
Line 12: Line 12:
  int x,
                              int y,
                              int w,
                              int h,
  Uint32 flags)
                             int x,
                             int y,
                             int w,
                             int h,
                             Uint32 flags)
Line 23: Line 23:
||'''w'''||the width of the window||
||'''h'''||the height of the window||
||'''w'''||the width of the window, in screen coordinates||
||'''h'''||the height of the window, in screen coordinates||
Line 32: Line 32:
Line 36: Line 35:
#include <SDL2/SDL.h>
#include <iostream>
#include "SDL.h"
#include <stdio.h>
Line 39: Line 38:
using namespace std; int main(int argc, char* argv[]) {
Line 41: Line 40:
int main(int argc, char* argv[]){     SDL_Window *window; // Declare a pointer
Line 43: Line 42:
  SDL_Init(SDL_INIT_VIDEO); // Initialize SDL2
  
  SDL_Window *pWindow; // Declare a pointer to an SDL_Window
  
  // Create an application window with the following settings:
  pWindow = SDL_CreateWindow(
    "An SDL2 window", // const char* title
    SDL_WINDOWPOS_UNDEFINED, // int x: initial x position
    SDL_WINDOWPOS_UNDEFINED, // int y: initial y position
    640, // int w: width, in pixels
    480, // int h: height, in pixels
    SDL_WINDOW_SHOWN // Uint32 flags: window options, see below
  );
  
  // Check that the window was successfully made
  if(pWindow==NULL){
    // In the event that the window could not be made...
    cout << "Could not create window: " << SDL_GetError() << '\n';
    return 1;
  }
  
  // The window is open: enter program loop (see SDL_PollEvent)
    SDL_Init(SDL_INIT_VIDEO); // Initialize SDL2
Line 66: Line 44:
  SDL_Delay(3000); // Pause execution for 3000 milliseconds, for example
  
  // Close and destroy the window
  SDL_DestroyWindow(pWindow);
   
  // Uninitialize SDL2 and exit the program
  SDL_Quit();
  return 0;
 
    // 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;
Line 80: Line 76:
<<Anchor(flags)>> '''flags''' may be a mask of any of the following:
||SDL_WINDOW_FULLSCREEN||
||SDL_WINDOW_OPENGL||
||SDL_WINDOW_SHOWN||
||SDL_WINDOW_BORDERLESS||
||SDL_WINDOW_RESIZABLE||
||SDL_WINDOW_MAXIMIZED||
||SDL_WINDOW_MINIMIZED||
||SDL_WINDOW_INPUT_GRABBED||
<<Anchor(flags)>> '''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.
Line 91: Line 101:
 .[[SDL_CreateWindowFrom]]

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


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