The notes below use the windows functions,
There's probably also linux and mac functions to find that dont' exist on windows.
## Windows specific functions that don't make sense on mac/linux
assert_fn!(
SDL_RegisterApp:
unsafe extern "C" fn(
name: *mut c_char,
style: Uint32,
hInst: *mut c_void,
) -> c_int
);
assert_fn!(SDL_UnregisterApp: unsafe extern "C" fn());
assert_fn!(
SDL_SetWindowsMessageHook:
unsafe extern "C" fn(
callback: SDL_WindowsMessageHook,
userdata: *mut c_void,
)
);
assert_fn!(
SDL_RenderGetD3D9Device:
unsafe extern "C" fn(renderer: *mut SDL_Renderer) -> *mut IDirect3DDevice9
);
assert_fn!(
SDL_Direct3D9GetAdapterIndex:
unsafe extern "C" fn(displayIndex: c_int) -> c_int
);
assert_fn!(
SDL_DXGIGetOutputInfo:
unsafe extern "C" fn(
displayIndex: c_int,
adapterIndex: *mut c_int,
outputIndex: *mut c_int,
) -> SDL_bool
);
## Functions that had platform-specific variations
### Here, bindgen is probably being weird with the va_list
assert_fn!(
SDL_LogMessageV:
unsafe extern "C" fn(
category: c_int,
priority: SDL_LogPriority,
fmt: *const c_char,
ap: va_list,
)
);
assert_fn!(
SDL_vsscanf:
unsafe extern "C" fn(
text: *const c_char,
fmt: *const c_char,
ap: va_list,
) -> c_int
);
assert_fn!(
SDL_vsnprintf:
unsafe extern "C" fn(
text: *mut c_char,
maxlen: size_t,
fmt: *const c_char,
ap: va_list,
) -> c_int
);
### Here there's actual OS differences
assert_fn!(
SDL_CreateThread:
unsafe extern "C" fn(
fn_: SDL_ThreadFunction,
name: *const c_char,
data: *mut c_void,
pfnBeginThread: pfnSDL_CurrentBeginThread,
pfnEndThread: pfnSDL_CurrentEndThread,
) -> *mut SDL_Thread
);
assert_fn!(
SDL_CreateThreadWithStackSize:
unsafe extern "C" fn(
fn_: Option<unsafe extern "C" fn(arg1: *mut c_void) -> c_int>,
name: *const c_char,
stacksize: size_t,
data: *mut c_void,
pfnBeginThread: pfnSDL_CurrentBeginThread,
pfnEndThread: pfnSDL_CurrentEndThread,
) -> *mut SDL_Thread
);
assert_fn!(
SDL_RWFromFP:
unsafe extern "C" fn(
fp: *mut c_void,
autoclose: SDL_bool,
) -> *mut SDL_RWops
);