Commit Graph
41 Commits
Author SHA1 Message Date
Lyuma 33fd7c63e1 Prevent out-of-bounds write in array conversion; avoid logspam on empty arrays. 2022-06-30 18:04:33 -07:00
Lyuma 03b896c992 SurfaceTool.set_custom_format Fixes and documentation.
Fix mistake making `set_custom_format` impossible to use.
Automatically forward custom flags in `SurfaceTool.commit`.
Add documentation in `SurfaceTool` and `Mesh` for custom channels.
Deprecate `SurfaceTool.generate_lod` and expose `ImporterMesh.generate_lods`.
2022-06-14 15:10:17 -07:00
Lyuma 1f02bc0e3e Only call _update_panning during _physics_process. 2022-05-25 14:14:22 -07:00
Lyuma 7e28385948 Add StreamPeerSSL.get_stream() accessor. 2022-05-25 12:43:19 -07:00
Lyuma 41824c6cc8 Bind EditorFileSystem::reimport_files and improve docs
reimport_files offers a way for scripts to modify imported resources directly.
For example, images, sounds or glTF documents which are written by an external program.

It is much faster than `scan`, and can allow scripts to synchronously proceed after import finishes.
2022-05-17 00:45:48 -07:00
Lyuma ee02a7f785 Keep editor at normal priority on windows.
The multithreaded importer often causes system-wide hangs when importing more than 20 files at a time.
Running the editor at normal priority allows other applications on the system to be responsive during long imports.
2022-03-29 00:01:31 -07:00
Lyuma 35b964606e glTF export for new TYPE_BLEND_SHAPE tracks 2022-03-03 05:28:00 -08:00
Lyuma e8da21dc6b etcpak: Workaround multiple-of-4 requirement for 3D texture mipmaps. 2022-01-23 11:32:05 -08:00
Lyuma b1b20f5f91 Pad etcpak input to 4x4 blocks. Fixes #49981 2022-01-22 17:20:17 -08:00
Lyuma 37c11e4159 Fix import_scene_from_other_importer and import_animation_from_other_importer 2021-11-11 03:24:51 -08:00
Lyuma de93d48901 glTF: Fix override materials and non-empty arrays
Keep track of MeshInstance and GeometryInstance override materials in the GLTFMesh object.
Ensure all arrays are non-empty to conform with "minItems":1 in glTF spec.
2021-11-01 23:22:45 -07:00
Lyuma c088a2dd89 Fix crash due to reentrancy in AudioStreamPlayer* finished signal.
This crash occurred when an audio stream finished playing in NOTIFICATION_INTERNAL_PROCESS,
during which it would iterate through a loop of playbacks,
leading to a "finished" signal, which removed the audio player from the tree
which led to a NOTIFICATION_EXIT_TREE,
which would mutate the array of playbacks while within the above loop.

This moves the signal callback outside of the loop which avoids the crash.
Note: previously, the signal was called multiple times if the same player finishes multiple times in one frame. Now it is at most once per frame.

Affects AudioStreamPlayer, AudioStreamPlayer2D and AudioStreamPlayer3D
2021-10-28 19:45:29 -07:00
Lyuma 97a4ae9e0f Fix off by one in Viewport.render_target_update_mode property enum 2021-10-28 19:42:31 -07:00
Lyuma 601a0722a7 Mitigate crash in AudioStreamPlayer3D when a camera has null viewport 2021-10-27 16:06:09 -07:00
Lyuma cada1a4747 gltf: Fix validation errors due to chunk padding and empty skins.
GLB chunk padding length calculation was backwards and missing for the BIN chunk.
Fixed error caused by "skins":[] when no skins were present.
Finally, encode animations before textures to avoid accessor misalignment due to texture byteLength.
2021-10-25 21:12:43 -07:00
Lyuma a54fe3ffa8 collada: fix error in use of fix_transform. 2021-10-15 11:36:18 -07:00
LyumaandK. S. Ernest Lee 5ffda27ea9 gltf export: Fix export of skeletons, skins and blend shapes.
Create GLTFSkeleton at the same time we create GLTFNode objects.
Create GLTFSkin at the same time we export MeshInstance3D
Fixes export of blend shape arrays for meshes with multiple surfaces.
Fixes array indexing issues in export of glTF morph target animations.

Converts BoneAttachment3D nodes during normal node creation: this avoids
special cases during mesh export, and especially exporting skeletons or meshes
which are children of BoneAttachment3D.

Co-authored-by: K. S. Ernest (iFire) Lee <ernest.lee@chibifire.com>
2021-09-29 13:07:52 -07:00
LyumaandK. S. Ernest (iFire) Lee aca4b737f1 8 uvs for glTF2, URI decode and Vertex Custom api.
Add glTF2 uri decode for paths.

