Serwis Edukacyjny
Nauczycieli
w I-LO w Tarnowie

Do strony głównej I LO w Tarnowie

Materiały dla uczniów liceum

  Wyjście       Spis treści       Wstecz       Dalej  

©2021 mgr Jerzy Wałaszek
I LO w Tarnowie

logo

Autor artykułu: mgr Jerzy Wałaszek

 

SDL2

Interfejs SDL2:

SDL_CreateWindow

Rozdziały:
     Interfejs SDL2 wg nazw
     Interfejs SDL2 wg kategorii

 

Rozdział jest tłumaczeniem oryginalnej instrukcji dla biblioteki SDL2. Oryginał znajdziesz pod tym adresem: https://wiki.libsdl.org/CategoryAPI.

SDL_CreateWindow

Użyj tej funkcji, aby utworzyć okno na określonej pozycji ekranu, o podanych wymiarach i znacznikach.

Składnia

SDL_Window* SDL_CreateWindow(const char* title,
                             int         x,
                             int         y,
                             int         w,
                             int         h,
                             Uint32      flags)

Parametry funkcji

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.

Wartość zwracana

Zwraca utworzone okno lub NULL w przypadku błędu; wywołaj funkcję SDL_GetError(), aby otrzymać więcej informacji na temat błędu.

Przykładowy kod

// 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;
}

Uwagi

Parametr flags może być jedną z wartości połączonych alternatywą bitową:
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.

Wersja

Funkcja jest dostępna od SDL 2.0.0.

Powiązane funkcje

 

Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2021 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: i-lo@eduinf.waw.pl

Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.