Commit graph

2634 commits

Author SHA1 Message Date
Rémi Verschelde
3c7e03510c
Merge pull request #39256 from lawnjelly/tilemap_pixel2
GLES2 batching - Add UV precision adjustment for tilemaps
2020-06-10 15:52:00 +02:00
Rémi Verschelde
7bf9787921 SCons: Format buildsystem files with psf/black
Configured for a max line length of 120 characters.

psf/black is very opinionated and purposely doesn't leave much room for
configuration. The output is mostly OK so that should be fine for us,
but some things worth noting:

- Manually wrapped strings will be reflowed, so by using a line length
  of 120 for the sake of preserving readability for our long command
  calls, it also means that some manually wrapped strings are back on
  the same line and should be manually merged again.

- Code generators using string concatenation extensively look awful,
  since black puts each operand on a single line. We need to refactor
  these generators to use more pythonic string formatting, for which
  many options are available (`%`, `format` or f-strings).

- CI checks and a pre-commit hook will be added to ensure that future
  buildsystem changes are well-formatted.

(cherry picked from commit cd4e46ee65)
2020-06-10 15:30:52 +02:00
Hugo Locurcio
8e8861ed06 Mention ordering caveats for Dictionary.hash()
See https://github.com/godotengine/godot/issues/27615.

(cherry picked from commit 77b89263dd)
2020-06-10 15:30:52 +02:00
Rémi Verschelde
3202df9b5c doc: Make File store/get integer methods clearer
Add an example on how to store signed integers on less than 64 bits,
using one bit for the signedness.

(cherry picked from commit cd25d184a5)
2020-06-10 15:30:52 +02:00
Marcel Admiraal
7200a0eac5 Update Rigidbody 2D and 3D sleep documentation.
(cherry picked from commit 1b738a77c1)
2020-06-10 15:30:52 +02:00
Rémi Verschelde
51de6732c9 AStar: Make get_closest_point() deterministic for equidistant points
Closes godotengine/godot-docs#3667.
Supersedes #39405.

(cherry picked from commit 187ba4c5a8)
2020-06-10 15:30:52 +02:00
Michael Alexsander
2652a2d184 Add generic file icon and its modulation to the 'FileDialog'
(cherry picked from commit 637927f803)
2020-06-10 15:30:52 +02:00
Hugo Locurcio
0832ecc4a3
Document enlarging Particles visibility AABB when they cast shadows
This closes https://github.com/godotengine/godot/issues/17267.
2020-06-07 21:35:40 +02:00
lawnjelly
275183ef15 GLES2 batching - Add UV precision adjustment for tilemaps
Scaling tilemaps can cause border artifacts around the edges of tiles. This has been traced to precision issues in the GPU. This PR adds an adjustment to allow a minor contraction of the UVs of rects in order to compensate for the incorrect classification of texels across the UV border.
2020-06-07 16:29:40 +01:00
Rémi Verschelde
6e1af78df4
Merge pull request #39068 from lawnjelly/kessel_settings_rename
Rename batching project settings in preparation for GLES3
2020-06-07 14:25:50 +02:00
Pedro J. Estébanez
1ff7b0a0a9 Add shader time scaling
Shaders' `TIME` will be affected by the new shader time scale, that is set via the also new `VisualServer::set_time_scale()`.
2020-06-06 23:59:48 +02:00
Maganty Rushyendra
b4ca613138 Clarify usage of AnimationPlayer with AnimationTree and fill in empty method descriptions
Add clarification to docs to explain that when an `AnimationPlayer`
object is paired with an `AnimationTree`, several properties and
methods exposed by the `AnimationPlayer` class may not work as expected.
The issues occur because an `AnimationTree` runs independently, and
uses its member `AnimationPlayer* player` primarily for its
`Map<StringName, AnimationData> animation_set`.

Added descriptions for `root_motion_track` and `get_root_motion_transform`.

(cherry picked from commit 0451248ff1)
2020-06-04 12:16:39 +02:00
Hugo Locurcio
61da4882aa Add performance hints to the DirectionalLight shadow mode property hint
This also clarifies some parts in the DirectionalLight documentation.

