sdl2: add openbsd support

This commit is contained in:
Sébastien Marie
2022-02-28 16:17:15 +00:00
parent 737f440c7f
commit 37b4e0de6c
32 changed files with 58 additions and 27 deletions

View File

@@ -7,6 +7,7 @@ when ODIN_OS == .Windows { foreign import lib "SDL2_image.lib" }
when ODIN_OS == .Linux { foreign import lib "system:SDL2_image" }
when ODIN_OS == .Darwin { foreign import lib "system:SDL2_image" }
when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2_image" }
when ODIN_OS == .OpenBSD { foreign import lib "system:SDL2_image" }
bool :: SDL.bool
@@ -119,4 +120,4 @@ foreign lib {
/* Individual loading functions */
LoadGIFAnimation_RW :: proc(src: ^SDL.RWops) -> ^Animation ---
}
}

View File

@@ -7,7 +7,7 @@ when ODIN_OS == .Windows { foreign import lib "SDL2_mixer.lib" }
when ODIN_OS == .Linux { foreign import lib "system:SDL2_mixer" }
when ODIN_OS == .Darwin { foreign import lib "system:SDL2_mixer" }
when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2_mixer" }
when ODIN_OS == .OpenBSD { foreign import lib "system:SDL2_mixer" }
MAJOR_VERSION :: 2
MINOR_VERSION :: 0

View File

@@ -7,6 +7,7 @@ when ODIN_OS == .Windows { foreign import lib "SDL2_net.lib" }
when ODIN_OS == .Linux { foreign import lib "system:SDL2_net" }
when ODIN_OS == .Darwin { foreign import lib "system:SDL2_net" }
when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2_net" }
when ODIN_OS == .OpenBSD { foreign import lib "system:SDL2_net" }
bool :: SDL.bool
@@ -188,4 +189,4 @@ Read16 :: #force_inline proc "c" (areap: rawptr) -> u16 {
Read32 :: #force_inline proc "c" (areap: rawptr) -> u32 {
area := (^[4]u8)(areap)
return u32(area[0])<<24 | u32(area[1])<<16 | u32(area[2])<<8 | u32(area[3])
}
}

View File

@@ -29,6 +29,7 @@ when ODIN_OS == .Windows { foreign import lib "SDL2.lib" }
when ODIN_OS == .Linux { foreign import lib "system:SDL2" }
when ODIN_OS == .Darwin { foreign import lib "system:SDL2" }
when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
when ODIN_OS == .OpenBSD { foreign import lib "system:SDL2" }
version :: struct {
major: u8, /**< major version */
@@ -314,4 +315,4 @@ foreign lib {
IsShapedWindow :: proc(window: ^Window) -> bool ---
SetWindowShape :: proc(window: ^Window, shape: ^Surface, shape_mode: ^WindowShapeMode) -> c.int ---
GetShapedWindowMode :: proc(window: ^Window, shape_mode: ^WindowShapeMode) -> c.int ---
}
}

View File

