Files
Odin/core/sys/android/native_window.odin

74 lines
3.3 KiB
Odin

// Generated by core/sys/android/_gen/generate.py from the Android NDK headers. DO NOT EDIT.
// Source: <android/native_window.h>, <android/native_window_jni.h> (NDK r30, 30.0.16248370)
#+build linux
package android
import "core:c"
foreign import libandroid "system:android"
foreign import libnativewindow "system:nativewindow"
ANativeWindow_LegacyFormat :: enum c.int {
RGBA_8888 = 1,
RGBX_8888 = 2,
RGB_565 = 4,
}
ANativeWindowTransform :: enum c.int {
IDENTITY = 0x00,
MIRROR_HORIZONTAL = 0x01,
MIRROR_VERTICAL = 0x02,
ROTATE_90 = 0x04,
ROTATE_180 = 0x3,
ROTATE_270 = 0x7,
}
ANativeWindow :: struct {}
ANativeWindow_Buffer :: struct {
width: i32,
height: i32,
stride: i32,
format: AHardwareBuffer_Format,
bits: rawptr,
reserved: [6]u32,
}
ANativeWindow_FrameRateCompatibility :: enum i8 {
DEFAULT = 0,
FIXED_SOURCE = 1,
AT_LEAST = 2,
}
ANativeWindow_ChangeFrameRateStrategy :: enum i8 {
ONLY_IF_SEAMLESS = 0,
ALWAYS = 1,
}
@(default_calling_convention="c")
foreign libandroid {
ANativeWindow_fromSurface :: proc(env: ^JNIEnv, surface: jobject) -> ^ANativeWindow ---
ANativeWindow_toSurface :: proc(env: ^JNIEnv, window: ^ANativeWindow) -> jobject ---
}
@(default_calling_convention="c")
foreign libnativewindow {
ANativeWindow_acquire :: proc(window: ^ANativeWindow) ---
ANativeWindow_release :: proc(window: ^ANativeWindow) ---
ANativeWindow_getWidth :: proc(window: ^ANativeWindow) -> i32 ---
ANativeWindow_getHeight :: proc(window: ^ANativeWindow) -> i32 ---
ANativeWindow_getFormat :: proc(window: ^ANativeWindow) -> AHardwareBuffer_Format ---
ANativeWindow_setBuffersGeometry :: proc(window: ^ANativeWindow, width: i32, height: i32, format: AHardwareBuffer_Format) -> i32 ---
ANativeWindow_lock :: proc(window: ^ANativeWindow, outBuffer: ^ANativeWindow_Buffer, inOutDirtyBounds: ^ARect) -> i32 ---
ANativeWindow_unlockAndPost :: proc(window: ^ANativeWindow) -> i32 ---
ANativeWindow_setBuffersTransform :: proc(window: ^ANativeWindow, transform: ANativeWindowTransform) -> i32 ---
ANativeWindow_setBuffersDataSpace :: proc(window: ^ANativeWindow, dataSpace: ADataSpace) -> i32 ---
ANativeWindow_getBuffersDataSpace :: proc(window: ^ANativeWindow) -> ADataSpace ---
ANativeWindow_getBuffersDefaultDataSpace :: proc(window: ^ANativeWindow) -> ADataSpace --- // API level 34
ANativeWindow_setFrameRate :: proc(window: ^ANativeWindow, frameRate: f32, compatibility: ANativeWindow_FrameRateCompatibility) -> i32 --- // API level 30
ANativeWindow_tryAllocateBuffers :: proc(window: ^ANativeWindow) --- // API level 30
ANativeWindow_setFrameRateWithChangeStrategy :: proc(window: ^ANativeWindow, frameRate: f32, compatibility: ANativeWindow_FrameRateCompatibility, changeFrameRateStrategy: ANativeWindow_ChangeFrameRateStrategy) -> i32 --- // API level 31
ANativeWindow_setProducerThrottlingEnabled :: proc(window: ^ANativeWindow, enabled: bool) -> i32 --- // API level 37
ANativeWindow_isProducerThrottlingEnabled :: proc(window: ^ANativeWindow, outEnabled: ^bool) -> i32 --- // API level 37
}