urho3D贡献清单


 

贡献清单

当向Urho3D项目贡献代码时,有一些事情需要检查,以便过程顺利进行。

首先,贡献应该完全属于你自己,这样你就拥有了版权。如果你在借用任何东西(例如数学公式的特定实现),你必须确保你被允许这样做,并给予适当的奖励。例如,借用公共领域中的代码是可以的。

其次,您需要同意代码是根据麻省理工学院许可证发布的,并附有版权声明“版权(c)2008-2022 Urho3D项目”。请注意,“Urho3D工程”不是一个实际的法律实体,只是为了避免列出所有贡献者的简称。您当然保留您的个人版权。您应该将许可证语句从现有的.cpp或.h文件复制粘贴到您提供的每个新文件,以避免以后添加它。

第三,Urho3D对新代码提出了要求,力求成为一个具有凝聚力、易于使用的包,其中包括事件、序列化和脚本绑定等功能。选中所有适用项:

对于所有有意义的代码(类、函数),AngelScript和Lua绑定都应该存在。有关特定约定,请参阅现有绑定和脚本文档,例如在AngelScript中使用财产而不是setters/getter(如果可能),或同时提供函数和财产的Lua绑定。

对于只有从C++调用才有意义的低级功能(如线程处理或对GPU资源的字节级访问),或者仅由子系统访问且在使用类时不需要的内部但公共函数,不需要进行脚本绑定。

除非由于缺少绑定而无法实现(见上文),否则应该在所有C++、AngelScript和Lua中实现新的示例。

对于新的Component或UIElement子类,应该存在用于序列化、网络复制和编辑的属性。类应该可以在编辑器中创建;检查组件类别,并根据需要为其提供图标(请参见文件bin/Data/Textures/EditorIcons.png和bin/Data/UI/EditorIcon.xml)

如果类继承了其他类的属性定义,请确保在引擎初始化时以正确的顺序注册它们。

必须通过在每个修改网络复制属性的setter函数中调用MarkNetworkUpdate()来手动触发组件属性的网络复制。有关简单的示例,请参见Camera类。

定义您预计外部方可能希望与发生的事情挂钩的事件。例如,编辑器通过订阅场景更改事件来更新其场景层次窗口:添加/删除子节点、添加/删除组件。

使用宏URHO3D_API标记所有应用程序可用的类、结构和函数,以便在共享库构建中正确导出它们。

请注意所有编码惯例,并在不确定的地方研究现有代码。确保文本编辑器或IDE配置为显示空白,这样就不会意外地混合空格和制表符。

无论何时创建一个主要的新功能,除了头文件中的函数文档外,还应在.dox页面中记录其用法。如果需要,创建一个新页面,并从现有文档中的适当位置链接。例如,如果它是一个新的渲染功能,则可以从“渲染”页面链接它。如果该功能引入了一个全新的子系统,则应将其从Urho3D.dox中的主页列表中链接。

当您添加一个新的示例应用程序时,如果可能的话,它应该在所有C++、AngelScript和Lua中实现,以显示如何使用所有API。检查下一个可用的空闲样本编号。如果(C++)示例依赖于特定的Urho3D构建选项,例如物理或网络,则可以在其CMakeLists.txt中有条件地禁用该示例。请参见11_physics示例。

第三方库考虑

添加新的第三方库时,请将其许可证声明插入Source\ThirdParty目录中的license。只有BSD/MIT/zlib等具有许可证的库才被接受,因为例如在移动平台上遵守LGPL是很困难的,并且会使应用程序处于法律灰色地带。

对于Urho3D运行时,首选小型且重点突出的库。例如,我们使用stb_image而不是FreeImage来加载图像,因为假设应用程序开发人员可以控制数据,并根据需要将其脱机转换为支持的格式。

第三方库不应将C++异常或STL容器的使用泄露到Urho3D公共API中。如有必要,例如在子系统级别上进行包装。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乘小舟舟,游大世界

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值