@@ -6,6 +6,7 @@ when ODIN_OS == .Windows { foreign import lib "SDL2.lib" }
when ODIN_OS == .Linux { foreign import lib "system:SDL2" }
when ODIN_OS == .Darwin { foreign import lib "system:SDL2" }
when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
when ODIN_OS == .OpenBSD { foreign import lib "system:SDL2" }
/**
* \brief Audio format flags.

View File

@@ -6,6 +6,7 @@ when ODIN_OS == .Windows { foreign import lib "SDL2.lib" }
when ODIN_OS == .Linux { foreign import lib "system:SDL2" }
when ODIN_OS == .Darwin { foreign import lib "system:SDL2" }
when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
when ODIN_OS == .OpenBSD { foreign import lib "system:SDL2" }
/**
* \brief The blend mode used in SDL_RenderCopy() and drawing operations.
@@ -62,4 +63,4 @@ BlendFactor :: enum c.int {
foreign lib {
ComposeCustomBlendMode :: proc(srcColorFactor, dstColorFactor: BlendFactor, colorOperation: BlendOperation,
srcAlphaFactor, dstAlphaFactor: BlendFactor, alphaOperation: BlendOperation) -> BlendMode ---
}
}

View File

@@ -6,6 +6,7 @@ when ODIN_OS == .Windows { foreign import lib "SDL2.lib" }
when ODIN_OS == .Linux { foreign import lib "system:SDL2" }
when ODIN_OS == .Darwin { foreign import lib "system:SDL2" }
when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
when ODIN_OS == .OpenBSD { foreign import lib "system:SDL2" }
/* This is a guess for the cacheline size used for padding.
* Most x86 processors have a 64 byte cache line.
@@ -41,4 +42,4 @@ foreign lib {
SIMDAlloc :: proc(len: c.size_t) -> rawptr ---
SIMDRealloc :: proc(mem: rawptr, len: c.size_t) -> rawptr ---
SIMDFree :: proc(ptr: rawptr) ---
}
}

View File

@@ -6,6 +6,7 @@ when ODIN_OS == .Windows { foreign import lib "SDL2.lib" }
when ODIN_OS == .Linux { foreign import lib "system:SDL2" }
when ODIN_OS == .Darwin { foreign import lib "system:SDL2" }
when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
when ODIN_OS == .OpenBSD { foreign import lib "system:SDL2" }
RELEASED :: 0
PRESSED :: 1
@@ -498,4 +499,4 @@ foreign lib {
FilterEvents :: proc(filter: EventFilter, userdata: rawptr) ---
EventState :: proc(type: EventType, state: c.int) -> u8 ---
RegisterEvents :: proc(numevents: c.int) -> u32 ---
}
}

View File

@@ -6,6 +6,7 @@ when ODIN_OS == .Windows { foreign import lib "SDL2.lib" }
when ODIN_OS == .Linux { foreign import lib "system:SDL2" }
when ODIN_OS == .Darwin { foreign import lib "system:SDL2" }
when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
when ODIN_OS == .OpenBSD { foreign import lib "system:SDL2" }
GameController :: struct {}

View File

@@ -6,6 +6,7 @@ when ODIN_OS == .Windows { foreign import lib "SDL2.lib" }
when ODIN_OS == .Linux { foreign import lib "system:SDL2" }
when ODIN_OS == .Darwin { foreign import lib "system:SDL2" }
when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
when ODIN_OS == .OpenBSD { foreign import lib "system:SDL2" }
// Gesture
@@ -259,4 +260,4 @@ foreign lib {
HapticRumbleInit :: proc(haptic: ^Haptic) -> c.int ---
HapticRumblePlay :: proc(haptic: ^Haptic, strength: f32, length: u32) -> c.int ---
HapticRumbleStop :: proc(haptic: ^Haptic) -> c.int ---
}
}

View File

@@ -6,6 +6,7 @@ when ODIN_OS == .Windows { foreign import lib "SDL2.lib" }
when ODIN_OS == .Linux { foreign import lib "system:SDL2" }
when ODIN_OS == .Darwin { foreign import lib "system:SDL2" }
when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
when ODIN_OS == .OpenBSD { foreign import lib "system:SDL2" }
HINT_ACCELEROMETER_AS_JOYSTICK :: "SDL_ACCELEROMETER_AS_JOYSTICK"
HINT_ALLOW_ALT_TAB_WHILE_GRABBED :: "SDL_ALLOW_ALT_TAB_WHILE_GRABBED"
@@ -146,4 +147,4 @@ foreign lib {
AddHintCallback :: proc(name: cstring, callback: HintCallback, userdata: rawptr) ---
DelHintCallback :: proc(name: cstring, callback: HintCallback, userdata: rawptr) ---
ClearHints :: proc() ---
}
}

View File

@@ -6,6 +6,7 @@ when ODIN_OS == .Windows { foreign import lib "SDL2.lib" }
when ODIN_OS == .Linux { foreign import lib "system:SDL2" }
when ODIN_OS == .Darwin { foreign import lib "system:SDL2" }
when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
when ODIN_OS == .OpenBSD { foreign import lib "system:SDL2" }
Joystick :: struct {}
@@ -106,4 +107,4 @@ foreign lib {
JoystickSendEffect :: proc(joystick: ^Joystick, data: rawptr, size: c.int) -> c.int ---
JoystickClose :: proc(joystick: ^Joystick) ---
JoystickCurrentPowerLevel :: proc(joystick: ^Joystick) -> JoystickPowerLevel ---
}
}

View File

@@ -6,6 +6,7 @@ when ODIN_OS == .Windows { foreign import lib "SDL2.lib" }
when ODIN_OS == .Linux { foreign import lib "system:SDL2" }
when ODIN_OS == .Darwin { foreign import lib "system:SDL2" }
when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
when ODIN_OS == .OpenBSD { foreign import lib "system:SDL2" }
Keysym :: struct {
scancode: Scancode, /**< SDL physical key code - see ::SDL_Scancode for details */

View File

