don't use asTypedList/setRange on Float32List as this doesn't work with WASM
This commit is contained in:
@@ -62,10 +62,14 @@ class FilamentViewer extends AbstractFilamentViewer {
|
|||||||
this._renderCallback = renderCallback ?? nullptr;
|
this._renderCallback = renderCallback ?? nullptr;
|
||||||
this._driver = driver ?? nullptr;
|
this._driver = driver ?? nullptr;
|
||||||
this._sharedContext = sharedContext ?? nullptr;
|
this._sharedContext = sharedContext ?? nullptr;
|
||||||
|
try {
|
||||||
// _onPickResultCallable =
|
_onPickResultCallable =
|
||||||
// NativeCallable<Void Function(Int32 entityId, Int x, Int y)>.listener(
|
NativeCallable<Void Function(Int32 entityId, Int x, Int y)>.listener(
|
||||||
// _onPickResult);
|
_onPickResult);
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
"Failed to set pick result callback. This is expected if running on web/wasm");
|
||||||
|
}
|
||||||
_initialize();
|
_initialize();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -364,12 +368,10 @@ class FilamentViewer extends AbstractFilamentViewer {
|
|||||||
for (int i = 0; i < weights.length; i++) {
|
for (int i = 0; i < weights.length; i++) {
|
||||||
weightsPtr[i] = weights[i];
|
weightsPtr[i] = weights[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
var success = await withBoolCallback((cb) {
|
var success = await withBoolCallback((cb) {
|
||||||
set_morph_target_weights_ffi(
|
set_morph_target_weights_ffi(
|
||||||
_sceneManager!, entity, weightsPtr, weights.length, cb);
|
_sceneManager!, entity, weightsPtr, weights.length, cb);
|
||||||
});
|
});
|
||||||
|
|
||||||
allocator.free(weightsPtr);
|
allocator.free(weightsPtr);
|
||||||
|
|
||||||
if (!success) {
|
if (!success) {
|
||||||
@@ -451,8 +453,10 @@ class FilamentViewer extends AbstractFilamentViewer {
|
|||||||
var meshEntity = meshEntities[i];
|
var meshEntity = meshEntities[i];
|
||||||
|
|
||||||
if (targetMeshNames?.contains(meshName) == false) {
|
if (targetMeshNames?.contains(meshName) == false) {
|
||||||
|
print("Skipping $meshName, not contained in target");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
var meshMorphTargets = await getMorphTargetNames(entity, meshEntity);
|
var meshMorphTargets = await getMorphTargetNames(entity, meshEntity);
|
||||||
|
|
||||||
var intersection = animation.morphTargets
|
var intersection = animation.morphTargets
|
||||||
@@ -474,9 +478,13 @@ class FilamentViewer extends AbstractFilamentViewer {
|
|||||||
|
|
||||||
var dataPtr = allocator<Float>(frameData.length);
|
var dataPtr = allocator<Float>(frameData.length);
|
||||||
|
|
||||||
dataPtr
|
// not currently working on WASM :( wasted a lot of time figuring that out as no error is thrown
|
||||||
.asTypedList(frameData.length)
|
// dataPtr
|
||||||
.setRange(0, frameData.length, frameData);
|
// .asTypedList(frameData.length)
|
||||||
|
// .setRange(0, frameData.length, frameData);
|
||||||
|
for (int i = 0; i < frameData.length; i++) {
|
||||||
|
dataPtr[i] = frameData[i];
|
||||||
|
}
|
||||||
|
|
||||||
final idxPtr = allocator<Int>(indices.length);
|
final idxPtr = allocator<Int>(indices.length);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user