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

156 lines
8.0 KiB
Odin

// Generated by core/sys/android/_gen/generate.py from the Android NDK headers. DO NOT EDIT.
// Source: <android/hardware_buffer.h>, <android/hardware_buffer_jni.h> (NDK r30, 30.0.16248370)
#+build linux
package android
import "core:c"
foreign import libandroid "system:android"
foreign import libnativewindow "system:nativewindow"
AHardwareBuffer_Format :: enum c.int {
R8G8B8A8_UNORM = 1,
R8G8B8X8_UNORM = 2,
R8G8B8_UNORM = 3,
R5G6B5_UNORM = 4,
R16G16B16A16_FLOAT = 0x16,
R10G10B10A2_UNORM = 0x2b,
BLOB = 0x21,
D16_UNORM = 0x30,
D24_UNORM = 0x31,
D24_UNORM_S8_UINT = 0x32,
D32_FLOAT = 0x33,
D32_FLOAT_S8_UINT = 0x34,
S8_UINT = 0x35,
Y8Cb8Cr8_420 = 0x23,
YCbCr_P010 = 0x36,
YCbCr_P210 = 0x3c,
R8_UNORM = 0x38,
R16_UINT = 0x39,
R16G16_UINT = 0x3a,
R10G10B10A10_UNORM = 0x3b,
R12_UINT = 0x3d,
R14_UINT = 0x3e,
R12G12_UINT = 0x3f,
R14G14_UINT = 0x40,
R12G12B12A12_UINT = 0x41,
R14G14B14A14_UINT = 0x42,
B10G10R10A2_UNORM = 0x43,
B10G10R10X2_UNORM = 0x44,
}
AHardwareBuffer_CpuUsage :: enum u64 {
NEVER = 0,
RARELY = 2,
OFTEN = 3,
}
AHardwareBuffer_UsageFlags :: bit_field u64 {
cpu_read: AHardwareBuffer_CpuUsage | 4,
cpu_write: AHardwareBuffer_CpuUsage | 4,
gpu_sampled_image: bool | 1,
gpu_framebuffer: bool | 1,
_: u8 | 1,
composer_overlay: bool | 1,
_: u8 | 2,
protected_content: bool | 1,
_: u8 | 1,
video_encode: bool | 1,
_: u8 | 6,
sensor_direct_data: bool | 1,
gpu_data_buffer: bool | 1,
gpu_cube_map: bool | 1,
gpu_mipmap_complete: bool | 1,
_: u8 | 1,
vendor_0_3: u8 | 4,
front_buffer: bool | 1,
_: u16 | 15,
vendor_4_19: u16 | 16,
}
AHARDWAREBUFFER_USAGE_CPU_READ_NEVER :: AHardwareBuffer_UsageFlags{}
AHARDWAREBUFFER_USAGE_CPU_READ_RARELY :: AHardwareBuffer_UsageFlags{cpu_read = .RARELY}
AHARDWAREBUFFER_USAGE_CPU_READ_OFTEN :: AHardwareBuffer_UsageFlags{cpu_read = .OFTEN}
AHARDWAREBUFFER_USAGE_CPU_READ_MASK :: AHardwareBuffer_UsageFlags{cpu_read = AHardwareBuffer_CpuUsage(0xf)}
AHARDWAREBUFFER_USAGE_CPU_WRITE_NEVER :: AHardwareBuffer_UsageFlags{}
AHARDWAREBUFFER_USAGE_CPU_WRITE_RARELY :: AHardwareBuffer_UsageFlags{cpu_write = .RARELY}
AHARDWAREBUFFER_USAGE_CPU_WRITE_OFTEN :: AHardwareBuffer_UsageFlags{cpu_write = .OFTEN}
AHARDWAREBUFFER_USAGE_CPU_WRITE_MASK :: AHardwareBuffer_UsageFlags{cpu_write = AHardwareBuffer_CpuUsage(0xf)}
AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE :: AHardwareBuffer_UsageFlags{gpu_sampled_image = true}
AHARDWAREBUFFER_USAGE_GPU_FRAMEBUFFER :: AHardwareBuffer_UsageFlags{gpu_framebuffer = true}
AHARDWAREBUFFER_USAGE_GPU_COLOR_OUTPUT :: AHardwareBuffer_UsageFlags{gpu_framebuffer = true}
AHARDWAREBUFFER_USAGE_COMPOSER_OVERLAY :: AHardwareBuffer_UsageFlags{composer_overlay = true}
AHARDWAREBUFFER_USAGE_PROTECTED_CONTENT :: AHardwareBuffer_UsageFlags{protected_content = true}
AHARDWAREBUFFER_USAGE_VIDEO_ENCODE :: AHardwareBuffer_UsageFlags{video_encode = true}
AHARDWAREBUFFER_USAGE_SENSOR_DIRECT_DATA :: AHardwareBuffer_UsageFlags{sensor_direct_data = true}
AHARDWAREBUFFER_USAGE_GPU_DATA_BUFFER :: AHardwareBuffer_UsageFlags{gpu_data_buffer = true}
AHARDWAREBUFFER_USAGE_GPU_CUBE_MAP :: AHardwareBuffer_UsageFlags{gpu_cube_map = true}
AHARDWAREBUFFER_USAGE_GPU_MIPMAP_COMPLETE :: AHardwareBuffer_UsageFlags{gpu_mipmap_complete = true}
AHARDWAREBUFFER_USAGE_FRONT_BUFFER :: AHardwareBuffer_UsageFlags{front_buffer = true}
AHARDWAREBUFFER_USAGE_VENDOR_0 :: AHardwareBuffer_UsageFlags{vendor_0_3 = 0x1}
AHARDWAREBUFFER_USAGE_VENDOR_1 :: AHardwareBuffer_UsageFlags{vendor_0_3 = 0x2}
AHARDWAREBUFFER_USAGE_VENDOR_2 :: AHardwareBuffer_UsageFlags{vendor_0_3 = 0x4}
AHARDWAREBUFFER_USAGE_VENDOR_3 :: AHardwareBuffer_UsageFlags{vendor_0_3 = 0x8}
AHARDWAREBUFFER_USAGE_VENDOR_4 :: AHardwareBuffer_UsageFlags{vendor_4_19 = 0x1}
AHARDWAREBUFFER_USAGE_VENDOR_5 :: AHardwareBuffer_UsageFlags{vendor_4_19 = 0x2}
AHARDWAREBUFFER_USAGE_VENDOR_6 :: AHardwareBuffer_UsageFlags{vendor_4_19 = 0x4}
AHARDWAREBUFFER_USAGE_VENDOR_7 :: AHardwareBuffer_UsageFlags{vendor_4_19 = 0x8}
AHARDWAREBUFFER_USAGE_VENDOR_8 :: AHardwareBuffer_UsageFlags{vendor_4_19 = 0x10}
AHARDWAREBUFFER_USAGE_VENDOR_9 :: AHardwareBuffer_UsageFlags{vendor_4_19 = 0x20}
AHARDWAREBUFFER_USAGE_VENDOR_10 :: AHardwareBuffer_UsageFlags{vendor_4_19 = 0x40}
AHARDWAREBUFFER_USAGE_VENDOR_11 :: AHardwareBuffer_UsageFlags{vendor_4_19 = 0x80}
AHARDWAREBUFFER_USAGE_VENDOR_12 :: AHardwareBuffer_UsageFlags{vendor_4_19 = 0x100}
AHARDWAREBUFFER_USAGE_VENDOR_13 :: AHardwareBuffer_UsageFlags{vendor_4_19 = 0x200}
AHARDWAREBUFFER_USAGE_VENDOR_14 :: AHardwareBuffer_UsageFlags{vendor_4_19 = 0x400}
AHARDWAREBUFFER_USAGE_VENDOR_15 :: AHardwareBuffer_UsageFlags{vendor_4_19 = 0x800}
AHARDWAREBUFFER_USAGE_VENDOR_16 :: AHardwareBuffer_UsageFlags{vendor_4_19 = 0x1000}
AHARDWAREBUFFER_USAGE_VENDOR_17 :: AHardwareBuffer_UsageFlags{vendor_4_19 = 0x2000}
AHARDWAREBUFFER_USAGE_VENDOR_18 :: AHardwareBuffer_UsageFlags{vendor_4_19 = 0x4000}
AHARDWAREBUFFER_USAGE_VENDOR_19 :: AHardwareBuffer_UsageFlags{vendor_4_19 = 0x8000}
AHardwareBuffer_Desc :: struct {
width: u32,
height: u32,
layers: u32,
format: AHardwareBuffer_Format,
usage: AHardwareBuffer_UsageFlags,
stride: u32,
rfu0: u32,
rfu1: u64,
}
AHardwareBuffer_Plane :: struct {
data: rawptr,
pixelStride: u32,
rowStride: u32,
}
AHardwareBuffer_Planes :: struct {
planeCount: u32,
planes: [4]AHardwareBuffer_Plane,
}
AHardwareBuffer :: struct {}
@(default_calling_convention="c")
foreign libandroid {
AHardwareBuffer_fromHardwareBuffer :: proc(env: ^JNIEnv, hardwareBufferObj: jobject) -> ^AHardwareBuffer ---
AHardwareBuffer_toHardwareBuffer :: proc(env: ^JNIEnv, hardwareBuffer: ^AHardwareBuffer) -> jobject ---
}
@(default_calling_convention="c")
foreign libnativewindow {
AHardwareBuffer_allocate :: proc(desc: ^AHardwareBuffer_Desc, outBuffer: ^^AHardwareBuffer) -> c.int ---
AHardwareBuffer_acquire :: proc(buffer: ^AHardwareBuffer) ---
AHardwareBuffer_release :: proc(buffer: ^AHardwareBuffer) ---
AHardwareBuffer_describe :: proc(buffer: ^AHardwareBuffer, outDesc: ^AHardwareBuffer_Desc) ---
AHardwareBuffer_lock :: proc(buffer: ^AHardwareBuffer, usage: AHardwareBuffer_UsageFlags, fence: i32, rect: ^ARect, outVirtualAddress: ^rawptr) -> c.int ---
AHardwareBuffer_unlock :: proc(buffer: ^AHardwareBuffer, fence: ^i32) -> c.int ---
AHardwareBuffer_sendHandleToUnixSocket :: proc(buffer: ^AHardwareBuffer, socketFd: c.int) -> c.int ---
AHardwareBuffer_recvHandleFromUnixSocket :: proc(socketFd: c.int, outBuffer: ^^AHardwareBuffer) -> c.int ---
AHardwareBuffer_lockPlanes :: proc(buffer: ^AHardwareBuffer, usage: AHardwareBuffer_UsageFlags, fence: i32, rect: ^ARect, outPlanes: ^AHardwareBuffer_Planes) -> c.int ---
AHardwareBuffer_isSupported :: proc(desc: ^AHardwareBuffer_Desc) -> c.int ---
AHardwareBuffer_lockAndGetInfo :: proc(buffer: ^AHardwareBuffer, usage: AHardwareBuffer_UsageFlags, fence: i32, rect: ^ARect, outVirtualAddress: ^rawptr, outBytesPerPixel: ^i32, outBytesPerStride: ^i32) -> c.int ---
AHardwareBuffer_getId :: proc(buffer: ^AHardwareBuffer, outId: ^u64) -> c.int --- // API level 31
}