Commit graph

6331 commits

Author SHA1 Message Date
Rémi Verschelde 066716a46d
Merge pull request #42715 from madmiraal/fix-42614-3.2
[3.2] Update area-body_shape_entered-exited signal documentation.
2021-01-15 13:00:52 +01:00
Rémi Verschelde 258f41c024
Merge pull request #45150 from pycbouh/ge-disconnect-crash-3.2
[3.2] Prevent signal disconnection attempts on invalid references
2021-01-15 12:49:17 +01:00
JFonS b1ca82c43a CPU lightmapper fixes.
- Fix Embree runtime when using MinGW (patch by @RandomShaper).
- Fix baking of lightmaps on GridMaps.
- Fix some GLSL errors.
- Fix overflow in the number of shader variants (GLES2).
2021-01-15 12:32:54 +01:00
Marcel Admiraal 253b1c22da Rename the final parameter of area_shape_entered-exited local_shape. 2021-01-15 09:46:19 +00:00
PouleyKetchoupp 37ef04c986 Improve Raycast render debug
Fix Raycast node render debug not showing in editor camera preview.

Use dynamic mesh update to change the ray on-the-fly without too much
extra cost when collision debug is enabled.

Fixes #43571
2021-01-14 15:51:22 -07:00
JFonS 7d7d7ef16d CPU lightmapper formatting and minor fixes. 2021-01-14 18:08:33 +01:00
JFonS 089da5a71b Gracefully handle atlassed lightmaps in GLES2. 2021-01-14 18:06:16 +01:00
JFonS 112b416056 Implement new CPU lightmapper
Completely re-write the lightmap generation code:
- Follow the general lightmapper code structure from 4.0.
- Use proper path tracing to compute the global illumination.
- Use atlassing to merge all lightmaps into a single texture (done by @RandomShaper)
- Use OpenImageDenoiser to improve the generated lightmaps.
- Take into account alpha transparency in material textures.
- Allow baking environment lighting.
- Add bicubic lightmap filtering.

There is some minor compatibility breakage in some properties and methods
in BakedLightmap, but lightmaps generated in previous engine versions
should work fine out of the box.

The scene importer has been changed to generate `.unwrap_cache` files
next to the imported scene files. These files *SHOULD* be added to any
version control system as they guarantee there won't be differences when
re-importing the scene from other OSes or engine versions.

This work started as a Google Summer of Code project; Was later funded by IMVU for a good amount of progress;
Was then finished and polished by me on my free time.

Co-authored-by: Pedro J. Estébanez <pedrojrulez@gmail.com>
2021-01-14 18:05:56 +01:00
Yuri Sizov 6b13c8482a Prevent signal disconnection attempts on invalid references 2021-01-14 15:21:12 +03:00
Filip f1d00522f5 Fixed completion and hint panel positioning in TextExit [3.2] 2021-01-13 21:44:05 +01:00
Marcel Admiraal b651db999c Fix not clearing a Joint3D with only a B node when removing the B node 2021-01-13 18:29:44 +00:00
Rémi Verschelde f93c2ddc92
Merge pull request #45163 from akien-mga/3.2-cherrypicks
Cherry-picks for the 3.2 branch (future 3.2.4) - 16th batch
2021-01-13 17:38:05 +01:00
Rémi Verschelde 652105dcdd
Merge pull request #44704 from madmiraal/fix-44510-3.2
[3.2] Add signal to inform joint that body has exited tree
2021-01-13 17:16:19 +01:00
Rémi Verschelde b9c5e2f9eb
doc: Sync classref with current source
And fix copyright headers in new code.
2021-01-13 16:55:27 +01:00
PouleyKetchoupp a994bb4ad3
Fix collision shape update when changing shape properties
This change does two things:

1. Properly update the internal shape data using _update_in_shape_owner
when updating a shape (in 2D it was resetting one way collision)

2. Avoid unnecessary updates when calling set_shape with the same shape,
which happens each time a shape property is modified
(e.g shape.extents.x = ...)

