Commit Graph

45006 Commits

Author SHA1 Message Date
Rémi Verschelde fe929d4787
Merge pull request #62513 from reduz/shader_preprocessor_remake 2022-07-23 00:02:33 +02:00
Rémi Verschelde 0c81502217
Merge pull request #62093 from Rindbee/fix-undecided-min_size-in-ScrollContainer 2022-07-22 23:47:48 +02:00
Rémi Verschelde e5df1e65f9
Merge pull request #62581 from Guh-Feng/Color-Picker-Update 2022-07-22 23:46:27 +02:00
Rémi Verschelde 4f7bfacfcd
Merge pull request #62478 from BastiaanOlij/split_effects_20220628 2022-07-22 23:44:52 +02:00
Rémi Verschelde 3f504eb9fe
Merge pull request #63313 from python273/fix-xr-doc-links 2022-07-22 23:44:00 +02:00
Rémi Verschelde 86a5a23351
Merge pull request #63093 from aaronfranke/export-templates-dir 2022-07-22 23:07:07 +02:00
Rémi Verschelde 4926d67261
Merge pull request #63331 from Calinou/doc-font-get-string-size-example 2022-07-22 23:06:25 +02:00
Rémi Verschelde e2e8a83ddb
Merge pull request #63321 from kleonc/generic-nodepath-drag-and-drop-fix 2022-07-22 23:03:40 +02:00
reduz f649678402 Clean up Shader Preprocessor
* Moved preprocessor to Shader and ShaderInclude
* Clean up RenderingServer side
* Preprocessor is separate from parser now, but it emits tokens with include location hints.
* Improved ShaderEditor validation code
* Added include file code completion
* Added notification for all files affected by a broken include.
2022-07-22 22:53:03 +02:00
Yuri Roubinsky 7b94603baa Adding shader preprocessor support
Co-authored-by: TheOrangeDay <6472143+TheOrangeDay@users.noreply.github.com>
2022-07-22 22:51:57 +02:00
Hugo Locurcio f0b896e9a3
Add example usage for `Font.get_string_size()`
The font size is now separated from the font itself, so it makes
sense to have an example for people coming from Godot 3.x.
2022-07-22 22:39:00 +02:00
Pedro J. Estébanez e49e9fec22 Avoid copies of structures when returning Vulkan capabilities 2022-07-22 22:07:51 +02:00
Aaron Franke b00bb577e7
Rename directory for export templates from templates to export_templates 2022-07-22 12:35:43 -05:00
kleonc 07118d7094 Fix in editor drag and dropping a `Node` to generic `NodePath` property 2022-07-22 18:32:36 +02:00
Rémi Verschelde 79463aa5de
Merge pull request #63310 from akien-mga/scons-vsproj-windows
SCons: Prevent using `vsproj` option outside Windows
2022-07-22 17:44:45 +02:00
Rémi Verschelde ed2a741eb1
Merge pull request #63317 from dallonf/redundant-gdscript-errors 2022-07-22 17:05:46 +02:00
Dallon Feldner 07ddc8b3b8 Don't print redundant errors when parsing GDScript
The error macros print a generic error, which isn't necessary, and could be confusing to end users.
2022-07-22 09:30:52 -05:00
halgriffiths d37ebc2bdc send FLAGS_TRANSPOSE_RECT to Vulkan 2022-07-22 13:49:04 +01:00
python273 f78d06c9fe Fix tutorial links in XR classes docs 2022-07-22 15:05:31 +03:00
Rémi Verschelde d2fa9cbdfd
Merge pull request #63141 from reduz/implement-thread-runner 2022-07-22 13:25:31 +02:00
Rémi Verschelde 4e56f96396 SCons: Prevent using `vsproj` option outside Windows
Fixes #63305.
2022-07-22 12:53:14 +02:00
Rémi Verschelde 653f95282c
Merge pull request #62996 from reduz/feature-build-profiles 2022-07-22 12:50:20 +02:00
reduz 67a260d63f Implement a Worker ThreadPool
This PR implements a worked thread pool. It uses a fixed amount of threads in a pool and allows scheduling tasks
that can be run on threads (and then waited for). It satisfies the following use cases:

* HTML5 thread count is fixed (and similar restrictions are known in consoles) so we need to reuse threads.
* Thread spawning is slow in general, so reusing threads is faster anyway.
* This implementation supports recursive waiting for tasks, making it less prone to deadlocks if threads from the pool also run tasks.

After this is approved and merged, subsequent PRs will be needed to replace the ThreadWorkPool usage by this class.
2022-07-22 11:46:48 +02:00
Rémi Verschelde f37990ed77
Merge pull request #63278 from akien-mga/scons-linux-refactor-linker 2022-07-22 11:40:10 +02:00
reduz 6236a688b7 Implement Feature Build Profiles
This PR is a continuation of #50381 (which was implemented exactly a year ago!)

* Add a visual interface to select which classes should not be built into Godot (well, they are built if something else uses them, but if not used the optimizer will remove them out).
* Add a detection system to scan the project and figure out the actual classes used.
* Added the ability for SCons to load build profiles.

Obligatory Screen:

A simple test with a couple of nodes in the scene resulted in a 25% reduction for the final binary size

TODO:

* Script languages need to implement used class detection (left for another PR).
* Options to disable servers or server functionalities (like 2D or 3D physics, navigation, etc). Are missing, that should also greatly aid in reducing binary size.
* Options to disable some modules would be desired.
* More options to disable drivers (OpenGL, Vulkan, etc) would be desired.

