Commit Graph

892 Commits

Author SHA1 Message Date
bitsawer
78361370ec Fix issues found by a static analyzer 2023-05-30 12:47:50 +03:00
Hannah Crawford
adb86dda82 Add Additional Physics Options to Scene Importer. 2023-05-27 23:40:24 +01:00
Yuri Sizov
b856188904 Split editor-specific import metadata for textures 2023-05-26 18:48:23 +02:00
Lyuma
5ae311e577 Avoid doubly mutating the same Skin in rest fixer
Fixes a regression from #77123 that was caused by removal of ibm_diffs variable.
This replaced idempotent code with code that applied an offset each time.
If the same Skin was visited multiple times, this caused an incorrect result.
2023-05-26 00:49:24 -07:00
Lyuma
7b71061b3e Adjust BoneAttachment3D children/meshes during rest fixer
Also simplifies equivalent matrix math which previously used ibm_diffs to calculate skinned mesh offsets.
2023-05-16 01:34:54 -07:00
Rémi Verschelde
591115dcde
Merge pull request #76989 from dalexeev/fix-draw-multiline-colors-usage
Fix `draw_multiline_colors` usage
2023-05-15 13:44:09 +02:00
Rémi Verschelde
e2f27a2248
Merge pull request #77042 from dioptryk/obj-vertex-colors-master
Add support for non-standard OBJ vertex entries
2023-05-15 09:34:59 +02:00
Danil Alexeev
cc44d75cd8
Fix draw_multiline_colors usage 2023-05-15 09:56:13 +03:00
Bartłomiej Karwacki
444d211a8d Add support for non-standard OBJ vertex entries 2023-05-13 22:37:38 +02:00
Pedro J. Estébanez
45d0b38076 Enhance thread safety of loaders and importers 2023-05-12 17:44:48 +02:00
Ninni Pipping
71ee65dc57 Enable shadow warnings and fix raised errors 2023-05-11 16:00:59 +02:00
Haoyu Qiu
d24ee551ec Allow EditorInspector to change its property name style when necessary
Previously, an EditorInspector's property name can only be set from
outside. Inspectors used for settings needs to respond to changes in
editor settings. So a few boilerplate code is almost always needed,
including watching for a certain editor setting in `_notification()`.

