Inhaltsverzeichnis

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