(cherry picked from commit b46756c723)
2020-06-04 12:16:39 +02:00
Hugo Locurcio
9e01a0cd28 Add a getter and property for the editor distraction-free mode
(cherry picked from commit cc1859efed)
2020-06-04 12:16:39 +02:00
Hugo Locurcio
d56b9d5ebf Disable antialiasing on the DynamicFont outline as well when requested
This partially addresses
https://github.com/godotengine/godot-proposals/issues/943.

(cherry picked from commit 2919fc7317)
2020-06-04 12:09:40 +02:00
Hugo Locurcio
a3bd201cc7 makerst: Print status messages to make the CI output clearer
This also removes an unused method.

(cherry picked from commit 9065b7ed4e)
2020-06-04 12:09:39 +02:00
Maganty Rushyendra
25af738762 Expose get_char_size() from Font instead of BitmapFont
`get_char_size()` is a public virtual function defined in the `Font`
class. Implementations exist for both `BitmapFont` and `Dynamic Font`.
However, it was only exposed to the GDScript API through the Bitmap
Font, and not for Dynamic Font.

This commit exposes the function through `Font` instead.

Fixes #23967

(cherry picked from commit a4413710f9)
2020-06-04 12:09:39 +02:00
Gustav
26c617654e Fix ProjectSettings.save_custom documentation
(cherry picked from commit 728c0c1e14)
2020-06-04 12:09:39 +02:00
Maganty Rushyendra
e51767b3c0 Document usage requirement for Viewport to sample ViewportTexture as HDR
Modified class documentation to specify that `USAGE_3D` or
`USAGE_3D_NO_EFFECTS` is required in order to use HDR in a ViewPort.

Fixes #38702
2020-05-29 08:05:35 +08:00
lawnjelly
c7d18dec70 Rename batching project settings in preparation for GLES3
As it now seems like we will soon have GLES3 batching working using the same intermediate layer as GLES2, it makes more sense to reuse the same batching settings for both renderers rather than duplicate project settings for GLES2 and GLES3.
2020-05-26 18:15:35 +01:00
Rémi Verschelde
acb83db1d1 doc: Sync classref with current source 2020-05-25 17:00:22 +02:00
Rémi Verschelde
11d6c0f20d
Merge pull request #38984 from Calinou/bakedlightmap-configuration-warning
Document known bugs in BakedLightmap
2020-05-25 11:28:16 +02:00
Hugo Locurcio
5fb5fb135a
Document known bugs in BakedLightmap
See #30929.
2020-05-24 21:29:12 +02:00
Rémi Verschelde
b6c551e864
Merge pull request #38875 from bruvzg/tab_drv_sel_32
[Windows, 3.2] Add tablet driver selection.
2020-05-20 13:58:26 +02:00
bruvzg
71b2abbfa3
[Windows, 3.2] Add tablet driver selection. 2020-05-20 09:36:56 +03:00
Hugo Locurcio
8ebcdeb3d7 Document that Dictionary is always passed as reference
See #38792.

(cherry picked from commit 675fea1648)
2020-05-18 16:40:33 +02:00
Max Hilbrunner
ebc63dac30
Merge pull request #38784 from remram44/patch-1
[DOC] Update description of Object.free() method
2020-05-17 20:33:57 +02:00
Fredia Huya-Kouadio
a71a338c59 Implementation of the Godot Android Plugin configuration file 2020-05-16 23:09:45 -07:00
Remi Rampin
ccf5703568
Update description of Object.free() method
Clarify that variables pointing to an object don't become `null` when that object is freed, it just makes them invalid.
2020-05-16 12:32:41 -04:00
Rémi Verschelde
d45b96d2b1 Android: Check for deprecated GodotPaymentV3 module, direct to new plugin
Fixes #38581.
2020-05-15 13:32:30 +02:00
Marcel Admiraal
dd7f9b1c08 Make it clear that PhysicsDirectSpaceState is only available from
within _physics_process().

