sdlReadStorageFile function storage

bool sdlReadStorageFile(
  1. Pointer<SdlStorage> storage,
  2. String? path,
  3. Pointer<Void> destination,
  4. int length,
)

Synchronously read a file from a storage container into a client-provided buffer.

The value of length must match the length of the file exactly; call SDL_GetStorageFileSize() to get this value. This behavior may be relaxed in a future release.

\param storage a storage container to read from. \param path the relative path of the file to read. \param destination a client-provided buffer to read the file into. \param length the length of the destination buffer. \returns true if the file was read or false on failure; call SDL_GetError() for more information.

\since This function is available since SDL 3.2.0.

\sa SDL_GetStorageFileSize \sa SDL_StorageReady \sa SDL_WriteStorageFile

extern SDL_DECLSPEC bool SDLCALL SDL_ReadStorageFile(SDL_Storage *storage, const char *path, void *destination, Uint64 length)

Implementation

bool sdlReadStorageFile(
  Pointer<SdlStorage> storage,
  String? path,
  Pointer<Void> destination,
  int length,
) {
  final sdlReadStorageFileLookupFunction = _libSdl
      .lookupFunction<
        Bool Function(
          Pointer<SdlStorage> storage,
          Pointer<Utf8> path,
          Pointer<Void> destination,
          Uint64 length,
        ),
        bool Function(
          Pointer<SdlStorage> storage,
          Pointer<Utf8> path,
          Pointer<Void> destination,
          int length,
        )
      >('SDL_ReadStorageFile');
  final pathPointer = path != null ? path.toNativeUtf8() : nullptr;
  final result = sdlReadStorageFileLookupFunction(
    storage,
    pathPointer,
    destination,
    length,
  );
  calloc.free(pathPointer);
  return result;
}