GPUTexture: usage 属性

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

注意:此功能在 Web Workers 中可用。

GPUTexture 接口的只读属性 usage 是一个 位标志,表示 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

浏览器兼容性

另见