The length of an Animation isn't automatically set by adding keys, and
it must be set manually. The existing example only has keys up to 0.5s,
so the default value of 1.0s may be acceptable. However, this results in
unexpected behavior for anyone who makes an animation longer than 1.0s.
Include animation.length in the example because it's important.
Also, increase the key position to 2.0s so it won't be confusing that
the assignment is somewhat redundant.
(cherry picked from commit 698c67d540)
`AudioDriverWASAPI::init` consistently returns `Error::OK`, even when encountering a failure during the initialization of the output device. This behaviour blocks the dummy driver from initializing in `AudioDriverManager::initialize`.
(cherry picked from commit 998078f8d7)
This PR fixes how triangular faces are decomposed into vertices and indices. The pre-increment resulted in the indices table skipping entry 0 and potentially overrunning the end of the vertices vector.
(cherry picked from commit bf7cdc5229)
Fix polygon not showing correctly if UVs have been moved around. Show the actual contents of the polygon instead.
(cherry picked from commit a45db4d616)
When non-ASCII filenames are used, this indicates that the encoding is
UTF-8. Programs like ZIPReader can then parse the filename correctly.
(cherry picked from commit 08b1354b36)
- Mention the Use Nearest Mipmap Filter project setting.
- Fix nearest mipmap claiming to always use bilinear filtering
(it uses trilinear filtering by default, like linear mipmap).
(cherry picked from commit 47cadda3ad)
The presence of those abis cause them to be included in the set of `p_features` passed to the `gdextension_export_plugin#_export_file(...)` method, which caused them to be lumped in the `features_wo_arch` set.
When trying to find the gdextension library path, we use a predicate with the following logic:
```
[features_wo_arch, arch_tag](String p_feature) { return features_wo_arch.has(p_feature) || (p_feature == arch_tag); }
```
For a `gdextension` config file like the one below, this causes the first android entry (`android.armeabi-v7a = ...`) to always be returned regardless of archs since it always satisfies the predicate.
```
[configuration]
entry_symbol = "example_library_init"
compatibility_minimum = 4.1
[libraries]
linux.x86_64 = "res://libgdexample.so"
android.armeabi-v7a = "res://libgdexample.android.template_release.armeabi-v7a.so"
android.arm32 = "res://libgdexample.android.template_release.armeabi-v7a.so"
android.x86 = "res://x86/libgdexample.android.template_release.x86.so"
android.x86_32 = "res://x86/libgdexample.android.template_release.x86.so"
android.x86_64 = "res://libgdexample.android.template_release.x86_64.so"
android.arm64-v8a = "res://libgdexample.android.template_release.arm64-v8a.so"
android.arm64 = "res://libgdexample.android.template_release.arm64-v8a.so"
```
(cherry picked from commit dce2686e52)
The height of the last N items is incorrectly overwritten with
the max height of first row (N = number of columns). This happen
in the first iteration of the while loop. Moving this code inside
if (all_fit) makes sure the last rows height is only updated at
the end when max height (max_h) is calculated for the last row.
(cherry picked from commit 1533292f09)