SDL Surface: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
K (Hinweise: zu SDL_RESIZABLE)
(Hinweis auf deprecation.)
 
(2 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
= SDL_Surface =
 
= SDL_Surface =
  
<br>
+
 
 +
 
 
== Name ==
 
== Name ==
 
'''SDL_Surface''' - Struktur der graphischen Oberfläche
 
'''SDL_Surface''' - Struktur der graphischen Oberfläche
  
<br>
+
 
 +
 
 
== Delphi-Spezifikation ==
 
== Delphi-Spezifikation ==
 
  type
 
  type
Zeile 20: Zeile 22:
 
   //es existieren weitere private Felder die nicht aufgeführt sind
 
   //es existieren weitere private Felder die nicht aufgeführt sind
  
<br>
+
 
 +
 
  
 
== Parameter ==
 
== Parameter ==
Zeile 44: Zeile 47:
 
|}
 
|}
  
<br>
+
 
 +
 
  
 
== Beschreibung ==  
 
== Beschreibung ==  
Eine '''SDL_Surface''' representiert eine Gebiet des 'graphischen' Speichers, Speicher in dem gezeichnet werden kann.
+
Eine '''SDL_Surface''' repräsentiert bis SDL-Version 2.0 eine Gebiet des 'graphischen' Speichers, Speicher in dem gezeichnet werden kann.
 +
 
 +
Ab Version 2.0 werden hierfür TSDL_Window und TSDL_Texture benutzt.
 +
 
 
Der Video Framebuffer wird als '''SDL_Surface''' von [[SDL_SetVideoMode]] und [[SDL_GetVideoSurface]] zurückgegeben.
 
Der Video Framebuffer wird als '''SDL_Surface''' von [[SDL_SetVideoMode]] und [[SDL_GetVideoSurface]] zurückgegeben.
  
Zeile 108: Zeile 115:
 
|Das Surface benutzt bereitgestellten Speicher
 
|Das Surface benutzt bereitgestellten Speicher
 
|}
 
|}
 
<br>
 
  
 
== Hinweise ==
 
== Hinweise ==

Aktuelle Version vom 7. September 2013, 11:00 Uhr

SDL_Surface

Name

SDL_Surface - Struktur der graphischen Oberfläche


Delphi-Spezifikation

type
 TSDL_Surface=record
   flags     : Uint32;           //nur Lesezugriff
   format    : PSDL_Pixelformat; //nur Lesezugriff
   w, h      : Integer;          //nur Lesezugriff
   pitch     : Uint16;           //nur Lesezugriff
   pixels    : Pointer;          //Lese- und Schreibzugriff
   clip_rect : SDL_Rect;         //nur Lesezugriff
   refcount  : Integer;          //meistens nur Lesezugriff
 end;
 //es existieren weitere private Felder die nicht aufgeführt sind



Parameter

flags Gesetzte Flags
format Pixelformat (siehe SDL_PixelFormat)
w, h Breite und Höhe der Surface
pitch Länge einer Surface-Scanline in Bytes
clip_rect Surface Clipping Rechteck
refcount Referenzzähler - wird beim Freigeben der Surface verwendet



Beschreibung

Eine SDL_Surface repräsentiert bis SDL-Version 2.0 eine Gebiet des 'graphischen' Speichers, Speicher in dem gezeichnet werden kann.

Ab Version 2.0 werden hierfür TSDL_Window und TSDL_Texture benutzt.

Der Video Framebuffer wird als SDL_Surface von SDL_SetVideoMode und SDL_GetVideoSurface zurückgegeben.

Die Felder w und h sind Werte die die Breite und Höhe der Surface in Pixeln wiedergeben.

Das Feld pixels ist ein Pointer auf die aktuelle Pixeldaten. Siehe SDL_PixelFormat.

Das Feld clip_rect ist das clipping rectangle wie es in SDL_SetClipRect gesetzt wurde.

Das Feld flags unterstütz die folgenden per or verknüpften Werte:

SDL_SWSURFACE Das Surface wird im Systemspeicher gespeichert
SDL_HWSURFACE Das Surface wird im Grafikspeicher gespeichert
SDL_ASYNCBLIT Das Surface benutzt asynchrone blits, wenn möglich
SDL_ANYFORMAT Erlaub jegliche Pixelformate (Display Surface)
SDL_HWPALETTE Das Surface hat eine exklusive Palette
SDL_DOUBLEBUF Das Surface ist doublebuffered (Display Surface)
SDL_FULLSCREEN Das Surface nutzt eine Vollbildanzeige (Display Surface)
SDL_NOFRAME Das Fenster hat deine Titelleiste oder Framedekoration. Bei SDL_FULLSCREEN ist es automatisch gesetzt.
SDL_OPENGL Das Surface hat einen OpenGL-Kontext (Display Surface)
SDL_OPENGLBLIT Das Surface unterstützt OpenGL blitting (Display Surface). HINWEIS: Dieses Flag wird aus Kompatibilitätsgründen weitergeführt und wird nicht für neuen Quelltext empfohlen.
SDL_RESIZABLE Das Surface kann in seiner Größe verändert werden (Display Surface)
SDL_HWACCEL Das Surface blit benutzt Hardwarebeschleunigung
SDL_SRCCOLORKEY Surface benutzt colorkey blitting
SDL_RLEACCEL Colorkey blitting wird durch RLE beschleunigt
SDL_SRCALPHA Surface blit benutzt Alpha-Blending
SDL_PREALLOC Das Surface benutzt bereitgestellten Speicher

Hinweise

Um auf die Pixeldaten zuzugreifen kann es nötig sein die Surface zu sperren (siehe SDL_LockSurface).

refcount gibt an wieviele Zeiger auf die Surface gesetzt wurden. Wenn dieser Wert 1 ist, wird die Surface mit SDL_FreeSurface freigegeben, andernfalls nur der Wert erniedrigt.

SDL_RESIZABLE: Unter Windows führt das Grössenverändern zum Verlust des OpenGL-Kontext.

Siehe auch

SDL_PixelFormat