Fixes #45090

(cherry picked from commit 4b43cd17c5)
2021-01-13 16:54:22 +01:00
Rafał Mikrut 8f19d50e27
Fix errors when removing non Control node from TabContainer
(cherry picked from commit 56734f44e5)
2021-01-13 16:17:10 +01:00
Rémi Verschelde 49646383f1
Update copyright statements to 2021
Happy new year to the wonderful Godot community!

2020 has been a tough year for most of us personally, but a good year for
Godot development nonetheless with a huge amount of work done towards Godot
4.0 and great improvements backported to the long-lived 3.2 branch.

We've had close to 400 contributors to engine code this year, authoring near
7,000 commit! (And that's only for the `master` branch and for the engine code,
there's a lot more when counting docs, demos and other first-party repos.)

Here's to a great year 2021 for all Godot users 🎆

(cherry picked from commit b5334d14f7)
2021-01-13 16:17:06 +01:00
Rémi Verschelde 188609e5ab
CI: Update to clang-format 11 and apply ternary operator changes
(cherry picked from commit af878716f2)
2021-01-13 16:14:35 +01:00
lawnjelly b5edbe0301 Fix BVH physics project setting
Move the GLOBAL_DEF for the `godot_physics/use_bvh` to occur before GLOBAL_GET.

This prevents a warning occurring and the selection not being used.
2021-01-13 09:22:17 +00:00
Andrii Doroshenko (Xrayez) acd9abe507 Add AspectRatioContainer class
Backported from ba68383706.

Co-authored-by: Ugis Brekis <ugis.brekis@productmadness.com>
2021-01-12 16:25:26 +02:00
lawnjelly 690e07b509 Dynamic BVH for rendering and godot physics
Complete rewrite of spatial partitioning using a bounding volume hierarchy rather than octree.

Switchable in project settings between using octree or BVH for rendering and physics.
2021-01-12 12:12:10 +00:00
Rémi Verschelde 08ecc9e5c4
Tooltips: Fix unassigned strip_edges() call on text
Fixes #43940, was a regression from #43280.

(cherry picked from commit a4af94068a)
2021-01-05 21:33:33 +01:00
Rémi Verschelde 5c80c94449
Revert "solved ctrl + alt + special character Issue #6851"
(cherry picked from commit 8b7f582f22)
2021-01-05 21:33:33 +01:00
Rafał Mikrut 927010e90f
Do not iterate over map when removing its values
(cherry picked from commit 29b2882381)
2021-01-05 20:49:00 +01:00
Eoin O'Neill 650f7c6f35
StateMachinePlayback: Added missing bindings to get_current_play_pos and get_current_length.
This allows the user to query the AnimationNodeStateMachinePlayback's current
play position and total length of current animation state. These methods are currently
used in the editor plugin, but can also be useful for querying general playback state
information.

Added documentation for AnimationNodeStateMachinePlayback's `get_current_play_position`

(cherry picked from commit 674fb52f52)
2021-01-05 20:48:57 +01:00
Rémi Verschelde 3032b38b52
Merge pull request #44690 from lawnjelly/transform_snap2
[3.2] Improve 2d snapping
2021-01-05 17:19:44 +01:00
Rémi Verschelde 6a708d6847
Merge pull request #43893 from Chaosus/vs_warnings_3.2
[3.2] Added extra warning to texture nodes in visual shader
2021-01-05 12:38:50 +01:00
Marcel Admiraal 6b3bab6e54 Add signal to inform joint that body has exited tree 2020-12-31 14:51:07 +00:00
Yuri Roubinsky adfc646f8c
Added optional id parameter to PopupMenu::add_separator
(cherry picked from commit ca8c794d04)
2020-12-30 09:57:01 +01:00
kobewi a227eefd2d
Rename offset to point in remove_point()
(cherry picked from commit 4f72a07eaa)
2020-12-29 16:02:03 +01:00
PouleyKetchoupp 1fccf78dd2
Update body transforms on joint2D setup
Body transforms from physics are used to setup the joint and they are
only updated before the physics step by default.

Without forcing the transform update, joints could use a previous
position if the body's position was set after it was added to the scene.

3D physics is not affected by this issue.

(cherry picked from commit 11bee25de4)
2020-12-29 16:02:02 +01:00
Rémi Verschelde 1a64f5d2ec
ProximityGroup: Fix access modifiers, rename private methods for clarity
See #36285 which mistakenly added documentation for the whole C++ API, while
some of it is meant to be and stay private as it's not exposed to scripts.
The access modifiers and method prefix were not used properly.

Cleanup code, and rename wrong `group_name` parameters to `method`, as it's a
method name which is being broadcast.

This is a very old class from pre-open source days, chances are that it was
just forgotten and not meant to be kept as is and undocumented.

(cherry picked from commit 79ba70f7ee)
2020-12-29 16:01:58 +01:00
Tomasz Chabora 107bd09636
Fix PathFollow3D updating on unit_offset 0
(cherry picked from commit cd42e938fc)
2020-12-29 15:12:10 +01:00
Dominik 'dreamsComeTrue' Jasiński e0bdb19a62
Fix camera2d zoom when set to zero (causing ERROR: affine_invert: Condition ' det == 0 ' is true.)
Fixes: #41873
(cherry picked from commit aba477361d)
2020-12-29 13:50:49 +01:00
lawnjelly a237c671bb Improve 2d snapping
Partially revert change allowing sprite get_rect snapping to be controlled by `pixel_snap` again rather than `transform_snap` (to prevent breaking compatibility). Adds a final `use_camera_snap` project setting to allow snapping viewports as in reduz original PR.
2020-12-25 18:53:00 +00:00
bruvzg 7ed2cf79ae
[3.2] Use base character advances for outline drawing. 2020-12-25 13:27:36 +02:00
Yuri Sizov 816fef21f9 Add a minimap to the GraphEdit 2020-12-18 01:31:17 +03:00
Sergey Minakov f1fd0440f3 GUI: use cursor in TextEdit for non selected text. 2020-12-16 05:33:10 +03:00
Sergey Minakov 4c3b84b3d7 GUI: send cursor data from TextEdit 2020-12-16 05:05:38 +03:00
Marcel Admiraal 825ad65fc4 Remove Generic6DOFJoint precision property 2020-12-15 10:15:42 +00:00
Michael Alexsander 4fe554933c
Allow to circle back in 'PopupMenu' even if the first/last item is non-selectable
(cherry picked from commit bb39088201)
2020-12-10 14:02:06 +01:00
volzhs c904cf612a
Add option to draw all tabs in front
(cherry picked from commit 814f9015f8)
2020-12-10 13:07:49 +01:00
Michael Alexsander 32da9dc1e9
Add "font_color_separator" theme property to 'PopupMenu'
(cherry picked from commit 383e8919e0)
2020-12-10 13:06:15 +01:00
volzhs 1663a9e87c
Update page value properly of ScrollContainer
(cherry picked from commit d89677442b)
2020-12-09 11:22:04 +01:00
Rémi Verschelde 84b62c0ba8
Merge pull request #44212 from bruvzg/color_font_fix_32
[3.2] Fix fallback emoji font color.
2020-12-09 11:20:39 +01:00
bruvzg 1b4fab3318
[3.2] Fix fallback emoji font color. 2020-12-09 11:20:55 +02:00
Rémi Verschelde e30d4fc6ed
Merge pull request #44167 from madmiraal/remove-chain-tip-copy-constructor-3.2
[3.2] Remove ChainTip copy constructor
2020-12-08 09:40:20 +01:00
Marcel Admiraal 79952c5435 Remove ChainTip copy constructor 2020-12-07 12:32:49 +00:00
bruvzg 4d58321850
[3.2] Load dynamic fonts to memory on all platforms, to avoid locked files. 2020-12-07 10:24:30 +02:00
Rémi Verschelde 759e53f9c0
Merge pull request #44130 from Calinou/tweak-material-height-hints-3.2
Tweak SpatialMaterial height property hints (3.2)
2020-12-06 09:35:32 +01:00
Hugo Locurcio 9f6628f5ab
Tweak SpatialMaterial height property hints
- Allow finer adjustments of the heightmap scale.
- Allow increasing the heightmap level detail (at the cost of performance).
2020-12-05 21:44:39 +01:00
rileylyman 3c5fb3bbc7
skip extra newline in .tscn when renaming dependency
(cherry picked from commit 40ce9bfc2d)
2020-12-01 09:00:53 +01:00
Rémi Verschelde f7061fd559
Buttons: Don't use deprecated set_enabled_focus_mode
It's better to use the equivalent, non-deprecated API.
Follow-up to #43974.
2020-11-30 11:16:15 +01:00
Rémi Verschelde 4f30cdfc33
Merge pull request #43972 from volzhs/fix-tab-container-3
Fix TabContainer crashes
2020-11-30 09:41:39 +01:00
FIF15 f07fb4e595 fix #43695 by revert part of #41577
Restore the default focus mode for MenuButton and LinkButton,
since it is different from the default of BaseButton.
2020-11-30 10:47:26 +08:00
volzhs efade4034b Fix no padding between icon and text in TabContainer 2020-11-30 11:36:57 +09:00
volzhs 8e10e33762 Fix TabContainer crashes 2020-11-30 11:02:18 +09:00
Yuri Roubinsky 3223747d0d [3.2] Added extra warning to texture nodes in visual shader 2020-11-26 19:14:33 +03:00
Rémi Verschelde b9b773c3f0
Merge pull request #43881 from akien-mga/3.2-cherrypicks
Cherry-picks for the 3.2 branch (future 3.2.4) - 10th batch
2020-11-26 10:39:20 +01:00
Rémi Verschelde 5b504eaa69
Merge pull request #43866 from madmiraal/fix-43852-3.2
[3.2] Check joint nodes and generate configuration warning messages.
2020-11-26 10:21:54 +01:00
Tomasz Chabora 0c50509326
Update clear button when clicked
(cherry picked from commit 836b78f329)
2020-11-26 09:38:47 +01:00
volzhs 8aeeec034d
Fix to update scroll bar has correct max value in ScrollContainer
(cherry picked from commit 67c2f2445f)
2020-11-26 09:38:47 +01:00
greenfox b7a712d9f3
fixed Camera2D rotation with non-square zoom
(cherry picked from commit b9c0897713)
2020-11-26 09:38:46 +01:00
Rémi Verschelde ac8dedd532
doc: Warn about using Node internal processing
See #43689.

Also 'fixed' some spelling for behavior in publicly visible strings.
(Sorry en_GB, en_CA, en_AU, and more... Silicon Valley won the tech spelling
war.)

(cherry picked from commit a655de89e3)
2020-11-26 09:38:45 +01:00
Andrii Doroshenko (Xrayez) e95e934d88
Do not start Timer upon manual switching of internal process
Prevents `Timer` to prematurely start and timeout immediately if internal
processing is enabled manually with `Timer.set_process_internal(true)` or
`Timer.set_physics_process_internal(true)`.

Even if the internal processing is enabled manually, the user still has to
actually start the timer with `start()` method explicitly.

(cherry picked from commit afcb6f38db)
2020-11-26 09:38:45 +01:00
Rémi Verschelde 94c31175de
Merge pull request #43152 from Chaosus/color_autocompletion_3.2
[3.2] Shows ColorRect in Color constants autocompletion
2020-11-26 09:32:32 +01:00
Marcel Admiraal e0e7332135 Check joint nodes and generate configuration warning messages. 2020-11-25 20:53:48 +00:00
Andrii Doroshenko (Xrayez) 2edd489f83 Describe ImageTexture, Image creation and usage
Ported from commit 0ee88d6705.
2020-11-17 18:06:52 +02:00
Hugo Locurcio 3a46e01af3
Remove property groups for Pause Mode and Script
Each of those only grouped 1 property, making them useless.

This closes https://github.com/godotengine/godot-proposals/issues/1840.

(cherry picked from commit 5770e08c2a)
2020-11-17 12:07:02 +01:00
Michael Alexsander fc1f5e149f
Fix WAV resources ignoring the AudioServer's 'global_rate_scale' value
(cherry picked from commit 04ebe4e7a4)
2020-11-17 12:07:01 +01:00
lawnjelly a79293e0fc Add 2d snap transforms option
This is a cut back backport of reduz snapping PR #43194.

It just offers a global project setting for transform snapping.
2020-11-15 09:40:07 +00:00
PouleyKetchoupp 9b64646bc3
Expose LineEdit scroll offset to scripts
(cherry picked from commit 4775db1600)
2020-11-11 15:44:18 +01:00
Rémi Verschelde 05143ca39a
Tooltips: Improve code clarity and docs
The return type for `_make_custom_tooltip` is clarified as Control, and users
should make sure to return a visible node for proper size calculations.

Moreover in the current master branch, a PopupPanel will be added as parent
to the provided tooltip to make it a sub-window.

Clarifies documentation for `Control._make_custom_tooltip`, and shows how to
use the (until now undocumented) "TooltipPanel" and "TooltipLabel" theme types
to style tooltips.

Fixes #39677.

(cherry picked from commit c5d8dafec4)
2020-11-11 15:30:56 +01:00
volzhs f4d181179c
Put unselected tabs back in TabContainer control
(cherry picked from commits 9eaa5ffab5
and 8a588343db)
2020-11-11 15:30:54 +01:00
Pedro J. Estébanez a45bf288e8
Fix premature end of animation playing backwards
(cherry picked from commit 826af5b28a)
2020-11-11 15:12:01 +01:00
Meriipu 969e60f6b2
Make the currently hovered control get updated on mouse-release
Previously, when the mouse was released after dragging a scrollbar,
its highlight was not dropped (if the mouse cursor was still inside
the viewport). This seems to be because the currently hovered control
only gets updated when the mouse is moved.

This commit fixes the dropping of the cosmetic highlight by running
the check for whether the currently hovered control has changed on
mouse-clicks, in addition to to the existing mouse-movements.

(cherry picked from commit e8804b9978)
2020-11-11 15:12:01 +01:00
lawnjelly fed764b342 Fix editor constant redraw from fxaa and debanding.
Every NOTIFICATION_PROCESS the spatial_editor_plugin.cpp is calling set_use_fxaa which is causing a redraw_request(). Same with debanding.

These can be fixed be checking for noop state changes.
2020-11-02 10:13:18 +00:00
Rémi Verschelde c43b2ab603
Merge pull request #42942 from Calinou/add-viewport-debanding-3.2
Add a debanding property to Viewport for GLES3
2020-10-30 11:47:57 +01:00
Hugo Locurcio 575dbd4bb2
Fix artifacts in DynamicFont when scaling with filtering enabled 2020-10-29 00:33:11 +01:00
Eric Tuvesson 9320266fe8
fix(sprite2d): Rect is not handling pixel snap
related https://github.com/godotengine/godot/issues/42985

(cherry picked from commit e892a92ad6)
2020-10-28 15:09:16 +01:00
Gilles Roudière 638e24684f
Fixes setting top_level not updating the global position
(cherry picked from commit 131a7b58c8)
2020-10-28 14:05:42 +01:00
Andrii Doroshenko (Xrayez) 921046c822
Add border_width to ReferenceRect
Exposes a hidden parameter behind `CanvasItem.draw_rect()`.

(cherry picked from commit aef00021a9)
2020-10-28 14:05:40 +01:00
Gabriel Van Eyck 7735cdaf8f
Fix emit_signal timing for GraphEdit's begin/end node move
(cherry picked from commit fbc095dc78)
2020-10-28 14:05:40 +01:00
Dominik 'dreamsComeTrue' Jasiński ba00ced445
TextEdit - fix valid bounds in 'set_line'. Fixes #41967
(cherry picked from commit 99c8a07919)
2020-10-28 14:05:39 +01:00
Yuri Roubinsky 374253242d [3.2] Shows ColorRect in Color constants autocompletion 2020-10-28 12:39:41 +03:00
Hugo Locurcio 3499799cb3
Improve the font oversampling warning messages to be more descriptive 2020-10-27 12:27:41 +01:00
hilfazer 6dbc08668b Move Editable Children information from scene's root to instanced nodes 2020-10-26 11:55:47 +01:00
Hugo Locurcio 2dbc329704
Add a debanding property to Viewport for GLES3
It can be enabled in the Project Settings
(`rendering/quality/filters/use_debanding`). It's disabled
by default as it has a small performance impact and can make
PNG screenshots much larger (due to how dithering works).

As a result, it should be enabled only when banding is noticeable enough.

Since debanding requires a HDR viewport to work, it's only supported
in the GLES3 backend.
2020-10-20 19:07:15 +02:00
Rémi Verschelde 150f9ce807
Merge pull request #42009 from Calinou/theme-node-type-3.2
Rename the `type` parameter to `node_type` in Theme and Control (3.2)
2020-10-20 15:58:41 +02:00
Hugo Locurcio af45c97652
Add fast approximate antialiasing (FXAA) to Viewport
This backports FXAA from the `master` branch.

Co-authored-by: Clay John <claynjohn@gmail.com>
2020-10-20 14:54:52 +02:00
Rémi Verschelde a239894827
Merge pull request #42902 from akien-mga/3.2-cherrypicks
Cherry-picks for the 3.2 branch (future 3.2.4) - 5th batch
2020-10-19 22:14:05 +02:00
Juan Linietsky 388ebfb498
Merge pull request #41629 from JFonS/disable_baked_lights
Disable lights for objects with baked lighting
2020-10-19 14:12:50 -03:00
Rémi Verschelde 4028414e0e
Revert "Made toplevel a property for Node3D and CanvasItem"
This reverts commit a726d011d5.
2020-10-19 16:58:56 +02:00
volzhs 78143ee93e
Respect Tree.set_icon_max_width size for drawing selection box
(cherry picked from commit cac4fedb2a)
2020-10-19 16:10:00 +02:00
Duroxxigar 11a07d071a
Added a more helpful error message when there is no current animation for the animation player
(cherry picked from commit 8bfeb9d6ae)
2020-10-19 16:09:58 +02:00
Dashcell c43e8d8fbd
Dropping file on parrent dirrectory fixed
(cherry picked from commit 1ac936f035)
2020-10-19 15:14:13 +02:00
Rémi Verschelde 3495cb91d8
Merge pull request #41577 from FIF15/deprecate-redundant-property-enabled-focus-mode
Deprecate Redundant property enabled_focus_mode
2020-10-19 14:15:43 +02:00
PouleyKetchoupp 5c831bc8d6 Fix mesh instance materials not initialized correctly
This fixes a regression from PR #40313 (support for software skinning in MeshInstance).

Before, the base mesh was always updated on load even if not skinning
was used, which caused mesh instance materials to be reset on the
rendering side.

Now the base mesh is set only when it has been modified, or when
switching software skinning on or off. In this case the mesh instance
materials are always updated properly afterwards.
2020-10-16 09:33:24 +02:00
FIF15 8311a37ed9 Deprecate Redundant property enabled_focus_mode
of BaseButton
see #41529 for details
this closes #41529
2020-10-16 14:14:04 +08:00
lawnjelly 0abae185c8 Change per frame software skinning check to is_visible
My mistake I missed this before the PR got merged:

is_visible_in_tree() should be avoided being called per frame unless absolutely necessary, because it is a recursive function that traverses the scene tree. It should be used when deciding on rare occasions whether to switch on or off skeleton processing, but it is better to use the cheaper is_visible() check on the per frame update.
2020-10-12 19:03:43 +01:00