Skip to content

ZenFG TypeScript API / webgpu / root / CopyOperation

Type Alias: CopyOperation

CopyOperation = { copySize: TextureSize; destination: TextureHandle; destinationAspect?: GPUTextureAspect; destinationMipLevel?: number; destinationOrigin?: TextureOrigin; source: TextureHandle; sourceAspect?: GPUTextureAspect; sourceMipLevel?: number; sourceOrigin?: TextureOrigin; type: "texture-to-texture"; } | { destination: BufferHandle; destinationOffset?: GPUSize64; size: GPUSize64; source: BufferHandle; sourceOffset?: GPUSize64; type: "buffer-to-buffer"; } | { copySize: TextureSize; destination: TextureHandle; destinationAspect?: GPUTextureAspect; destinationMipLevel?: number; destinationOrigin?: TextureOrigin; source: BufferHandle; sourceLayout: Omit<GPUTexelCopyBufferLayout, "buffer">; type: "buffer-to-texture"; } | { copySize: TextureSize; destination: BufferHandle; destinationLayout: Omit<GPUTexelCopyBufferLayout, "buffer">; source: TextureHandle; sourceAspect?: GPUTextureAspect; sourceMipLevel?: number; sourceOrigin?: TextureOrigin; type: "texture-to-buffer"; }

Defined in: packages/webgpu/src/types.ts:710

Beta

A declarative WebGPU copy operation recorded by FrameGraph.

Copy ranges must satisfy WebGPU alignment and texture format block rules. Source and destination handles must belong to the current recording.

Union Members

Type Literal

{ copySize: TextureSize; destination: TextureHandle; destinationAspect?: GPUTextureAspect; destinationMipLevel?: number; destinationOrigin?: TextureOrigin; source: TextureHandle; sourceAspect?: GPUTextureAspect; sourceMipLevel?: number; sourceOrigin?: TextureOrigin; type: "texture-to-texture"; }

copySize

readonly copySize: TextureSize

Extent copied between the selected subresources.

destination

readonly destination: TextureHandle

Destination texture.

destinationAspect?

readonly optional destinationAspect?: GPUTextureAspect

Destination aspect; defaults from the destination format.

destinationMipLevel?

readonly optional destinationMipLevel?: number

Destination mip level; defaults to 0.

destinationOrigin?

readonly optional destinationOrigin?: TextureOrigin

Destination origin; defaults to zero.

source

readonly source: TextureHandle

Source texture.

sourceAspect?

readonly optional sourceAspect?: GPUTextureAspect

Source aspect; defaults from the source format.

sourceMipLevel?

readonly optional sourceMipLevel?: number

Source mip level; defaults to 0.

sourceOrigin?

readonly optional sourceOrigin?: TextureOrigin

Source origin; defaults to zero.

type

readonly type: "texture-to-texture"

Copies texture subresources.


Type Literal

{ destination: BufferHandle; destinationOffset?: GPUSize64; size: GPUSize64; source: BufferHandle; sourceOffset?: GPUSize64; type: "buffer-to-buffer"; }

destination

readonly destination: BufferHandle

Destination buffer.

destinationOffset?

readonly optional destinationOffset?: GPUSize64

Destination byte offset; defaults to 0.

size

readonly size: GPUSize64

Number of bytes copied.

source

readonly source: BufferHandle

Source buffer.

sourceOffset?

readonly optional sourceOffset?: GPUSize64

Source byte offset; defaults to 0.

type

readonly type: "buffer-to-buffer"

Copies a byte range between buffers.


Type Literal

{ copySize: TextureSize; destination: TextureHandle; destinationAspect?: GPUTextureAspect; destinationMipLevel?: number; destinationOrigin?: TextureOrigin; source: BufferHandle; sourceLayout: Omit<GPUTexelCopyBufferLayout, "buffer">; type: "buffer-to-texture"; }

copySize

readonly copySize: TextureSize

Texture extent copied.

destination

readonly destination: TextureHandle

Destination texture.

destinationAspect?

readonly optional destinationAspect?: GPUTextureAspect

Destination aspect; defaults from the destination format.

destinationMipLevel?

readonly optional destinationMipLevel?: number

Destination mip level; defaults to 0.

destinationOrigin?

readonly optional destinationOrigin?: TextureOrigin

Destination origin; defaults to zero.

source

readonly source: BufferHandle

Source buffer.

sourceLayout

readonly sourceLayout: Omit<GPUTexelCopyBufferLayout, "buffer">

Buffer layout excluding the logical buffer handle.

type

readonly type: "buffer-to-texture"

Copies texel data from a buffer into a texture.


Type Literal

{ copySize: TextureSize; destination: BufferHandle; destinationLayout: Omit<GPUTexelCopyBufferLayout, "buffer">; source: TextureHandle; sourceAspect?: GPUTextureAspect; sourceMipLevel?: number; sourceOrigin?: TextureOrigin; type: "texture-to-buffer"; }

copySize

readonly copySize: TextureSize

Texture extent copied.

destination

readonly destination: BufferHandle

Destination buffer.

destinationLayout

readonly destinationLayout: Omit<GPUTexelCopyBufferLayout, "buffer">

Buffer layout excluding the logical buffer handle.

source

readonly source: TextureHandle

Source texture.

sourceAspect?

readonly optional sourceAspect?: GPUTextureAspect

Source aspect; defaults from the source format.

sourceMipLevel?

readonly optional sourceMipLevel?: number

Source mip level; defaults to 0.

sourceOrigin?

readonly optional sourceOrigin?: TextureOrigin

Source origin; defaults to zero.

type

readonly type: "texture-to-buffer"

Copies texel data from a texture into a buffer.

Open source / MIT licensed