@motion-core/motion-gpu
Version:
Framework-agnostic WebGPU runtime for fullscreen WGSL shaders with explicit Svelte, React, and Vue adapter entrypoints.
34 lines (33 loc) • 1.14 kB
JavaScript
import "../core/error-report.js";
import "../core/current-value.js";
import "../core/texture-loader.js";
import { createTextureLoadController } from "../core/texture-load-controller.js";
import { onBeforeUnmount, onMounted } from "vue";
//#region src/lib/vue/use-texture.ts
/**
* Loads textures from URLs and exposes reactive loading/error state.
*
* @param urlInput - URLs array or lazy URL provider.
* @param optionsInput - Loader options object or lazy options provider.
* @returns Reactive texture loading state with reload support.
*/
function useTexture(urlInput, optionsInput = {}) {
const controller = createTextureLoadController({
getUrls: typeof urlInput === "function" ? urlInput : () => urlInput,
getOptions: () => typeof optionsInput === "function" ? optionsInput() : optionsInput
});
onMounted(() => {
controller.reload();
});
onBeforeUnmount(controller.dispose);
return {
textures: controller.textures,
loading: controller.loading,
error: controller.error,
errorReport: controller.errorReport,
reload: controller.reload
};
}
//#endregion
export { useTexture };
//# sourceMappingURL=use-texture.js.map