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:749
Beta
A declarative WebGPU copy operation recorded by FrameGraph.
FrameGraph tracks logical resource ranges and requires a known buffer-copy footprint for non-empty buffer-texture copies. Retained zero-sized copies are encoded for native validation but do not produce graph reads or writes. Texture-to-buffer copies preserve previous contents when their byte footprint includes row or layer padding; contiguous footprints overwrite their range. Native command alignment, format, aspect, and overlap validation remains with WebGPU. 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
readonlycopySize:TextureSize
Extent copied between the selected subresources.
destination
readonlydestination:TextureHandle
Destination texture.
destinationAspect?
readonlyoptionaldestinationAspect?:GPUTextureAspect
Destination aspect; defaults from the destination format.
destinationMipLevel?
readonlyoptionaldestinationMipLevel?:number
Destination mip level; defaults to 0.
destinationOrigin?
readonlyoptionaldestinationOrigin?:TextureOrigin
Destination origin; defaults to zero.
source
readonlysource:TextureHandle
Source texture.
sourceAspect?
readonlyoptionalsourceAspect?:GPUTextureAspect
Source aspect; defaults from the source format.
sourceMipLevel?
readonlyoptionalsourceMipLevel?:number
Source mip level; defaults to 0.
sourceOrigin?
readonlyoptionalsourceOrigin?:TextureOrigin
Source origin; defaults to zero.
type
readonlytype:"texture-to-texture"
Copies texture subresources.
Type Literal
{ destination: BufferHandle; destinationOffset?: GPUSize64; size: GPUSize64; source: BufferHandle; sourceOffset?: GPUSize64; type: "buffer-to-buffer"; }
destination
readonlydestination:BufferHandle
Destination buffer.
destinationOffset?
readonlyoptionaldestinationOffset?:GPUSize64
Destination byte offset; defaults to 0.
size
readonlysize:GPUSize64
Number of bytes copied.
source
readonlysource:BufferHandle
Source buffer.
sourceOffset?
readonlyoptionalsourceOffset?:GPUSize64
Source byte offset; defaults to 0.
type
readonlytype:"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
readonlycopySize:TextureSize
Texture extent copied.
destination
readonlydestination:TextureHandle
Destination texture.
destinationAspect?
readonlyoptionaldestinationAspect?:GPUTextureAspect
Destination aspect; defaults from the destination format.
destinationMipLevel?
readonlyoptionaldestinationMipLevel?:number
Destination mip level; defaults to 0.
destinationOrigin?
readonlyoptionaldestinationOrigin?:TextureOrigin
Destination origin; defaults to zero.
source
readonlysource:BufferHandle
Source buffer.
sourceLayout
readonlysourceLayout:Omit<GPUTexelCopyBufferLayout,"buffer">
Buffer layout excluding the logical buffer handle.
type
readonlytype:"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
readonlycopySize:TextureSize
Texture extent copied.
destination
readonlydestination:BufferHandle
Destination buffer.
destinationLayout
readonlydestinationLayout:Omit<GPUTexelCopyBufferLayout,"buffer">
Buffer layout excluding the logical buffer handle.
source
readonlysource:TextureHandle
Source texture.
sourceAspect?
readonlyoptionalsourceAspect?:GPUTextureAspect
Source aspect; defaults from the source format.
sourceMipLevel?
readonlyoptionalsourceMipLevel?:number
Source mip level; defaults to 0.
sourceOrigin?
readonlyoptionalsourceOrigin?:TextureOrigin
Source origin; defaults to zero.
type
readonlytype:"texture-to-buffer"
Copies texel data from a texture into a buffer.