add dart cli/wasm example
This commit is contained in:
16
dart_filament/examples/web_wasm/bin/README.md
Normal file
16
dart_filament/examples/web_wasm/bin/README.md
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# Flight Helmet
|
||||||
|
|
||||||
|
## Screenshot
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## License Information
|
||||||
|
|
||||||
|
Donated by Microsoft for glTF testing
|
||||||
|
|
||||||
|
[](http://creativecommons.org/publicdomain/zero/1.0/)
|
||||||
|
To the extent possible under law, Microsoft has waived all copyright and related or neighboring rights to this asset.
|
||||||
|
|
||||||
|
Draco compression was done via Cesium tools on 27-03-2020 as follows.
|
||||||
|
|
||||||
|
gltf-pipeline -i FlightHelmet.gltf -o FlightHelmet.gltf -d -s --keep-unused-elements
|
||||||
1
dart_filament/examples/web_wasm/bin/assets
Symbolic link
1
dart_filament/examples/web_wasm/bin/assets
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../../../../flutter_filament_federated/flutter_filament/example/assets
|
||||||
File diff suppressed because one or more lines are too long
1
dart_filament/examples/web_wasm/bin/dart_filament.js
Symbolic link
1
dart_filament/examples/web_wasm/bin/dart_filament.js
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../../../native/web/build/build/out/dart_filament.js
|
||||||
Binary file not shown.
1
dart_filament/examples/web_wasm/bin/dart_filament.wasm
Symbolic link
1
dart_filament/examples/web_wasm/bin/dart_filament.wasm
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../../../native/web/build/build/out/dart_filament.wasm
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
// This file is no longer used by emscripten and has been created as a placeholder
|
|
||||||
// to allow build systems to transition away from depending on it.
|
|
||||||
//
|
|
||||||
// Future versions of emscripten will likely stop generating this file at all.
|
|
||||||
1
dart_filament/examples/web_wasm/bin/dart_filament.worker.js
Symbolic link
1
dart_filament/examples/web_wasm/bin/dart_filament.worker.js
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../../../native/web/build/build/out/dart_filament.worker.js
|
||||||
@@ -1,17 +1,54 @@
|
|||||||
|
import 'dart:js_interop';
|
||||||
|
import 'dart:js_interop_unsafe';
|
||||||
import 'package:dart_filament/dart_filament/compatibility/compatibility.dart';
|
import 'package:dart_filament/dart_filament/compatibility/compatibility.dart';
|
||||||
import 'package:dart_filament/dart_filament/filament_viewer_impl.dart';
|
import 'package:dart_filament/dart_filament/filament_viewer_impl.dart';
|
||||||
|
import 'package:web/web.dart';
|
||||||
|
|
||||||
void main(List<String> arguments) async {
|
void main(List<String> arguments) async {
|
||||||
var fc = FooChar();
|
var fc = FooChar();
|
||||||
print("Started!");
|
|
||||||
|
final canvas = document.getElementById("canvas") as HTMLCanvasElement;
|
||||||
|
canvas.width = window.innerWidth;
|
||||||
|
canvas.height = window.innerHeight;
|
||||||
|
|
||||||
var resourceLoader = flutter_filament_web_get_resource_loader_wrapper();
|
var resourceLoader = flutter_filament_web_get_resource_loader_wrapper();
|
||||||
print("Got resource loader!");
|
|
||||||
|
|
||||||
var viewer = FilamentViewer(resourceLoader: resourceLoader);
|
var viewer = FilamentViewer(resourceLoader: resourceLoader);
|
||||||
print("created viewer!");
|
|
||||||
|
var mousedown = (JSObject event) {
|
||||||
|
var x = event.getProperty("clientX".toJS) as JSNumber;
|
||||||
|
var y = event.getProperty("clientY".toJS) as JSNumber;
|
||||||
|
viewer.rotateStart(x.toDartDouble, y.toDartDouble);
|
||||||
|
};
|
||||||
|
|
||||||
|
canvas.addEventListener("mousedown", mousedown.toJS);
|
||||||
|
|
||||||
|
var mousemove = (JSObject event) {
|
||||||
|
var x = event.getProperty("clientX".toJS) as JSNumber;
|
||||||
|
var y = event.getProperty("clientY".toJS) as JSNumber;
|
||||||
|
viewer.rotateUpdate(x.toDartDouble, y.toDartDouble);
|
||||||
|
};
|
||||||
|
|
||||||
|
canvas.addEventListener("mousemove", mousemove.toJS);
|
||||||
|
|
||||||
|
var mouseup = (JSObject event) {
|
||||||
|
viewer.rotateEnd();
|
||||||
|
};
|
||||||
|
|
||||||
|
canvas.addEventListener("mouseup", mousedown.toJS);
|
||||||
|
|
||||||
await viewer.initialized;
|
await viewer.initialized;
|
||||||
|
var width = window.innerWidth;
|
||||||
|
var height = window.innerHeight;
|
||||||
|
await viewer.createSwapChain(width.toDouble(), height.toDouble());
|
||||||
|
await viewer.setBackgroundColor(0.0, 1.0, 1.0, 1.0);
|
||||||
|
await viewer.loadSkybox("assets/default_env_skybox.ktx");
|
||||||
|
await viewer.loadIbl("assets/default_env_ibl.ktx");
|
||||||
|
await viewer.loadGltf("assets/FlightHelmet.gltf", "assets");
|
||||||
|
await viewer.updateViewportAndCameraProjection(
|
||||||
|
width.toDouble(), height.toDouble());
|
||||||
|
await viewer.setPostProcessing(true);
|
||||||
|
await viewer.setRendering(true);
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
await Future.delayed(Duration(milliseconds: 16));
|
await Future.delayed(Duration(milliseconds: 16));
|
||||||
|
|||||||
@@ -95,8 +95,24 @@ export const instantiate = async (modulePromise, importObjectPromise) => {
|
|||||||
// Imports
|
// Imports
|
||||||
const dart2wasm = {
|
const dart2wasm = {
|
||||||
|
|
||||||
_48: v => stringToDartString(v.toString()),
|
_18: f => finalizeWrapper(f,x0 => dartInstance.exports._18(f,x0)),
|
||||||
_64: () => {
|
_19: f => finalizeWrapper(f,x0 => dartInstance.exports._19(f,x0)),
|
||||||
|
_75: (x0,x1) => x0.getElementById(x1),
|
||||||
|
_76: f => finalizeWrapper(f,x0 => dartInstance.exports._76(f,x0)),
|
||||||
|
_77: (x0,x1,x2) => x0.addEventListener(x1,x2),
|
||||||
|
_78: f => finalizeWrapper(f,x0 => dartInstance.exports._78(f,x0)),
|
||||||
|
_79: f => finalizeWrapper(f,x0 => dartInstance.exports._79(f,x0)),
|
||||||
|
_1499: (x0,x1) => x0.width = x1,
|
||||||
|
_1501: (x0,x1) => x0.height = x1,
|
||||||
|
_1878: () => globalThis.window,
|
||||||
|
_1920: x0 => x0.innerWidth,
|
||||||
|
_1921: x0 => x0.innerHeight,
|
||||||
|
_6854: () => globalThis.document,
|
||||||
|
_12721: () => globalThis.createBoolCallback(),
|
||||||
|
_12722: () => globalThis.createVoidPointerCallback(),
|
||||||
|
_12723: () => globalThis.createVoidCallback(),
|
||||||
|
_12727: v => stringToDartString(v.toString()),
|
||||||
|
_12743: () => {
|
||||||
let stackString = new Error().stack.toString();
|
let stackString = new Error().stack.toString();
|
||||||
let frames = stackString.split('\n');
|
let frames = stackString.split('\n');
|
||||||
let drop = 2;
|
let drop = 2;
|
||||||
@@ -105,85 +121,87 @@ _64: () => {
|
|||||||
}
|
}
|
||||||
return frames.slice(drop).join('\n');
|
return frames.slice(drop).join('\n');
|
||||||
},
|
},
|
||||||
_83: s => stringToDartString(JSON.stringify(stringFromDartString(s))),
|
_12762: s => stringToDartString(JSON.stringify(stringFromDartString(s))),
|
||||||
_84: s => printToConsole(stringFromDartString(s)),
|
_12763: s => printToConsole(stringFromDartString(s)),
|
||||||
_98: (ms, c) =>
|
_12777: (ms, c) =>
|
||||||
setTimeout(() => dartInstance.exports.$invokeCallback(c),ms),
|
setTimeout(() => dartInstance.exports.$invokeCallback(c),ms),
|
||||||
_102: (c) =>
|
_12781: (c) =>
|
||||||
queueMicrotask(() => dartInstance.exports.$invokeCallback(c)),
|
queueMicrotask(() => dartInstance.exports.$invokeCallback(c)),
|
||||||
_104: (a, i) => a.push(i),
|
_12783: (a, i) => a.push(i),
|
||||||
_115: a => a.length,
|
_12794: a => a.length,
|
||||||
_117: (a, i) => a[i],
|
_12796: (a, i) => a[i],
|
||||||
_118: (a, i, v) => a[i] = v,
|
_12797: (a, i, v) => a[i] = v,
|
||||||
_120: a => a.join(''),
|
_12799: a => a.join(''),
|
||||||
_130: (s, p, i) => s.indexOf(p, i),
|
_12809: (s, p, i) => s.indexOf(p, i),
|
||||||
_133: (o, start, length) => new Uint8Array(o.buffer, o.byteOffset + start, length),
|
_12812: (o, start, length) => new Uint8Array(o.buffer, o.byteOffset + start, length),
|
||||||
_134: (o, start, length) => new Int8Array(o.buffer, o.byteOffset + start, length),
|
_12813: (o, start, length) => new Int8Array(o.buffer, o.byteOffset + start, length),
|
||||||
_135: (o, start, length) => new Uint8ClampedArray(o.buffer, o.byteOffset + start, length),
|
_12814: (o, start, length) => new Uint8ClampedArray(o.buffer, o.byteOffset + start, length),
|
||||||
_136: (o, start, length) => new Uint16Array(o.buffer, o.byteOffset + start, length),
|
_12815: (o, start, length) => new Uint16Array(o.buffer, o.byteOffset + start, length),
|
||||||
_137: (o, start, length) => new Int16Array(o.buffer, o.byteOffset + start, length),
|
_12816: (o, start, length) => new Int16Array(o.buffer, o.byteOffset + start, length),
|
||||||
_138: (o, start, length) => new Uint32Array(o.buffer, o.byteOffset + start, length),
|
_12817: (o, start, length) => new Uint32Array(o.buffer, o.byteOffset + start, length),
|
||||||
_139: (o, start, length) => new Int32Array(o.buffer, o.byteOffset + start, length),
|
_12818: (o, start, length) => new Int32Array(o.buffer, o.byteOffset + start, length),
|
||||||
_142: (o, start, length) => new Float32Array(o.buffer, o.byteOffset + start, length),
|
_12821: (o, start, length) => new Float32Array(o.buffer, o.byteOffset + start, length),
|
||||||
_143: (o, start, length) => new Float64Array(o.buffer, o.byteOffset + start, length),
|
_12822: (o, start, length) => new Float64Array(o.buffer, o.byteOffset + start, length),
|
||||||
_148: (o) => new DataView(o.buffer, o.byteOffset, o.byteLength),
|
_12827: (o) => new DataView(o.buffer, o.byteOffset, o.byteLength),
|
||||||
_152: Function.prototype.call.bind(Object.getOwnPropertyDescriptor(DataView.prototype, 'byteLength').get),
|
_12831: Function.prototype.call.bind(Object.getOwnPropertyDescriptor(DataView.prototype, 'byteLength').get),
|
||||||
_153: (b, o) => new DataView(b, o),
|
_12832: (b, o) => new DataView(b, o),
|
||||||
_155: Function.prototype.call.bind(DataView.prototype.getUint8),
|
_12834: Function.prototype.call.bind(DataView.prototype.getUint8),
|
||||||
_157: Function.prototype.call.bind(DataView.prototype.getInt8),
|
_12836: Function.prototype.call.bind(DataView.prototype.getInt8),
|
||||||
_159: Function.prototype.call.bind(DataView.prototype.getUint16),
|
_12838: Function.prototype.call.bind(DataView.prototype.getUint16),
|
||||||
_161: Function.prototype.call.bind(DataView.prototype.getInt16),
|
_12840: Function.prototype.call.bind(DataView.prototype.getInt16),
|
||||||
_163: Function.prototype.call.bind(DataView.prototype.getUint32),
|
_12842: Function.prototype.call.bind(DataView.prototype.getUint32),
|
||||||
_165: Function.prototype.call.bind(DataView.prototype.getInt32),
|
_12844: Function.prototype.call.bind(DataView.prototype.getInt32),
|
||||||
_171: Function.prototype.call.bind(DataView.prototype.getFloat32),
|
_12850: Function.prototype.call.bind(DataView.prototype.getFloat32),
|
||||||
_173: Function.prototype.call.bind(DataView.prototype.getFloat64),
|
_12852: Function.prototype.call.bind(DataView.prototype.getFloat64),
|
||||||
_194: o => o === undefined,
|
_12873: o => o === undefined,
|
||||||
_195: o => typeof o === 'boolean',
|
_12874: o => typeof o === 'boolean',
|
||||||
_196: o => typeof o === 'number',
|
_12875: o => typeof o === 'number',
|
||||||
_198: o => typeof o === 'string',
|
_12877: o => typeof o === 'string',
|
||||||
_201: o => o instanceof Int8Array,
|
_12880: o => o instanceof Int8Array,
|
||||||
_202: o => o instanceof Uint8Array,
|
_12881: o => o instanceof Uint8Array,
|
||||||
_203: o => o instanceof Uint8ClampedArray,
|
_12882: o => o instanceof Uint8ClampedArray,
|
||||||
_204: o => o instanceof Int16Array,
|
_12883: o => o instanceof Int16Array,
|
||||||
_205: o => o instanceof Uint16Array,
|
_12884: o => o instanceof Uint16Array,
|
||||||
_206: o => o instanceof Int32Array,
|
_12885: o => o instanceof Int32Array,
|
||||||
_207: o => o instanceof Uint32Array,
|
_12886: o => o instanceof Uint32Array,
|
||||||
_208: o => o instanceof Float32Array,
|
_12887: o => o instanceof Float32Array,
|
||||||
_209: o => o instanceof Float64Array,
|
_12888: o => o instanceof Float64Array,
|
||||||
_210: o => o instanceof ArrayBuffer,
|
_12889: o => o instanceof ArrayBuffer,
|
||||||
_211: o => o instanceof DataView,
|
_12890: o => o instanceof DataView,
|
||||||
_212: o => o instanceof Array,
|
_12891: o => o instanceof Array,
|
||||||
_213: o => typeof o === 'function' && o[jsWrappedDartFunctionSymbol] === true,
|
_12892: o => typeof o === 'function' && o[jsWrappedDartFunctionSymbol] === true,
|
||||||
_217: (l, r) => l === r,
|
_12896: (l, r) => l === r,
|
||||||
_218: o => o,
|
_12897: o => o,
|
||||||
_219: o => o,
|
_12898: o => o,
|
||||||
_220: o => o,
|
_12899: o => o,
|
||||||
_221: b => !!b,
|
_12900: b => !!b,
|
||||||
_222: o => o.length,
|
_12901: o => o.length,
|
||||||
_225: (o, i) => o[i],
|
_12904: (o, i) => o[i],
|
||||||
_226: f => f.dartFunction,
|
_12905: f => f.dartFunction,
|
||||||
_227: l => arrayFromDartList(Int8Array, l),
|
_12906: l => arrayFromDartList(Int8Array, l),
|
||||||
_228: l => arrayFromDartList(Uint8Array, l),
|
_12907: l => arrayFromDartList(Uint8Array, l),
|
||||||
_229: l => arrayFromDartList(Uint8ClampedArray, l),
|
_12908: l => arrayFromDartList(Uint8ClampedArray, l),
|
||||||
_230: l => arrayFromDartList(Int16Array, l),
|
_12909: l => arrayFromDartList(Int16Array, l),
|
||||||
_231: l => arrayFromDartList(Uint16Array, l),
|
_12910: l => arrayFromDartList(Uint16Array, l),
|
||||||
_232: l => arrayFromDartList(Int32Array, l),
|
_12911: l => arrayFromDartList(Int32Array, l),
|
||||||
_233: l => arrayFromDartList(Uint32Array, l),
|
_12912: l => arrayFromDartList(Uint32Array, l),
|
||||||
_234: l => arrayFromDartList(Float32Array, l),
|
_12913: l => arrayFromDartList(Float32Array, l),
|
||||||
_235: l => arrayFromDartList(Float64Array, l),
|
_12914: l => arrayFromDartList(Float64Array, l),
|
||||||
_236: (data, length) => {
|
_12915: (data, length) => {
|
||||||
const view = new DataView(new ArrayBuffer(length));
|
const view = new DataView(new ArrayBuffer(length));
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
view.setUint8(i, dartInstance.exports.$byteDataGetUint8(data, i));
|
view.setUint8(i, dartInstance.exports.$byteDataGetUint8(data, i));
|
||||||
}
|
}
|
||||||
return view;
|
return view;
|
||||||
},
|
},
|
||||||
_237: l => arrayFromDartList(Array, l),
|
_12916: l => arrayFromDartList(Array, l),
|
||||||
_238: stringFromDartString,
|
_12917: stringFromDartString,
|
||||||
_239: stringToDartString,
|
_12918: stringToDartString,
|
||||||
_242: l => new Array(l),
|
_12921: l => new Array(l),
|
||||||
_246: (o, p) => o[p],
|
_12925: (o, p) => o[p],
|
||||||
_250: o => String(o)
|
_12929: o => String(o),
|
||||||
|
_12930: (p, s, f) => p.then(s, f),
|
||||||
|
_12949: (o, p) => o[p]
|
||||||
};
|
};
|
||||||
|
|
||||||
const baseImports = {
|
const baseImports = {
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -1,3 +0,0 @@
|
|||||||
int calculate() {
|
|
||||||
return 6 * 7;
|
|
||||||
}
|
|
||||||
@@ -20,10 +20,11 @@ packages:
|
|||||||
animation_tools_dart:
|
animation_tools_dart:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: animation_tools_dart
|
path: "."
|
||||||
sha256: c4bc4096d43227b573345a3ea3cb26c3af47a70af31cd7d7d3a5b7c99e33d615
|
ref: HEAD
|
||||||
url: "https://pub.dev"
|
resolved-ref: "1a5ffc8a58353d43ba1864c8676c47948ee9b5ce"
|
||||||
source: hosted
|
url: "git@github.com:nmfisher/animation_tools_dart.git"
|
||||||
|
source: git
|
||||||
version: "0.0.2"
|
version: "0.0.2"
|
||||||
args:
|
args:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
|
|||||||
Reference in New Issue
Block a user