sdl3.c3l/sdl3_properties.c3i

41 lines
2.7 KiB
Plaintext

module sdl3::sdl;
typedef PropertiesID = uint;
enum PropertyType : inline CInt {
PROPERTY_TYPE_INVALID,
PROPERTY_TYPE_POINTER,
PROPERTY_TYPE_STRING,
PROPERTY_TYPE_NUMBER,
PROPERTY_TYPE_FLOAT,
PROPERTY_TYPE_BOOLEAN
}
extern fn PropertiesID get_global_properties() @extern("SDL_GetGlobalProperties");
extern fn PropertiesID create_properties() @extern("SDL_CreateProperties");
extern fn bool copy_properties(PropertiesID src, PropertiesID dst) @extern("SDL_CopyProperties");
extern fn bool lock_properties(PropertiesID props) @extern("SDL_LockProperties");
extern fn void unlock_properties(PropertiesID props) @extern("SDL_UnlockProperties");
alias CleanupPropertyCallback = fn void(void* userdata, void* value);
extern fn bool set_pointer_property_with_cleanup(PropertiesID props, ZString name, void* value, CleanupPropertyCallback cleanup, void* userdata) @extern("SDL_SetPointerPropertyWithCleanup");
extern fn bool set_pointer_property(PropertiesID props, ZString name, void* value) @extern("SDL_SetPointerProperty");
extern fn bool set_string_property(PropertiesID props, ZString name, ZString value) @extern("SDL_SetStringProperty");
extern fn bool set_number_property(PropertiesID props, ZString name, long value) @extern("SDL_SetNumberProperty");
extern fn bool set_float_property(PropertiesID props, ZString name, float value) @extern("SDL_SetFloatProperty");
extern fn bool set_boolean_property(PropertiesID props, ZString name, bool value) @extern("SDL_SetBooleanProperty");
extern fn bool has_property(PropertiesID props, ZString name) @extern("SDL_HasProperty");
extern fn PropertyType get_property_type(PropertiesID props, ZString name) @extern("SDL_GetPropertyType");
extern fn void* get_pointer_property(PropertiesID props, ZString name, void* default_value) @extern("SDL_GetPointerProperty");
extern fn ZString get_string_property(PropertiesID props, ZString name, ZString default_value) @extern("SDL_GetStringProperty");
extern fn long get_number_property(PropertiesID props, ZString name, long default_value) @extern("SDL_GetNumberProperty");
extern fn float get_float_property(PropertiesID props, ZString name, float default_value) @extern("SDL_GetFloatProperty");
extern fn bool get_boolean_property(PropertiesID props, ZString name, bool default_value) @extern("SDL_GetBooleanProperty");
extern fn bool clear_property(PropertiesID props, ZString name) @extern("SDL_ClearProperty");
alias EnumeratePropertiesCallback = fn void(void* userdata, PropertiesID props, ZString name);
extern fn bool enumerate_properties(PropertiesID props, EnumeratePropertiesCallback callback, void* userdata) @extern("SDL_EnumerateProperties");
extern fn void destroy_properties(PropertiesID props) @extern("SDL_DestroyProperties");