Repository navigation
decode.webgpu.Class.RenderTargetNode
@monogrid/gainmap-js / decode/webgpu / RenderTargetNode
Defined in: src/core/webgpu/RenderTargetNode.ts:29
Base class for TSL texture nodes whose texture is a render target, filled by rendering a full screen quad.
The quad is rendered only when something changed since the last render: subclasses list what the result depends on in RenderTargetNode._getState and the other render target nodes they read from in RenderTargetNode._getDependencies. Sampling the node costs a single texture read, like any other texture.
The node renders itself before rendering whenever it is part of a rendered node graph
(material, scene.backgroundNode, ...). When only its texture is used (node.value)
call RenderTargetNode.render yourself.
TextureNode
new RenderTargetNode(
material,renderTargetOptions):RenderTargetNode
Defined in: src/core/webgpu/RenderTargetNode.ts:52
NodeMaterial
the material rendered on the full screen quad
RenderTargetOptions
options of the render target, it is created with a 1x1 size and resized to RenderTargetNode.width x RenderTargetNode.height before rendering
RenderTargetNode
TextureNode.constructor
protected_material:NodeMaterial
Defined in: src/core/webgpu/RenderTargetNode.ts:42
protected_quadMesh:QuadMesh
Defined in: src/core/webgpu/RenderTargetNode.ts:41
readonlyrenderTarget:RenderTarget
Defined in: src/core/webgpu/RenderTargetNode.ts:33
The render target holding the result
revision:
number=0
Defined in: src/core/webgpu/RenderTargetNode.ts:39
Incremented every time the render target is rendered, nodes depending on this one use it to know when to render again
get
abstractheight():number
Defined in: src/core/webgpu/RenderTargetNode.ts:66
Height of the result, the node doesn't render while it's 0
number
get value():
Texture
Defined in: src/core/webgpu/RenderTargetNode.ts:139
Texture
set value(
value):void
Defined in: src/core/webgpu/RenderTargetNode.ts:133
Texture
void
TextureNode.value
get
abstractwidth():number
Defined in: src/core/webgpu/RenderTargetNode.ts:64
Width of the result, the node doesn't render while it's 0
number
protected_getDependencies():RenderTargetNode[]
Defined in: src/core/webgpu/RenderTargetNode.ts:76
Render target nodes read by this node, rendered (if needed) before this one
RenderTargetNode[]
abstractprotected_getState():unknown[]
Defined in: src/core/webgpu/RenderTargetNode.ts:71
Values the result depends on, compared with === to the ones of the last render
unknown[]
protected_onRender():void
Defined in: src/core/webgpu/RenderTargetNode.ts:81
Called after the render target has been rendered
void
clone():
RenderTargetNode
Defined in: src/core/webgpu/RenderTargetNode.ts:147
Clones created by sample() & co. are plain TextureNodes reading this node's texture,
they keep it updated before rendering as well
RenderTargetNode
TextureNode.clone
dispose():
void
Defined in: src/core/webgpu/RenderTargetNode.ts:158
Disposes the render target and the material
void
TextureNode.dispose
invalidate():
RenderTargetNode
Defined in: src/core/webgpu/RenderTargetNode.ts:87
Forces a render the next time RenderTargetNode.render is called, use it when something the node can't track changed (e.g. a custom input node)
RenderTargetNode
render(
renderer):boolean
Defined in: src/core/webgpu/RenderTargetNode.ts:100
Renders into RenderTargetNode.renderTarget, only if something changed since the last render.
Called automatically when the node is part of a rendered node graph.
WebGPURenderer
boolean
true if the render target was rendered