AdvancedOptional_Optionaladdresssetting this will set wrapModeU,wrapModeV and wrapModeW all at once!
Optionaladdressspecifies the {{GPUAddressMode|address modes}} for the texture width, height, and depth coordinates, respectively.
Optionaladdressspecifies the {{GPUAddressMode|address modes}} for the texture width, height, and depth coordinates, respectively.
OptionaladdressSpecifies the {{GPUAddressMode|address modes}} for the texture width, height, and depth coordinates, respectively.
OptionalalphaThe alpha mode of the video.
OptionalantialiasOnly really affects RenderTextures. Should we use antialiasing for this texture. It will look better, but may impact performance as a Blit operation will be required to resolve the texture.
Optional AdvancedarrayThe number of array layers for this texture source. Setting it above 1 makes a '2d-array' texture.
This maps to WebGPU's GPUTextureDescriptor.size.depthOrArrayLayers and is used for array-backed textures
such as cube maps (6 layers). Can't be combined with depth.
OptionalautoIf true, the Garbage Collector will unload this texture if it is not used after a period of time
OptionalautoShould we auto generate mipmaps for this texture? This will automatically generate mipmaps for this texture when uploading to the GPU. Mipmapped textures take up more memory, but can look better when scaled down.
For performance reasons, it is recommended to NOT use this with RenderTextures, as they are often updated every frame.
If you do, make sure to call updateMipmaps after you update the texture.
A 3D texture on WebGPU needs TextureSourceOptions.storage and rgba8unorm or rgba16float,
because a compute shader writes the mips. WebGL fills the chain with gl.generateMipmap.
OptionalautoIf true, the video will start loading immediately.
OptionalautoIf true, the video will start playing as soon as it is loaded.
OptionalcompareWhen provided the sampler will be a comparison sampler with the specified COMPARE_FUNCTION. Note: Comparison samplers may use filtering, but the sampling results will be implementation-dependent and may differ from the normal filtering rules.
OptionalcrossoriginIf true, the video will be loaded with the crossorigin attribute.
Optional ReadonlydestroyedHas the style been destroyed?
OptionaldimensionsHow the texture is stored. Derived from TextureSourceOptions.viewDimension: '3d' and '1d' views
are stored as themselves, every other view as '2d'.
OptionaldynamicUsed by RenderTexture.create to allow resizing. Not used by TextureSource itself.
Optionalformatthe format that the texture data has
Optionalheightthe pixel height of this texture source. This is the REAL pure number, not accounting resolution
Optionallabeloptional label, can be used for debugging
OptionallodSpecifies the minimum and maximum levels of detail, respectively, used internally when sampling a texture.
Optionallodspecifies the minimum and maximum levels of detail, respectively, used internally when sampling a texture.
OptionalloopIf true, the video will loop when it ends.
Optionalmagspecifies the sampling behavior when the sample footprint is smaller than or equal to one texel.
OptionalmaxSpecifies the maximum anisotropy value clamp used by the sampler. Note: Most implementations support TextureStyle#maxAnisotropy values in range between 1 and 16, inclusive. The used value of TextureStyle#maxAnisotropy will be clamped to the maximum value that the platform supports.
setting this to anything higher than 1 will set scale modes to 'linear'
Optionalminspecifies the sampling behavior when the sample footprint is larger than one texel.
OptionalmipThe number of mip levels to generate for this texture. this is overridden if autoGenerateMipmaps is true
Optionalmipmapspecifies behavior for sampling between mipmap levels.
OptionalmutedIf true, the video will be muted.
OptionalplaysinlineIf true, the video will play inline.
OptionalpreloadIf true, the video will be preloaded.
OptionalpreloadThe time in milliseconds to wait for the video to preload before timing out.
Optionalresolutionthe resolution of the texture.
Optionalresourcethe resource that will be uploaded to the GPU. This is where we get our pixels from eg an ImageBimt / Canvas / Video etc
Optionalscalesetting this will set magFilter,minFilter and mipmapFilter all at once!
OptionalstorageWebGPU only. Lets compute shaders write to this texture as a storage texture (a texture_storage_2d or
texture_storage_3d binding in WGSL). PixiJS still samples it as a normal texture. WebGL has no storage
textures and ignores this.
Only some formats can be storage textures: every device supports rgba8unorm, rgba16float,
r32float, rg32float, rgba32float and the matching rgba8, rgba16, r32, rg32 and rgba32
integer formats. bgra8unorm needs the bgra8unorm-storage feature and formats such as r8unorm
or r16float need texture-formats-tier1; PixiJS enables both when the GPU has them. WebGPU rejects any
other format when the texture is created.
const volume = new TextureSource({ width: 64, height: 64, depth: 64, format: 'rgba8unorm', storage: true });
// write it from your own compute pass (renderer is a WebGPURenderer)
const view = renderer.texture.getGpuSource(volume).createView();
// ... bind `view` to a `texture_storage_3d<rgba8unorm, write>`, dispatch, submit
// then sample it in any PixiJS shader as a texture_3d
OptionaltransientWebGPU only. Marks an antialiased render target as single-pass: it is never rendered into again
with clear: false, never has a filter or mask pop back onto it, and its depth/stencil is never
needed after the pass. PixiJS then discards its multisample buffers at the end of the pass instead
of writing them to memory: depth/stencil, and on GPUs that aren't tile-based also colour (tile-based
GPUs already discard colour; see GpuExtensions.tileBased). If the target is reopened anyway,
the colour is restored from the resolved texture but the depth/stencil is lost.
OptionalupdateThe number of times a second to update the texture from the video. Leave at 0 to update at every render.
OptionalviewHow this texture is viewed/sampled by shaders.
This aligns with WebGPU's GPUTextureViewDescriptor.dimension. It defaults from the size:
depth gives '3d', arrayLayerCount > 1 gives '2d-array', anything else '2d'.
Pass it only when the size doesn't decide it, e.g. 'cube' for 6 layers viewed as a cube map.
Optionalwidththe pixel width of this texture source. This is the REAL pure number, not accounting resolution
Optionalwrap
Options for video sources.