(cherry picked from commit bb9c104695)
2020-05-13 16:13:47 +02:00
Hugo Locurcio
47d003fbb8 Clarify that the SSL certificate setting overrides the default bundle
See https://github.com/godotengine/godot-docs/issues/2531.
2020-05-12 11:52:57 +02:00
Hugo Locurcio
e77313b3ed Clarify the id parameter in TileMap.get_used_cells_by_id() 2020-05-12 09:26:38 +02:00
Chris Bradfield
752f61d4fe [DOCS] minor description changes
(cherry picked from commit 975ed93794)
2020-05-11 11:01:13 +02:00
Tomasz Chabora
79f3725bdd Add documentation for the VisualShader nodes
(cherry picked from commit fecf79f287)
2020-05-11 11:01:13 +02:00
lawnjelly
dcb19ed735 Add Nvidia Workaround for GLES3
Ported GLES2 workaround code to GLES3.
2020-05-07 14:54:14 +01:00
Rémi Verschelde
4daba9bfc5 doc: Sync classref with current source 2020-05-07 13:47:06 +02:00
Thakee Nathees
1a39b4ea22 method bind TextEdit::set_line() added
(cherry picked from commit b9acf1cedf)
2020-05-07 13:43:43 +02:00
Marcel Admiraal
87de81258d Make 2D and 3D KinematicBody stop_on_slope documentation the same.
(cherry picked from commit da13b74cc8)
2020-05-07 13:37:19 +02:00
follower
90f9f01a2f Fix suffix property doc typo: "prefix" -> "suffix"
(cherry picked from commit ae067413a5)
2020-05-06 23:30:45 +02:00
bruvzg
78266c09c4
Add support for the WinTab API for pen input. (3.2) 2020-05-05 14:56:02 +03:00
Hugo Locurcio
2293cf61c6 Document the expected normal map coordinate system where relevant
(cherry picked from commit d8808fba85)
2020-05-05 13:41:29 +02:00
Rémi Verschelde
ef715f37d5
Merge pull request #35091 from Faless/dtls/enet
[3.2] DTLS support + optional ENet encryption
2020-05-05 13:40:59 +02:00
lawnjelly
53f6dafdde Added 'disable_half_float' project setting to the class reference.
Just forgot to do this in the original PR.
2020-05-05 09:31:10 +01:00
Rémi Verschelde
e363b65b99 doc: Sync classref with current source 2020-05-04 16:10:57 +02:00
Bastiaan Olij
02b1a5de47 Added missing spring enums for generic_6dof_joint
(cherry picked from commit 45d1f41837)
2020-05-04 16:10:22 +02:00
Hugo Locurcio
23ee40deff Tweak Tween cheatsheet link formatting to avoid rST conversion bug
reStructuredText doesn't allow embedding links in bold/italic text.

(cherry picked from commit e8a2fa6b7d)
2020-05-04 16:10:22 +02:00
Rémi Verschelde
01a085d05f
Merge pull request #38320 from lawnjelly/kessel_pr_light_join
GLES2 2D batching - item reordering, light joining and light modulate fix
2020-05-01 15:03:03 +02:00
Revan Ji
6a7d50403a Add set_frame, pause, and oneshot to AnimatedTexture
Add API documentation for said changes.

(cherry picked from commit f5029e18ca)
2020-05-01 11:00:10 +02:00
Hugo Locurcio
be56ec9e65 Document the formats supported by Image.load()
This partially addresses #32166.

(cherry picked from commit a26649de42)
2020-05-01 10:56:58 +02:00
Hugo Locurcio
6fb6107e6a Warn when trying to open res:// or user:// with OS.shell_open()
`OS.shell_open()` will pass on the path directly to the OS' shell
handler (which can handle file paths or URLs). It can't handle
Godot-specific paths, so these need to be converted with
`ProjectSettings.globalize_path()` first.

