SDL CreateRGBSurface: Unterschied zwischen den Versionen
I0n0s (Diskussion | Beiträge) () |
I0n0s (Diskussion | Beiträge) K (Kategorie verbessert) |
||
Zeile 85: | Zeile 85: | ||
[[SDL_CreateRGBSurfaceFrom]], [[SDL_FreeSurface]], [[SDL_SetVideoMode]], [[SDL_LockSurface]], [[SDL_PixelFormat]], [[SDL_Surface]], [[SDL_SetAlpha]], [[SDL_SetColorKey]] | [[SDL_CreateRGBSurfaceFrom]], [[SDL_FreeSurface]], [[SDL_SetVideoMode]], [[SDL_LockSurface]], [[SDL_PixelFormat]], [[SDL_Surface]], [[SDL_SetAlpha]], [[SDL_SetColorKey]] | ||
− | [[Kategorie:SDL| | + | [[Kategorie:SDL|CreateRGBSurface]] |
Version vom 19. August 2005, 13:18 Uhr
Inhaltsverzeichnis
SDL_CreateRGBSurface
SDL_CreateRGBSurface
SDL_CreateRGBSurface - Erstellt eine leere SDL_Surface
Delphi-Spezifikation
function SDL_CreateRGBSurface(flags : Uint32; width, heigth, bitsPerPixel: Integer; Rmask, Gmask, Bmask, Amask: Uint32): PSDL_Surface
Parameter
flags | Zu setzende Flags | |
---|---|---|
width, heigth | Grösse der Surface | |
bitsPerPixel | Anzahl der Bits pro Pixel (siehe SDL_Surface) | |
Rmask, Gmask, Bmask, Amask | Benötigt für 24 und 32 Bit Surfaces. | Beschreibt im welchen 'Teil' des Pixels sich z.b. Rot befindet. |
Beschreibung
Erstellt eine leere SDL_Surface im Speicher (darf erst nach SDL_SetVideoMode aufgerufen werden).
Hinweise
Wenn bitsPerPixel 8 ist, wird eine leere (Farb)Palette in SDL_PixelFormat benutzt, ansonsten wird ein 'packed-pixel' SDL_PixelFormat erstellt, da die [RGBA]Masken benutzt.
Wenn ein Alphakanal angeben ist (wenn Amask ungleich 0 ist), wird die SDL_SRCALPHA flag automatisch gesetzt.
Man kann sie mit Hilfe eines Aufrufes von SDL_SetAlpha nach der Surface-Erstellung entfernen.
Manchmal kann das Setzten der Alpha Maske komische Ergebnisse verursachen. Dies kann man umgehen indem man den Amask Parameter auf 0 setzt, aber die SDL_SRCALPHA flag setzt und danach SDL_SetAlpha mit dem SDL_SRCALPHA flag benutzt.
Fehlermeldungen
SDL_CreateRGBSurface gibt nil zurück, wenn ein Fehler aufgetreten ist.
Beispiel
//Erstellen einer 32-Bit surface wie OpenGL sie für Texturen erwartet var surface: PSDL_Surface; rmask, gmask, bmask, amask: Uint32; //SDL interpretiert jeden Pixel als 32-Bit Wert. //deshalb muss unsere Maske auf der Byte Ordnung des Computers basieren if SDL_BYTEORDER = SDL_BIG_ENDIAN then begin rmask:=$ff000000; gmask:=$00ff0000; bmask:=$0000ff00; amask:=$000000ff; end else begin rmask:=$000000ff; gmask:=$0000ff00; bmask:=$00ff0000; amask:=$ff000000; end; surface:=SDL_CreateRGBSurface(SDL_SWSURFACE, width, height, 32,rmask, gmask, bmask, amask); if (surface=nil) then begin writeln('CreateRGBSurface fehlgeschlagen'); exit; end
Siehe auch
SDL_CreateRGBSurfaceFrom, SDL_FreeSurface, SDL_SetVideoMode, SDL_LockSurface, SDL_PixelFormat, SDL_Surface, SDL_SetAlpha, SDL_SetColorKey