Skip to content

Commit b258f7a

Browse files
authored
add some function (#11)
1 parent d03b4d4 commit b258f7a

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed

src/sdl2.zig

+55
Original file line numberDiff line numberDiff line change
@@ -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
}
250252
extern 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.
253269
pub 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.
874896
pub 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

Comments
 (0)