str 2

str 2



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.

Tryb graficzny biblioteki

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.

Wyświetlamy komunikat

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:

www.linux.com.pl

57



Wyszukiwarka

Podobne podstrony:
266 5. UKŁADY I PRZEKSZTAŁTNIKI REZONANSOWE czątkowe kondensatora ma wartość mniejszą od zera, czas
Chemia rep35 cji zmiana entalpii ma, zgodnie z umową, wartości mniejsze od zera. Reakcje, w czasie k
SPRAWDŹ CZY TWÓJ DOWÓD OSOBISTY JEST GOTOWY
58934 Obraz5 (14) Eksploatacja EksploatacjaTransportowanie maszyny g Sprawdzić, czy całkowita wysok
zad2 2.    Sprawdzić czy estymator wyznaczony w zadaniu 1 jest estymatorem nieobciążo
52 (299) i sprawdzamy, czy bieżący element nie jest większy od następnego. Jeżeli tak, to zamieniamy
Sprawdźmy czy rzeczywiście Maksymalna praca jest wykonywana, gdy gaz rozpręża się przez nieskończeni
ScanImage03(2) Nazwisko: Opracować zapis w języku C funkcji sprawdzającej, czy ciąg danych w tablicy
•    sprawdzeniu, czy każdy przekrój belki jest w stanie bezpiecznie i
Wy 3 funkcje zapytań - sprawdzają czy pewna grupa faktów jest spełniona w danym stanie bazie danych
scan Zad.l. Czy ciąg an = n jest arytmetyczny ? Rozwiązanie: Należy sprawdzić, czy różnica an+l -an
img030 Wynikiem działanie programu jest przesłanie do pamięci środowiska koprocesora (14 - bajtowego
IMG!08 Zadanie IJ. Dokonaj oceny, czy wilgotność aktualna gleby jest odpowiednia do przeprowadzenia
Tu sytuacja jest odmienna. Tym razem test okazał się istotny (p = 0,00445 - wartość mniejsza od 0,05
DSC00482 Potencjał wody w Komórce y\ ma wartości mniejsze od 0, maksymalna możliwą wartością jest 0%

więcej podobnych podstron