diff --git a/package.json b/package.json index d98ca6b..27828d3 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "docs:build": "pnpm run -C packages/docs docs:build", "docs:preview": "pnpm run -C packages/docs docs:preview", "editor:dev": "pnpm run -C packages/editor dev", - "editor:build": "pnpm run -C packages/editor build", + "editor:build": "pnpm run sdk:build && pnpm run -C packages/editor build", "editor:tsc": "pnpm run -C packages/editor tsc", "editor:preview": "pnpm run -C packages/editor preview", "sdk:dev": "pnpm run -C packages/sdk dev", diff --git a/packages/editor/.env b/packages/editor/.env index 9e4af91..aa45bd0 100644 --- a/packages/editor/.env +++ b/packages/editor/.env @@ -11,4 +11,4 @@ VITE_GLOB_AUTHOR='ErSan' VITE_GLOB_VERSION='1.0.0' # 备案号 -VITE_GLOB_BEIAN='滇ICP备2022001592号-2' \ No newline at end of file +VITE_GLOB_BEIAN='滇ICP备XXXXXX号' \ No newline at end of file diff --git a/packages/editor/.env.production b/packages/editor/.env.production index f414a67..f838e9b 100644 --- a/packages/editor/.env.production +++ b/packages/editor/.env.production @@ -19,4 +19,4 @@ VITE_ENABLE_CONFIG_GENERATE=true VITE_GLOB_ORIGIN=https://editor.astraljs.com/ #ws接口 -VITE_GLOB_SOCKET_URL=wss://editor.astraljs.com/api/sys/ws \ No newline at end of file +VITE_GLOB_SOCKET_URL=wss://editor.astraljs.com/socket \ No newline at end of file diff --git a/packages/editor/public/wasm/Astral3DEditor.wasm b/packages/editor/public/wasm/Astral3DEditor.wasm new file mode 100644 index 0000000..7f3908c Binary files /dev/null and b/packages/editor/public/wasm/Astral3DEditor.wasm differ diff --git a/packages/editor/public/wasm/Astral3DglTFHandler.wasm b/packages/editor/public/wasm/Astral3DglTFHandler.wasm index d5c7769..bf5ac94 100644 Binary files a/packages/editor/public/wasm/Astral3DglTFHandler.wasm and b/packages/editor/public/wasm/Astral3DglTFHandler.wasm differ diff --git a/packages/editor/src/utils/wasm/optimize.ts b/packages/editor/src/utils/wasm/optimize.ts new file mode 100644 index 0000000..485b958 --- /dev/null +++ b/packages/editor/src/utils/wasm/optimize.ts @@ -0,0 +1,8 @@ +import { injectWasm } from "@/utils/wasm/inject"; + +export function clearBuffer() { + injectWasm({ wasmUrl: "/wasm/Astral3DEditor.wasm" }).then(() => { + // 加载完wasm后自动注册了清除缓存的函数调用 + window.clearBuffer(); + }); +} \ No newline at end of file diff --git a/packages/editor/src/views/editor/layouts/viewport/Viewport.vue b/packages/editor/src/views/editor/layouts/viewport/Viewport.vue index 4af1aa0..75e874e 100644 --- a/packages/editor/src/views/editor/layouts/viewport/Viewport.vue +++ b/packages/editor/src/views/editor/layouts/viewport/Viewport.vue @@ -18,12 +18,13 @@ import {onMounted, ref, nextTick, onBeforeUnmount} from 'vue'; import {App,Viewer,Hooks} from "@astral3d/engine"; import Toolbar from "./Toolbar.vue"; -import ViewportInfo from "./ViewportInfo.vue"; -import BIMProperties from "./BIMProperties.vue"; -import IFCProperties from "./IFCProperties.vue"; import {useGlobalConfigStore} from "@/store/modules/globalConfig"; import {usePluginStore} from "@/store/modules/plugin"; import {installBuiltinPlugin} from "@/plugin"; +import { clearBuffer } from "@/utils/wasm/optimize"; +import ViewportInfo from "./ViewportInfo.vue"; +import BIMProperties from "./BIMProperties.vue"; +import IFCProperties from "./IFCProperties.vue"; const globalStore = useGlobalConfigStore(); const pluginStore = usePluginStore(); @@ -55,6 +56,9 @@ onMounted(async () => { // 注册astral editor内置插件 installBuiltinPlugin(window.viewer); + + // 清理wasm缓存 + clearBuffer(); }) onBeforeUnmount(() => { diff --git a/packages/editor/types/window.d.ts b/packages/editor/types/window.d.ts index 273aa39..61cc390 100644 --- a/packages/editor/types/window.d.ts +++ b/packages/editor/types/window.d.ts @@ -12,6 +12,7 @@ declare interface Window { VRButton: any; log: import('loglevel').RootLogger; // wasm + clearBuffer: () => void glTFHandlerEncodeGLB: (u: Uint8Array, jsonStr: string) => Uint8Array glTFHandlerEncodePNG: (png: Uint8Array) => Uint8Array }