bmap_lock(BMAP* bmap,var mode)
Lädt und verriegelt eine Bitmap und gibt das Texturformat zurück.
Diese Anweisung wird meistens benutzt, um in die Bitmap zu schreiben oder daraus
zu lesen.
Parameter:
bmap |
Name oder Pointer einer Bitmap |
mode |
immer 0 |
Rückgabewert:
0 |
ungültiger Pointer oder unbekanntes Format. |
4 |
4 bit komprimierte DDS-Textur. |
88 |
16 bit UV Textur, für Effekte oder Shader. |
565 |
16 bit RGB Textur ohne Alphatransparenz. |
888 |
24 bit RGB Texture ohne Alphatransparenz. |
1555 |
16 bit ARGB Textur mit 1 bit Alpha, für Sprites oder Overlays. |
4444 |
16 bit ARGB Textur mit 4 bit Alpha. |
8888 |
32 bit ARGB Textur mit 8 bit Alpha. |
12 |
16 bit Fließkommaformat |
14 |
32 bit Fließkommaformat |
122 |
2x16 bit Fließkommaformat. A8 |
144 |
2x32 bit Fließkommaformat. A8 |
12222 |
4x16 bit Fließkommaformat |
14444 |
4x32 bit Fließkommaformat |
Geschwindigkeit:
Mittel
Bemerkungen:
- Das zurückgelieferte Format hängt von der Verwendung der Bitmap und ihrem ursprünglichen Dateiformat ab. DDS Dateien produzieren komprimierte Texturen, PCX und BMP Dateien produzieren 16 bit Texturen, und TGA Dateien produzieren 24 oder 32 bit Texturen. Pixel-Anweisungen funktionieren nur mit Formaten ab 565.
- Renderziel-Bitmaps müssen über bmap_to_format konvertiert werden, ehe sie verriegelt werden können.
- Um auf dem Bildschirm sichtbar zu sein, muß eine Bitmap entriegelt sein.
- Nach dem Verriegeln einer unkomprimierten Bitmap können Sie über den Pointer bmap.finalbits direkt auf deren Textureninhalt zugreifen. Die Texturengröße (in Bytes) wird durch (mybmap.finalwidth * mybmap.finalheight * bmap.finalbytespp)gegeben. Normalerweise ist die Größe der Textur eine Zeierpotenz und nicht identisch mit der ursprünglichen Bildgröße, die von bmap_width und bmap_height zurückgeliefert wird.
- Auf einem Stand-alone-Server kann nicht auf den Inhalt einer Bitmap zugegriffen werden und auch nicht vor dem ersten Frame, wenn das DirectX-Device noch nicht geöffnet ist.
Beispiel:
// paint a red cross into a bmap
var format;
var pixel;
format = bmap_lock(tgablitz,0);
if (format >= 565) {
pixel = pixel_for_vec(vector(0,0,255),100,format); // red color
pixel_to_bmap(tgablitz,10,10,pixel);
pixel_to_bmap(tgablitz,10,11,pixel);
pixel_to_bmap(tgablitz,10,12,pixel);
pixel_to_bmap(tgablitz,10,13,pixel);
pixel_to_bmap(tgablitz,10,14,pixel);
pixel_to_bmap(tgablitz,8,12,pixel);
pixel_to_bmap(tgablitz,9,12,pixel);
pixel_to_bmap(tgablitz,11,12,pixel);
pixel_to_bmap(tgablitz,12,12,pixel);
}
bmap_unlock(tgablitz); // unlock the locked bitmap
Siehe auch:
bmap_unlock, bmap_format, bmap_to_format, pixel_to_bmap, pixel_for_bmap
► Aktuelle Version Online