Add vertex custom apis.

Add scene importer api.

Change Color to float; add support for float-based custom channels in SurfaceTool and EditorSceneImporterMesh

Co-authored-by: darth negative hunter
 <thenegativehunter2@users.noreply.github.com>
2021-09-10 09:16:48 -07:00
Lyuma 31f790299c Use OrderedHashMap for autoloads to preserve order 2021-08-26 21:55:26 -07:00
Lyuma 7eb6ae2798 Make Node editable_instance methods available to GDScript 2021-08-23 21:45:18 -07:00
Lyuma e6962729d5 Implement set_surface_material and set_surface_name methods in EditorSceneImporterMesh, and add documentation. 2021-08-22 19:42:35 -07:00
Lyuma 8f1efa656b Add Callable.is_valid() analogous to FuncRef.is_valid() from 3.x 2021-07-01 02:54:01 -07:00
Lyuma 6c94b2cb9e Remove thread-unsafe and unused late_added_files.
_reimport_file is called from multiple threads as part of the threaded importer.
Inserting to this set from a thread could hit a race condition leading to memory corruption or hangs.
It seems to be unused, intentionally or unintentionally
2021-06-17 05:30:24 -07:00
Lyuma c21aa9196e Consider a thread done if current_work is null 2021-06-17 05:22:43 -07:00
Lyuma 771190a9db Fix regression from 160c260 causing export of non-@export properties. 2021-06-10 20:35:58 -07:00
Lyuma e839a3291b gltf: Fix mesh nodes which are also bones.
Fix issue when two skeletons end up directly parented.
Prevent animating TRS for skinned Mesh node.
Fix animating weights on meshes with targets but no weights.
2021-05-27 19:33:01 -07:00
Lyuma 5a9eee6b1a gltf: Fail gracefully when a mesh instance fails. 2021-05-20 20:28:32 -07:00
Lyuma 60f620411e Fix incorrect skin deduplication when using named binds 2021-05-20 20:26:11 -07:00
Lyuma 7d8e981262 Fix crash on importing empty .fbx file 2021-04-08 02:50:01 -07:00
Lyuma 780e761dbc Fix mismatched define in scene_forward.glsl for POSITION override 2021-02-05 13:09:33 -08:00
LyumaandK. S. Ernest Lee d800329d16 Add AudioEffectCapture
AudioEffectCapture allows access to the microphone and other audio on an audio bus in real-time.

Co-Authored-By: K. S. Ernest (iFire) Lee <ernest.lee@chibifire.com>
2021-02-02 09:22:16 -08:00
Lyuma d976003b16 Fix blendshapes and calculation of bone_aabbs
Blendshapes without a skeleton already worked.
However, due to a faulty ERR_FAIL_COND, it was impossible to create a mesh with both bones and blendshapes.
This also fixes an assumption that all surfaces reference the same number of bones as surface 0.
2020-12-24 00:01:07 -08:00
Lyuma 4c4a405887 Fix mistake in GLTFMesh.mesh property 2020-12-23 02:11:13 -08:00
Lyuma 0d4b750051 Fix crash when iterating through empty dictionary. 2020-12-21 20:15:29 -08:00
Lyuma 37b6a36cc4 Avoid reentrant OBJTYPE_RLOCK in ClassDB
Fixes #43020 when a thread uses ClassDB while main thread calls is_parent_class().
2020-11-01 03:40:06 -08:00
Lyuma d13568a8d1 Allow renaming bones and blendshapes. 2020-10-15 07:53:18 -07:00
Lyuma 9f654b441f core/command_queue_mt: Fix crash/hang when buffer fills up
This patch fixes two related issues. One is the race condition in issue #42107..
The other is a crash which happens when the reader is lapped near the end of the buffer.
2020-10-12 08:41:13 -07:00
Lyuma 48e8da4aac core/command_queue_mt: Customizable size and tests
Adds unit tests for command_queue_mt.h/cpp
In this revision, some unit tests will fail due to issue #42107.
2020-10-12 08:24:08 -07:00
Lyuma 2f888d2987 Fix ATTENUATION and implement SHADOW_ATTENUATION. 2020-09-10 15:45:56 -07:00
Lyuma 0851d6dcdf Fix regression in FBX import caused by Skeleton3D
A change in commit f7fdc87 changed the Skeleton3D "pose" property from PROPERTY_USAGE_EDITOR to PROPERTY_USAGE_NOEDITOR.
This should have had no effect, however it turns out assimp was assigning to the pose property.

This change adjusts the FBX import to only get_bone_rest/set_bone_rest, not set_bone_pose.
2020-08-25 01:17:39 -07:00
Lyuma 68566b7bec GDScript: Fix crash caused by inconsistent get_member 2020-07-29 02:56:03 -07:00