41 lines
2.7 KiB
Plaintext
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");
|