(cherry picked from commit d46e411b44)
2020-05-01 10:56:58 +02:00
Bojidar Marinov
4b58d453d4 Expose the cell_size affecting VisibilityNotifier2D precision
Refs: #4803
(cherry picked from commit d49ff7aff7)
2020-05-01 10:56:58 +02:00
Hugo Locurcio
782d9536f3 Improve the compression project settings documentation
(cherry picked from commit b2b8db7897)
2020-05-01 10:56:58 +02:00
Tomasz Chabora
6bb87d7d23 Mention how to remove TreeItem from a Tree
(cherry picked from commit f6aec99d27)
2020-05-01 10:56:58 +02:00
Markus Sauermann
e88cde0415 Clarify Transform scaled Method description.
(cherry picked from commit 19c8b0be45)
2020-05-01 10:56:58 +02:00
Avantir-Chaosfire
fd6424aa04 doc: Improve Node2D to_local/to_global description
(cherry picked from commit 5c6f824e71)
2020-05-01 10:56:57 +02:00
lawnjelly
451c3fc0fb GLES2 2D batching - item reordering, light joining and light modulate fix
Although 2D draws in painters order with strict ordering, in certain circumstances items can be reordered to increase batching / decrease state changes, without affecting the end result. This can be determined by an overlap test.

In situation with item:
A-B-A
providing the third item does not overlap the second, they can be reordered:
A-A-B

Items already contain an AABB which can be used for this overlap test.

1)
To utilise this, I have implemented item reordering (only for single rects for now), with the lookahead adjustable in project settings. This can increase performance in situations where items may not be grouped in the scene tree by texture. It can also be switched off (by setting lookahead to 0).

2)
This same trick can be used to help join items that are lit. Lit items previously would prevent joining completely, thus missing out on performance gains other than multi-command items such as tilemaps.

In this PR, lights are assigned as bits in a bitfield (up to 64, the optimization is disabled above this), and on each try_item (for joining), the bitfield for lights and shadows is constructed and compared with the previous items. If these match the 2 items can potentially be joined. However, this can only be done without changing the rendered result if an overlap test is successful.

This overlap test can be adjusted to join items up to a specific number of item references, selectable in project settings, or turned off.

3)
The legacy uniform single rect drawing routine seems to have been identified as the source of flicker, particularly on nvidia. However, it can also be up to 2x as fast. Because of the speed the batching contains a fallback where it can use the legacy single rect method, but I have now added a project setting to make this switchable. In most cases with batching it should not be necessary (as single rects are drawn less frequently) and thus the flickering can be totally avoided.

4)
This PR also fixes a color modulate bug when drawing light passes, in certain situations (particularly custom _draw routines with multiple rects).

5)
This PR also fixes #38291, a bug in the legacy renderer where light passes could draw rects in wrong position.
2020-05-01 07:47:33 +01:00
Fredia Huya-Kouadio
9b9f70bd20 Update the documentation for ExternalTexture to match the restriction on Android platforms 2020-04-28 08:04:41 -07:00
Hugo Locurcio
ae0bc06eba Improve pitch_scale descriptions in AudioStreamPlayer documentation
This closes #29439.

Co-authored-by: Cheeseness <contact@jbushproductions.com>
(cherry picked from commit 4751dee7f4)
2020-04-27 10:18:41 +02:00
Hugo Locurcio
24265c498b Improve the procedural geometry class documentations
This references Godot's winding order at the top of every
procedural geometry class, as well as referencing other classes
within a given geometry class.

A warning about ImmediateGeometry3D performance was also added.

(cherry picked from commit ed7347d73d)
2020-04-27 10:14:42 +02:00
Hugo Locurcio
bbd381c987 Add an easing/transition type cheatsheet to the Tween documentation
Related to https://github.com/godotengine/godot-docs/pull/3403.

(cherry picked from commit 5972a9138e)
2020-04-27 10:12:11 +02:00
Hugo Locurcio
f3cd7e3808 Document how some editor classes should be accessed as singletons only
This closes #37687.

(cherry picked from commit a225265b0a)
2020-04-27 10:11:53 +02:00
Rémi Verschelde
253fc093b8 DocData: Skip unexposed classes
Properly expose classes that we actually want accessible.

(cherry picked from commit 0ef8bcac4d)
2020-04-21 14:15:34 +02:00
Hugo Locurcio
469f398e70 Document how to workaround UI anchor issues when using BackBufferCopy
This closes #6880.