In general this PR is a starting point for more contributors to improve and enhance this functionality.
2022-07-22 10:53:23 +02:00
Rémi Verschelde ed926c4ec1
Merge pull request #63303 from hansemro/x11-eraser-case-insensitive
[X11] Do case-insensitive search for pen inversion detection
2022-07-22 09:17:04 +02:00
Rémi Verschelde e92f22691c
Merge pull request #63302 from nathanfranke/rounded-svg
Round dimensions of SVG to work around floating point precision errors
2022-07-22 09:15:54 +02:00
Hansem Ro 0f5436098b [X11] Do case-insensitive search for pen inversion detection 2022-07-21 19:25:22 -07:00
Nathan Franke eb8482cf95
round dimensions of svg 2022-07-21 20:11:29 -05:00
Rémi Verschelde c8479c0d4d SCons: Refactor Linux linker options with `linker=<bfd|gold|lld|mold>`
The new option is `linker` and lets the user specify the argument to
the`-fuse_ld=` linker flag directly. The supported options are:

- `default`: No change, typically uses GNU ld (bfd) unless the user or
  distro picked a different default `/usr/bin/ld`.
- `bfd`: GNU ld from binutils
- `gold`: GNU gold from binutils
- `lld`: lld from LLVM
- `mold`: mold, an extremely fast modern linker, not (yet) intended for
  use in production but great for development speed. Provided by distro
  `mold` package or needs to be compiled from source and installed to
  `/usr` otherwise.

Removes the `use_lld=yes` option, and make lld actually usable with GCC
too.

Not all the above are compatible or recommend for LTO, we recommend
using GNU ld with GCC LTO, or lld with LLVM ThinLTO.
2022-07-22 01:00:35 +02:00
Rémi Verschelde b3bd082070
Merge pull request #63295 from winterpixelgames/master-allow-scroll-container-scroll-to-be-set-instantly 2022-07-22 00:51:43 +02:00
Rémi Verschelde 19db9ed863
Merge pull request #63286 from RandomShaper/fix_debugger_focus 2022-07-22 00:48:06 +02:00
Rémi Verschelde 2280f85bc5
Merge pull request #63300 from KoBeWi/local_speciality 2022-07-22 00:32:07 +02:00
Rémi Verschelde 9b782b7573
Merge pull request #63242 from m4gr3d/fix_slow_copy_main
Address slow copy performance when using the `FileAccessFilesystemJAndroid` implementation
2022-07-22 00:22:30 +02:00
Guh-Feng 1b8652e86a Color Pickers Respect Settings
Updated editor_node with function that sets up color pickers throughout Godot to respect editor's settings.
2022-07-21 18:11:09 -04:00
kobewi b42bbca266 Fix node dragging not working when dock is moved 2022-07-21 23:57:52 +02:00
Pedro J. Estébanez 033001375f Fix editor re-focus on debugger break on Windows 2022-07-21 21:47:05 +02:00
Yuri Rubinsky 74be36e622
Merge pull request #63289 from Chaosus/code_style_tolerance
Rename `epsilon` to `tolerance` in the `Plane::has_point` method
2022-07-21 21:52:03 +03:00
Jason Knight 48f2d128d4 Call update_scrollbars() in sort_children() so the max is set properly so you can set scroll_container.scroll_vertical instantly after adding children to a scroll container. 2022-07-21 12:23:41 -06:00
Yuri Rubinsky ccc56cc6d4 Rename `epsilon` to `tolerance` in the `Plane::has_point` method 2022-07-21 20:15:15 +03:00
Fredia Huya-Kouadio 31712cc9e7 Address slow copy performance when using the `FileAccessFilesystemJAndroid` implementation.
Read/write ops for this implementation are done through the java layer via jni, and so for good performance, it's key to avoid numerous repeated small read/write ops due the jni overhead.

The alternative is to allocate a (conversatively-sized) large buffer to reduce the number of read/write ops over the jni boundary.
2022-07-21 09:06:29 -07:00
Rémi Verschelde d6b1dd4854
Merge pull request #63128 from cdemirer/fix-callable-comparator-error-message-argcount 2022-07-21 16:50:39 +02:00
João Pedro São Gregorio Silva 324b4884d6 Fix incorrect expression base in `AnimationNodeStateMachinePlayback::_check_advance_condition` 2022-07-21 16:36:52 +02:00
Rémi Verschelde ea3d355f0a
Merge pull request #62433 from KoBeWi/🌈 2022-07-21 16:36:34 +02:00
Rémi Verschelde f40aafeb39
Merge pull request #63244 from KoBeWi/canvas_picker 2022-07-21 16:34:16 +02:00
Rindbee b27bce875f Fix indeterminate minimum size in ScrollContainer 2022-07-21 22:29:25 +08:00
Rémi Verschelde 35d7b94a54
Merge pull request #63281 from luzpaz/typos 2022-07-21 14:10:01 +02:00
luz paz 38aaaa3cf9 Fix various typos not caught by codespell
Revert upstream `core/input/gamecontrollerdb.txt`. Upstream fix: https://github.com/gabomdq/SDL_GameControllerDB/pull/600
2022-07-21 07:38:23 -04:00
Rémi Verschelde 554be0c88e
Merge pull request #63280 from bruvzg/macos_help_scr 2022-07-21 13:25:10 +02:00
bruvzg 3833165d85
[Export] Update generated CLI helper script to work on clean macOS Monterey installation. 2022-07-21 13:50:37 +03:00