Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Opracowali: Piotr DejaVu Szawdyński, kamillo121
Biblioteki C/C++

SDL_SetVideoMode

[funkcja] Tworzy bufor będący powierzchnią ekranu.

Składnia

C/C++
#include <sdl/SDL.h>

SDL_Surface * SDL_SetVideoMode( int width, int height, int bitsperpixel, Uint32 flags );

Argumenty

ArgumentOpis
int widthSzerokość ekranu wyrażona w pikselach.
int heightWysokość ekranu wyrażona w pikselach.
int bitsperpixelLiczba bitów zajmowana przez jeden piksel. Gdy wartość wynosi 0 to funkcja ustawi liczbę bitów zgodną z aktualnym ustawieniem systemowym.
Uint32 flagsFlagi określające szczegółową konfigurację tworzonego bufora. Funkcja SDL_SetVideoModeprzyjmuje te same flagi co » SDL 1.2SDL_Surface. Flagi można łączyć za pomocą operatora logicznego lub. Opis znaczenia flag:
NazwaOpis
SDL_SWSURFACEPowierzchnia umieszczona w pamięci systemowej.
SDL_HWSURFACEPowierzchnia umieszczona w pamięci karty graficznej.
SDL_ASYNCBLITPowierzchnia wykorzystuje asynchroniczne przesyłanie danych na ekran gdy jest taka możliwość.
SDL_PREALLOCPowierzchnia, która wykorzystuje wcześniej zaalokowaną pamięć.
SDL_RLEACCELPrzyśpieszenie operacji na powierzchni, wykorzystującej klucze kolorów RLE.
SDL_SRCALPHAWykorzystanie przeźroczystości kanału alfa.
SDL_SRCCOLORKEYAktualizuj powierzchnię za pomocą kluczy kolorów.
SDL_HWACCELAktualizuj powierzchnię przy pomocy sprzętowego akceleratora graficzny karty.
SDL_RESIZABLEMozliwość zmiany rozmiaru powierzchni.
SDL_OPENGLBLITWspieraj aktualizacje powierzchni przy pomocy OpenGL.
SDL_OPENGLPowierzchnia współpracuje z OpenGL.
SDL_FULLSCREENPowierzchnia zajmuje cały ekran.
SDL_DOUBLEBUFPodwójnie buforowanie powierzchni.
SDL_HWPALETTEPowierzchnia posiada własną paletę kolorów.
SDL_ANYFORMATDowolny format pikseli.

Zwracana wartość

Zwraca wskaźnik na utworzoną powierzchnię w przypadku sukcesu. W przeciwnym wypadku funkcja zwraca NULL.

Powierzchnia, która została zwrócona przez funkcję nie może być zwalniana ręcznie. Powierzchnia zostanie zwolniona automatycznie przez funkcję » SDL 1.2SDL_Quit.

Opis szczegółowy

Funkcja tworzy bufor będący powierzchnią ekranu.

Dodatkowe informacje

  • Niniejsza funkcja powinna być wywoływana w głównym wątku aplikacji.
  • Podczas manipulacji poszczególnymi pikselami powierzchni ekranowej bądź kopiowaniu powierzchni z kanałem przeźroczystości zaleca się użycie flagi SDL_SWSURFACE by uniknąć narzutów spowodowanych kopiowaniem powierzchni między pamięcią karty graficznej a pamięcią RAM.
  • Flagę SDL_HWSURFACE najlepiej używać wtedy, kiedy kopiowane powierzchnie znajdują się w pamięci karty graficznej.

Nadawanie początkowego położenia okna

Jeżeli chcesz kontrolować położenie tworzonego okna na ekranie to możesz to zrobić za pomocą funkcji » SDL 1.2SDL_putenv ustawiając odpowiednie zmienne środowiskowe biblioteki SDL. Pamiętaj, że pozycję należy ustawić zanim zostanie wywołana funkcja SDL_SetVideoMode.

Okno wycentrowane

C/C++
SDL_putenv( "SDL_VIDEO_CENTERED=center" );

Okno na określonej pozycji

C/C++
SDL_putenv( "SDL_VIDEO_WINDOW_POS=10,20" );

Przykład

C/C++
#include <iostream>
#include <sdl/SDL.h>

int main( int argc, char * args[] )
{
    SDL_Init( SDL_INIT_VIDEO );
   
    SDL_Surface * ekran = SDL_SetVideoMode( 640, 480, 32, SDL_DOUBLEBUF | SDL_FULLSCREEN );
   
    if( ekran == NULL )
    {
        std::cout << "Inicjalizacja powierzchni ekranowej powiodła się";
    } else
    {
        std::cout << "Inicjalizacja powierzchni ekranowej nie powiodła się: " << SDL_GetError();
    }
   
    SDL_Quit();
   
    return 0;
}

Zagadnienia powiązane

SDL_SurfacePrzechowuje informacje o powierzchni. (struktura)
SDL_putenvModyfikuje wartości zmiennych środowiskowych biblioteki SDL.  (funkcja)
SDL_InitInicjalizuje bibliotekę SDL. (funkcja)
SDL_QuitKończy pracę z biblioteką SDL. (funkcja)

Linki zewnętrzne