@@ -6,6 +6,7 @@ when ODIN_OS == .Windows { foreign import lib "SDL2.lib" }
when ODIN_OS == .Linux { foreign import lib "system:SDL2" }
when ODIN_OS == .Darwin { foreign import lib "system:SDL2" }
when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
when ODIN_OS == .OpenBSD { foreign import lib "system:SDL2" }
MAX_LOG_MESSAGE :: 4096
@@ -74,4 +75,4 @@ foreign lib {
// LogMessageV :: proc(category: c.int, priority: LogPriority, fmt: cstring, ap: va_list) ---
LogGetOutputFunction :: proc(callback: ^LogOutputFunction, userdata: ^rawptr) ---
LogSetOutputFunction :: proc(callback: LogOutputFunction, userdata: rawptr) ---
}
}

View File

@@ -6,6 +6,7 @@ when ODIN_OS == .Windows { foreign import lib "SDL2.lib" }
when ODIN_OS == .Linux { foreign import lib "system:SDL2" }
when ODIN_OS == .Darwin { foreign import lib "system:SDL2" }
when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
when ODIN_OS == .OpenBSD { foreign import lib "system:SDL2" }
MessageBoxFlag :: enum u32 {
_ = 0,

View File

@@ -6,6 +6,7 @@ when ODIN_OS == .Windows { foreign import lib "SDL2.lib" }
when ODIN_OS == .Linux { foreign import lib "system:SDL2" }
when ODIN_OS == .Darwin { foreign import lib "system:SDL2" }
when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
when ODIN_OS == .OpenBSD { foreign import lib "system:SDL2" }
MetalView :: distinct rawptr
@@ -15,4 +16,4 @@ foreign lib {
Metal_DestroyView :: proc(view: MetalView) ---
Metal_GetLayer :: proc(view: MetalView) -> rawptr ---
Metal_GetDrawableSize :: proc(window: ^Window, w, h: ^c.int) ---
}
}

View File

@@ -6,6 +6,7 @@ when ODIN_OS == .Windows { foreign import lib "SDL2.lib" }
when ODIN_OS == .Linux { foreign import lib "system:SDL2" }
when ODIN_OS == .Darwin { foreign import lib "system:SDL2" }
when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
when ODIN_OS == .OpenBSD { foreign import lib "system:SDL2" }
Cursor :: struct {}
@@ -61,4 +62,4 @@ foreign lib {
GetDefaultCursor :: proc() -> ^Cursor ---
FreeCursor :: proc(cursor: ^Cursor) ---
ShowCursor :: proc(toggle: c.int) -> c.int ---
}
}

View File

@@ -6,6 +6,7 @@ when ODIN_OS == .Windows { foreign import lib "SDL2.lib" }
when ODIN_OS == .Linux { foreign import lib "system:SDL2" }
when ODIN_OS == .Darwin { foreign import lib "system:SDL2" }
when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
when ODIN_OS == .OpenBSD { foreign import lib "system:SDL2" }
MUTEX_TIMEDOUT :: 1
MUTEX_MAXWAIT :: ~u32(0)
@@ -41,4 +42,4 @@ foreign lib {
CondBroadcast :: proc(cv: ^cond) -> c.int ---
CondWait :: proc(cv: ^cond, m: ^mutex) -> c.int ---
CondWaitTimeout :: proc(cv: ^cond, m: ^mutex, ms: u32) -> c.int ---
}
}

View File

@@ -6,6 +6,7 @@ when ODIN_OS == .Windows { foreign import lib "SDL2.lib" }
when ODIN_OS == .Linux { foreign import lib "system:SDL2" }
when ODIN_OS == .Darwin { foreign import lib "system:SDL2" }
when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
when ODIN_OS == .OpenBSD { foreign import lib "system:SDL2" }
ALPHA_OPAQUE :: 255
ALPHA_TRANSPARENT :: 0
@@ -234,4 +235,4 @@ foreign lib {
GetRGB :: proc(pixel: u32, format: ^PixelFormat, r, g, b: ^u8) ---
GetRGBA :: proc(pixel: u32, format: ^PixelFormat, r, g, b, a: ^u8) ---
CalculateGammaRamp :: proc(gamma: f32, ramp: ^[256]u16) ---
}
}

View File

@@ -6,6 +6,7 @@ when ODIN_OS == .Windows { foreign import lib "SDL2.lib" }
when ODIN_OS == .Linux { foreign import lib "system:SDL2" }
when ODIN_OS == .Darwin { foreign import lib "system:SDL2" }
when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
when ODIN_OS == .OpenBSD { foreign import lib "system:SDL2" }
Point :: struct {
x: c.int,
@@ -47,4 +48,4 @@ foreign lib {
UnionRect :: proc(A, B: ^Rect, result: ^Rect) ---
EnclosePoints :: proc(points: [^]Point, count: c.int, clip: ^Rect, result: ^Rect) -> bool ---
IntersectRectAndLine :: proc(rect: ^Rect, X1, Y1, X2, Y2: ^c.int) -> bool ---
}
}

