|
Serwis Edukacyjny Nauczycieli w I-LO w Tarnowie
Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej
Autor artykułu: mgr Jerzy
Wałaszek |
©2026 mgr Jerzy Wałaszek
|
SDL_CreateWindow
| SPIS TREŚCI |
Rozdział jest tłumaczeniem oryginalnej instrukcji dla biblioteki SDL2.
Użyj tej funkcji, aby utworzyć okno na określonej pozycji ekranu, o podanych wymiarach i znacznikach.
SDL_Window* SDL_CreateWindow(const char* title,
int x,
int y,
int w,
int h,
Uint32 flags)
|
| title | tytuł okna kodowany w UTF-8 |
| x | pozycja x okna, SDL_WINDOWPOS_CENTERED lub SDL_WINDOWPOS_UNDEFINED |
| y | pozycja y okna, SDL_WINDOWPOS_CENTERED, or SDL_WINDOWPOS_UNDEFINED |
| w | szerokość okna we współrzędnych ekranowych |
| h | wysokość okna we współrzędnych ekranowych |
| flags | 0, jeden lub kilka znaczników SDL_WindowFlags połączonych bitową alternatywą; zobacz do Uwag. |
// Przykładowy program:
// Użycie SDL2 do utworzenia okna aplikacji
#include "SDL.h"
#include <stdio.h>
int main(int argc, char* argv[])
{
SDL_Window *window; // Deklaruj wskaźnik
SDL_Init(SDL_INIT_VIDEO); // Inicjalizuj SDL2
// Utwórz okno aplikacji z następującymi ustawieniami:
window = SDL_CreateWindow(
"An SDL2 window", // tytuł okna
SDL_WINDOWPOS_UNDEFINED, // początkowa pozycja x
SDL_WINDOWPOS_UNDEFINED, // początkowa pozycja y
640, // szerokość w pikselach
480, // wysokość w pikselach
SDL_WINDOW_OPENGL // znaczniki, patrz niżej
);
// Sprawdź, czy okno zostało utworzone z sukcesem
if (window == NULL)
{
// W przypadku, gdy okna nie udało się utworzyć...
printf("Could not create window: %s\n", SDL_GetError());
return 1;
}
// Okno jest otwarte: można rozpocząć tutaj pętlę programu (zobacz na SDL_PollEvent())
SDL_Delay(3000); // Na przykład wstrzymaj wykonanie przez 3000 milisekund
// Zamknij i usuń okno
SDL_DestroyWindow(window);
// Posprzątaj
SDL_Quit();
return 0;
}
|
| SDL_WINDOW_FULLSCREEN | okno pełnoekranowe. |
| SDL_WINDOW_FULLSCREEN_DESKTOP | okno pełnoekranowe w bieżącej rozdzielczości pulpitu. |
| SDL_WINDOW_OPENGL | okno do użytku z kontekstem OpenGL. |
| SDL_WINDOW_HIDDEN | okno ukryte. |
| SDL_WINDOW_BORDERLESS | okno bez dodatków. |
| SDL_WINDOW_RESIZABLE | okno skalowalne. |
| SDL_WINDOW_MINIMIZED | okno zminimalizowane. |
| SDL_WINDOW_MAXIMIZED | okno zmaksymalizowanie. |
| SDL_WINDOW_INPUT_GRABBED | okno z przechwyconym skupieniem wejścia. |
| SDL_WINDOW_ALLOW_HIGHDPI | okno powinno być utworzone w trybie high-DPI, jeśli jest wspierany (>= SDL 2.0.1). |
Znacznik SDL_WINDOW_SHOWN jest ignorowany przez SDL_CreateWindow(). Okno jest domyślnie widoczne, o ile nie został ustawiony znacznik SDL_WINDOW_HIDDEN. SDL_WINDOW_SHOWN można później sprawdzić z użyciem funkcji SDL_GetWindowFlags().
W systemie OS X komputera Apple musisz ustawić własność NSHighResolutionCapable Info.plist na YES, inaczej nie otrzymasz powierzchni graficznej w trybie High DPI w OpenGL.
Jeśli okno jest tworzone ze znacznikiem SDL_WINDOW_ALLOW_HIGHDPI, to jego rozmiar w pikselach może różnić się od rozmiaru we współrzędnych ekranowych na platformach ze wsparciem dla trybu high-DPI (np. iOS i Mac OS X). Użyj funkcji SDL_GetWindowSize(), aby sprawdzić rozmiar obszaru klienckiego we współrzędnych ekranowych, lub SDL_GL_GetDrawableSize() i SDL_GetRendererOutputSize(), aby sprawdzić rozmiar powierzchni rysunkowej w pikselach.
Jeśli okno pracuje jako pełnoekranowe, parametry szerokości w oraz wysokości h nie będą użyte. Jednakże ich niepoprawne wartości (np. zbyt duże) mogą spowodować wystąpienie błędu. Rozmiar okna jest właściwie ograniczony przy tworzeniu do 16384 x 16384 na wszystkich platformach.
![]() |
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2026 mgr Jerzy Wałaszek |
Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.