SDL Surface: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
K (Einige Dinge ausgebessert.)
(Hinweis auf deprecation.)
 
(9 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Unvollständig}}
+
= 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 31: Zeile 32:
 
|-
 
|-
 
! ''format''  
 
! ''format''  
| Pixelformat (siehe [[SDL_Pixelformat]]
+
| Pixelformat (siehe [[SDL_PixelFormat]])
 
|-
 
|-
 
! ''w'', ''h''  
 
! ''w'', ''h''  
Zeile 46: 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.
Der Video Framebuffer 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 Felder ''w'' und ''h'' 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 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 74:
 
|-
 
|-
 
!SDL_ASYNCBLIT
 
!SDL_ASYNCBLIT
|Das Surface benutzt asynchrone blits(???), wenn möglich
+
|Das Surface benutzt asynchrone [[blit]]s, wenn möglich
 
|-
 
|-
 
!SDL_ANYFORMAT
 
!SDL_ANYFORMAT
Zeile 82: Zeile 87:
 
!SDL_FULLSCREEN
 
!SDL_FULLSCREEN
 
|Das Surface nutzt eine Vollbildanzeige (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
Zeile 96: Zeile 104:
 
|-
 
|-
 
!SDL_SRCCOLORKEY
 
!SDL_SRCCOLORKEY
|Surface use colorkey blitting
+
|Surface benutzt colorkey blitting
 
|-
 
|-
 
!SDL_RLEACCEL
 
!SDL_RLEACCEL
Zeile 107: Zeile 115:
 
|Das Surface benutzt bereitgestellten Speicher
 
|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