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

SDL_Surface

[struktura] Przechowuje informacje o powierzchni.

Składnia

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

typedef struct SDL_Surface
{
    Uint32 flags;
    SDL_PixelFormat * format;
    int w, h;
    Uint16 pitch;
    void * pixels;
   
    int offset;
    struct private_hwdata * hwdata;
   
    SDL_Rect clip_rect;
   
    Uint32 unused1;
    Uint32 locked;
    struct SDL_BlitMap * map;
    unsigned int format_version;
   
    int refcount;
} SDL_Surface;

Opis szczegółowy

Struktura przechowująca informacje o obrazie. W bibliotece SDL obraz określony został terminem powierzchnia (ang. surface).

Pola struktury

PoleOpis
Uint32 flagsParametry powierzchni graficznej ustawiane za pomocą zdefiniowanych stałych. Stałe są flagami bitowymi.
SDL_PixelFormat* formatAdres struktury » SDL 1.2SDL_PixelFormat.
int w,hSzerokość i wysokość powierzchni mierzona w pikselach.
Uint16 pitchPole określa liczbę bajtów na jedną linię ekranową, pomaga w obliczaniu początkowego adresu dowolnego wiersza obrazu.
void* pixelsWskaźnik na obszar pamięci przechowywujący bufor obrazu. Dostęp do powieszchni powinien być blokowany za pomocą funkcji » SDL 1.2SDL_LockSurface przed uzyskaniem dostępu do tego pola.
int offsetPole prywatne.
struct private_hwdata *hwdataPole prywatne.
SDL_Rect clip_rectObiekt struktury SDL_Rect za pomocą której możemy obciąć obszar tekstury. Więcej szczegółów na ten temat w funkcji » SDL 1.2SDL_SetClipRect.
Uint32 unused1Pole prywatne.
Uint32 locked Pole prywatne.
struct SDL_BlitMap *mapPole prywatne.
unsigned int format_versionPole prywatne.
int refcountLicznik odwołań do struktury SDL_Surface. Wykorzystywany przy zwalnianiu pamięci.

Flagi dla pola struktury flags

Opis poszczególnych stałych zdefiniowanych jako flagi:
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.

Przykład

C/C++
SDL_Surface * pPowierzchnia = null;
//(...)
pPowierzchnia = SDL_LoadBMP( "grafika.bmp" );
//(...)
SDL_FreeSurface( pPowierzchnia );

Zagadnienia powiązane

SDL_RectDefiniuje obszar w kształcie prostokąta. (struktura)
SDL_PixelFormatOpisuje format zapisu pikseli. (struktura)
SDL_LoadBMPWczytuje powierzchnię z pliku w formacie BMP. (funkcja)
SDL_FreeSurfaceZwalnia pamięć zajmowaną przez powierzchnię. (funkcja)

Linki zewnętrzne