das+ecs 中的Bfg
节点可以存储在 ecs singleton 中,在这种情况下,有特殊函数注释 bfg_ecs_node 用于热重载。
函数应将 NodeHandle 或 NodeHandleVector 作为第一个参数并对其进行设置。
函数的其他参数可以是单例实体的任何其他组件,并将原样传递给 es 宏。
bfg_ecs_node 注解本身的可能参数:
on_appear- 在实体出现时调用函数。on_event=EventName- 在事件发生时调用函数。track=component_name- 更改组件时调用函数。
示例
require daBfg.bfg_ecs
[bfg_ecs_node(on_appear)]
def register_some_node(var some_node : NodeHandle&)
some_node <- root() |> registerNode("some_node") <| @(var registry : Registry)
// Node requests, for example:
registry |> requestRenderPass |> color([[auto[] "some_tex"]])
return <- @ <|
// Render code, for example:
query() <| $ [es] (some_shader : PostFxRenderer)
some_shader |> render()
函数注释
- bfg_ecs_node
Classes
- BfgEcsNodeAnnotation : AstFunctionAnnotation
|class-bfg_ecs-BfgEcsNodeAnnotation|
- BfgEcsNodeAnnotation.apply(self: AstFunctionAnnotation; func: FunctionPtr; group: ModuleGroup; args: AnnotationArgumentList const; errors: das_string)
apply returns bool
argument |
argument type |
|---|---|
self |
ast::AstFunctionAnnotation |
func |
FunctionPtr |
group |
rtti::ModuleGroup |
args |
rtti::AnnotationArgumentList const |
errors |
builtin::das_string |
|method-bfg_ecs-BfgEcsNodeAnnotation.apply|
- BfgEcsNodeAnnotation.declareReloadCallback(self: BfgEcsNodeAnnotation; func: FunctionPtr; parsed: BfgEcsNodeAnnotationArgs const; args: AnnotationArgumentList const)
argument |
argument type |
|---|---|
self |
|
func |
FunctionPtr |
parsed |
bfg_ecs::BfgEcsNodeAnnotationArgs const |
args |
rtti::AnnotationArgumentList const |
|method-bfg_ecs-BfgEcsNodeAnnotation.declareReloadCallback|
- BfgEcsNodeAnnotation.declareES(self: BfgEcsNodeAnnotation; func: FunctionPtr; parsed: BfgEcsNodeAnnotationArgs const; args: AnnotationArgumentList const)
argument |
argument type |
|---|---|
self |
|
func |
FunctionPtr |
parsed |
bfg_ecs::BfgEcsNodeAnnotationArgs const |
args |
rtti::AnnotationArgumentList const |
|method-bfg_ecs-BfgEcsNodeAnnotation.declareES|
- BfgEcsNodeAnnotation.parseArgs(self: BfgEcsNodeAnnotation; func: FunctionPtr; args: AnnotationArgumentList const; errors: das_string)
parseArgs returns bfg_ecs::BfgEcsNodeAnnotationArgs
argument |
argument type |
|---|---|
self |
|
func |
FunctionPtr |
args |
rtti::AnnotationArgumentList const |
errors |
builtin::das_string |