GetObject: Unterschied zwischen den Versionen
Aus DGL Wiki
Tilman (Diskussion | Beiträge) (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…“) |
Tilman (Diskussion | Beiträge) (→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, 15:27 Uhr
Inhaltsverzeichnis
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.