(cherry picked from commit f8a413bb1f)
2020-04-21 14:11:29 +02:00
Hugo Locurcio
e8ead37725 Check for errors when saving in the ResourceSaver example documentation
This also replaces a non-breaking space that was accidentally added in
the EditorFeatureProfile documentation.

This closes #31393.

(cherry picked from commit 2f46f1e7b1)
2020-04-21 14:11:15 +02:00
Hugo Locurcio
3a2cdf7d5b Improve the VisibilityEnabler and VisibilityNotifier documentations
This closes #4803.

(cherry picked from commit 7f2d602106)
2020-04-21 14:10:50 +02:00
Rémi Verschelde
faf858fe41 Revert "Made possible to specify where to dump the contents when loading a ".pck" file"
This reverts commit ffcfd9c8ea.

This was not so useful as is due to the way dependency paths are stored
in scenes and resources.
2020-04-20 13:48:02 +02:00
Dominik 'dreamsComeTrue' Jasiński
ac0a55ce75 Update TextEdit docs - explaining 'override_selected_font_color' role
(cherry picked from commit 6a0e6c2852)
2020-04-20 11:55:47 +02:00
Marcel Admiraal
339c10889d Correct the addition of a key and the duplication of a variable name
in Dictionary class documentation.

(cherry picked from commit 4d41535fa3)
2020-04-20 11:55:31 +02:00
Hugo Locurcio
4e73fcc959 Document DynamicFont limitations and a possible workaround
This closes #30014.

(cherry picked from commit 46b8e108e2)
2020-04-20 11:55:04 +02:00
Hugo Locurcio
4f7296a869 Document image size limits
This closes #30238.

(cherry picked from commit 5497cec7a1)
2020-04-20 11:54:47 +02:00
Hugo Locurcio
bb753aaf17 Clarify that angles must be specified as radians in the documentation
This closes #36356.

(cherry picked from commit cae5260dab)
2020-04-20 11:53:40 +02:00
Rémi Verschelde
50582446ad Sync classref with current source 2020-04-17 13:43:43 +02:00
Michael Alexsander
ffcfd9c8ea Made possible to specify where to dump the contents when loading a ".pck" file
(cherry picked from commit 3c261e0dfa)
2020-04-17 13:00:52 +02:00
Rémi Verschelde
008e0748c1
Merge pull request #37349 from lawnjelly/kessel32_1
GLES2 2d Batch rendering (across items)
2020-04-17 12:55:33 +02:00
lawnjelly
72adefa5cf Add frame diagnostics for GLES2 Batch renderer
Added project setting to enable / disable print frame diagnostics every 10 seconds. This prints out a list of batches and info, which is useful to optimize games and identify performance problems.
2020-04-17 08:54:33 +01:00
Rémi Verschelde
07aa524a42 doc: Sync classref with current source 2020-04-16 13:02:36 +02:00
Michael Alexsander
b4429c325a Fix incorrect TabContainer documentation for 'get_tab_control()'
(cherry picked from commit 8f925b1970)
2020-04-16 12:57:22 +02:00
Hugo Locurcio
26614a37b8 Mention keep_pressed_outside caveat in the BaseButton documentation
This closes #37790.

(cherry picked from commit e799dc954e)
2020-04-16 12:57:22 +02:00
Hugo Locurcio
6c4a0ec75a Improve the Dictionary class documentation
This closes https://github.com/godotengine/godot-docs/issues/3376.

(cherry picked from commit 88da90f2bf)
2020-04-16 12:57:22 +02:00
PouleyKetchoupp
eab7342321 More details in Rigid Body add_force documentation
(cherry picked from commit 219c5712f0)
2020-04-16 12:57:22 +02:00
Tomasz Chabora
edd5d9c78e Improve Camera2D documentation
(cherry picked from commit 630096fa74)
2020-04-16 12:57:22 +02:00
Hugo Locurcio
ab4ea9379c Improve the AudioStreamSample class documentation
This closes #37915.

(cherry picked from commit 52786b54ef)
2020-04-16 12:57:22 +02:00
Markus Sauermann
7607fafda1 Clarify documentation and indicate that rect_clip_content affects only CanvasItem based nodes.
Resolves #37683

