Treats application unfocus as a mouse release for
TOOL_PAINTING, by finishing the undo state and
resetting the tool. Also sets a flag to prevent extra
lines from being drawn when the application is refocused.
fixes#42398, fixes#24970
(cherry picked from commit 70a4cd1afe)
Batching is mostly separated into a common template which can be used with multiple backends (GLES2 and GLES3 here). Only necessary specifics are in the backend files.
Batching is extended to cover more primitives.
1. _gen_unique_bone_name(Ref<GLTFState> state, const GLTFSkeletonIndex skel_i, const String &p_name) won't return an empty string.
2. String GLTFDocument::_sanitize_bone_name(const String &name) will keep Japanese characters. Like: "全ての親".
3. The sanitize function allows the bone name to be not just alphanumeric. The only required conditions are the ones in add_bone.
> ERR_FAIL_COND(p_name == "" || p_name.find(":") != -1 || p_name.find("/") != -1);
(cherry picked from commit 7b76f8783f)
The glTF 2.0 spec only makes `mimeType` mandatory for `bufferView` image data,
so the previous logic to handle URIs with base64-encoded images could fail if
`mimeType` is undefined.
The logic was documented and refactored to better handle the spec, notably:
- `uri` and `bufferView` are now mutually exclusive, and only the latter fails
if `mimeType` is undefined.
- `uri` with a file path will now respect the `mimeType` if defined, and thus
attempt loading the file with the specified format (even if its extension is
not the one expected for this format). So we can support bad extensions (PNG
data with `.jpg` extension) or custom ones (PNG data in `.img` file for
example).
- `uri` with base64 encoded data will infer MIME type from `data:image/png` or
`data:image/jpeg` if it was not documented in `mimeType` initially.
- `uri` with base64 encoded data, no `mimeType` and `application/octet-stream`
or `application/gltf-buffer` will fall back to trying both PNG and JPEG
loaders.
Fully fixes#33796 (and fixes up #42501).
(cherry picked from commit 2e99d0b26f)
See https://github.com/KhronosGroup/glTF/issues/944 for context on the
application/gltf-buffer MIME type.
The glTF 2.0 spec supports `image/jpeg` and `image/png` which can also be
base64-encoded in buffer URIs.
Fixes#33796.
(cherry picked from commit 34a50310ad)
Entering text will now start searching automatically after 0.25 seconds
have passed (debounce delay).
This removes the need for a separate Search button.
(cherry picked from commit 6055db2a72)
- Make it possible to drag a negative easing or an easing of 0 back to
a positive value.
- Clamp the value between -1000000 and 1000000 to avoid issues
related to infinity.
- Display more decimals for numbers closer to 0, less for large numbers.
- Display trailing zeroes in decimals to avoid flickering when dragging.
This closes#18712 and closes#22079.
(cherry picked from commit 028de11db8)
We originally used `pt_PT` (i.e. Portuguese (Portugal)) to distinguish with
the Brazilian Portuguese variant `pt_BR`, as both are significantly different
and need separate translation files.
But Portugal's Portuguese (or "European Portuguese") is close to the variant
spoken and written in other Portuguese-speaking countries such as Angola and
Mozambique, so it makes sense for users of these countries to also have access
to the European Portuguese translation (at least until translators decide that
adding e.g. `pt_AO` and `pt_MZ` variants would make sense, taking into account
the translation effort that this duplication implies).
Godot's locale matching checks first for the full locale (e.g. `pt_AO`), and
if no translation is found, it checks for the non-regional language code
(`pt`), so this change enables translations for Portuguese speakers outside
Portugal and Brazil.
(cherry picked from commit 1e2f55e273)
- Use postfix notation for types in the method selector
(for consistency with the editor help).
- Perform a case-insensitive match and replace spaces with underscores
in the search string.
- Fix extraneous space after the `void` return type.
(cherry picked from commit 4390a9d628)
Use popup_dialog() instead of popup_centered() to show edit dialog/
With popup_centered it is not possible to change the displayed
signal name. When this is not set the previous shown name is show
for the current dialog.
This is no problem when creating a new conenction as popop_dialog
is used there and this would update the title.
Fixes#42074
(cherry picked from commit eeb6c2e22c)
Should fix#27009 where the DefaultProjectIcon was scaling
with the EDSCALE. Now it checks if the icon name is equal
to "DefaultProjectIcon" and sets the scale to 1.0 instead of
EDSCALE.
(cherry picked from commit 740100d671)
Patch for #21755. Node scaling arrows pointed the wrong way when nodes were rotated. Ammend: made math cleaner.
Simplified expression
Changes suggested by Aaron Franke
Co-authored-by: Aaron Franke <arnfranke@yahoo.com>
(cherry picked from commit 603febdbfe)
When changing the texture region for a StyleBox, the regions was not updating automatically in the Texture editor.
(cherry picked from commit 7d7727bade)
Fixes: #28683, #28621, #28596 and maybe others
For iOS we enable pvrtc feature by default for both GLES2/GLES3
Etc1 for iOS doesn't have any sense, so it disabled.
Fixed checks in export editor.
Fixed pvrtc ability detection in GLES2 driver.
Fixed pvrtc encoding procedure.
Fixes#34509 where the theme editor would push away the inspector
if something like "hseperation" is really high.
Now `set_enable_h_scroll` is true which fixes this.
(cherry picked from commit d602be077d)
By default 'add_ios_framework' would not embed a framework to save previous behavior.
New 'add_ios_embedded_framework' would embed framework on export.
New contributors added to AUTHORS:
@hinlopen, @naithar, @rrcore, @SkyLucilfer, @TwistedTwigleg
Thanks to all contributors and donors for making Godot possible!
---
Also changes to relevant code that parses the DONORS.md to match
the new tiers.
(cherry picked from commit d2d4c1c957)
Ensures that the editor preview when placing a tile on a TileMap takes
into account the transformation of the TileMap. Previously, only the
origin of the Tile was transformed, but not its orientation or
scaling.
(cherry picked from commit cf04aabef1)
Editor now changes a color in the inspector only when it is different
from the current one.
Solves fake unsaved changes in editor after using the ColorPicker.
Resolves: #40879
(cherry picked from commit f3626364fc)
This removes:
```
ERROR: get_breakpoints: Condition ' base.begins_with("local://")
```
while running a project with blank scripts caused by deleting
or moving, or built-in scripts which are not yet saved within a scene
on running a project.
(cherry picked from commit 1c70a33d9c)
Methods were being called with InputEventMouseMotion instead of InputEventPanGesture, and they were null.
Fixesgodotengine/godot#16181 on the master branch
(cherry picked from commit 394a7826be)
A static function is added to EditorNode which allows for filename
disambiguation given a list of filenames and the corresponding list of
absolute paths for those files. This function is then used to
disambiguate scene and script tabs in the editor.
(cherry picked from commit 4285211f40)
This means clicking on an EditorSpinSlider to edit its value will
no longer cause the number to be visually offset while it's
being edited.
(cherry picked from commit cc615fee5f)
This change avoids the editor to freeze for several seconds when a
project with lots of scripts is loaded in the editor.
It focuses on a few heavy operations previously executed on all
previously loaded scripts:
- Initialize script resource (script validation/parsing) only
on focus
- ScriptTextEditor: code editor and edit menu are added to the
scene only on focus
- Add to recent scripts only when opening new scripts
(load/save scene metadata)