From 93e7781c6495c448d3d96ee576737dbb3442bcca Mon Sep 17 00:00:00 2001 From: Cameron Fraser Date: Tue, 23 Jan 2024 15:57:31 -0800 Subject: [PATCH] use loader worker --- src/aics-image-viewer/components/App/index.tsx | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/src/aics-image-viewer/components/App/index.tsx b/src/aics-image-viewer/components/App/index.tsx index 5a0155c6..910ebb24 100644 --- a/src/aics-image-viewer/components/App/index.tsx +++ b/src/aics-image-viewer/components/App/index.tsx @@ -2,15 +2,7 @@ import React, { useCallback, useEffect, useRef, useState } from "react"; import { Layout } from "antd"; import { debounce } from "lodash"; -import { - createVolumeLoader, - LoadSpec, - RENDERMODE_PATHTRACE, - RENDERMODE_RAYMARCH, - View3d, - Volume, - VolumeCache, -} from "@aics/volume-viewer"; +import { LoadSpec, LoadWorker, RENDERMODE_PATHTRACE, RENDERMODE_RAYMARCH, View3d, Volume } from "@aics/volume-viewer"; import { AppProps, @@ -161,9 +153,8 @@ const App: React.FC = (props) => { // State management ///////////////////////////////////////////////////////// - // TODO is there a better API for values that never change? const view3d = useConstructor(() => new View3d()); - const volumeCache = useConstructor(() => new VolumeCache(250_000_000 * 4)); + const loadWorker = useConstructor(() => new LoadWorker(250_000_000 * 4, 8, 3)); const [image, setImage] = useState(null); const imageUrlRef = useRef(""); @@ -429,7 +420,8 @@ const App: React.FC = (props) => { // if this does NOT end with tif or json, // then we assume it's zarr. - const loader = await createVolumeLoader(fullUrl, { cache: volumeCache }); + await loadWorker.onOpen(); + const loader = await loadWorker.createLoader(fullUrl); const aimg = await loader.createVolume(loadSpec, (v, channelIndex) => { // NOTE: this callback runs *after* `onNewVolumeCreated` below, for every loaded channel