SDL Surface: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
K (Beschreibung)
()
Zeile 1: Zeile 1:
{{Unvollständig}}
 
 
 
= SDL_Surface =
 
= SDL_Surface =
  
Zeile 11: Zeile 9:
 
  type
 
  type
 
   SDL_Surface=record
 
   SDL_Surface=record
     flags: Uint32;                         //nur Lesezugriff
+
     flags     : Uint32;           //nur Lesezugriff
     format: PSDL_Pixelformat;               //nur Lesezugriff
+
     format   : PSDL_Pixelformat; //nur Lesezugriff
     w, h: Integer;                         //nur Lesezugriff
+
     w, h     : Integer;         //nur Lesezugriff
     pitch: Uint16;                         //nur Lesezugriff
+
     pitch     : Uint16;           //nur Lesezugriff
     pixels: Pointer;                       //Lese- und Schreibzugriff
+
     pixels   : Pointer;         //Lese- und Schreibzugriff
     clip_rect: SDL_Rect;                   //nur Lesezugriff
+
     clip_rect : SDL_Rect;         //nur Lesezugriff
     refcount: Integer;                     //meistens nur Lesezugriff
+
     refcount : Integer;         //meistens nur Lesezugriff
 
   end;
 
   end;
  
Zeile 31: Zeile 29:
 
|-
 
|-
 
! ''format''  
 
! ''format''  
| Pixelformat (siehe [[SDL_Pixelformat]])
+
| Pixelformat (siehe [[SDL_PixelFormat]])
 
|-
 
|-
 
! ''w'', ''h''  
 
! ''w'', ''h''  
Zeile 55: Zeile 53:
  
 
Das Feld ''pixels'' ist ein Pointer auf die aktuelle Pixeldaten.
 
Das Feld ''pixels'' ist ein Pointer auf die aktuelle Pixeldaten.
''Hier bitte eine genauere Erläuterung der Pixeldaten''
+
Siehe [[SDL_PixelFormat#Beispiel|SDL_PixelFormat]].
  
 
Das Feld ''clip_rect'' ist das clipping rectangle wie es in [[SDL_SetClipRect]] gesetzt wurde.
 
Das Feld ''clip_rect'' ist das clipping rectangle wie es in [[SDL_SetClipRect]] gesetzt wurde.
Zeile 69: Zeile 67:
 
|-
 
|-
 
!SDL_ASYNCBLIT
 
!SDL_ASYNCBLIT
|Das Surface benutzt asynchrone [[blit]]s(???), wenn möglich
+
|Das Surface benutzt asynchrone [[blit]]s, wenn möglich
 
|-
 
|-
 
!SDL_ANYFORMAT
 
!SDL_ANYFORMAT
Zeile 96: Zeile 94:
 
|-
 
|-
 
!SDL_SRCCOLORKEY
 
!SDL_SRCCOLORKEY
|'''''Surface use colorkey blitting'''''
+
|Surface benutzt colorkey blitting
 
|-
 
|-
 
!SDL_RLEACCEL
 
!SDL_RLEACCEL

Version vom 28. August 2005, 23:07 Uhr

SDL_Surface


Name

SDL_Surface - Struktur der graphischen Oberfläche


Delphi-Spezifikation

type
 SDL_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 representiert eine Gebiet des 'graphischen' Speichers, Speicher in dem gezeichnet werden kann. 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_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.


Siehe auch

SDL_PixelFormat