You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Prefer Godot types and containers when data crosses the Godot API boundary.
56
+
* Use `Ref<T>` for Godot `Resource` objects where ownership is shared or managed
57
+
by Godot.
58
+
* Use `Object`, `Resource`, `Node`, and other Godot base classes according to
59
+
their intended lifetime model.
60
+
* Avoid storing raw pointers unless the ownership and lifetime are explicit.
61
+
* Do not keep raw pointers to Godot objects in long-lived containers without a
62
+
clear unregister or validation mechanism.
63
+
* Avoid unnecessary `new`, `delete`, `memnew`, and `memdelete`.
64
+
* Do not mix Godot-managed lifetime with manual C++ lifetime unless there is a
65
+
clear reason and the ownership model is documented.
66
+
* Avoid building parallel pure C++ object graphs that duplicate Godot's object,
67
+
resource, or scene model.
68
+
* Keep pure C++ helper code small, local, and implementation-specific.
69
+
* Do not expose pure C++ lifetime assumptions to GDScript or editor-facing APIs.
70
+
* Be careful with `RID` ownership and release order.
71
+
* Be careful with singleton registration, access, and shutdown order.
72
+
* Be careful with signals emitted during creation, reload, teardown, or cache
73
+
invalidation.
74
+
75
+
If a change affects ownership, caching, reload logic, singleton lifetime,
76
+
resource lifetime, or `RID` management, the pull request description should
77
+
explain the intended lifetime model.
78
+
3
79
## Request for changes/ Pull Requests
4
80
You first need to create a fork of this repository to commit your changes to it. Methods to fork a repository can be found in the [GitHub Documentation](https://docs.github.com/en/get-started/quickstart/fork-a-repo).
0 commit comments