From a98d7550aefccf50e93df6692f956bfd1563c0b6 Mon Sep 17 00:00:00 2001 From: Nick Fisher Date: Wed, 28 May 2025 10:49:44 +0800 Subject: [PATCH] (web) add asTypedList extension for Pointer/Float32List --- .../lib/src/bindings/src/js_interop.dart | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/thermion_dart/lib/src/bindings/src/js_interop.dart b/thermion_dart/lib/src/bindings/src/js_interop.dart index 8f4a9f26..1da5a373 100644 --- a/thermion_dart/lib/src/bindings/src/js_interop.dart +++ b/thermion_dart/lib/src/bindings/src/js_interop.dart @@ -212,13 +212,16 @@ extension Float64ListExtension on Float64List { bar.toDart.setRange(0, length, this); return ptr; } +} - // static Float64List create(int length) { - // final ptr = malloc(length * 8); - // final buffer = _NativeLibrary.instance._emscripten_make_f64_buffer(ptr.cast(), length).toDart; - // _allocated.add(buffer); - // return buffer; - // } +extension AsFloat32List on Pointer { + Float32List asTypedList(int length) { + final start = addr; + final wrapper = + Float32ArrayWrapper(NativeLibrary.instance.HEAPU8.buffer, start, length) + as JSFloat32Array; + return wrapper.toDart; + } } int sizeOf() {