std.android.native_window
ANativeWindow-Bindings: Surface-Handle für OpenGL ES-Rendering und direktes Pixel-Schreiben. Das ANativeWindow-Handle wird über die App-Glue-Callbacks (APP_CMD_INIT_WINDOW) bereitgestellt.
→ std.android · std.android.gles2 · std.android.app_glue
Verwendung
import std.android.native_window;
// Fenstergröße abfragen
var w: int64 := ANativeWindowGetWidth(app.window);
var h: int64 := ANativeWindowGetHeight(app.window);
// Format setzen (RGBA_8888)
ANativeWindowSetBuffersGeometry(app.window, w, h, WINDOW_FORMAT_RGBA_8888);
// Direkt in Puffer schreiben
var buf: ANativeWindowBuffer;
ANativeWindowLock(app.window, &buf, nil);
// buf.bits enthält Zeiger auf Pixel-Daten
ANativeWindowUnlockAndPost(app.window);
Konstanten
| Konstante | Beschreibung |
|---|---|
WINDOW_FORMAT_RGBA_8888 | 32-Bit RGBA (Standard) |
WINDOW_FORMAT_RGBX_8888 | 32-Bit RGB (ohne Alpha) |
WINDOW_FORMAT_RGB_565 | 16-Bit RGB |
Funktionen
| Signatur | Sichtbarkeit | Beschreibung |
|---|---|---|
ANativeWindowGetWidth(window: *ANativeWindow): int64 | pub | Gibt Fensterbreite in Pixeln zurück |
ANativeWindowGetHeight(window: *ANativeWindow): int64 | pub | Gibt Fensterhöhe in Pixeln zurück |
ANativeWindowGetFormat(window: *ANativeWindow): int64 | pub | Gibt Pixelformat zurück |
ANativeWindowSetBuffersGeometry(window: *ANativeWindow, width: int64, height: int64, format: int64): int64 | pub | Setzt Puffergröße und -format |
ANativeWindowLock(window: *ANativeWindow, outBuffer: *ANativeWindowBuffer, inOutDirtyBounds: pchar): int64 | pub | Sperrt Fenster für direktes Schreiben |
ANativeWindowUnlockAndPost(window: *ANativeWindow): int64 | pub | Entsperrt Fenster und zeigt Inhalt an |
ANativeWindowAcquire(window: *ANativeWindow): void | pub | Erhöht Referenzzähler |
ANativeWindowRelease(window: *ANativeWindow): void | pub | Verringert Referenzzähler (ggf. Freigabe) |
Letzte Aktualisierung: 2026-05-22
