Commit Graph

2827 Commits

Author SHA1 Message Date
Aaron Franke ee69b57434
[3.x] Fix KinematicBody axis lock 2021-08-29 20:38:09 -05:00
Wilson E. Alvarez f5409e7c3f
Fixed String::simplify_path Variant return type 2021-08-29 20:25:00 -04:00
nobuyuki_nyuu 522af5c614 Bind TabContainer::get_tab_idx_at_point() to ClassDB 2021-08-29 09:11:41 -05:00
lawnjelly 7ea35da462 Portals - Fix RoomManager PVS enum
The PVS mode enum had been declared using scope operator, which does not seem to work correctly from GDScript with the BIND_ENUM_CONSTANT macro.

This PR removes the scope operator in the declaration.
2021-08-28 07:27:50 +01:00
Hugo Locurcio d717eb537b
Add an `Array.pop_at()` method to pop an element at an arbitrary index
Negative indices are supported to pop an element relative from the end.
2021-08-27 01:27:07 +02:00
Haoyu Qiu 5183c473f7 Backport new methods for KinematicBody and KinematicCollision
For both 2D and 3D, three methods are added:

- `get_floor_angle` on `KinematicBody` to get the floor angle.
- `get_angle` on `KinematicCollision` to get the collision angle.
- `get_last_slide_collision` to quickly get the latest collision of `move_and_slide`.
2021-08-26 12:16:40 +08:00
Clay John 46ad2560a1
Merge pull request #51780 from BastiaanOlij/output_linear_gles2
Convert output of GLES2 to linear color space
2021-08-25 22:22:05 -03:00
Hugo Locurcio f5e83e7305
Merge pull request #52052 from Calinou/dynamicfont-allow-woff
Allow using WOFF fonts in DynamicFont
2021-08-25 10:37:15 +02:00
Hugo Locurcio 1ab3ddf94a
Allow using WOFF fonts in DynamicFont
This is already supported by FreeType, but it wasn't exposed.

Adding support for WOFF2 would require linking a Brotli decompression
library in Godot, so only WOFF1 is exposed here.
2021-08-25 08:09:23 +02:00
Wilson E. Alvarez fb5417a17b
[3.x] Expose String.simplify_path 2021-08-24 00:48:20 -04:00
Max Hilbrunner 8c98320f93
Merge pull request #51967 from Calinou/spatialmaterial-gles2-allow-more-features
Allow clearcoat, anisotropy and refraction in SpatialMaterial in GLES2
2021-08-23 16:01:55 +02:00
Bastiaan Olij 73722f3c65 Convert output of GLES2 to linear color space if keep_3d_linear is enabled 2021-08-23 15:59:56 +10:00
Hugo Locurcio 2370fe5c26
Merge pull request #51973 from Calinou/define-minimum-window-size-3.x
Define a default minimum window size to workaround rendering issues (3.x)
2021-08-23 04:10:55 +02:00
Hugo Locurcio 59f24d8867
Define a default minimum window size to workaround rendering issues
The minimum window size can still be set to `Vector2(0, 0)` in a script
if needed.
2021-08-23 04:10:24 +02:00
Hugo Locurcio 43da1790c8
Remove deprecation warning for `BaseButton.enabled_focus_mode`
There were too many instances of false positives that are difficult
to fix. The note in the class reference has been clarified instead.
2021-08-22 21:47:53 +02:00
Hugo Locurcio 33d23281cb
Allow clearcoat, anisotropy and refraction in SpatialMaterial in GLES2
These SpatialMaterial features work just fine in GLES2,
but they were not exposed in the inspector when GLES2 was used.
2021-08-22 02:18:36 +02:00
kobewi 6eb52b0768
Fix renaming directories
(cherry picked from commit 0dde3e5b59)
2021-08-18 23:19:44 +02:00
Aaron Franke 02a94ee977
[3.x] Improve the docs for the float type 2021-08-18 13:27:43 -05:00
Rémi Verschelde 92a7ae022d
Merge pull request #51769 from The-O-King/oct_split_stream_fix
Fix Octahedral/Split Stream Options
2021-08-18 08:01:56 +02:00
Omar El Sheikh a63028e172 Fix Octahedral/Split Stream Options
Update mesh_surface_get_format_stride and
mesh_surface_make_offsets_from_format to return an array of offsets and
an array of strides in order to support vertex stream splitting

Update _get_array_from_surface to also support vertex stream splitting

Add a condition on split stream usage to ensure it does not get used on
dynamic meshes

Handle case when Tangent is compressed but Normal is not compressed

Make stream splitting option require a restart in the settings

Update SoftBody and Sprite3D to support and use strides and offsets
returned by updated visual_server functions

Update Sprite3D to use the dynamic mesh flag
2021-08-17 16:11:47 -04:00
Haoyu Qiu 5f316aa216 Improve Undo/Redo menu items
* Make Undo/Redo menu items disabled when clicking it does nothing.
    * Context menu of `TextEdit`
    * Context menu of `LineEdit`
    * Editor's Scene menu
    * Script editor's Edit menu and context menu  (for Script and Text)
* Make editor undo/redo log messages translatable.
* Mark `UndoRedo`'s `has_{un,re}do()` methods as `const`.
* Expose `TextEdit`'s `has_{un,re}do()` to scripts since `{un,re}do()` are already available.
2021-08-18 00:46:51 +08:00
Rémi Verschelde c0fc475078
Merge pull request #51521 from lawnjelly/portals_occluders
Sphere occluders (portals and general use)
2021-08-17 13:55:34 +02:00
Rémi Verschelde 53cc7a9be9
Merge pull request #51648 from pycbouh/editor-merge-custom-theme-3.x
[3.x] Add support for partial custom editor themes
2021-08-17 13:12:49 +02:00
lawnjelly 115f4dce55 Sphere occluders (portals and general use)
Add framework for supporting geometrical occluders within rooms, and add support for sphere occluders.
Includes gizmos for editing.