This commit adds a `set_use_settings_style()` function to tell the
inspector to watch for editor settings changes on its own.
2023-04-29 10:51:00 +08:00
Rémi Verschelde
0fc3ba2ea7
Merge pull request #76499 from lyuma/fix_silhouette_fixer
import: Fix Silhouette used incorrect index.
2023-04-27 16:56:33 +02:00
Lyuma
d33a734ac5 import: Fix Silhouette used incorrect index.
Fixes bind pose mistake from using i (mesh skin index) instead of bone_idx (skeleton bone index).
Fixes #76448
2023-04-27 01:41:28 -07:00
Silc Renew
fac8a918f9 Expose interpolation methods for 3D track in Animation class 2023-04-25 01:45:14 +09:00
bruvzg
41f7bb2025
[Image Font] Fix fractional ascent for font with odd height. 2023-04-16 18:42:45 +03:00
Rémi Verschelde
ee0e809064
Merge pull request #75315 from kleonc/obj-importer-fix-no-smoothing-handling
Fix OBJ mesh importer smoothing handling
2023-04-13 09:53:29 +02:00
Rémi Verschelde
c5d9470c7c
Merge pull request #75765 from YuriSizov/editor-node-optimize-includes
Improve includes of `EditorNode` (and everything else)
2023-04-11 19:40:24 +02:00
smix8
1549aeaef8 Add Mesh ConvexDecompositionSettings wrapper
Adds wrapper MeshConvexDecompositionSettings to control parameters for Mesh ConvexDecomposition operations.
2023-04-07 22:39:25 +02:00
Yuri Sizov
4154039832 Improve includes of EditorNode (and everything else)
Also start organizing editor-specific GUI components
into a dedicated folder, `editor/gui`.
Also move `editor_file_server` next to the rest of debugger classes.
2023-04-07 18:59:49 +02:00
Rémi Verschelde
b8375071b0
Merge pull request #75636 from lyuma/advanced_importer_extract_textures_fix
gltf: Remove obsolete hack to embed gltf textures in advanced import
2023-04-05 12:03:27 +02:00
Lyuma
bd020b7d92 gltf: Remove obsolete hack to embed gltf textures in advanced import 2023-04-03 20:28:03 -07:00
Yuri Sizov
9b500ab53c Fix premature theme item access in editor tools 2023-04-03 18:01:11 +02:00
Aaron Franke
2deb8fdd45
Internal renames and cleanup in resource importer scene 2023-04-02 20:59:32 -07:00
Haoyu Qiu
5a5fd33e42 More i18n improvements
* Make placeholder in editor layout dialog translatable.
* Make messages in scene import settings dialog translatable.
* Mark theme override property categories for translation.
2023-03-27 22:24:01 +08:00
nikitalita
68a6505f41 Fix ResourceImporterLayeredTexture::import() high_quality type 2023-03-25 10:27:15 -07:00
kleonc
e8900a2cac Fix OBJ mesh importer smoothing handling 2023-03-25 11:39:00 +01:00
Ninni Pipping
ff127ba57e Fix trim when importing WAV 2023-03-23 16:19:20 +01:00
Gilles Roudière
1a2caf28e3 Fix a crash in the GLB importer 2023-02-27 17:24:03 +01:00
hare_ware
f3095b7c9d Fix settings not appearing for Animation Libraries in the Scene Import window 2023-02-23 21:38:50 -05:00
Rémi Verschelde
13382a88df
Merge pull request #73814 from lyuma/importer_mesh_convex
import: Fix uv2 by avoiding premature ImporterMesh::get_mesh()
2023-02-23 13:55:43 +01:00
Rémi Verschelde
873c50732d
Merge pull request #73687 from Calinou/editor-convex-import-fix-max-convex-hulls-crash
Add a property hint to fix crash when setting max convex hulls below 0
2023-02-23 13:53:24 +01:00
Hugo Locurcio
7899726b98
Add a property hint to fix crash when setting max convex hulls below 0
Generating less than 1 convex hull is not valid anyway.
2023-02-23 13:51:12 +01:00
Lyuma
51a4fe1d53 import: Fix uv2 by avoiding premature ImporterMesh::get_mesh()
Implements create_convex_shape in ImpoterMesh.
Note: ImporterMeshInstance3D::get_mesh() is safe.
The only dangerous function with side effects is ImpoterMesh::get_mesh()
2023-02-23 11:55:28 +01:00
Lyuma
cb35471cb0 import: Pass the correct defaults to generated collision shapes.
Solves incorrect defaults, as well as applied scale failing to apply.
The default values are removed, and they differ from collision shape defaults
These values must match the defaults defined in resource_importer_scene.cpp
2023-02-23 03:03:04 +01:00
Rémi Verschelde
b2584629c8
Merge pull request #73195 from timothyqiu/weblate-comments
Improvements and fixes based on Weblate comments
2023-02-17 09:55:39 +01:00
Rémi Verschelde
2aaa6f6728
Merge pull request #69810 from trollodel/scene_importer_material_crash_fix
Ensure that generated import IDs are unique
2023-02-17 00:34:14 +01:00
Haoyu Qiu
84aee17901 Improvements and fixes based on Weblate comments
* Description of `ui_text_submit` action should be "Submit Text" instead of "Text Submitted".
* Spell out "Animation" instead of using "Anim.".
* Treat "Max" as regular word instead of writing "Max.".
* Use generic "Set %s" for action name instead of a dedicated "Set target_position".
* Add translator comment for:
    * "Inclusive" and "Self" in the profiler.
    * Places where it needs the context about being an editor progress label.
    * "Duplicated Animation Name" since it's refering to the new name of a duplicated animation.
    * Disambiguation of "View Plane Transform", "Paste Selects" and "Display Normal".
* Fix wrong undo action name for renaming an input action.
* Fix missing end quote in a shader error message.
* In class reference:
    * Fix duplicated "if" in the description of `signf()`.
    * Fix mismatched example output in `String.operator %()`.
    * Fix typo in the description of `Decal.texture_emission`.
    * Unify description of `String.match()` and `StringName.match()`.
2023-02-13 15:22:18 +08:00
Rémi Verschelde
766bb88159
Merge pull request #71691 from hcoura/res-importer-gen-physics-mesh-only-when-needed
Fix SceneImportSettings perf issues
2023-02-10 18:46:00 +01:00
Haoyu Qiu
26581ca574 Add some missing translatable editor strings 2023-02-10 16:55:50 +08:00
Haoyu Qiu
a40ccc2d7e Improve some editor strings for localization 2023-02-09 19:32:02 +08:00
bruvzg
504ca3940c
[Bitmap Font] Fix character count check. 2023-02-08 13:51:19 +02:00
Lyuma
5fbcb80170 Use reimport_append api for importing embedded gltf images
Co-authored-by: K. S. Ernest (iFire) Lee <ernest.lee@chibifire.com>
2023-02-06 07:11:45 -08:00
Rémi Verschelde
074113b97d
Merge pull request #72455 from reduz/allow-reimport-appending
Support reimport appending
2023-02-06 15:39:51 +01:00
Juan Linietsky
91c3066c89 Support reimport appending
* Add API: `EditorFileSystem::reimport_append(path)`, thread safe, what can be used from importers when they generate new files within the import process.
* Added a `remap.gen_param` custom value to .import files, which can be used by importers to store data needed to generate this file again or not.

