Commit graph

26646 commits

Author SHA1 Message Date
Rémi Verschelde 2ec4af6f16 Set version to 3.2.2-beta
The 3.2.2 release will include quite a few new features which warrant
at least one beta build before RC:

- GLES2 2D batching
- Mono/C# support for iOS
- New Android plugin system
2020-04-16 11:07:56 +02:00
lawnjelly a4cd274ca7 Batching with Extra Matrix commands
Defers sending 'transform' commands within a RasterizerCanvas::Item until they are needed for default batches. Instead locally caches the extra matrix and applies it using software transform, preventing unnecessary batch breaks.

The logic is relatively complex, and the whole 'extra matrix' of the legacy renderer in addition to the final_transform is not ideal. However this is required to accelerate some user drawing techniques, and later the lines in the IDE.
2020-04-15 12:48:36 +01:00
Ignacio Etcheverry 0e43565a7c Fix exporting corrupted Xcode pbxproj if project name has spaces 2020-04-14 18:03:10 +02:00
Ignacio Etcheverry 445f1c6e7b Mono/C#: Add iOS support
Right now, games only work on devices when exported with FullAOT+Interpreter.
There are some issues left that need to addressed for FullAOT alone. Right now,
it's giving issues with the Godot.NativeCalls static constructor.
2020-04-14 18:03:10 +02:00
Ignacio Etcheverry 6b38fe691a Mono/C#: Fix MinGW build not supporting .lib libraries
MinGW should support both its own format `.a` and MSVC's format `.lib`, but Mono's module was only using the former. With this change it's now possible to build with MinGW and link the official Mono for Windows which is built with MSVC.
2020-04-14 18:03:10 +02:00
Rémi Verschelde 36a30f681f
Merge pull request #37825 from qarmin/leak_with_drives
Fixes leak with drives [3.2]
2020-04-13 00:44:03 +02:00
lawnjelly 93af8e7d1b Batching across z_indices
Extra functions canvas_render_items_begin and canvas_render_items_end are added to RasterizerCanvas, with noop stubs for non-GLES2 renderers. This enables batching to be spready over multiple z_indices, and multiple calls to canvas_render_items.

It does this by only performing item joining within canvas_render_items, and deferring rendering until canvas_render_items_end().
2020-04-12 13:52:25 +01:00
qarmin 57952d562c Fixes leak with drives [3.2] 2020-04-12 14:05:47 +02:00
Rémi Verschelde 4dadec331e
Merge pull request #37815 from clayjohn/reset-sky-flags
Reset texture flags after radiance map generation
2020-04-12 11:35:07 +02:00
clayjohn 193b0bf1e3 Reset texture flags after radiance map generation 2020-04-11 16:10:34 -07:00
lawnjelly 1fb6181ba6 Revert to default Rect drawing code for single rects
Determined that a large reason for the decrease in performance in unbatchable scenes was due to the new routine being analogous to the 'nvidia workaround' code, that is about half the speed. So this simply uses the old routine in the case of single unbatchable rects. Hopefully we will be able to remove the old path at a later stage.
2020-04-11 17:40:30 +01:00
Rémi Verschelde 5698a9ec74
Merge pull request #37305 from m4gr3d/implement_plugin_signals_3.2
[3.2] Add signal support to Godot Android plugin:
2020-04-10 18:42:32 +02:00
Rémi Verschelde 218ae1e7a2
Merge pull request #37595 from ExpiredPopsicle/18809_flickering_ortho_fix
Othographic camera in-editor now uses Z near/far instead of hardcoded value
2020-04-10 17:16:49 +02:00
Rémi Verschelde 02ed72c373
Merge pull request #37667 from clayjohn/GLES2-32-skeleton-rebind
Avoid material rebind when using skeleton
2020-04-07 21:32:35 +02:00
clayjohn 4d32652851 Avoid material rebind when using skeleton 2020-04-07 10:35:58 -07:00
Thakee Nathees df87601c88 Fix for loop range bug: #37358
(cherry picked from commit 0b5bad78c0)
2020-04-06 20:58:21 +02:00
Hugo Locurcio e88cfedf0e Document the EditorFeatureProfile class
(cherry picked from commit 7ab279403d)
2020-04-06 20:58:21 +02:00
Eoin O'Neill c18381119e Correction to RichTextLabel Tabulation
Correct backtrack assignment to prevent excessive tabulation. Worth
noting that tabulation is treated differently in RichTextLabel because
of custom user-asignable tab variable which creates problems with
dynamic fonts specifically.

(cherry picked from commit 2000e110a9)
2020-04-06 18:19:14 +02:00
Hugo Locurcio dd4569f15c Remove syntax highlighting for C# verbatim strings due to bugs
This closes #32336.

(cherry picked from commit 49efd6093e)
2020-04-06 18:18:38 +02:00
Thomas ten Cate c2469d0c6d Add missing docs for assert message in GDScript
Seems like this was overlooked in PR #31142. See also issue #17082.