They also work outside the portal system.
2021-08-17 09:02:06 +01:00
Rémi Verschelde 028a2a7205
Merge pull request #50359 from m4gr3d/address_external_dir_access
[3.x] Add support for Android scoped storage
2021-08-16 09:48:34 +02:00
Yuri Sizov ab25266213 Add support for partial custom editor themes 2021-08-14 02:11:54 +03:00
Rémi Verschelde 632844e464
Merge pull request #51320 from pycbouh/docs-extract-theme-items-3.x
[3.x] Add theme item descriptions to the online documentation
2021-08-13 22:39:09 +02:00
ne0fhyk c88d1608ab Add partial support for Android scoped storage.
This is done by providing API access to app specific directories which don't have any limitations and allows us to bump the target sdk version to 30.
In addition, we're also bumping the min sdk version to 19 as version 18 is no longer supported by Google Play Services and only account of 0.3% of Android devices.
2021-08-13 11:04:17 -07:00
Hugo Locurcio f77b228b2c
Fix incorrect descriptions for EditorFileSystem's `get_file_type()`
(cherry picked from commit 1942e0c117)
2021-08-13 09:55:18 +02:00
Rémi Verschelde 54d14a912a
Merge pull request #51402 from tinmanjuggernaut/texture_array_anisotropic
[3.x] Add Anisotropic Filter option for TextureArrays
2021-08-13 08:46:22 +02:00
Rémi Verschelde f75d8d5c04
Merge pull request #51589 from Geometror/improve-stylebox-aa-3.x
StyleBox fake AA improvements (make anti aliasing size a float property) [3.x]
2021-08-13 01:33:01 +02:00
Rémi Verschelde 4b514bfdff
Merge pull request #51577 from m4gr3d/update_external_texture_config
Update external texture flag configuration.
2021-08-12 22:55:15 +02:00
Rémi Verschelde ffc372b002
Merge pull request #42220 from RandomShaper/agile_input_3.2
[3.x] Improve responsiveness on underpowered Android devices
2021-08-12 22:46:17 +02:00
Hendrik Brucker 6d05ef9ccb StyleBox fake AA improvements (aa_size float property) 2021-08-12 22:21:34 +02:00
Fredia Huya-Kouadio 2cc1cdc27b Update external texture flag configuration. 2021-08-12 10:46:09 -07:00
Cory Petkovsek fb609b22e4 Add Anisotropic Filtering option for TextureArrays 2021-08-12 23:56:03 +08:00
Rémi Verschelde f0b37b1519
doc: Point URLs to 3.4 version of the online docs 2021-08-12 17:08:10 +02:00
Iced Quinn c5f01173a4
doc: Add documentation for JSONRPC class
(cherry picked from commit 3fc5646b98)
2021-08-12 16:43:45 +02:00
Max Hilbrunner 235fec4316
Docs: Add warnings about no SSL/(D)TLS revocation
(cherry picked from commit 4eb427afb8)
2021-08-12 16:42:17 +02:00
follower abc18e9a4f
Fix Unicode URL link tags to render correctly.
Change incorrect `[/code]` closing tags to `[/url]` tags.

The `url` tags for the links to the Unicode code points information use `[/code]` rather than `[/url]` to close them.

This results in the links being rendered incorrectly in the IDE--the entire rest of the documentation for each method gets turned into a giant underlined link.

This issue was introduced in a2271ba3bd.

(cherry picked from commit b85688ac7d)
2021-08-12 16:42:16 +02:00
Hugo Locurcio 0e0af7fa83
Add high quality glow mode
This backports the high quality glow mode from the `master` branch.

Previously, during downsample, every second row was ignored.
Now, when high-quality is used, we sample two rows at once to ensure
that no pixel is missed. It is slower, but looks much better and has
a much high stability while moving.

High quality also takes an additional horizontal sample the width of the
horizontal blur matches the height of the vertical blur.
2021-08-11 17:00:41 +02:00
Haoyu Qiu f4a6737eed Improve NavigationMesh typing, parameter validation and documentation 2021-08-11 18:18:27 +08:00
Rémi Verschelde 03c41fa34c
Merge pull request #51458 from nekomatata/moving-platforms-3d-3.x
[3.x] Fix 3D moving platform logic
2021-08-10 14:12:47 +02:00
Rémi Verschelde a9b585dd1a
Fixup doc formatting after #47416 2021-08-10 12:11:30 +02:00
Rémi Verschelde 7c6bdea33c
Merge pull request #47416 from Calinou/add-contrast-adaptive-sharpening-3.x
Add support for contrast-adaptive sharpening in 3D (GLES3 only)
2021-08-10 10:08:24 +02:00
PouleyKetchoupp da159cd258 Fix 3D moving platform logic
Same thing that was already done in 2D, applies moving platform motion
by using a call to move_and_collide that excludes the platform itself,
instead of making it part of the body motion.

Helps with handling walls and slopes correctly when the character walks
on the moving platform.

Also made some minor adjustments to the 2D version and documentation.

Co-authored-by: fabriceci <fabricecipolla@gmail.com>
2021-08-09 18:55:49 -07:00
Rémi Verschelde 0403cb8ad5
Merge pull request #51447 from nekomatata/fix-moving-platform-rotation-3.x
[3.x] Fix applied rotation from moving platforms in move_and_slide
2021-08-09 23:20:35 +02:00
PouleyKetchoupp f101349225 Fix applied rotation from moving platforms in move_and_slide
When synchronizing KinematicBody motion with moving the platform using
direct body state, only the linear velocity was taken into account.

This change exposes velocity at local point in direct body state and
uses it in move_and_slide to get the proper velocity that includes
rotations.
2021-08-09 12:04:57 -07:00
lawnjelly f3e6547a99 Portals - fix PVS generation and move settings
Fixed a bug in the complex PVS generation which was causing recursive loop.
Move some of the settings out of RoomManager into Project Settings.
Allow PVS generation method to be selected from Project Settings, and control PVS logging.
2021-08-08 19:57:27 +01:00
Pedro J. Estébanez 31a0ca2cac Add project setting for agile input event flushing
If enabled, key/touch/joystick events will be flushed just before every idle and physics frame.

Enabling this can greatly improve the responsiveness to input, specially in devices that need to run multiple physics frames per each idle frame, because of not being powerful enough to run at the target frame rate.

