sdl3bind/castholm/v0.3.2-3.2.26/api/properties.zig

102 lines
3.6 KiB
Zig

const std = @import("std");
pub const c = @import("c.zig").c;
pub const PropertiesID = u32;
pub const PropertyType = enum(c_int) {
propertyTypeInvalid,
propertyTypePointer,
propertyTypeString,
propertyTypeNumber,
propertyTypeFloat,
propertyTypeBoolean,
};
pub inline fn getGlobalProperties() PropertiesID {
return c.SDL_GetGlobalProperties();
}
pub inline fn createProperties() PropertiesID {
return c.SDL_CreateProperties();
}
pub inline fn copyProperties(src: PropertiesID, dst: PropertiesID) bool {
return @bitCast(c.SDL_CopyProperties(src, dst));
}
pub inline fn lockProperties(props: PropertiesID) bool {
return @bitCast(c.SDL_LockProperties(props));
}
pub inline fn unlockProperties(props: PropertiesID) void {
return c.SDL_UnlockProperties(props);
}
pub const CleanupPropertyCallback = c.SDL_CleanupPropertyCallback;
pub inline fn setPointerPropertyWithCleanup(props: PropertiesID, name: [*c]const u8, value: ?*anyopaque, cleanup: CleanupPropertyCallback, userdata: ?*anyopaque) bool {
return @bitCast(c.SDL_SetPointerPropertyWithCleanup(props, name, value, cleanup, userdata));
}
pub inline fn setPointerProperty(props: PropertiesID, name: [*c]const u8, value: ?*anyopaque) bool {
return @bitCast(c.SDL_SetPointerProperty(props, name, value));
}
pub inline fn setStringProperty(props: PropertiesID, name: [*c]const u8, value: [*c]const u8) bool {
return @bitCast(c.SDL_SetStringProperty(props, name, value));
}
pub inline fn setNumberProperty(props: PropertiesID, name: [*c]const u8, value: i64) bool {
return @bitCast(c.SDL_SetNumberProperty(props, name, value));
}
pub inline fn setFloatProperty(props: PropertiesID, name: [*c]const u8, value: f32) bool {
return @bitCast(c.SDL_SetFloatProperty(props, name, value));
}
pub inline fn setBooleanProperty(props: PropertiesID, name: [*c]const u8, value: bool) bool {
return @bitCast(c.SDL_SetBooleanProperty(props, name, @bitCast(value)));
}
pub inline fn hasProperty(props: PropertiesID, name: [*c]const u8) bool {
return @bitCast(c.SDL_HasProperty(props, name));
}
pub inline fn getPropertyType(props: PropertiesID, name: [*c]const u8) PropertyType {
return @intFromEnum(c.SDL_GetPropertyType(props, name));
}
pub inline fn getPointerProperty(props: PropertiesID, name: [*c]const u8, default_value: ?*anyopaque) ?*anyopaque {
return c.SDL_GetPointerProperty(props, name, default_value);
}
pub inline fn getStringProperty(props: PropertiesID, name: [*c]const u8, default_value: [*c]const u8) [*c]const u8 {
return c.SDL_GetStringProperty(props, name, default_value);
}
pub inline fn getNumberProperty(props: PropertiesID, name: [*c]const u8, default_value: i64) i64 {
return c.SDL_GetNumberProperty(props, name, default_value);
}
pub inline fn getFloatProperty(props: PropertiesID, name: [*c]const u8, default_value: f32) f32 {
return c.SDL_GetFloatProperty(props, name, default_value);
}
pub inline fn getBooleanProperty(props: PropertiesID, name: [*c]const u8, default_value: bool) bool {
return @bitCast(c.SDL_GetBooleanProperty(props, name, @bitCast(default_value)));
}
pub inline fn clearProperty(props: PropertiesID, name: [*c]const u8) bool {
return @bitCast(c.SDL_ClearProperty(props, name));
}
pub const EnumeratePropertiesCallback = c.SDL_EnumeratePropertiesCallback;
pub inline fn enumerateProperties(props: PropertiesID, callback: EnumeratePropertiesCallback, userdata: ?*anyopaque) bool {
return @bitCast(c.SDL_EnumerateProperties(props, callback, userdata));
}
pub inline fn destroyProperties(props: PropertiesID) void {
return c.SDL_DestroyProperties(props);
}