@babylonjs/viewer
Version:
The Babylon Viewer aims to simplify a specific but common Babylon.js use case: loading, viewing, and interacting with a 3D model.
39 lines (36 loc) • 1.21 kB
JavaScript
import { o as TU, q as getOrCreateSampler, ak as acquireTexture } from './index-DMbDahsc.esm.js';
import { generateMipmaps } from './generate-mipmaps-BpLaf4fV.esm.js';
async function rebuildDynamicTexture2D(engine, tex) {
const rec = tex._recoverySource;
if (!rec || rec.kind !== "dynamic") {
return;
}
const { width, height, format, levels, samplerDesc } = rec;
const rebuilt = engine._device.createTexture({
size: { width, height },
format,
mipLevelCount: levels,
usage: TU.TEXTURE_BINDING | TU.COPY_DST | TU.RENDER_ATTACHMENT
});
if (rec.source) {
try {
engine._device.queue.copyExternalImageToTexture({ source: rec.source, flipY: rec.flipY }, { texture: rebuilt, premultipliedAlpha: rec.premultipliedAlpha }, [
width,
height
]);
if (levels > 1) {
generateMipmaps(engine, rebuilt);
}
} catch {
rec.source = null;
}
}
tex.texture = rebuilt;
tex.view = rebuilt.createView();
tex.sampler = getOrCreateSampler(engine, samplerDesc);
tex.width = width;
tex.height = height;
acquireTexture(tex);
}
export { rebuildDynamicTexture2D };
//# sourceMappingURL=dynamic-texture-recovery-BGY1ewGU.esm.js.map