@@ -205,6 +205,8 @@ pub const Window = opaque {
205205 pub const getSize = windowGetSize ;
206206 pub const setTitle = windowSetTitle ;
207207 pub const getSurface = getWindowSurface ;
208+ pub const getID = windowGetID ;
209+ pub const getFlags = windowGetFlags ;
208210};
209211
210212/// Create a window with the specified position, dimensions, and flags.
@@ -249,6 +251,20 @@ pub fn windowSetTitle(window: *Window, title: [:0]const u8) void {
249251}
250252extern fn SDL_SetWindowTitle (window : * Window , title : ? [* :0 ]const u8 ) void ;
251253
254+ pub fn windowGetID (window : * Window ) Error ! u32 {
255+ const id = SDL_GetWindowID (window );
256+ if (id == 0 ) return makeError ();
257+ return id ;
258+ }
259+
260+ extern fn SDL_GetWindowID (window : * Window ) u32 ;
261+
262+ pub fn windowGetFlags (window : * Window ) Window.Flags {
263+ return SDL_GetWindowFlags (window );
264+ }
265+
266+ extern fn SDL_GetWindowFlags (window : * Window ) Window.Flags ;
267+
252268/// Get the number of video drivers compiled into SDL.
253269pub fn getNumVideoDrivers () Error ! u16 {
254270 const res = SDL_GetNumVideoDrivers ();
@@ -870,6 +886,12 @@ extern fn SDL_CreateRGBSurfaceWithFormatFrom(
870886 format : PixelFormatEnum ,
871887) ? * Surface ;
872888
889+ pub fn loadBMP_RW (src : * anyopaque , freesrc : c_int ) Error ! * Surface {
890+ return SDL_LoadBMP_RW (src , freesrc ) orelse makeError ();
891+ }
892+
893+ extern fn SDL_LoadBMP_RW (src : * anyopaque , freesrc : c_int ) ? * Surface ;
894+
873895/// Get information about a rendering context.
874896pub fn getRendererInfo (r : * const Renderer ) Error ! RendererInfo {
875897 var result : RendererInfo = undefined ;
@@ -2490,6 +2512,39 @@ extern fn SDL_GetPrefPath(org: [*c]const u8, app: [*c]const u8) [*c]const u8;
24902512//
24912513//--------------------------------------------------------------------------------------------------
24922514
2515+ pub fn rwClose (context : * anyopaque ) void {
2516+ _ = SDL_RWclose (context );
2517+ }
2518+ extern fn SDL_RWclose (context : * anyopaque ) c_int ;
2519+
2520+ pub fn rwFromConstMem (mem : []const u8 ) ! * anyopaque {
2521+ return SDL_RWFromConstMem (mem .ptr , @intCast (mem .len ));
2522+ }
2523+
2524+ extern fn SDL_RWFromConstMem (mem : [* c ]const u8 , size : c_int ) * anyopaque ;
2525+
2526+ pub fn rwFromFile (file : []const u8 , mode : []const u8 ) ! * anyopaque {
2527+ const rw = SDL_RWFromFile (file .ptr , mode .ptr );
2528+ if (rw == null ) return makeError ();
2529+ return rw .? ;
2530+ }
2531+
2532+ extern fn SDL_RWFromFile (file : [* c ]const u8 , mode : [* c ]const u8 ) ? * anyopaque ;
2533+
2534+ pub fn rwRead (context : * anyopaque , buffer : []u8 ) usize {
2535+ return SDL_RWread (context , buffer .ptr , @sizeOf (u8 ), buffer .len );
2536+ }
2537+
2538+ extern fn SDL_RWread (context : * anyopaque , ptr : [* c ]u8 , size : usize , maxnum : usize ) usize ;
2539+
2540+ pub fn rwSize (context : * anyopaque ) ! usize {
2541+ const result = SDL_RWsize (context );
2542+ if (result < 0 ) return makeError ();
2543+ return @intCast (result );
2544+ }
2545+
2546+ extern fn SDL_RWsize (context : * anyopaque ) i64 ;
2547+
24932548//--------------------------------------------------------------------------------------------------
24942549//
24952550// Shared Object Loading and Function Lookup
0 commit comments