sdlGetStringProperty function
Get a string property from a group of properties.
\param props the properties to query.
\param name the name of the property to query.
\param default_value the default value of the property.
\returns the value of the property, or default_value
if it is not set or
not a string property.
\threadsafety It is safe to call this function from any thread, although the data returned is not protected and could potentially be freed if you call SDL_SetStringProperty() or SDL_ClearProperty() on these properties from another thread. If you need to avoid this, use SDL_LockProperties() and SDL_UnlockProperties().
\since This function is available since SDL 3.1.3.
\sa SDL_GetPropertyType \sa SDL_HasProperty \sa SDL_SetStringProperty
extern SDL_DECLSPEC const char * SDLCALL SDL_GetStringProperty(SDL_PropertiesID props, const char *name, const char *default_value)
Implementation
String? sdlGetStringProperty(int props, String? name, String? defaultValue) {
final sdlGetStringPropertyLookupFunction = libSdl3.lookupFunction<
Pointer<Utf8> Function(
Uint32 props, Pointer<Utf8> name, Pointer<Utf8> defaultValue),
Pointer<Utf8> Function(int props, Pointer<Utf8> name,
Pointer<Utf8> defaultValue)>('SDL_GetStringProperty');
final namePointer = name != null ? name.toNativeUtf8() : nullptr;
final defaultValuePointer =
defaultValue != null ? defaultValue.toNativeUtf8() : nullptr;
final result = sdlGetStringPropertyLookupFunction(
props, namePointer, defaultValuePointer);
calloc.free(namePointer);
calloc.free(defaultValuePointer);
if (result == nullptr) {
return null;
}
return result.toDartString();
}