(cherry picked from commit 3f19b5e0b3)
2020-04-16 12:47:18 +02:00
Nannaquin
27989ae8f8 Add reference of Color8 function to Color class documentation
(cherry picked from commit 06aeff3044)
2020-04-16 12:47:18 +02:00
lucaslcode
cd10966652 clarify autotile_coord in docs
I had no idea what 'coordinate' meant in the context of autotiles, so just adding some clarification for future people who have the same problem.

(cherry picked from commit cbe73766e3)
2020-04-16 12:47:18 +02:00
Zak Grumbles
294008015e Clarify Dictionary duplicate params godotengine#37162
* Added additional clarification for the function of the 'deep'
parameter in the Dictionary's `duplicate` method.

(cherry picked from commit 469b7c948f)
2020-04-16 12:02:18 +02:00
Yuri Sizov
22ebdd72d9 Add more verbosity for property overrides in RST documentation
(cherry picked from commit 38821dc6d7)
2020-04-16 11:57:50 +02:00
Zak Grumbles
5d9108c9c6 Fix OptionButton docs godotengine#36803
* item_selected and item_focused docs incorrectly had 'id' as the parameter. Changed to
'index'.
* Fix parameter name in ADD_SIGNAL callin code.

(cherry picked from commit a8de034f78)
2020-04-16 11:45:19 +02:00
Danil Alexeev
2ef1ee9da7 Improve the File.store_{8,16,32,64}() documentation
Added information about the intervals of values that the functions
`store_{8,16,32,64}()` can correctly write to the file.

(cherry picked from commit 97e20b2f30)
2020-04-16 11:44:58 +02:00
Yuri Roubinsky
5914fdc067 Implements estimate/compute_cost for AStar2D
(cherry picked from commit bad77bcb52)
2020-04-16 11:35:52 +02:00
Hugo Locurcio
e88cfedf0e Document the EditorFeatureProfile class
(cherry picked from commit 7ab279403d)
2020-04-06 20:58:21 +02:00
Zak Grumbles
011602447c Clarify docs for Thread.start() godotengine#36032
* Updated docs for Thread.start() to specify that the method argument
must accept one parameter.

(cherry picked from commit d09644dff3)
2020-04-06 18:17:43 +02:00
PouleyKetchoupp
d4c77e60c0 Fixed errors in makerst pre-commit hook
(cherry picked from commit 619354fb2c)
2020-04-06 18:16:11 +02:00
Nathan
679708aa8f Make note of 16 probe limit
Godot by default has a limit of 16 reflection probes in a scene. this can be increased by increasing atlas subdiv. For 3.2 and possibly 4.0. This also fixes a spelling mistake

Update doc/classes/ReflectionProbe.xml

Fix from clayjohn, Directly link to settings

Co-Authored-By: Clay John <claynjohn@gmail.com>
2020-04-05 04:41:00 -04:00
lawnjelly
45b0b8bff8 GLES2 2d Batch rendering (across items)
2d rendering is currently bottlenecked by drawing primitives one at a time, limiting OpenGL efficiency. This PR batches primitives and renders in fewer drawcalls, resulting in significant performance improvements. This also speeds up text rendering.

This PR batches across canvas items as well as within items.

The code dynamically chooses between a vertex format with and without color, depending on the input data for a frame, in order to optimize throughput and maximize batch size. It also adds an option to use glScissor to reduce fillrate in light passes.
2020-04-04 17:13:58 +01:00
Rémi Verschelde
fdd85311c3 Sync classref with current source 2020-03-25 11:42:15 +01:00
Andrea Catania
e30a0a30b6 Added new method to replace an already added node to the animation state machine
(cherry picked from commit 422926cfc6)
2020-03-25 11:38:54 +01:00
Umang Kalra
d7c6a42cbf Doc edit at InputEventMouseMotion
Doc edit

(cherry picked from commit 052424c76d)
2020-03-25 11:38:53 +01:00
Tomasz Chabora
8fd7efef84 Fix visibility enabler flag toggling
(cherry picked from commit 2ccd1a7805)
2020-03-25 11:38:53 +01:00