(cherry picked from commit 4c3c73ef9c)
2020-04-06 18:17:59 +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
dankan1890 657f12edcc TextureRegion: fixed Autoslice not created/updated properly.
(cherry picked from commit 671e97d254)
2020-04-06 18:17:19 +02:00
Michael Alexsander 9dcf9da205 Fix changing the import type of multiple files at once
(cherry picked from commit 6d6af0ea06)
2020-04-06 18:16:58 +02:00
PouleyKetchoupp d4c77e60c0 Fixed errors in makerst pre-commit hook
(cherry picked from commit 619354fb2c)
2020-04-06 18:16:11 +02:00
Ivan.Shakhov 66e4c8be23 fix RiderPathLocator - searching for toolbox on Mac
(cherry picked from commit dc16b8742a)
2020-04-06 18:15:20 +02:00
Ignacio Etcheverry bda993dd79 C#: Fix uses of old Configuration names
(cherry picked from commit 66c0b7ce98)
2020-04-06 18:14:07 +02:00
lawnjelly e7bec77ef3 Bake final_modulate uniform into vertex colors
Where the final_modulate color varies between render_items this can prevent batching. This PR solves this by baking final_modulate into the vertex colors, and setting the uniform 'final_modulate' to white, and allowing the joining of items that have different final_modulate values. The previous batching system can then cope with vertex color changes as normal.
2020-04-06 12:49:47 +01:00
Rémi Verschelde 4f00a2c645
Merge pull request #37601 from BastiaanOlij/fix_hmd_projection
Fix aspect ratio on hmd projection matrix
2020-04-05 12:41:02 +02:00
Rémi Verschelde 0e15770ebf
Merge pull request #37596 from NHodgesVFX/3.2
Make note of 16 probe limit
2020-04-05 12:40:10 +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
Bastiaan Olij a7438f0e61 Fix aspect ratio on hmd projection matrix 2020-04-05 16:58:33 +10:00
Kiri Jolly 26912c15e6 Othographic camera in-editor now uses Z near/far settings instead of a hardcoded value
Fixes #18809.

The in-editor ortho camera used a far clipping plane of 8192 units, and was
placed 4096 units away from the camera cursor.

This was far enough to cause culling issues from floating point precision loss
on objects smaller than one unit.

This change modifies the near/far clipping planes of the ortho camera to use
those specified in the editor (and currently used by the perspective camera).
The frustum is still centered around the camera cursor location, as it was
before.
2020-04-04 16:16:11 -07: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 798bf901b8 Android: Downgrade gradle plugin to 3.5.3
With the NDK installed locally, gradle plugin 3.6.0 seems to enforce
a specific older NDK version, and will fail building if you don't have
it installed with:

```
No version of NDK matched the requested version 20.0.5594570.
Versions available locally: 21.0.6113669
```

Upstream issue: https://github.com/gradle/gradle/issues/12440

(cherry picked from commit ba2ec53a26)
2020-04-02 23:34:02 +02:00
Rémi Verschelde 42a3a87e46
Merge pull request #37485 from RandomShaper/fix_trimmed_res_3.2
Fix res:// trimmed to s:// on Windows (3.2)
2020-04-01 15:01:39 +02:00
Pedro J. Estébanez 21703aefee Fix res:// trimmed to s:// on Windows 2020-04-01 10:22:05 +02:00
Yuri Roubinsky ee93c85ef1 Fix shader constant sorting 2020-03-31 14:32:33 +03:00
fhuya b995256bca Update the naming scheme for the GodotPlugin's methods in preparation of the vulkan integration. 2020-03-28 15:42:21 -07:00
Rémi Verschelde e707b712e8
Merge pull request #37345 from m4gr3d/backport_kotlin_support
[3.2] Backport Kotlin support
2020-03-27 22:10:32 +01:00
fhuya 0c782ca2b2 Backport Kotlin support 2020-03-27 10:18:30 -07:00
fhuya f69760b4be Add signal support to Godot Android plugin:
Supports registering and emitting signal from a Godot Android plugin
2020-03-27 01:37:41 -07:00
Rémi Verschelde abb70a6165
Merge pull request #37300 from m4gr3d/android_codebase_misc_cleanup_3.2
[3.2] Miscellaneous cleanup for the Android codebase
2020-03-26 09:18:12 +01:00
fhuya 7135bc3e37 Miscellaneous cleanup for the Android codebase:
- update gradle plugins versions
- cleanup java_godot_lib_jni

Note: logic was mostly moved around and no new logic/functionality was added.
2020-03-25 09:00:37 -07:00
Rémi Verschelde 909e303def
Merge pull request #37289 from akien-mga/3.2-cherrypicks
Cherry-picks for the 3.2 branch (future 3.2.2) - 1st batch
2020-03-25 13:58:14 +01:00
Rémi Verschelde fdd85311c3 Sync classref with current source 2020-03-25 11:42:15 +01:00
Gil Arasa Verge f144ec9e67 Clicking backgrd. dimming of editor popup stops input event propagation
A click on the dimmed background of a popup in the editor should stop the input event from propagating to the background.

This solution reuses the system introduced in commit efc3ffb8, taking advantage of the hide() notifications from the modal where we will set the flag "pass_on_modal_close_click(false)" to stop event handling at the viewport input event handling.
The viewport first hides the modal and after marks the input as handled if the flag mentioned above is set.

Fixes #36341

(cherry picked from commit 35bc88ca34)
2020-03-25 11:38:54 +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
sumit0190 35c7628074 Read and write exported infs/nans correctly (#35388)
(cherry picked from commit c4dbd8a744)
2020-03-25 11:38:54 +01:00
nathanwfranke b95a2306db Fix tab container too large when tabs are hidden
(cherry picked from commit c0a84f747e)
2020-03-25 11:38:54 +01:00
Rémi Verschelde acd14e645a Remove unused classes and stray headers
Found by reviewing headers with 1 or less matching includes:
```
find -name thirdparty -prune -o -name "*.h" -exec basename {} \; | sort -u > headers
for header in $(cat headers); do echo "$header: "; rg -l "#include \"(.*/)?$header\"" | wc -l; done > list-includes
```

(cherry picked from commit 9d24541597)
2020-03-25 11:38:54 +01:00