This will only work for platforms using input buffering (regardless event accumulation). Currenly, only Android does so, but could be implemented for iOS in an upcoming PR.
2021-08-08 12:37:55 +02:00
Rémi Verschelde b44f2126f6
Merge pull request #51334 from pycbouh/classref-get-theme-items-3.x
[3.x] Improve `Control`'s theme item methods documentation
2021-08-07 12:41:54 +02:00
Yuri Sizov 71ec6dba67 Improve Control's theme item methods documentation 2021-08-06 22:31:58 +03:00
Yuri Sizov 974e76a082 Improve the inspector plugin documentation and remove a confusing statement 2021-08-06 21:01:48 +03:00
Yuri Sizov fcbe5a3fde Add theme item descriptions to the online documentation 2021-08-06 18:20:51 +03:00
Rémi Verschelde b3c555504f
Improve documentation and simplifies code for `File::get_csv_line()`
Also forbids using double quotes as a delimiter.

(cherry picked from commit b8c08ba5ad)
2021-08-06 11:13:43 +02:00
lawnjelly 770d9f8220 Portals - add gizmo handles for editing portals and rooms
Gizmo handles are added for much more user friendly editing of portals and room bounds.
2021-08-06 07:53:22 +01:00
Bastiaan Olij cc1f7f2edc Revert "Combined the DOF far and DOF near passes"
This reverts commit 39658b4e07.
2021-08-05 23:22:31 +10:00
kobewi 5692bc8dd0
Improve ConfigFile example
(cherry picked from commit 1721f0143e)
2021-08-03 14:56:51 +02:00
Rémi Verschelde f5836b40d4
doc: Use self-closing tags for `return` and `argument`
For the time being we don't support writing a description for those, preferring
having all details in the method's description.

Using self-closing tags saves half the lines, and prevents contributors from
thinking that they should write the argument or return documentation there.

(cherry picked from commit 7adf4cc9b5)
2021-08-03 10:20:19 +02:00
Kevin Sanders 88ad05c5dc
Grammar fix.
(cherry picked from commit 6db57b9da2)
2021-08-03 09:33:25 +02:00
Rémi Verschelde 7b97243521
Merge pull request #51040 from nekomatata/layer-grid-32-3.x
[3.x] Refactor layer property editor grid
2021-08-02 21:14:43 +02:00
Hugo Locurcio 93f4f9e076
Link to the Random number generation tutorial in RandomNumberGenerator
This was done in `master` already, but not in `3.x`.
2021-07-31 22:54:30 +02:00
PouleyKetchoupp e0e9f575ae Refactor layer property editor grid
- Now able to display up to 32 layers in physics (still 20 for render)
- Adjustable grid size to fit available space in dock
- Expansion icon to display more layers vertically
- Layer numbers in cells to help with selection
2021-07-30 11:43:04 -07:00
Rémi Verschelde 9735f2803c
Merge pull request #46800 from The-O-King/normal_compression
[3.x] Implement Octahedral Map Normal/Tangent Attribute Compression
2021-07-30 17:34:47 +02:00
Omar El Sheikh d274284069 Octahedral Normal/Tangent Compression
Implement Octahedral Compression for normal/tangent vectors
*Oct32 for uncompressed vectors
*Oct16 for compressed vectors

Reduces vertex size for each attribute by
*Uncompressed: 12 bytes, vec4<float32> -> vec2<unorm16>
*Compressed: 2 bytes, vec4<unorm8> -> vec2<unorm8>

Binormal sign is encoded in the y coordinate of the encoded tangent

Added conversion functions to go from octahedral mapping to cartesian
for normal and tangent vectors

sprite_3d and soft_body meshes write to their vertex buffer memory
directly and need to convert their normals and tangents to the new oct
format before writing

Created a new mesh flag to specify whether a mesh is using octahedral
compression or not
Updated documentation to discuss new flag/defaults

Created shader flags to specify whether octahedral or cartesian vectors
are being used

Updated importers to use octahedral representation as the default format
for importing meshes

Updated ShaderGLES2 to support 64 bit version codes as we hit the limit
of the 32-bit integer that was previously used as a bitset to store
enabled/disabled flags
2021-07-30 10:29:09 -04:00
EricEzaM 0e5c6e0d55 Allow checking for exact matches with Action events.
Added additional param to action related methods to test for exactness.
If "p_exact_match" is true, then the action will only be "matched" if the provided input event *exactly* matches with the action event.

Before:
* Action Event = KEY_S
* Input Event = KEY_CONTROL + KEY_S
* Is Action Pressed = True

Now:
You can still do the above, however you can optionally check that the input is exactly what the action event is:
* Action Event = KEY_S
* Input Event = KEY_CONTROL + KEY_S
* p_exact_match = True
* Is Action Pressed = False
* If the Input Event was only KEY_S, then the result would be true.

Usage:

```gdscript
Input.is_action_pressed(action_name: String, exact_match: bool)
Input.is_action_pressed("my_action", true)

InputMap.event_is_action(p_event, "my_action", true)

func _input(event: InputEvent):
  event.is_action_pressed("my_action", false, true) # false = "allow_echo", true = "exact_match"
  event.is_action("my_action", true)
```

Co-authored-by: Eric M <itsjusteza@gmail.com>
2021-07-30 15:35:39 +02:00
lawnjelly d0ba355520 Portals - add autoplace priority setting to CullInstance
The default autoplace algorithm places instances in the highest priority Room. It became apparent that there are some situations in which users will want to override this and force placement in a Room from a particular RoomGroup, especially an "outside" RoomGroup.

This setting allows the user to specify a preference for Room priority. When set to 0, the setting is ignored and the highest priority Room is chosen.
2021-07-28 17:23:20 +01:00
Hugo Locurcio 7e3c0a0c1f
Document `Image.save_exr()` only being available in editor builds
(cherry picked from commit a1784c64b4)
2021-07-28 15:35:52 +02:00
Rémi Verschelde 6a6b6fa5cb
Merge pull request #50827 from Calinou/bakedlightmap-add-bounce-indirect-energy 2021-07-27 10:44:41 +02:00
Rémi Verschelde a71169c0e0
Merge pull request #50788 from aaronfranke/3.x-input-get-axis 2021-07-26 16:30:44 +02:00
Hugo Locurcio 94f79fa474
Document caveats with Control's `mouse_entered`/`mouse_exited` signals
(cherry picked from commit 37c1cbdcb2)
2021-07-26 13:36:37 +02:00
Raul Santos f20ace5cd2
Fix typo in CollisionObject documentation
(cherry picked from commit f8374b021e)
2021-07-26 13:31:19 +02:00
Hugo Locurcio af3f83407f
Expose an ImportOrder enum in ResourceImporter
This avoids using magic numbers in code.

(cherry picked from commit 7f83977f37)
2021-07-26 13:26:58 +02:00
Hugo Locurcio 974d3aa9cd
Add a property to control the bounce indirect energy in BakedLightmap
Higher values will make indirect lighting brighter.
A value of 1.0 represents physically accurate behavior, but higher values
can be used to make indirect lighting propagate more visibly when using
a low number of bounces.

This can be used to speed up bake times by lowering the number of bounces
then increasing the bounce indirect energy. Unlike BakedLightmapData's
energy property, this property does not affect direct lighting
emitted by light nodes or emissive materials.
2021-07-25 03:04:40 +02:00
Aaron Franke 69fb14256b
[3.x] Allow getting Input axis/vector values from multiple actions
For get_vector, use raw values and handle deadzones appropriately
2021-07-23 19:17:55 -04:00
Nicholas Huelin 6d58ea6ce7
Fix doc typos
This pull request fixes an assortment of typos and improves conciseness in `Animation`, `Area2D`,  `Array`, `ArrayMesh`, `Control`, `Directory`, `EditorPlugin`, `Engine`, and `OS`.

(cherry picked from commit 9a72b0d3d0)
2021-07-24 01:06:38 +02:00
Nicholas Huelin bd8747f7f1
Fix miscellaneous doc typos and inconsistencies
This pull request fixes an assortment of typos, improves conciseness, and enhances clarity.

(cherry picked from commit 9787e631aa)
2021-07-24 01:00:37 +02:00
Distrikt64 1e49b6299a
Fix msec documentation description typo
(cherry picked from commit 44eb041d60)
2021-07-24 00:59:57 +02:00
Joseph Davies b98a06b259
Fix grammar in MultiMesh documentation.
(cherry picked from commit 136567ebcf)
2021-07-24 00:58:30 +02:00
Hugo Locurcio 244425998f
Document the RootMotionView class
(cherry picked from commit 6880829a9a)
2021-07-24 00:58:11 +02:00
Rémi Verschelde 86054e00bf
Merge pull request #50446 from AnilBK/graphnode-improv-3.x
[3.x]Add missing graphnode setters.
2021-07-22 16:41:20 +02:00
Rémi Verschelde 0b4080ba4d
Merge pull request #48555 from lawnjelly/delta_sync
Add option to sync frame delta after draw
2021-07-22 13:33:57 +02:00
Rémi Verschelde 214106d6e3
Merge pull request #50723 from BastiaanOlij/combine_far_near_dof
Combined the DOF far and DOF near passes
2021-07-22 13:19:39 +02:00
lawnjelly 93557927e4 Add option to sync frame delta after draw
Investigations have showed that a lot of the random variation in frame deltas causing glitches may be due to sampling the time at the wrong place in the game loop.

Although sampling at the start of Main::Iteration makes logical sense, the most consistent deltas may be better measured after the location likely to block at vsync - either the OpenGL draw commands or the SwapBuffers.

Here we add an experimental setting to allow syncing after the OpenGL draw section of Main::Iteration.
2021-07-22 12:04:22 +01:00
Rémi Verschelde d3f500cf33
Merge pull request #48390 from lawnjelly/delta_smooth
Add frame delta smoothing option
2021-07-22 12:43:39 +02:00
Rémi Verschelde 801205b2c1
Merge pull request #48892 from lawnjelly/bvh_robust
BVH - thread safety option
2021-07-22 12:41:42 +02:00
Bastiaan Olij 39658b4e07 Combined the DOF far and DOF near passes 2021-07-22 13:45:57 +10:00
Rémi Verschelde 028bf846a8
Merge pull request #50640 from goostengine/add-engine-print-error-property-3.x
[3.x] Add `Engine.print_error_messages` property to disable printing errors
2021-07-20 13:31:04 +02:00
Andrii Doroshenko (Xrayez) 726111f38f Add Engine.print_error_messages property to disable printing errors
Backports #48359 to 3.x.

Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2021-07-20 13:58:07 +03:00
Rémi Verschelde f131a77f46
Merge pull request #46574 from The-O-King/split_stream_3.2
[3.4] Split Vertex Buffer Stream in Positions and Attributes
2021-07-20 10:48:37 +02:00
Aaron Franke 7dc2edc430
[3.x] Allow reading shaders from .gdshader files 2021-07-19 23:34:23 -04:00
Omar El Sheikh 7f8487a900 Split Vertex Position and Attribute Streams
Implemented splitting of vertex positions and attributes in the vertex
buffer

Positions are sequential at the start of the buffer, followed by the
additional attributes which are interleaved

Made a project setting which enables/disabled the buffer formatting
throughout the project

Implemented in both GLES2 and GLES3

This improves performance particularly on tile-based GPUs as well as
cache performance for something like shadow mapping which only needs
position data

Updated Docs and Project Setting
2021-07-19 13:23:46 -07:00
Rémi Verschelde 526447b86f
Merge pull request #50495 from nekomatata/move-and-slide-fixes-3.x
[3.x] Backport KinematicBody move_and_slide and move_and_collide fixes
2021-07-19 20:11:51 +02:00
PouleyKetchoupp 2fbb6fff4e Fix move_and_collide causing sliding on slopes
Make sure the direction of the motion is preserved, unless the depth is
higher than the margin, which means the body needs depenetration in any
direction.

Also changed move_and_slide to avoid sliding on the first motion, in
order to avoid issues with unstable position on ground when jumping.

Co-authored-by: fabriceci <fabricecipolla@gmail.com>
2021-07-19 08:09:16 -07:00
Yuri Sizov e05eb8a6ad Make zoom limits and step adjustable in GraphEdit 2021-07-16 22:43:28 +03:00
Rémi Verschelde 4d3c11e85e
Merge pull request #49446 from nekomatata/sync-to-physics-3d-3.x
[3.x] Support for 3D sync to physics
2021-07-16 07:15:17 +02:00
Rémi Verschelde 231efe0c6d
Merge pull request #50166 from fabriceci/fix-2d-moving-platform
[3.x] Fixing 2D moving platform logic
2021-07-15 13:34:30 +02:00
fabriceci fba4c9d552 Fixing 2D moving platform logic
Fixing by applying the movement in two steps, first the platform
movement, and then the body movement. Plus, add the platform movement
when we are on_wall.
2021-07-15 11:57:58 +02:00
kobewi 4941d2001c
Add set_pressed_no_signal method to BaseButton
(cherry picked from commit 50c63bdc4c)
2021-07-15 10:52:22 +02:00
Tomasz Chabora 6021ab5b01
Document remaining Visual Script classes
(cherry picked from commit 1054956461)
2021-07-15 10:46:04 +02:00
Hendrik Brucker fe616d443a
Fix color properties of particle nodes/material
(cherry picked from commit 3a4a2198ed)
2021-07-15 10:25:35 +02:00
Rémi Verschelde a3310c1da2
Merge pull request #46130 from lawnjelly/portals
Portal occlusion culling [3.4]
2021-07-14 13:38:01 +02:00
lawnjelly eb6f98ec55 Portal occlusion culling
Adds support for occlusion culling via rooms and portals.
2021-07-14 11:43:23 +01:00
Rémi Verschelde aa3a5c9f6a
Merge pull request #50184 from JFonS/cpu_lightmapper_soft_shadows
[3.x] Add soft shadows to the CPU lightmapper
2021-07-14 12:18:08 +02:00
Anilforextra d9e48a9c58 Add missing graphnode setters.
Documentation Updates.
2021-07-14 15:37:59 +05:45
lawnjelly 6914d7c6e0 Add frame delta smoothing option
Frame deltas are currently measured by querying the OS timer each frame. This is subject to random error. Frame delta smoothing instead filters the delta read from the OS by replacing it with the refresh rate delta wherever possible.

This PR also contains code to estimate the refresh rate based on the input deltas, without reading the refresh rate from the host OS.
2021-07-14 08:44:31 +01:00
Rémi Verschelde b0b2b7df31
Merge pull request #50257 from Calinou/physicsserver3d-add-set-iterations-3.x
Add a method to set the number of physics solver iterations in 3D (3.x)
2021-07-14 07:56:57 +02:00
Haoyu Qiu a29b834930
Fix doc description of HTTPClient::request
(cherry picked from commit 422f821be9)
2021-07-13 10:20:03 +02:00
Nick Huelin 88fc178d57
Add method description to `PopupMenu`
This pull request adds a missing method description to `PopupMenu`.

This completes the documentation for `PopupMenu` and enhances usability by doing so.

Update doc/classes/PopupMenu.xml

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
(cherry picked from commit 2e3cbbcd11)
2021-07-13 10:20:02 +02:00
Rémi Verschelde 32f5bee985
LineEdit: Respect `max_length` by truncating text to append
When appending text (either via `set_text()` or by pasting from clipboard),
if the input would make the `LineEdit` exceed its configured `max_length`,
the input text is truncated to fit. The discard part is passed as a parameter
in the `text_change_rejected` signal.

Fixes #33321.
Fixes #41278.

Also cleaned up unimplemented `max_chars` property in `TextEdit`.

Co-authored-by: Tony-Goat <70238376+Tony-Goat@users.noreply.github.com>
(cherry picked from commit 9a1ce8e6c3)
2021-07-13 10:20:02 +02:00
Rémi Verschelde 9d2cbe2c02
Merge pull request #50328 from nekomatata/convex-hull-simplification-3.x
[3.x] Options to clean/simplify convex hull generated from mesh
2021-07-12 22:34:22 +02:00
Rémi Verschelde 6ec2caf12c
Merge pull request #48763 from QbieShay/plane-offset
[3.x] Added a center_offset property to both plane primitive and quad primitive
2021-07-12 10:32:19 +02:00
Hugo Locurcio 9259b4adc4
Add a method to set the number of physics solver iterations in 3D
This is only for GodotPhysics, and adds a 3D counterpart to the 2D
method that was recently added.
2021-07-10 16:29:41 +02:00
PouleyKetchoupp 240c33708c Options to clean/simplify convex hull generated from mesh
Clean: remove duplicate and interior vertices (uses Bullet algorithm)
Simplify: modify the geometry for further simplification (uses VHACD
algorithm)

In the editor, single convex hull now uses the clean option.
Added a new editor entry to create a simplified convex hull, can be
useful for creating convex hull from highly tessellated triangle meshes.

Specific change for 3.x:
Add support for Vector<Vector3> and PoolVector<Vector3> in the convex hull generator.
2021-07-09 17:45:59 -07:00
JestemStefan 9513354f68 Added signed_angle_to for Vector3
Added signed_angle_to method for Vector3

Added signed_angle_to for Vector3

formatting fix...
2021-07-09 12:49:12 +02:00
kleonc 23ad87cc92 Add AcceptDialog::remove_button method 2021-07-06 18:27:03 +02:00
Nick Huelin ad1aea9a46
Add multiple descriptions to several classes
This pull request adds several descriptions to multiple different classes.

This improves the completeness of the documentation and enhances usability by doing so.

(cherry picked from commit 27e9df7778)
2021-07-06 15:30:13 +02:00
PouleyKetchoupp daa0977c68
NodePath properly updated in the editor in more cases
Fix more cases of node path needing an update when nodes are renamed or
moved in the editor.

Built-in node properties:
Before, node paths were checked only for script export variables. Now
all properties are checked from the node, which includes built-in node
properties.
Allows proper node path updates for nodes like remote transform, physics
joints, etc.

Arrays and dictionaries:
Node paths nested in array and dictionary properties are now also
updated in the editor.

Also update the documentation to be clear about node path update in the
editor and at runtime.

Co-authored-by: latorril <latorril@gmail.com>
(cherry picked from commit 3e4e530523)
2021-07-06 11:10:47 +02:00
Nick H ca1a2e1124
Add `get_dead_zone()` method to `InputMap`
This commit adds a new method to the `InputMap`, allowing the user to get the value of an action's dead zone as a float.

(cherry picked from commit c6f28ed62b)
2021-07-06 11:10:45 +02:00
Eric 09b231e15f
Enable Camera2D smoothing on limit change
(cherry picked from commit 525ad7c37e)
2021-07-06 11:10:35 +02:00
PouleyKetchoupp 9eb6a43cff Remove unused PhysicsShapeQueryResult & Physics2DShapeQueryResult 2021-07-05 11:21:15 -07:00
JFonS a2ba7910ba Add soft shadows to the CPU lightmapper
Adds the "light_size" property to Lights. It's only considered in baked
lightmaps for soft shadowing purposes.
2021-07-05 19:02:35 +02:00
Rémi Verschelde 6fe9a0d717
Merge pull request #50103 from nekomatata/expose-body-test-motion-3d-3.x
[3.x] Expose body_test_motion in 3D physics server
2021-07-03 09:30:10 +02:00
PouleyKetchoupp c89476ad41 Expose body_test_motion in 3D physics server
Results are exposed through PhysicsTestMotionResult, the same way it's
done for 2D.

Also cleaned a few things in the 2D version.
2021-07-02 18:04:39 -07:00
Hugo Locurcio 9c4ebea9ef
Document debanding being broken on mobile 2021-07-01 12:25:23 +02:00
Rémi Verschelde ef3c346df2
Merge pull request #49835 from nekomatata/soft-body-disable-physics-3.x
[3.x] Support for disabling physics on SoftBody
2021-07-01 10:01:33 +02:00
Levi Lindsey f72ce41700
Update File.store_var description to mention which properties of an object are included.
(cherry picked from commit 2b7c0cfb34)
2021-06-29 14:02:24 +02:00
Nick H d08717d0ee
Amend `Label`.clip_text() Method Description
This update fixes an inconsistencies in the documentation about the `clip_text()` method.

(cherry picked from commit ea94aeac48)
2021-06-29 14:02:23 +02:00
Hugo Locurcio e7d6f8b8b8
Allow a top and bottom radius equal to 0 in CylinderMesh
The CylinderMesh generation code handles this special case and
avoids generating the top and bottom faces if their radius is equal
to 0. This improves performance by reducing the number of vertices
to draw.

If both values are set to 0, nothing will be visible but the mesh
generation will still succeed.

This also improves the CylinderMesh class documentation.

(cherry picked from commit b4ed84ba2b)
2021-06-29 14:02:22 +02:00
Hugo Locurcio 17b6771778
Improve descriptions for ProjectSettings' `disable_stdout`/`disable_stderr`
(cherry picked from commit e3ef50db38)
2021-06-29 13:15:51 +02:00
PouleyKetchoupp 4694b2b3e4 Support for disabling physics on SoftBody
New property physics_enabled, can be useful for optimization purpose.
2021-06-22 11:38:17 -07:00
Hugo Locurcio a9c0c5484f
Add support for contrast-adaptive sharpening in 3D (GLES3 only)
This is an older, easier to implement variant of CAS as a pure
fragment shader. It doesn't support upscaling, but we won't make
use of it (at least for now).

The sharpening intensity can be adjusted on a per-Viewport basis.
For the root viewport, it can be adjusted in the Project Settings.

Since `textureLodOffset()` isn't available in GLES2, there is no
way to support contrast-adaptive sharpening in GLES2.
2021-06-21 15:37:31 +02:00
Rémi Verschelde 09c2bd597a
Merge pull request #49732 from Calinou/expose-data-dirs-3.x
Expose OS data directory getter methods (3.x)
2021-06-20 00:31:41 +02:00
Hugo Locurcio 21ad630e11
Expose OS data directory getter methods
This can be used by editor plugins and non-game applications to
store data in the correct directories according to the
XDG Base Directory specification.
2021-06-19 09:28:53 +02:00
Hugo Locurcio a6a6ad5c08
Add custom debug shape thickness and color options to RayCast
This backports the improved RayCast debug drawing functionality
from the `master` branch.

`ArrayMesh.clear_surfaces()` was also backported from the `master`
branch and exposed because the new debug drawing code requires it.
2021-06-19 06:01:25 +02:00
Aaron Franke 85a0345d57
[3.x] Add Quat angle_to method 2021-06-18 11:00:44 -04:00
Rémi Verschelde fc95c4d84c
Merge pull request #49476 from nekomatata/kinematic-collision-rid-3.x
[3.x] Expose collider RID in 2D/3D kinematic collision
2021-06-18 12:32:42 +02:00
Rémi Verschelde c7f27f1d9d
Merge pull request #48651 from tavurth/3.x
Port HTTPRequest gzip compression to 3.4
2021-06-18 02:01:11 +02:00
Hugo Locurcio 63d0485a6a
Fix duplicate paragraph in `ArrayMesh.add_surface_from_arrays()` description
(cherry picked from commit 033985f9c2)
2021-06-17 12:47:54 +02:00
Hugo Locurcio 6d60d92b87
Tweak the physics FPS property hint to only allow reasonable values
Physics FPS above 1000 cause the whole project to slow down
and are not very practical in the first place (since no CPU currently
available can keep up).

(cherry picked from commit 8f4ac7bc4a)
2021-06-17 12:47:53 +02:00
kobewi bdc8d29749
Clarify animation_changed signal
(cherry picked from commit 8d0cbded3f)
2021-06-17 12:47:53 +02:00
Hugo Locurcio 483f8e0ef8
Improve AudioStreamGenerator and AudioEffectSpectrumAnalyzer documentation
- Mention audio sample rate caveats in other classes where relevant.

(cherry picked from commit c872819be6)
2021-06-17 12:47:52 +02:00
Hugo Locurcio 45e8f75952
Complete documentation for the AudioEffectPitchShift class
(cherry picked from commit 6be32d8cbc)
2021-06-17 12:47:52 +02:00
Rémi Verschelde 2d3c0d311c
Merge pull request #49516 from Calinou/doc-projectsettings-vram-compression-change-3.x
Document applying VRAM compression setting changes retroactively
2021-06-11 19:42:32 +02:00
Rémi Verschelde c45ce768b1
Merge pull request #47854 from mortarroad/3.x-lossless-webp
[3.x] Implement lossless WebP encoding
2021-06-11 19:35:47 +02:00
Morris Tabor 5de08ef1d6 Implement lossless WebP encoding 2021-06-11 18:48:04 +02:00
Hugo Locurcio d0d717809e
Document applying VRAM compression setting changes retroactively 2021-06-11 18:44:37 +02:00
Rémi Verschelde e6a6293146
Merge pull request #49487 from pycbouh/theme-utility-methods-3.x 2021-06-11 13:40:21 +02:00
Rémi Verschelde 72ae4ca94f
Merge pull request #49491 from pycbouh/editor-expose-resource-picker-3.x 2021-06-11 13:39:44 +02:00
Yuri Sizov b622dfa956 Use EditorResourcePicker in the Inspector
Backported from #48854
2021-06-11 13:32:15 +03:00
Yuri Sizov 343ba504d3 Add EditorResourcePicker control based on the Inspector editor for Resources
Backported from #47260
2021-06-11 13:32:15 +03:00
Marcel Admiraal 6d63ccba31 Add OS.get_external_data_dir() to get Android external directory 2021-06-10 16:48:37 +01:00
Yuri Sizov de1ba1f260 Add utility methods to Theme, improve error messages and documentation
Backport of relevant parts of #47251, #49308
2021-06-10 16:44:24 +03:00
Yuri Sizov 83012d6927 Expose missing Theme methods
Backport of relevant, non-breaking parts of #37759
2021-06-10 15:31:23 +03:00
PouleyKetchoupp a146e79758 Expose collider RID in 2D/3D kinematic collision
Can be useful to access the colliding body information for bodies
created with the physics server directly.
2021-06-09 18:26:16 -07:00
Chuck 17ee8ff0d9 Support multiple address resolution in DNS requests
Add two new functions to the IP class that returns all addresses/aliases associated with a given address.

This is a cherry-pick merge from 010a3433df which was merged in 2.1, and has been updated to build with the latest code.

This merge adds two new methods IP.resolve_hostname_addresses and IP.get_resolve_item_addresses that returns a List of all addresses returned from the DNS request.
2021-06-09 12:06:46 +07:00
PouleyKetchoupp 8a095b2b15 Support for 3D sync to physics
Same implementation as in 2D, specific to 3.x branch.
2021-06-08 16:28:58 -07:00
Nick Huelin 8b09112d5f
Edit "quit()" method description in `SceneTree`
Updated the `SceneTree.quit()` method to include a note that on iOS this method won't work as apps are expected to be closed via the Home button, not programmatically.

(cherry picked from commit c63af17a31)
2021-06-07 12:14:30 +02:00
kobewi 457ccb21b6
Improve sort_custom() description
(cherry picked from commit 48f0368ddc)
2021-06-07 12:11:52 +02:00
RoniPerson f5fe8ddacc
Added documentation to some `add_*_plugin` methods
Added documentation to some `add_*_plugin` methods and the corresponding `remove_*_plugin` methods.
Added an example of how to register a plugin to `add_inspector_plugin` and linked to it in the other methods.

(cherry picked from commit e849157e07)

Proofread add_*_plugin/remove_*_plugin descriptions in EditorPlugin

(cherry picked from commit 21f0961610)
2021-06-07 12:10:19 +02:00
Rémi Verschelde 80e1585a6e
Style: Cleanup uses of double spaces between words
Or after punctuation. Tried to leave third-party stuff alone, unless it has
been heavily modified for Godot.

(cherry picked from commit c1c76850cb)
2021-06-07 12:06:59 +02:00
Marcel Admiraal fd982ecd15 Rename CollisionObject3D input_event signal position and normal parameters 2021-06-07 09:50:47 +01:00
Rémi Verschelde f102ba8b2f
Merge pull request #48367 from Calinou/doc-navigation-get-simple-path
Document `Navigation.get_simple_path()` often returning non-optimal results
2021-06-03 22:37:07 +02:00
Marcel Admiraal 18825ad4ff Fix game controllers ignoring the last listed button 2021-06-03 15:45:05 +01:00
Hugo Locurcio 8e4afdc71d
Document `Navigation.get_simple_path()` often returning non-optimal results 2021-06-03 16:05:56 +02:00
Hugo Locurcio e0facdaf61
Uncap the range for gravity and change the slider hints
There's not really a reason to cap the gravity amount, and we can also
give better hints for the range (for 3D, ±32 is much more sensible
than ±1024).
2021-06-03 02:08:57 +02:00
Rémi Verschelde e0fb05ad30
Merge pull request #49237 from akien-mga/3.x-cherrypicks 2021-06-01 13:35:56 +02:00
Rémi Verschelde fb294606b5
Merge pull request #48771 from LightningAA/scrollcontainer-ensure-item-visible-3.x
[3.x] ScrollContainer: Expose `_ensure_focused_visible` to the scripting API and rename it to `ensure_control_visible`
2021-06-01 12:58:56 +02:00
Hugo Locurcio 822b3ec0b1
Document `Resource.duplicate()` only copying exported variables' values
(cherry picked from commit 2ba893e3ce)
2021-06-01 12:53:31 +02:00
Rémi Verschelde fd4475f652
OS: Better validation of invalid input for get_unix_time_from_datetime
Default missing keys to Unix time 0 (1970-01-01 at 00:00:00 UTC).
Abort if year <= 0, this is not supported by the current algorithm.

Prevents an infinite loop further down.

Fixes #49022.

