GPUTexture:usage 属性

实验性: 这是一个 实验性技术
在生产环境中使用此功能之前,请仔细查看 浏览器兼容性表

安全上下文: 此功能仅在 安全上下文(HTTPS)中可用,在某些或所有 支持的浏览器 中。

usageGPUTexture 接口的只读属性,表示 GPUTexture 的允许用途的 按位标志

这通过传递到源自 GPUDevice.createTexture() 调用的描述符对象中的 usage 属性设置。

创建 GPUTexture 时设置的原始用途的按位标志。返回的数字是表示不同标志的不同十进制值的总和,如下表所示。

使用标志 使用说明 十六进制等效值 十进制等效值
GPUTextureUsage.COPY_SRC 纹理可以作为复制操作的源,例如 copyTextureToBuffer() 调用的源参数。 0x01 1
GPUTextureUsage.COPY_DST 纹理可以用作复制/写入操作的目标,例如 copyBufferToTexture() 调用的目标参数。 0x02 2
GPUTextureUsage.RENDER_ATTACHMENT 纹理可以用作渲染通道中的颜色或深度/模板附件,例如 beginRenderPass() 调用中描述符对象中的 view 属性。 0x10 16
GPUTextureUsage.STORAGE_BINDING 纹理可以绑定为着色器中的存储纹理使用,例如在创建 GPUBindGroup(通过 createBindGroup())时,绑定组条目中的资源,该条目遵循具有指定存储纹理绑定布局的 GPUBindGroupLayout 条目。 0x08 8
GPUTextureUsage.TEXTURE_BINDING 纹理可以绑定为着色器中的采样纹理使用,例如在创建 GPUBindGroup(通过 createBindGroup())时,绑定组条目中的资源,该条目遵循具有指定纹理绑定布局的 GPUBindGroupLayout 条目。 0x04 4

示例

js
// ...

const depthTexture = device.createTexture({
  size: [canvas.width, canvas.height],
  format: "depth24plus",
  usage: GPUTextureUsage.RENDER_ATTACHMENT,
});

console.log(depthTexture.usage); // 16

规范

规范
WebGPU
# dom-gputexture-usage

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参阅