GuiLoadIcons method

  1. @override
List<String> GuiLoadIcons(
  1. String fileName,
  2. bool loadIconsName
)
override

Implementation

@override
List<String> GuiLoadIcons(
  String fileName,
  bool loadIconsName,
) => run(
  () => RaylibDebugLabels.GuiLoadIcons(fileName, loadIconsName),
  () {
    final values = rl.Gui.GuiLoadIcons(
      rl.Temp.String$.ValueOrNull(fileName),
      loadIconsName,
    );
    if (!loadIconsName || values == nullptr) return [];

    // read iconCount from file header (2 bytes short at offset 8)
    try {
      final file = File(fileName).openSync();
      file.setPositionSync(8);
      final bytes = file.readSync(2);
      file.closeSync();
      final iconCount = ByteData.sublistView(bytes).getInt16(0, Endian.little);
      final List<String> icons = .generate(iconCount, (i) => values[i].toD);
      calloc.free(values);
      return icons;
    } catch (_) {
      return [];
    }
  },
);