sdlGetStringProperty function

String? sdlGetStringProperty(
  1. int props,
  2. String? name,
  3. String? defaultValue
)

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();
}