sprawdzić, czy wynikiem SDL_Init jest wartość mniejsza od zera. Bardzo ważne jest, aby do funkcji atexit, obsługującej zakończenie działania aplikacji, podać nazwę funkcji, która ma być wywołana w momencie zakończenia pracy. W naszym przypadku jest to SDL_Quit. Wtedy, jeśli zakończymy działanie aplikacji, np. funkcją exit, to system samoczynnie wywoła SDL_Quit.
W bardzo podobny sposób postępujemy w przypadku SDL_Ttf - Listing 1.
Operacje inicjalizacji nie powodują, że można zobaczyć coś na ekranie. W tym celu należy uruchomić tryb graficzny, w oknie bądź w trybie pełnego ekranu:
SDL_Surface *screen=NULL; video_bpp=32;
video_f1ags=SDL_HWSURFACE;
screen=SDL_SetVideoMode(640. 480. video_bpp, video_flags);
Dwa pierwsze parametry (640 i 480) funkcji SDL_SetVideo-Mode to oczywiście rozdzielczość. Następnie podajemy tryb kolorów - w naszym przypadku będzie to tryb trzydzie-stodwubitowy. Ważny dla nas jest także ostatni parametr (zmienna video_flags), w którym określamy rodzaj pracy: na pełnym ekranie (w zmiennej video_flags umieszczamy wartość SDL_FULLSCREEN) czy w oknie. Ustalamy w nim również, czy grafika, którą będziemy tworzyć przy użyciu zmiennej surface, ma być przechowywana w pamięci karty graficznej: SDL_HWSURFACE, czy też w pamięci RAM komputera: SDL_SWSURFACE. Oczywiście najlepszym wyborem jest ten pierwszy przypadek, który powoduje, że takie operacje, jak kopiowanie powierzchni, są wykonywane sprzętowo przez kartę graficzną. W naszej aplikacji będziemy korzystać z trybu okienkowego, który w przypadku, gdy program zawiesi się, da nam możliwość przełączenia się na konsolę i usunięcie procesu poleceniem ki 11.
Zanim wyświetlimy tekst, należy wczytać czcionkę. Tę operację wykonamy jedną linijką kodu (wywołanie funkcji TTF_0penFont):
TTF_Font *font;
font = TTF_OpenFont("./data/czcionka.ttf". 34); TTF_SetFontStyle(font. TTF_STYLE_NORMAL):
Oprócz załadowania czcionki, możemy ustalić sposób jej wyświetlania (funkcja TTF_SetFontStyle). W powyższym przykładzie jest to styl normalny, ale wzorem parametrów, które ustalamy w dowolnym edytorze tekstów, czcionka może być pogrubiona, pochylona, a nawet podkreślona.
Właściwe utworzenie tekstu realizuje funkcja TTF_Ren-derText_Blended (zmienna col_white to definicja koloru białego - trójka RGB; ostatni czwarty argument nie jest używany):
Rysunek 1. Diagram działania programu „Hello World”
SDL_Co1or col_white=|Oxff, Oxff. Oxff, 0x00}; msg_surface=TTF_RenderText_Blended(font.
"Hello World!!!", col_white);
Funkcja tworzy powierzchnię (typ SDL_Surface), na której znajduje się napis.
Zastosowane przez nas rozwiązanie generuje napis wysokiej jakości, ponieważ włączony jest antyaliasing, a sam napis powstaje przy użyciu trzydziestodwubitowe-go koloru. Samo wywołanie funkcji tworzącej napis nie spowoduje jednak, że pojawi się on na ekranie. Musimy przenieść go na główną powierzchnię ekranu, reprezentowaną przez zmienną screen, pod określone miejsce, które opisuje zmienna dst_rect - jest to prostokąt o wysokości h i szerokości w. Wymienione dwa parametry odczytujemy z powierzchni napisu. Położenie prostokąta na ekranie (jest on umieszczany na środku ekranu) ustalamy w następujący sposób:
57