GetObject
Aus DGL Wiki
Inhaltsverzeichnis
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.