|
Size: 2863
Comment:
|
← Revision 34 as of 2018-09-04 21:50:13 ⇥
Size: 4410
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.
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.