This API is added to allow the GLTF2 importer to properly extract png files as textures.
2023-02-01 12:27:50 +01:00
Rémi Verschelde
c40020513a
Merge pull request #72440 from V-Sekai/gltf_embed_as_uncompressed
gltf: Add GLTFHandleBinary::HANDLE_BINARY_EMBED_AS_UNCOMPRESSED
2023-02-01 12:10:13 +01:00
Lyuma
bc24d01359 gltf: Add GLTFHandleBinary::HANDLE_BINARY_EMBED_AS_UNCOMPRESSED
This option allows for a safe fallback for embedded gltf textures in cases where VRAM compression is not needed.
Add an is_editor_hint guard around GLTFHandleBinary::HANDLE_BINARY_EXTRACT_TEXTURES, to use EMBED_AS_UNCOMPRESSED by default at runtime.
This provides an option for pixel art to be stored losslessly.
Additionally, respect project importer defaults for texture import settings.
Avoid writing and reimporting extracted textures identical to version on disk.
2023-02-01 01:42:36 -08:00
Rémi Verschelde
7fb1b11818
Merge pull request #71409 from fire/escn-fixes
Fixes to ESCN mesh import
2023-02-01 07:56:42 +01:00
Raul Santos
9e9eac4676
Use enum instead of int in virtual methods return type 2023-01-31 19:06:49 +01:00
Rémi Verschelde
78e7087d81
Merge pull request #72245 from JonqsGames/apply_root_scale_to_shape
Apply root scale to 3d shapes on import
2023-01-31 13:19:02 +01:00
Juan Linietsky
28f51ba547 Refactor high quality texture import
* Only two texture import modes for low/high quality now:
  * S3TC/BPTC
  * ETC2/ASTC
* Makes sense given this is the general preferred and most compatible combination in most platforms.
* Removed lossy_quality from VRAM texture compression options. It was unused everywhere.
* Added a new "high_quality" option to texture import. When enabled, it uses BPTC/ASTC (BC7/ASTC4x4) instead of S3TC/ETC2 (DXT1-5/ETC2,ETCA).
* Changed MacOS export settings so required texture formats depend on the architecture selected.

This solves the following problems:

* Makes it simpler to import textures as high quality, without having to worry about the specific format used.
* As the editor can now run on platforms such as web, Mac OS with Apple Silicion and Android, it should no longer be assumed that S3TC/BPTC is available by default for it.
2023-01-30 15:53:23 +01:00
Silc Renew
8b3be51d17 Add remove immutable tracks option to glTF importer
Co-authored-by: Lyuma <xn.lyuma@gmail.com>
2023-01-30 08:57:27 +09:00
JoJoX
ecba2e2d4e Apply root scale to shape on import 2023-01-28 12:32:03 +01:00
K. S. Ernest (iFire) Lee
39922d7167 Handle gltf binary
[ Ignore and Warn | Extract Textures (default) | Optimize Loading Embedded as Basisu ]

Enable compressed mip maps from Basis Universal for faster compressions.

Increase the quality of Basis to avoid corruption.

To keep compatibility use the first mip of the previous internal Godot format.

Because texture names may have invalid filename characters, adds String::validate_filename to sanitize filenames for import pipeline use.
2023-01-27 02:02:02 -08:00
Rémi Verschelde
5b1df48c6c
Convert en_GB spelling to en_US with codespell 2023-01-23 11:02:20 +01:00
Henrique Coura
b95219ef0f Fix SceneImportSettings perf issues 2023-01-19 18:48:21 -03:00
Rémi Verschelde
f6c662264e
Merge pull request #69288 from bruvzg/gde_low_level_funcs
[GDExtension] Expose some low level functions and String operators.
2023-01-19 13:23:45 +01:00
bruvzg
db7d8c2d87
[GDExtension] Expose some low level functions and String operators. 2023-01-19 12:50:49 +02:00
Mario Liebisch
9ba5d31141
Avoid importing MSVC obj files
Currently Godot tries to import any file with the extension "obj" as a
Wavefront OBJ model in text format.