View File

@@ -6,6 +6,7 @@ when ODIN_OS == .Windows { foreign import lib "SDL2.lib" }
when ODIN_OS == .Linux { foreign import lib "system:SDL2" }
when ODIN_OS == .Darwin { foreign import lib "system:SDL2" }
when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
when ODIN_OS == .OpenBSD { foreign import lib "system:SDL2" }
RendererFlag :: enum u32 {
SOFTWARE = 0, /**< The renderer is a software fallback */
@@ -140,4 +141,4 @@ foreign lib {
GL_UnbindTexture :: proc(texture: ^Texture) -> c.int ---
RenderGetMetalLayer :: proc(renderer: ^Renderer) -> rawptr ---
RenderGetMetalCommandEncoder :: proc(renderer: ^Renderer) -> rawptr ---
}
}

View File

@@ -6,6 +6,7 @@ when ODIN_OS == .Windows { foreign import lib "SDL2.lib" }
when ODIN_OS == .Linux { foreign import lib "system:SDL2" }
when ODIN_OS == .Darwin { foreign import lib "system:SDL2" }
when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
when ODIN_OS == .OpenBSD { foreign import lib "system:SDL2" }
/* RWops Types */
RWOPS_UNKNOWN :: 0 /**< Unknown stream type */
@@ -105,4 +106,4 @@ foreign lib {
WriteBE32 :: proc(dst: ^RWops, value: ^u32) -> c.size_t ---
WriteLE64 :: proc(dst: ^RWops, value: ^u64) -> c.size_t ---
WriteBE64 :: proc(dst: ^RWops, value: ^u64) -> c.size_t ---
}
}

View File

@@ -9,6 +9,7 @@ when ODIN_OS == .Windows { foreign import lib "SDL2.lib" }
when ODIN_OS == .Linux { foreign import lib "system:SDL2" }
when ODIN_OS == .Darwin { foreign import lib "system:SDL2" }
when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
when ODIN_OS == .OpenBSD { foreign import lib "system:SDL2" }
bool :: distinct b32
#assert(size_of(bool) == size_of(c.int))
@@ -160,4 +161,4 @@ iconv_utf8_ucs2 :: proc "c" (s: string) -> [^]u16 {
iconv_utf8_utf32 :: iconv_utf8_ucs4
iconv_utf8_ucs4 :: proc "c" (s: string) -> [^]rune {
return cast([^]rune)iconv_string("UCS-4-INTERNAL", "UTF-8", cstring(raw_data(s)), len(s)+1)
}
}

View File

@@ -6,6 +6,7 @@ when ODIN_OS == .Windows { foreign import lib "SDL2.lib" }
when ODIN_OS == .Linux { foreign import lib "system:SDL2" }
when ODIN_OS == .Darwin { foreign import lib "system:SDL2" }
when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
when ODIN_OS == .OpenBSD { foreign import lib "system:SDL2" }
SWSURFACE :: 0 /**< Just here for compatibility */
PREALLOC :: 0x00000001 /**< Surface uses preallocated memory */
@@ -108,4 +109,4 @@ foreign lib {
SetYUVConversionMode :: proc(mode: YUV_CONVERSION_MODE) ---
GetYUVConversionMode :: proc() -> YUV_CONVERSION_MODE ---
GetYUVConversionModeForResolution :: proc(width, height: c.int) -> YUV_CONVERSION_MODE ---
}
}

View File

@@ -6,6 +6,7 @@ when ODIN_OS == .Windows { foreign import lib "SDL2.lib" }
when ODIN_OS == .Linux { foreign import lib "system:SDL2" }
when ODIN_OS == .Darwin { foreign import lib "system:SDL2" }
when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
when ODIN_OS == .OpenBSD { foreign import lib "system:SDL2" }
// General
@(default_calling_convention="c", link_prefix="SDL_")
@@ -122,4 +123,4 @@ foreign lib {
AndroidGetExternalStoragePath :: proc() -> cstring ---
AndroidRequestPermission :: proc(permission: cstring) -> bool ---
AndroidShowToast :: proc(message: cstring, duration, gravity, xoffset, yoffset: c.int) -> c.int ---
}
}

View File

