声明节点 ================================================= 创建新节点的基本语法如下: .. code-block:: cpp auto handle = dabfg::register_node("node_name", DABFG_PP_NODE_SRC, [](dabfg::Registry registry) { // 使用注册表的方法来声明节点的功能 return []() { // 调度 GPU 命令 }; }); 外层 lambda 被称为*声明回调*,很少执行,大多数情况下甚至只执行一次。 声明回调返回另一个 lambda,称为*执行回调*,根据当前的多路复用设置,每帧可以执行一次或多次。 有关运行时行为的更多信息,请参阅 :doc:`runtime` 。 下面是 :cpp:class:`dabfg::Registry` 和相关请求生成器对象的综合文档。 必须在声明回调中使用这些对象来指定以下数据: * 您的节点将使用哪些资源、 * 它要对这些资源做什么、 * 执行工作时需要哪些绑定(着色器资源、渲染目标等) * 节点需要哪些全局状态(例如着色器块) * 附加元数据(多路复用模式、优先级、显式依赖关系等) .. doxygenclass:: dabfg::Registry :project: daBFG :members: .. doxygenclass:: dabfg::NameSpaceRequest :project: daBFG :members: .. doxygenclass:: dabfg::AutoResolutionRequest :project: daBFG :members: .. doxygennamespace:: dabfg::multiplexing :project: daBFG :members: .. doxygenstruct:: dabfg::VrsRequirements :project: daBFG :members: .. doxygenclass:: dabfg::StateRequest :project: daBFG :members: .. doxygenfile:: resourceCreation.h :project: daBFG .. doxygenclass:: dabfg::VirtualResourceCreationSemiRequest :project: daBFG :members: .. doxygenclass:: dabfg::VirtualResourceSemiRequest :project: daBFG :members: .. doxygenclass:: dabfg::VirtualResourceRequest :project: daBFG :members: .. doxygenclass:: dabfg::VirtualPassRequest :project: daBFG :members: