GetObject: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
(Beschreibung)
K (Wiki-Syntax für Tabelle; Kategorie)
 
(2 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
= getObject =
+
= GetObject =
  
  
  
 
== Name ==
 
== Name ==
'''getObject''' - liefert die Pixeldaten für ein TBitmap-Objekt, welche dann z.B. für [[glTexImage2D]] weiterverwendet werden können.
+
'''GetObject''' - Windows-API-Funktion, welche die Pixeldaten für ein TBitmap-Objekt liefert, die dann z.B. für [[glTexImage2D]] weiterverwendet werden können.
 
 
 
 
  
 
== Delphi-Spezifikation ==
 
== Delphi-Spezifikation ==
  function '''getObject'''(''hgdiobj'': Cardinal; ''cbBuffer'': Integer; ''lpvObject'': Pointer): Integer;
+
  function '''GetObject'''(''hgdiobj'': Cardinal; ''cbBuffer'': Integer; ''lpvObject'': Pointer): Integer;
  
  
 
==Parameter==
 
==Parameter==
<table border=1 rules=all>
+
{| border="1" rules="all"
<tr>
+
! ''hgdiobj''
<td>''hgdiobj''</td>
+
| Hier muss ein Handle zu einem Bitmap übergeben werden.
<td>Hier muss ein Handle zu einem Bitmap übergeben werden.</td>
+
|-
</tr>
+
! ''cbBuffer''
<tr>
+
| Größe des Puffers für die Rückgabe.
<td>''cbBuffer''</td>
+
|-
<td>Größe des Puffers für die Rückgabe.</td>
+
! ''lpvObject''
</tr>
+
| Zeiger auf ein windows.BITMAP-Objekt
<tr>
+
|}
<td>''lpvObject''</td>
 
<td>Zeiger auf ein windows.BITMAP-Objekt</td>
 
</tr>
 
</table>
 
  
  
 
== Beschreibung ==  
 
== Beschreibung ==  
'''getObject''' liefert zu einem Bitmap-Handle die Windows-Bitmap-Struktur, aus der einfach die Adresse der Pixeldaten gelesen werden kann, um sie z.B. für [[glTexImage2D]] weiter zu verwenden.  
+
'''GetObject''' liefert zu einem Bitmap-Handle die Windows-Bitmap-Struktur, aus der einfach die Adresse der Pixeldaten gelesen werden kann, um sie z.B. für [[glTexImage2D]] weiter zu verwenden.  
  
 
Anwendungsbeispiel:
 
Anwendungsbeispiel:
 
<source lang="pascal">
 
<source lang="pascal">
 
var
 
var
   bm: tBitmap;  // Delphi-Bitmap
+
   bm: TBitmap;  // Delphi-Bitmap
 
   buffer: windows.BITMAP;  
 
   buffer: windows.BITMAP;  
 
begin
 
begin
   bm := tBitmap.Create;
+
   bm := TBitmap.Create;
 
   // Weitere Operationen, wie bm.loadFromFile o.ä.
 
   // Weitere Operationen, wie bm.loadFromFile o.ä.
   getObject(bm.Handle,sizeof(buffer),@buffer);
+
   GetObject(bm.Handle,sizeof(buffer),@buffer);
 
   // buffer.bmBits enthält nun die Adresse der Pixeldaten, die von glTexImage2D genutzt werden kann.
 
   // buffer.bmBits enthält nun die Adresse der Pixeldaten, die von glTexImage2D genutzt werden kann.
 
</source>
 
</source>
  
 
== Alternativen ==
 
== Alternativen ==
getObject ist eine Windows-API-Funktion und funktioniert generell mit allen Bitmaps für die ein Bitmap-Handle bekannt ist; für TBitmap im speziellen kann alternativ auch die Property Scanline mit dem Index height-1 aufgerufen werden:
+
'''GetObject''' ist eine Windows-API-Funktion und funktioniert generell mit allen Bitmaps, für die ein Bitmap-Handle bekannt ist; für TBitmap im speziellen kann alternativ auch die Property Scanline mit dem Index height-1 aufgerufen werden:
 
<source lang="pascal">
 
<source lang="pascal">
 
var
 
var
   bm: tBitmap;  // Delphi-Bitmap
+
   bm: TBitmap;  // Delphi-Bitmap
 
begin
 
begin
   bm := tBitmap.Create;
+
   bm := TBitmap.Create;
 
   // Weitere Operationen, wie bm.loadFromFile o.ä.
 
   // Weitere Operationen, wie bm.loadFromFile o.ä.
 
   // bm.ScanLine[bm.height-1] enthält nun die Adresse der Pixeldaten, die von glTexImage2D genutzt werden kann.
 
   // bm.ScanLine[bm.height-1] enthält nun die Adresse der Pixeldaten, die von glTexImage2D genutzt werden kann.
 
</source>
 
</source>
 +
 +
== Fehlermeldungen ==
 +
Falls die Funktion fehlschlägt, ist der Rückgabewert 0.
 +
 +
[[Kategorie:WinAPI]]

Aktuelle Version vom 18. September 2010, 04:04 Uhr

GetObject

Name

GetObject - Windows-API-Funktion, welche die Pixeldaten für ein TBitmap-Objekt liefert, die dann z.B. für glTexImage2D weiterverwendet werden können.

Delphi-Spezifikation

function GetObject(hgdiobj: Cardinal; cbBuffer: Integer; lpvObject: Pointer): Integer;


Parameter

hgdiobj Hier muss ein Handle zu einem Bitmap übergeben werden.
cbBuffer Größe des Puffers für die Rückgabe.
lpvObject Zeiger auf ein windows.BITMAP-Objekt


Beschreibung

GetObject liefert zu einem Bitmap-Handle die Windows-Bitmap-Struktur, aus der einfach die Adresse der Pixeldaten gelesen werden kann, um sie z.B. für glTexImage2D weiter zu verwenden.

Anwendungsbeispiel:

var
  bm: TBitmap;  // Delphi-Bitmap
  buffer: windows.BITMAP; 
begin
  bm := TBitmap.Create;
  // Weitere Operationen, wie bm.loadFromFile o.ä.
  GetObject(bm.Handle,sizeof(buffer),@buffer);
  // buffer.bmBits enthält nun die Adresse der Pixeldaten, die von glTexImage2D genutzt werden kann.

Alternativen

GetObject ist eine Windows-API-Funktion und funktioniert generell mit allen Bitmaps, für die ein Bitmap-Handle bekannt ist; für TBitmap im speziellen kann alternativ auch die Property Scanline mit dem Index height-1 aufgerufen werden:

var
  bm: TBitmap;  // Delphi-Bitmap
begin
  bm := TBitmap.Create;
  // Weitere Operationen, wie bm.loadFromFile o.ä.
  // bm.ScanLine[bm.height-1] enthält nun die Adresse der Pixeldaten, die von glTexImage2D genutzt werden kann.

Fehlermeldungen

Falls die Funktion fehlschlägt, ist der Rückgabewert 0.