This will fail and potentially crash the editor, if the obj file is
actually binary, like a MSVC build artifact/object file.

While the COFF header at the start of the obj file is subject to change,
this change should cover all potential/typical target machines possible
right now.

This fixes #71656.
2023-01-19 09:49:28 +01:00
Hugo Locurcio
ebb6894652
Improve visibility of Actions button in Advanced import settings dialog 2023-01-17 22:27:06 +01:00
Rémi Verschelde
ee7beff3c4
Merge pull request #70630 from asmaloney/importer-crash-null-mesh-node
Fix crash in SceneImportSettings::_select when a mesh has a null mesh node
2023-01-17 15:00:01 +01:00
rsjtdrjgfuzkfg
0442a65656 obj: Avoid empty names and meshes
This commit updates the obj importer to properly name imported meshes and
permits it to skip meshes that do not contain geometry. This fixes at
least one crash and several warnings and avoids unnecessary meshes being
generated when importing obj files that do not contain geometry that is
not assigned to a named object (such as when exporting from Blender).
2023-01-16 20:55:59 +01:00
K. S. Ernest (iFire) Lee
132e95212f Fixes to ESCN importer
Convert mesh instance 3d to a mesh importer instance 3d to run importer code. Also does blend shapes.
2023-01-14 09:55:56 -08:00
clayjohn
ccaebcd5e0 Avoid crashing when custom GLSL shaders are imported when using the gl_compatibility renderer 2023-01-13 12:53:19 -08:00
Rémi Verschelde
14cca21256
Merge pull request #71033 from scurest/obj-vertex-color
Add vertex color support to OBJ importer
2023-01-13 00:37:14 +01:00
Juan Linietsky
2b815df3c1 Use BitField<> in core type masks
* All core types masks are now correctly marked as bitfields.
* The enum hacks in MouseButtonMask and many other types are gone. This ensures that binders to other languages non C++ can actually implement type safe bitmasks.
* Most bitmask operations replaced by functions in BitField<>
* Key is still a problem because its enum and mask at the same time. While it kind of works in C++, this most likely can't be implemented safely in other languages and will have to be changed at some point. Mostly left as-is.
* Documentation and API dump updated to reflect bitfields in core types.
2023-01-08 22:17:40 +01:00
scurest
649857416d Mark OBJ vertex colors sRGB in materials (only if has vertex colors) 2023-01-07 17:07:31 -06:00
scurest
091fa5fb7f Add vertex color support to OBJ importer
Fixes #70982
2023-01-07 13:26:55 -06:00
Rémi Verschelde
d95794ec8a
One Copyright Update to rule them all
As many open source projects have started doing it, we're removing the
current year from the copyright notice, so that we don't need to bump
it every year.

It seems like only the first year of publication is technically
relevant for copyright notices, and even that seems to be something
that many companies stopped listing altogether (in a version controlled
codebase, the commits are a much better source of date of publication
than a hardcoded copyright statement).

We also now list Godot Engine contributors first as we're collectively
the current maintainers of the project, and we clarify that the
"exclusive" copyright of the co-founders covers the timespan before
opensourcing (their further contributions are included as part of Godot
Engine contributors).

