UNPKG

gpu-curtains

Version:

gpu-curtains is a 3D WebGPU rendering engine. It can be used as a standalone 3D engine, but also includes extra classes focused on mapping 3d objects to DOM elements; It allows users to synchronize values such as position, sizing, or scale between them.

30 lines (29 loc) 1.24 kB
import { WebGPUBufferUsageConstants } from "../../utils/webgpu-constants.mjs"; //#region src/core/buffers/utils.ts /** * Map {@link BufferUsageKeys | buffer usage names} with actual {@link !GPUBuffer.usage | GPUBufferUsageFlags}. */ const bufferUsages = new Map([ ["copySrc", WebGPUBufferUsageConstants.COPY_SRC], ["copyDst", WebGPUBufferUsageConstants.COPY_DST], ["index", WebGPUBufferUsageConstants.INDEX], ["indirect", WebGPUBufferUsageConstants.INDIRECT], ["mapRead", WebGPUBufferUsageConstants.MAP_READ], ["mapWrite", WebGPUBufferUsageConstants.MAP_WRITE], ["queryResolve", WebGPUBufferUsageConstants.QUERY_RESOLVE], ["storage", WebGPUBufferUsageConstants.STORAGE], ["uniform", WebGPUBufferUsageConstants.UNIFORM], ["vertex", WebGPUBufferUsageConstants.VERTEX] ]); /** * Get the corresponding {@link !GPUBuffer.usage | GPUBufferUsageFlags} based on an array of {@link BufferUsageKeys | buffer usage names}. * @param usages - array of {@link BufferUsageKeys | buffer usage names}. * @returns - corresponding {@link !GPUBuffer.usage | GPUBufferUsageFlags}. */ const getBufferUsages = (usages = []) => { return usages.reduce((acc, v) => { return acc | bufferUsages.get(v); }, 0); }; //#endregion export { getBufferUsages };