daFrameGraph in Daslang
To use daFrameGraph inside Daslang you need first of all compile daFrameGraph
library with DAFG_ENABLE_DAS_INTERGRATION = yes
.
This will compile das module that you can import with require daFg.fg_ecs
or require daFg
, whether you need ECS support or not.
Daslang daFg methods are very similar to C++ methods, so usage will be the same, but with Daslang syntax instead.
daframegraph::registerNode registers node with provided name and declaration callback. Returns NodeHandle.
Declaration callback is a Daslang lambda with one argument Registry. It returns execute lambda.
Inside declaration callback you describe node using registry argument.
C++ declaration code
registry.orderMeAfter("some_node")
registry.requestRenderPass().color("rt_tex")
Will be in Daslang:
registry |> orderMeAfter("some_node")
registry |> requestRenderPass |> color([[auto "rt_tex"]])
Example:
require daFrameGraph
def register_debug_visualization_node(var handle : NodeHandle& |#)
handle <- root() |> registerNode(debug_visualization_node_name) <| @(var registry : Registry)
if is_forward_rendering()
registry |> requestRenderPass |> color([[auto[] "target_after_under_water_fog"]]) |> depthRo("depth_for_transparent_effects")
else
registry |> orderMeAfter("tracers_node")
registry |> orderMeBefore("transparent_scene_late_node")
registry |> requestRenderPass |> color([[auto[] "opaque_final_target"]]) |> depthRw("depth_for_transparency")
registry |> requestState() |> setFrameBlock("global_frame")
return <- @ <|
worldRenderer_renderDebug()
Type Aliases
- VrsRateTexture is a variant type
some |
|
none |
void? |
|typedef-daframegraph-VrsRateTexture|
- VirtualAttachmentResource is a variant type
resUid |
|
name |
string |
|typedef-daframegraph-VirtualAttachmentResource|
- TextureResolution is a variant type
res |
tuple<x:uint;y:uint> |
autoRes |
|
|typedef-daframegraph-TextureResolution|
- NameSpaceRequest
NameSpaceRequest fields are
nameSpaceId |
|
nodeId |
|
registry |
|
|structure-daframegraph-NameSpaceRequest|
- Registry
: NameSpaceRequest
Registry fields are
nameSpaceId |
|
nodeId |
|
registry |
|
|structure-daframegraph-Registry|
- NameSpace
NameSpace fields are
nameSpaceId |
|
|structure-daframegraph-NameSpace|
- ResUid
ResUid fields are
nameId |
|
history |
bool |
|structure-daframegraph-ResUid|
- VirtualResourceRequestBase
VirtualResourceRequestBase fields are
registry |
|
resUid |
|
nodeId |
|
|structure-daframegraph-VirtualResourceRequestBase|
- VirtualResourceHandle
VirtualResourceHandle fields are
registry |
|
resUid |
|
|structure-daframegraph-VirtualResourceHandle|
- VirtualResourceCreationSemiRequest
: VirtualResourceRequestBase
VirtualResourceCreationSemiRequest fields are
registry |
|
resUid |
|
nodeId |
|
|structure-daframegraph-VirtualResourceCreationSemiRequest|
- VirtualResourceSemiRequest
: VirtualResourceRequestBase
VirtualResourceSemiRequest fields are
registry |
|
resUid |
|
nodeId |
|
|structure-daframegraph-VirtualResourceSemiRequest|
- VirtualResourceRequest
: VirtualResourceRequestBase
VirtualResourceRequest fields are
registry |
|
resUid |
|
nodeId |
|
|structure-daframegraph-VirtualResourceRequest|
- VirtualTextureHandle
: VirtualResourceHandle
VirtualTextureHandle fields are
registry |
|
resUid |
|
|structure-daframegraph-VirtualTextureHandle|
- VirtualBufferHandle
: VirtualResourceHandle
VirtualBufferHandle fields are
registry |
|
resUid |
|
|structure-daframegraph-VirtualBufferHandle|
- VirtualTextureRequest
: VirtualResourceRequest
VirtualTextureRequest fields are
registry |
|
resUid |
|
nodeId |
|
|structure-daframegraph-VirtualTextureRequest|
- VirtualBufferRequest
: VirtualResourceRequest
VirtualBufferRequest fields are
registry |
|
resUid |
|
nodeId |
|
|structure-daframegraph-VirtualBufferRequest|
- StateRequest
StateRequest fields are
registry |
|
nodeId |
|
|structure-daframegraph-StateRequest|
- VrsRequirements
VrsRequirements fields are
rateX |
uint |
rateY |
uint |
rateTexture |
|
vertexCombiner |
|
pixelCombiner |
|
|structure-daframegraph-VrsRequirements|
- VirtualPassRequest
VirtualPassRequest fields are
registry |
|
nodeId |
|
|structure-daframegraph-VirtualPassRequest|
- VirtualAttachmentRequest
VirtualAttachmentRequest fields are
resource |
|
mipLevel |
uint |
layer |
uint |
|structure-daframegraph-VirtualAttachmentRequest|
- AutoResolutionRequest
AutoResolutionRequest fields are
autoResTypeId |
|
multiplier |
float |
registry |
|
|structure-daframegraph-AutoResolutionRequest|
- Texture2dCreateInfo
Texture2dCreateInfo fields are
resolution |
|
creationFlags |
uint |
mipLevels |
uint |
|structure-daframegraph-Texture2dCreateInfo|
- BufferCreateInfo
BufferCreateInfo fields are
elementSize |
uint |
elementCount |
uint |
flags |
uint |
format |
uint |
|structure-daframegraph-BufferCreateInfo|
- NamedSlot
NamedSlot fields are
name |
string |
Top Level Functions
- root()
root returns daframegraph::NameSpace
- operator /(self: NameSpace; child_name: string const)
/ returns daframegraph::NameSpace
argument |
argument type |
---|---|
self |
|
child_name |
string const |
- fillSlot(self: NameSpace; slot: NamedSlot const; res_name_space: NameSpace const; res_name: string const)
argument |
argument type |
---|---|
self |
|
slot |
daframegraph::NamedSlot const |
res_name_space |
daframegraph::NameSpace const |
res_name |
string const |
|function-daframegraph-fillSlot|
- registerNode(self: NameSpace; name: string const; declaration_callback: lambda<(var reg:daFrameGraph::Registry -const):lambda<void>>)
registerNode returns daFgCore::NodeHandle
argument |
argument type |
---|---|
self |
|
name |
string const |
declaration_callback |
lambda<(reg: daframegraph::Registry ):lambda<>> |
|function-daframegraph-registerNode|
- root(self: Registry)
root returns daframegraph::NameSpaceRequest
argument |
argument type |
---|---|
self |
|
- operator /(self: NameSpaceRequest; child_name: string const)
/ returns daframegraph::NameSpaceRequest
argument |
argument type |
---|---|
self |
|
child_name |
string const |
Registry Manipulation
orderMeBefore (self:daFrameGraph::Registry -const;name:string const) : daFrameGraph::Registry
orderMeAfter (self:daFrameGraph::Registry -const;name:string const) : daFrameGraph::Registry
orderMeAfter (self:daFrameGraph::Registry -const;names:array<string> const) : daFrameGraph::Registry
setPriority (self:daFrameGraph::Registry -const;priority:int const) : daFrameGraph::Registry
get (resolution:daFrameGraph::AutoResolutionRequest const) : int2
requestState (self:daFrameGraph::Registry -const) : daFrameGraph::StateRequest
requestRenderPass (self:daFrameGraph::Registry -const) : daFrameGraph::VirtualPassRequest
- orderMeBefore(self: Registry; name: string const)
orderMeBefore returns daframegraph::Registry
argument |
argument type |
---|---|
self |
|
name |
string const |
|function-daframegraph-orderMeBefore|
- orderMeBefore(self: Registry; names: array<string> const)
orderMeBefore returns daframegraph::Registry
argument |
argument type |
---|---|
self |
|
names |
array<string> const |
|function-daframegraph-orderMeBefore|
- orderMeAfter(self: Registry; name: string const)
orderMeAfter returns daframegraph::Registry
argument |
argument type |
---|---|
self |
|
name |
string const |
|function-daframegraph-orderMeAfter|
- orderMeAfter(self: Registry; names: array<string> const)
orderMeAfter returns daframegraph::Registry
argument |
argument type |
---|---|
self |
|
names |
array<string> const |
|function-daframegraph-orderMeAfter|
- setPriority(self: Registry; priority: int const)
setPriority returns daframegraph::Registry
argument |
argument type |
---|---|
self |
|
priority |
int const |
|function-daframegraph-setPriority|
- multiplex(self: Registry; multiplexing_mode: MultiplexingMode const)
multiplex returns daframegraph::Registry
argument |
argument type |
---|---|
self |
|
multiplexing_mode |
|
|function-daframegraph-multiplex|
- executionHas(self: Registry; side_effect: SideEffect const)
executionHas returns daframegraph::Registry
argument |
argument type |
---|---|
self |
|
side_effect |
daFgCore::SideEffect const |
|function-daframegraph-executionHas|
- create(self: Registry; name: string const; history: History const)
create returns daframegraph::VirtualResourceCreationSemiRequest
argument |
argument type |
---|---|
self |
|
name |
string const |
history |
daFgCore::History const |
|function-daframegraph-create|
- getResolution(self: NameSpaceRequest; type_name: string const; multiplier: float const)
getResolution returns daframegraph::AutoResolutionRequest
argument |
argument type |
---|---|
self |
|
type_name |
string const |
multiplier |
float const |
|function-daframegraph-getResolution|
- read(self: NameSpaceRequest; name: string const)
read returns daframegraph::VirtualResourceSemiRequest
argument |
argument type |
---|---|
self |
|
name |
string const |
- read(self: NameSpaceRequest; slot: NamedSlot const)
read returns daframegraph::VirtualResourceSemiRequest
argument |
argument type |
---|---|
self |
|
slot |
daframegraph::NamedSlot const |
- history(self: NameSpaceRequest; name: string)
history returns daframegraph::VirtualResourceSemiRequest
argument |
argument type |
---|---|
self |
|
name |
string |
|function-daframegraph-history|
- modify(self: NameSpaceRequest; name: string const)
modify returns daframegraph::VirtualResourceSemiRequest
argument |
argument type |
---|---|
self |
|
name |
string const |
|function-daframegraph-modify|
- modify(self: NameSpaceRequest; slot: NamedSlot const)
modify returns daframegraph::VirtualResourceSemiRequest
argument |
argument type |
---|---|
self |
|
slot |
daframegraph::NamedSlot const |
|function-daframegraph-modify|
- rename(self: NameSpaceRequest; from: string const; to: string const; history: History const)
rename returns daframegraph::VirtualResourceSemiRequest
argument |
argument type |
---|---|
self |
|
from |
string const |
to |
string const |
history |
daFgCore::History const |
|function-daframegraph-rename|
- get(resolution: AutoResolutionRequest const)
get returns int2
argument |
argument type |
---|---|
resolution |
|
- requestState(self: Registry)
requestState returns daframegraph::StateRequest
argument |
argument type |
---|---|
self |
|
|function-daframegraph-requestState|
- requestRenderPass(self: Registry)
requestRenderPass returns daframegraph::VirtualPassRequest
argument |
argument type |
---|---|
self |
|
Request Manipulation
texture (self:daFrameGraph::VirtualResourceSemiRequest -const) : daFrameGraph::VirtualTextureRequest
buffer (self:daFrameGraph::VirtualResourceSemiRequest -const) : daFrameGraph::VirtualBufferRequest
blob (self:daFrameGraph::VirtualResourceSemiRequest -const) : daFrameGraph::VirtualResourceRequest
handle (self:daFrameGraph::VirtualTextureRequest const) : daFrameGraph::VirtualTextureHandle
handle (self:daFrameGraph::VirtualBufferRequest const) : daFrameGraph::VirtualBufferHandle
view (handle:daFrameGraph::VirtualTextureHandle const) : DagorResPtr::ManagedTexView
view (handle:daFrameGraph::VirtualBufferHandle const) : DagorResPtr::ManagedBufView
allowWireFrame (self:daFrameGraph::StateRequest -const) : daFrameGraph::StateRequest
useAs (self:auto(TT) -const;usageType:daFgCore::Usage const) : TT
atStage (self:auto(TT) -const;stage:daFgCore::Stage const) : TT
bindToShaderVar (self:auto(TT) -const;name:string const) : TT
- texture(self: VirtualResourceCreationSemiRequest; info: Texture2dCreateInfo const)
texture returns daframegraph::VirtualTextureRequest
argument |
argument type |
---|---|
self |
|
info |
|
|function-daframegraph-texture|
- texture(self: VirtualResourceSemiRequest)
texture returns daframegraph::VirtualTextureRequest
argument |
argument type |
---|---|
self |
|
|function-daframegraph-texture|
- buffer(self: VirtualResourceCreationSemiRequest; info: BufferCreateInfo const)
buffer returns daframegraph::VirtualBufferRequest
argument |
argument type |
---|---|
self |
|
info |
|
|function-daframegraph-buffer|
- buffer(self: VirtualResourceSemiRequest)
buffer returns daframegraph::VirtualBufferRequest
argument |
argument type |
---|---|
self |
|
|function-daframegraph-buffer|
- blob(self: VirtualResourceSemiRequest)
blob returns daframegraph::VirtualResourceRequest
argument |
argument type |
---|---|
self |
|
- modifyRequest(self: VirtualResourceRequest; modifier: block<(var request:daFgCore::ResourceRequest -const):void> const)
argument |
argument type |
---|---|
self |
|
modifier |
block<(request: daFgCore::ResourceRequest ):void> const |
|function-daframegraph-modifyRequest|
- handle(self: VirtualTextureRequest const)
handle returns daframegraph::VirtualTextureHandle
argument |
argument type |
---|---|
self |
|
|function-daframegraph-handle|
- handle(self: VirtualBufferRequest const)
handle returns daframegraph::VirtualBufferHandle
argument |
argument type |
---|---|
self |
|
|function-daframegraph-handle|
- view(handle: VirtualTextureHandle const)
view returns DagorResPtr::ManagedTexView
argument |
argument type |
---|---|
handle |
|
- view(handle: VirtualBufferHandle const)
view returns DagorResPtr::ManagedBufView
argument |
argument type |
---|---|
handle |
|
- setFrameBlock(self: StateRequest; name: string const)
setFrameBlock returns daframegraph::StateRequest
argument |
argument type |
---|---|
self |
|
name |
string const |
|function-daframegraph-setFrameBlock|
- setSceneBlock(self: StateRequest; name: string const)
setSceneBlock returns daframegraph::StateRequest
argument |
argument type |
---|---|
self |
|
name |
string const |
|function-daframegraph-setSceneBlock|
- setObjectBlock(self: StateRequest; name: string const)
setObjectBlock returns daframegraph::StateRequest
argument |
argument type |
---|---|
self |
|
name |
string const |
|function-daframegraph-setObjectBlock|
- allowWireFrame(self: StateRequest)
allowWireFrame returns daframegraph::StateRequest
argument |
argument type |
---|---|
self |
|
|function-daframegraph-allowWireFrame|
- allowVrs(self: StateRequest; vrs: VrsRequirements const)
allowVrs returns daframegraph::StateRequest
argument |
argument type |
---|---|
self |
|
vrs |
|
|function-daframegraph-allowVrs|
- enableOverride(self: StateRequest; das_override: OverrideRenderState const)
enableOverride returns daframegraph::StateRequest
argument |
argument type |
---|---|
self |
|
das_override |
DagorDriver3D::OverrideRenderState const |
|function-daframegraph-enableOverride|
- color(self: VirtualPassRequest; attachments: array<daFrameGraph::VirtualAttachmentRequest> const)
color returns daframegraph::VirtualPassRequest
argument |
argument type |
---|---|
self |
|
attachments |
array< daframegraph::VirtualAttachmentRequest > const |
- optional(self: auto(TT))
optional returns TT
argument |
argument type |
---|---|
self |
auto(TT) |
|function-daframegraph-optional|
- useAs(self: auto(TT); usageType: Usage const)
useAs returns TT
argument |
argument type |
---|---|
self |
auto(TT) |
usageType |
daFgCore::Usage const |
- atStage(self: auto(TT); stage: Stage const)
atStage returns TT
argument |
argument type |
---|---|
self |
auto(TT) |
stage |
daFgCore::Stage const |
|function-daframegraph-atStage|
- bindToShaderVar(self: auto(TT); name: string const)
bindToShaderVar returns TT
argument |
argument type |
---|---|
self |
auto(TT) |
name |
string const |
|function-daframegraph-bindToShaderVar|
- color(self: VirtualPassRequest; requests: VirtualTextureRequest const[])
color returns daframegraph::VirtualPassRequest
argument |
argument type |
---|---|
self |
|
requests |
daframegraph::VirtualTextureRequest const[-1] |
- color(self: VirtualPassRequest; names: string const[])
color returns daframegraph::VirtualPassRequest
argument |
argument type |
---|---|
self |
|
names |
string const[-1] |
- depthRw(self: VirtualPassRequest; attachment: auto const)
depthRw returns daframegraph::VirtualPassRequest
argument |
argument type |
---|---|
self |
|
attachment |
auto const |
|function-daframegraph-depthRw|
- depthRo(self: VirtualPassRequest; attachment: auto const)
depthRo returns daframegraph::VirtualPassRequest
argument |
argument type |
---|---|
self |
|
attachment |
auto const |