@@ -6,6 +6,7 @@ when ODIN_OS == .Windows { foreign import lib "SDL2.lib" }
when ODIN_OS == .Linux { foreign import lib "system:SDL2" }
when ODIN_OS == .Darwin { foreign import lib "system:SDL2" }
when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
when ODIN_OS == .OpenBSD { foreign import lib "system:SDL2" }
SYSWM_TYPE :: enum c.int {
UNKNOWN,
@@ -105,4 +106,4 @@ SysWMinfo :: struct {
@(default_calling_convention="c", link_prefix="SDL_")
foreign lib {
GetWindowWMInfo :: proc(window: ^Window, info: ^SysWMinfo) -> bool ---
}
}

View File

@@ -6,6 +6,7 @@ when ODIN_OS == .Windows { foreign import lib "SDL2.lib" }
when ODIN_OS == .Linux { foreign import lib "system:SDL2" }
when ODIN_OS == .Darwin { foreign import lib "system:SDL2" }
when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
when ODIN_OS == .OpenBSD { foreign import lib "system:SDL2" }
Thread :: struct {}

View File

@@ -6,6 +6,7 @@ when ODIN_OS == .Windows { foreign import lib "SDL2.lib" }
when ODIN_OS == .Linux { foreign import lib "system:SDL2" }
when ODIN_OS == .Darwin { foreign import lib "system:SDL2" }
when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
when ODIN_OS == .OpenBSD { foreign import lib "system:SDL2" }
TimerCallback :: proc "c" (interval: u32, param: rawptr) -> u32
TimerID :: distinct c.int
@@ -22,4 +23,4 @@ foreign lib {
Delay :: proc(ms: u32) ---
AddTimer :: proc(interval: u32, callback: TimerCallback, param: rawptr) -> TimerID ---
RemoveTimer :: proc(id: TimerID) -> bool ---
}
}

View File

@@ -6,6 +6,7 @@ when ODIN_OS == .Windows { foreign import lib "SDL2.lib" }
when ODIN_OS == .Linux { foreign import lib "system:SDL2" }
when ODIN_OS == .Darwin { foreign import lib "system:SDL2" }
when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
when ODIN_OS == .OpenBSD { foreign import lib "system:SDL2" }
TouchID :: distinct i64
FingerID :: distinct i64
@@ -34,4 +35,4 @@ foreign lib {
GetTouchDeviceType :: proc(touchID: TouchID) -> TouchDeviceType ---
GetNumTouchFingers :: proc(touchID: TouchID) -> c.int ---
GetTouchFinger :: proc(touchID: TouchID, index: c.int) -> ^Finger ---
}
}

View File

@@ -6,6 +6,7 @@ when ODIN_OS == .Windows { foreign import lib "SDL2.lib" }
when ODIN_OS == .Linux { foreign import lib "system:SDL2" }
when ODIN_OS == .Darwin { foreign import lib "system:SDL2" }
when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
when ODIN_OS == .OpenBSD { foreign import lib "system:SDL2" }
DisplayMode :: struct {
format: u32, /**< pixel format */
@@ -310,4 +311,4 @@ foreign lib {
// Used by vendor:OpenGL
gl_set_proc_address :: proc(p: rawptr, name: cstring) {
(^rawptr)(p)^ = GL_GetProcAddress(name)
}
}

View File

@@ -7,6 +7,7 @@ when ODIN_OS == .Windows { foreign import lib "SDL2.lib" }
when ODIN_OS == .Linux { foreign import lib "system:SDL2" }
when ODIN_OS == .Darwin { foreign import lib "system:SDL2" }
when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
when ODIN_OS == .OpenBSD { foreign import lib "system:SDL2" }
VkInstance :: vk.Instance
VkSurfaceKHR :: vk.SurfaceKHR
@@ -22,4 +23,4 @@ foreign lib {
Vulkan_GetInstanceExtensions :: proc(window: ^Window, pCount: ^c.uint, pNames: [^]cstring) -> bool ---
Vulkan_CreateSurface :: proc(window: ^Window, instance: VkInstance, surface: ^VkSurfaceKHR) -> bool ---
Vulkan_GetDrawableSize :: proc(window: ^Window, w, h: ^c.int) ---
}
}

View File

@@ -7,6 +7,7 @@ when ODIN_OS == .Windows { foreign import lib "SDL2_ttf.lib" }
when ODIN_OS == .Linux { foreign import lib "system:SDL2_ttf" }
when ODIN_OS == .Darwin { foreign import lib "system:SDL2_ttf" }
when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2_ttf" }
when ODIN_OS == .OpenBSD { foreign import lib "system:SDL2_ttf" }
bool :: SDL.bool
@@ -163,4 +164,4 @@ foreign lib {
SetFontSDF :: proc(font: ^Font, on_off: bool) -> c.int ---
GetFontSDF :: proc(font: ^Font) -> bool ---
}
}