Also fixed "cf." Frenchism - it's meant as "refer to / see".
2023-01-05 13:25:55 +01:00
Andy Maloney
c3d84ce57f Fix crash in SceneImportSettings::_select when a mesh has a null mesh_node 2022-12-27 09:03:18 -05:00
Rémi Verschelde
0566afa041
Merge pull request #70360 from dustinsth/fix_import_dialog_text
Fix overlapping text in Advanced Import Settings action dialogs.
2022-12-21 18:29:17 +01:00
dustinsth
c734ae469e Fix overlapping text in Advanced Import Settings action dialogs. 2022-12-20 09:57:57 -08:00
Marcus Elg
52061691b5 Disable properties that don't have an effect in the advanced audio importer 2022-12-20 18:57:27 +01:00
Marcus Elg
7f88943483 Fix inconsistent audio import menu naming 2022-12-19 17:42:54 +01:00
bmolyneaux
7c1cb65978
Clear animation map when import settings is opened 2022-12-14 19:54:48 -08:00
bruvzg
ebc85eff98
Fix advanced font import dialog not saving outline sizes of pre-render configs correctly. 2022-12-12 22:29:14 +02:00
trollodel
26d146b6c9 Ensure that generated import IDs are unique 2022-12-09 17:01:40 +01:00
bruvzg
ecec415988
Use system fonts as fallback and improve system font handling.
Add support for font weight and stretch selection when using system fonts.
Add function to get system fallback font from a font name, style, text, and language code.
Implement system font support for Android.
Use system fonts as a last resort fallback.
2022-12-04 18:44:20 +02:00
Rémi Verschelde
09e1db2148
Merge pull request #68665 from TokageItLab/cut-unkeyed-gltf-anim
Add "Trimming" option to cut un-keyed timeline before first key in glTF animation
2022-11-29 16:51:56 +01:00
Silc Renew
db7473672f Add trimming option to cut un-keyed timeline before first key in gltf 2022-11-29 13:53:33 +09:00
Rémi Verschelde
794adbe996
Merge pull request #69178 from aaronfranke/mesh-shape
Use a more specific type for Mesh create_(convex|trimesh)_shape
2022-11-28 08:05:50 +01:00
Aaron Franke
93ab82536d
Use a more specific type for Mesh create_(convex|trimesh)_shape 2022-11-25 11:43:11 -06:00
Rémi Verschelde
5d20dccade
Add MAKE_RESOURCE_TYPE_HINT macro to simplify binding arrays of resources 2022-11-24 14:06:00 +01:00
Markus Sauermann
28af870750 Code simplifications found by cppcheck
They are based on:
- Boolean arithmetic simplifications
- setting variables that are not accessed
- constant variables
2022-11-21 08:43:36 +01:00
Silc Renew
ac1db40614 Improve BoneRenamer to avoid conflicting with original bone name 2022-11-16 16:36:33 +09:00
Markus Sauermann
3b14f0334c Remove redundant Variant-types initializations 2022-11-14 19:35:19 +01:00
alex-pahdo
f5d256b118
Add more info to WAV import errors
Print mismatched header contents and file size, which can provide more clues to users when debugging.
2022-11-14 15:09:48 +01:00
Rémi Verschelde
19f21e2434
Merge pull request #68470 from bruvzg/img_fnt_imp
[Image Font Importer] Hide unused font size, add image and character margins.
2022-11-14 11:12:10 +01:00
Rémi Verschelde
5b3a03bf5c
Merge pull request #68448 from bruvzg/font_imp_tr
[Font] Add an import option to pre-render all glyphs required for the translation.
2022-11-14 11:12:01 +01:00
trollodel
ba9e619b51 Use forward-declarations in EditorPlugin where possible 2022-11-11 20:25:51 +01:00
bruvzg
35528b800c
[Font] Add an import option to pre-render all glyphs required for the translation. 2022-11-10 10:43:15 +02:00
bruvzg
a8189a6831
[Image Font Importer] Hide unused font size, add image and character margins. 2022-11-10 08:42:14 +02:00
Rémi Verschelde
f475c91081
Fix -Wunused-but-set-variable warnings from Emscripten 3.1.20 2022-11-04 11:36:13 +01:00
Rémi Verschelde
af957bf58e
Merge pull request #68223 from Calinou/editor-font-prerendering-fix-add-icon
Fix missing Add icon in the editor font prerendering dialog
2022-11-04 10:48:55 +01:00
Hugo Locurcio
94ca971114
Fix missing Add icon in the editor font prerendering dialog
This also tweaks button writing style to match the rest of the editor.
2022-11-03 19:18:43 +01:00
Hugo Locurcio
a19e389f4f
Hide Antialiasing import option on DynamicFonts with MSDF enabled
Antialiasing cannot be adjusted on fonts rendered with MSDF.
Internally, Godot always uses grayscale antialiasing for those fonts.

This also tweaks property hints for consistency, and renames
uses of "sub-pixel" to the more commonly used "subpixel".
2022-11-03 18:40:44 +01:00
Micky
ebf86c96e9 Rename Image's get_rect to get_region
Also renames its parameter to from "rect" to "region".
2022-11-01 23:35:48 +01:00
Rémi Verschelde
5947f22be9
Merge pull request #67578 from KoBeWi/GEDITOR
Unify usage of GLOBAL/EDITOR_GET
2022-10-31 13:15:58 +01:00
Rémi Verschelde
93df2b0f6d
Merge pull request #67805 from TokageItLab/fix-postimport-anim-arg
Fix passed dictionary to `internal_process()` in importer plugin for animation
2022-10-31 10:49:47 +01:00
DeeJayLSP
0619bd44da ResourceImporterLayeredTexture: rename compress modes to match enum 2022-10-28 14:24:32 -03:00