.. This is auto generated file. See daBfg/api/das/docs .. _stdlib_bfg_ecs: ============== das+ecs 中的Bfg ============== 节点可以存储在 ecs **singleton** 中,在这种情况下,有特殊函数注释 :ref:`bfg_ecs_node ` 用于热重载。 函数应将 :ref:`NodeHandle ` 或 :ref:`NodeHandleVector ` 作为第一个参数并对其进行设置。 函数的其他参数可以是单例实体的任何其他组件,并将原样传递给 es 宏。 bfg_ecs_node 注解本身的可能参数: - ``on_appear`` - 在实体出现时调用函数。 - ``on_event=EventName`` - 在事件发生时调用函数。 - ``track=component_name`` - 更改组件时调用函数。 示例 .. code-block:: das 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() ++++++++++++++++++++ 函数注释 ++++++++++++++++++++ .. _handle-bfg_ecs-bfg_ecs_node: .. das:attribute:: bfg_ecs_node |function_annotation-bfg_ecs-bfg_ecs_node| +++++++ Classes +++++++ .. _struct-bfg_ecs-BfgEcsNodeAnnotation: .. das:attribute:: BfgEcsNodeAnnotation : AstFunctionAnnotation |class-bfg_ecs-BfgEcsNodeAnnotation| .. das:function:: BfgEcsNodeAnnotation.apply(self: AstFunctionAnnotation; func: FunctionPtr; group: ModuleGroup; args: AnnotationArgumentList const; errors: das_string) apply returns bool +--------+--------------------------------------------------------------------------------+ +argument+argument type + +========+================================================================================+ +self + :ref:`ast::AstFunctionAnnotation ` + +--------+--------------------------------------------------------------------------------+ +func + :ref:`FunctionPtr ` + +--------+--------------------------------------------------------------------------------+ +group + :ref:`rtti::ModuleGroup ` + +--------+--------------------------------------------------------------------------------+ +args + :ref:`rtti::AnnotationArgumentList ` const+ +--------+--------------------------------------------------------------------------------+ +errors + :ref:`builtin::das_string ` + +--------+--------------------------------------------------------------------------------+ |method-bfg_ecs-BfgEcsNodeAnnotation.apply| .. das:function:: BfgEcsNodeAnnotation.declareReloadCallback(self: BfgEcsNodeAnnotation; func: FunctionPtr; parsed: BfgEcsNodeAnnotationArgs const; args: AnnotationArgumentList const) +--------+------------------------------------------------------------------------------------------+ +argument+argument type + +========+==========================================================================================+ +self + :ref:`bfg_ecs::BfgEcsNodeAnnotation ` + +--------+------------------------------------------------------------------------------------------+ +func + :ref:`FunctionPtr ` + +--------+------------------------------------------------------------------------------------------+ +parsed + :ref:`bfg_ecs::BfgEcsNodeAnnotationArgs ` const+ +--------+------------------------------------------------------------------------------------------+ +args + :ref:`rtti::AnnotationArgumentList ` const + +--------+------------------------------------------------------------------------------------------+ |method-bfg_ecs-BfgEcsNodeAnnotation.declareReloadCallback| .. das:function:: BfgEcsNodeAnnotation.declareES(self: BfgEcsNodeAnnotation; func: FunctionPtr; parsed: BfgEcsNodeAnnotationArgs const; args: AnnotationArgumentList const) +--------+------------------------------------------------------------------------------------------+ +argument+argument type + +========+==========================================================================================+ +self + :ref:`bfg_ecs::BfgEcsNodeAnnotation ` + +--------+------------------------------------------------------------------------------------------+ +func + :ref:`FunctionPtr ` + +--------+------------------------------------------------------------------------------------------+ +parsed + :ref:`bfg_ecs::BfgEcsNodeAnnotationArgs ` const+ +--------+------------------------------------------------------------------------------------------+ +args + :ref:`rtti::AnnotationArgumentList ` const + +--------+------------------------------------------------------------------------------------------+ |method-bfg_ecs-BfgEcsNodeAnnotation.declareES| .. das:function:: BfgEcsNodeAnnotation.parseArgs(self: BfgEcsNodeAnnotation; func: FunctionPtr; args: AnnotationArgumentList const; errors: das_string) parseArgs returns :ref:`bfg_ecs::BfgEcsNodeAnnotationArgs ` +--------+--------------------------------------------------------------------------------+ +argument+argument type + +========+================================================================================+ +self + :ref:`bfg_ecs::BfgEcsNodeAnnotation ` + +--------+--------------------------------------------------------------------------------+ +func + :ref:`FunctionPtr ` + +--------+--------------------------------------------------------------------------------+ +args + :ref:`rtti::AnnotationArgumentList ` const+ +--------+--------------------------------------------------------------------------------+ +errors + :ref:`builtin::das_string ` + +--------+--------------------------------------------------------------------------------+ |method-bfg_ecs-BfgEcsNodeAnnotation.parseArgs|