GPUTexture: usage-Eigenschaft
Eingeschränkt verfügbar
Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die usage schreibgeschützte Eigenschaft der GPUTexture-Schnittstelle sind die bitweisen Flags, die die erlaubten Verwendungen der GPUTexture darstellen.
Diese wird über die usage-Eigenschaft im Deskriptor-Objekt gesetzt, das im ursprünglichen Aufruf von GPUDevice.createTexture() übergeben wird.
Wert
Die bitweisen Flags, die die ursprünglichen Verwendungen darstellen, die bei der ersten Erstellung der GPUTexture festgelegt wurden. Die zurückgegebene Zahl ist die Summe der Dezimalwerte, die die verschiedenen Flags darstellen, wie in der folgenden Tabelle zu sehen.
| Nutzungs-Flag | Beschreibung der Nutzung | Hex-Wert | Dezimal-Wert |
|---|---|---|---|
GPUTextureUsage.COPY_SRC |
Die Textur kann als Quelle einer Kopieroperation verwendet werden, z.B. als Quellargument eines copyTextureToBuffer()-Aufrufs. |
0x01 | 1 |
GPUTextureUsage.COPY_DST |
Die Textur kann als Ziel einer Kopier-/Schreiboperation verwendet werden, z.B. als Zielargument eines copyBufferToTexture()-Aufrufs. |
0x02 | 2 |
GPUTextureUsage.RENDER_ATTACHMENT |
Die Textur kann als Farb- oder Tiefen-/Stencil-Anhang in einem Render-Pass verwendet werden, z.B. als view-Eigenschaft des Deskriptor-Objekts in einem beginRenderPass()-Aufruf. |
0x10 | 16 |
GPUTextureUsage.STORAGE_BINDING |
Die Textur kann als Speichertest in einem Shader gebunden werden, z.B. als Ressource in einem Bind-Gruppe-Eintrag beim Erstellen einer GPUBindGroup (über createBindGroup()), die einem GPUBindGroupLayout-Eintrag mit einer angegebenen Speichertest-Bindungslayout entspricht. |
0x08 | 8 |
GPUTextureUsage.TEXTURE_BINDING |
Die Textur kann als abgetastete Textur in einem Shader gebunden werden, z.B. als Ressource in einem Bind-Gruppe-Eintrag beim Erstellen einer GPUBindGroup (über createBindGroup()), die einem GPUBindGroupLayout-Eintrag mit einer angegebenen Texturbindungslayout entspricht. |
0x04 | 4 |
GPUTextureUsage.TRANSIENT_ATTACHMENT |
Die Textur ist als temporärer Optimierungshinweis gedacht und erstellt speichereffiziente Anhänge, die nur innerhalb des aktuellen Render-Passes verwendet werden. Verwandte Render-Pass-Operationen verbleiben im Kachel-Speicher, was den VRAM-Verkehr vermeidet und die VRAM-Zuweisung für die Texturen verhindern kann. | 0x20 | 32 |
Beispiele
// …
const depthTexture = device.createTexture({
size: [canvas.width, canvas.height],
format: "depth24plus",
usage: GPUTextureUsage.RENDER_ATTACHMENT,
});
console.log(depthTexture.usage); // 16
Spezifikationen
| Spezifikation |
|---|
| WebGPU> # dom-gputexture-usage> |
Browser-Kompatibilität
Siehe auch
- Die WebGPU API