SDL Surface: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
()
 
(Hinweis auf deprecation.)
 
(12 dazwischenliegende Versionen von 5 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
   SDL_Surface=record
+
   '''TSDL_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;
  
 
   //es existieren weitere private Felder die nicht aufgeführt sind
 
   //es existieren weitere private Felder die nicht aufgeführt sind
  
<br>
+
 
 +
 
  
 
== Parameter ==
 
== Parameter ==
Zeile 26: Zeile 29:
 
{| border="1" rules="all"
 
{| border="1" rules="all"
 
! ''flags''  
 
! ''flags''  
| Gesetzten Flags
+
| Gesetzte Flags
 
|-
 
|-
 
! ''format''  
 
! ''format''  
| Pixelformat (siehe [[SDL_Pixelformat]]
+
| Pixelformat (siehe [[SDL_PixelFormat]])
 
|-
 
|-
 
! ''w'', ''h''  
 
! ''w'', ''h''  
Zeile 38: Zeile 41:
 
|-
 
|-
 
! ''clip_rect''  
 
! ''clip_rect''  
| Surface clip Rechteck
+
| Surface Clipping Rechteck
 
|-
 
|-
 
! ''refcount''  
 
! ''refcount''  
| Referencecount - wird beim Freigeben der Surface verwendet
+
| Referenzzähler - wird beim Freigeben der Surface verwendet
 
|}
 
|}
  
<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.
Der Video Frambuffer wird als SDL_Surface von [[SDL_SetVideoMode]] und [[SDL_GetVideoSurface]] zurückgegeben.
+
 
 +
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 ''w'' und ''h'' Felder sind Werte die die Breite und Höhe der Surface in Pixeln wiedergeben.
+
Die Felder ''w'' und ''h'' sind Werte die die Breite und Höhe der Surface in Pixeln wiedergeben.
  
Das ''pixels'' Feld 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 ''clip_rect'' Feld 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.
  
Das ''flags'' Feld unterstütz die folgenden per '''or''' verknüpften Werte:
+
Das Feld ''flags'' unterstütz die folgenden per '''or''' verknüpften Werte:
  
 
{| border="1" rules="all"
 
{| border="1" rules="all"
 
!SDL_SWSURFACE
 
!SDL_SWSURFACE
|Surface is stored in system memory
+
|Das Surface wird im Systemspeicher gespeichert
 
|-
 
|-
 
!SDL_HWSURFACE
 
!SDL_HWSURFACE
|Surface is stored in video memory
+
|Das Surface wird im Grafikspeicher gespeichert
 
|-
 
|-
 
!SDL_ASYNCBLIT
 
!SDL_ASYNCBLIT
|Surface uses asynchronous blits if possible
+
|Das Surface benutzt asynchrone [[blit]]s, wenn möglich
 
|-
 
|-
 
!SDL_ANYFORMAT
 
!SDL_ANYFORMAT
|Allows any pixel-format (Display surface)
+
|Erlaub jegliche Pixelformate (Display Surface)
 
|-
 
|-
 
!SDL_HWPALETTE
 
!SDL_HWPALETTE
|Surface has exclusive palette
+
|Das Surface hat eine exklusive Palette
 
|-
 
|-
 
!SDL_DOUBLEBUF
 
!SDL_DOUBLEBUF
|Surface is double buffered (Display surface)
+
|Das Surface ist doublebuffered (Display Surface)
 
|-
 
|-
 
!SDL_FULLSCREEN
 
!SDL_FULLSCREEN
|Surface is full screen (Display Surface)
+
|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
 
!SDL_OPENGL
|Surface has an OpenGL context (Display Surface)
+
|Das Surface hat einen OpenGL-Kontext (Display Surface)
 
|-
 
|-
 
!SDL_OPENGLBLIT
 
!SDL_OPENGLBLIT
|Surface supports OpenGL blitting (Display Surface). NOTE: This option is kept for compatibility only, and is not recommended for new code.
+
|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
 
!SDL_RESIZABLE
|Surface is resizable (Display Surface)
+
|Das Surface kann in seiner Größe verändert werden (Display Surface)
 
|-
 
|-
 
!SDL_HWACCEL
 
!SDL_HWACCEL
|Surface blit uses hardware acceleration
+
|Das Surface blit benutzt Hardwarebeschleunigung
 
|-
 
|-
 
!SDL_SRCCOLORKEY
 
!SDL_SRCCOLORKEY
|Surface use colorkey blitting
+
|Surface benutzt colorkey blitting
 
|-
 
|-
 
!SDL_RLEACCEL
 
!SDL_RLEACCEL
|Colorkey blitting is accelerated with RLE
+
|Colorkey blitting wird durch RLE beschleunigt
 
|-
 
|-
 
!SDL_SRCALPHA
 
!SDL_SRCALPHA
|Surface blit uses alpha blending
+
|Surface blit benutzt Alpha-Blending
 
|-
 
|-
 
!SDL_PREALLOC
 
!SDL_PREALLOC
|Surface uses preallocated memory
+
|Das Surface benutzt bereitgestellten Speicher
 
|}
 
|}
  
<br>
 
 
== Hinweise ==
 
== Hinweise ==
Um auf die Pixeldaten zuzugreifen kann es nötig sein die Surface zu sperren (siehe [[SDL_LockSurface]]
+
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.
 
''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.  
 
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.
 
<br>
 
<br>
 +
 
== Siehe auch ==
 
== Siehe auch ==
 
[[SDL_PixelFormat]]
 
[[SDL_PixelFormat]]
  
 
[[Kategorie:SDL|Surface]]
 
[[Kategorie:SDL|Surface]]

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