GetObject: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „= getObject = == Name == '''getObject''' - liefert die Pixeldaten für ein TBitmap-Objekt, welche dann z.B. für glTexImage2D weiterverwendet werden könne…“)
 
(Beschreibung)
Zeile 42: Zeile 42:
 
   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>
 +
 +
== 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:
 +
<source lang="pascal">
 +
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.
 
</source>
 
</source>

Version vom 5. September 2010, 16:27 Uhr

getObject

Name

getObject - liefert die Pixeldaten für ein TBitmap-Objekt, welche 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.