(cherry picked from commit 62efa30ed2)
2021-06-01 12:52:18 +02:00
PouleyKetchoupp 87ed7d32de
Added flip_h and flip_v properties in TextureButton
(cherry picked from commit 5f1d94bb7d)
2021-06-01 12:52:14 +02:00
Lightning_A 6f58e6ce2c ScrollContainer: Expose `_ensure_focused_visible` to the API
Was renamed to `ensure_control_visible`
2021-05-31 19:05:30 -10:00
Aaron Franke 753d0fca1d
[3.x] Fix Camera FOV documentation 2021-05-31 05:25:12 -04:00
Marcel Admiraal 72446bab1b Update EditorResourcePreview queue_*() documentation 2021-05-26 08:39:52 +01:00
Rémi Verschelde 94b5a82e7d
Merge pull request #48943 from Calinou/screen-orientation-remove-ios-duplicate-3.x
Remove duplicate orientation settings in the iOS export preset
2021-05-26 00:24:17 +02:00
Hugo Locurcio 914b5dc525
Remove duplicate orientation settings in the iOS export preset
The screen orientation is now sourced from the Project Settings
like it is done for Android already.
2021-05-25 23:55:37 +02:00
Rémi Verschelde 00abdaf333
Merge pull request #49075 from nekomatata/tilemap-collision-debug-fix-3.x
Fix logic for showing tilemap debug collision
2021-05-25 21:12:48 +02:00
PouleyKetchoupp 114da550ec Fix logic for showing tilemap debug collision
In editor: only when show_collision property is enabled
In game: only when 'Visible collision shapes' is enabled
2021-05-25 11:49:47 -07:00
lawnjelly 14ce176f10 BVH - thread safety option
Added optional thread safe version through template argument and runtime switch, that wraps access with a mutex.
2021-05-25 10:47:32 +01:00
Marcel Admiraal b84714055b Clarify that eof_reached() cannot be used to check if more data is available 2021-05-24 19:42:37 +01:00
Marcel Admiraal cfc984aff1 Clarify documentation of Camera3D.get_camera_transform() 2021-05-24 17:54:53 +01:00
Rémi Verschelde 2660fafcc0
Merge pull request #48869 from tavurth/feature/hmac-port
Backport HMACContext to 3.x
2021-05-21 19:06:18 +02:00
Fabio Alessandrelli bf078814cc [HTML5] Add easy to use download API.
New `JavaScript.download_buffer` method to create a prompt that let the
user download a file.
2021-05-21 16:03:38 +02:00
Hugo Locurcio 8d9cef3726
Remove high radiance sizes from the editor due to issues on specific GPUs
These values can still be set by code, but are no longer presented in
the editor.
2021-05-20 23:54:12 +02:00
Rémi Verschelde d025f6f797
Merge pull request #48824 from aaronfranke/3.x-scd-minsize
Set a minimum size for status panel elements in ScriptCreateDialog
2021-05-20 18:03:45 +02:00
Rémi Verschelde f0fa8a103b
Merge pull request #48691 from Faless/js/3.x_interfaces
[HTML5] [3.x] Implement Godot <-> JavaScript interface.
2021-05-20 17:13:12 +02:00
Fabio Alessandrelli 203beb69a9
[Doc] Remove reference to UNIX sockets in StreamPeer.
That class can be used as a base to implement them, but there is no
actual implementation for it in Godot.

(cherry picked from commit e858f7c2ea)
2021-05-20 14:35:04 +02:00
Fabio Alessandrelli 730a894bcf [HTML5] Implement Godot <-> JavaScript interface. 2021-05-20 14:33:00 +02:00
Aaron Franke 573b7247bf
Set a minimum size for status panel elements in ScriptCreateDialog 2021-05-20 08:08:24 -04:00
Rémi Verschelde eb78f80f03
Fix typos with codespell
Using codespell 2.0.0.

Method:
```
$ cat > ../godot-word-whitelist.txt << EOF
ang
curvelinear
dof
doubleclick
fave
findn
GIRD
leapyear
lod
merchantibility
nd
numer
ois
ony
que
seeked
synching
te
uint
unselect
webp
EOF

$ codespell -w -q 3 -I ../godot-word-whitelist.txt --skip="./thirdparty,*.po"
$ git diff // undo unwanted changes
```
2021-05-20 12:56:56 +02:00
Will Whitty 3f606263d5 Backport HMac crypto to 3.x
Fix headers

Fix docs formatting

Changes for PR

Fix tests
2021-05-20 13:29:38 +03:00
kleonc 4871bf4668 Document valid range of Node2D.z_index 2021-05-20 01:24:54 +02:00
Rémi Verschelde cca2a9d2d5
Merge pull request #38387 from Rhathe/set_iterations
[3.x] Enable setting of collision iterations in Physics2DServer
2021-05-19 19:48:08 +02:00
Marcel Admiraal 09456c2a01 Return RID instead of Object id in area-body_shape_entered-exited signals. 2021-05-19 10:51:59 +01:00
Hugo Locurcio 333dfb96da
Scroll faster when holding Alt in TextEdit (and script editor)
This feature is inspired by a similar feature found in
Visual Studio Code.

(cherry picked from commit cf1cf6c6eb)
2021-05-18 11:58:09 +02:00
Rémi Verschelde 0053b31592
Merge pull request #47801 from QbieShay/ring-emitter-3.x 2021-05-18 10:54:15 +02:00
QbieShay 1ec46cb1eb added offset for plane mesh and quad mesh 2021-05-17 22:07:16 +02:00
Will Whitty c1135cf006 Work on porting HTTPRequest compression to 3.3
Fix doc issues

Use memcpy

Bind RESULT_BODY_DECOMPRESS_FAILED

Docs update
2021-05-14 12:20:31 +03:00
Rémi Verschelde 39826d3a94
Merge pull request #47310 from mortarroad/3.x-fix-particles-material-spread
[3.x] Fix ParticlesMaterial spread.
2021-05-11 09:10:31 +02:00
Hugo Locurcio 8b06085249
Implement the `%command%` placeholder in the Main Run Args setting
This can be used to tell Godot to run an executable that will run Godot
rather than running Godot directly. This is useful to make Godot start
on the dedicated GPU when using a NVIDIA Optimus setup on Linux:
`prime-run %command%`

The `editor/run/main_run_args` setting declaration was moved to make it
visible in the ProjectSettings documentation.

(cherry picked from commit ce4aa07276)
2021-05-09 17:47:38 +02:00