Commit Graph

5781 Commits

Author SHA1 Message Date
d7b30b2327 Add Vector4 documentation 2022-07-26 22:37:05 +02:00
7b834c8bfd Fix unnamed arguments in XML docs 2022-07-26 20:42:38 +02:00
dde235ad82 add position track normalization & post process key value for retarget 2022-07-26 18:48:08 +09:00
94e5ad2019 [RichTextLabel] Fix theme bold / italics / bold italics and mono font size not applied correctly. 2022-07-26 10:45:40 +03:00
ca7d572908 [Net] Modularize multiplayer, expose MultiplayerAPI to extensions.
- RPC configurations are now dictionaries.
- Script.get_rpc_methods renamed to Script.get_rpc_config.
- Node.rpc[_id] and Callable.rpc now return an Error.
- Refactor MultiplayerAPI to allow extension.
- New MultiplayerAPI.rpc method with Array argument (for scripts).
- Move the default MultiplayerAPI implementation to a module.
2022-07-26 09:31:12 +02:00
36ef8f29dc Implement support for loading system fonts on Linux, macOS / iOS and Windows. 2022-07-26 08:38:05 +03:00
7006f7d693 Add some missing Vector4 methods 2022-07-26 02:35:42 +02:00
c7255388e1 Remove ThreadWorkPool, replace by WorkerThreadPool
The former needs to be allocated once per usage. The later is shared for all threads, which is more efficient.
It can also be better debugged.
2022-07-25 15:39:50 +02:00
3084a48ace Merge pull request #63219 from reduz/implement-vector4-projection 2022-07-25 11:13:27 +02:00
bd1d2fcd86 Merge pull request #63381 from jynus/master
Solve discrepancy between code and class reference for Plane
2022-07-24 20:03:16 +02:00
9dc50cd564 Merge pull request #62892 from KoBeWi/hey,group!
Remove outdated line in call_group() description
2022-07-24 19:18:46 +02:00
1a3d57f319 Solve discrepancy between code and class reference for Plane
On #43310, class reference was automatically updated from source,
causing xml documentation to disagree with parameter naming
description on Plane.intersects_segment().

Weirdly, it also changed the parameter for Plane.is_point_over()
from point to plane, when only the first has sense (and it is
defined on math.Plane as "const Vector3 &p_point"). Manual
mistake?

* Update begin/end to from/to on Plane.intersects_segment(...)
  docs description to match source
* Update Plane bindings to use points instread of plane for
  is_point_over(...)
* Change Plane.is_point_over(plane) to Plane.is_point_over(point)
  AND its description on docs

Fixes godotengine/godot-docs#5976
2022-07-24 18:21:25 +02:00
286ae1f7fa Document what the Z component is used for in BaseMaterial3D UV coords 2022-07-23 20:05:16 -05:00
75f93167f7 Merge pull request #63262 from dsnopek/multiplayer-peer-custom-4.x
[4.x] Allow extending MultiplayerPeerExtension from GDScript
2022-07-24 01:24:22 +02:00
455c06ecd4 Implement Vector4, Vector4i, Projection
Implement built-in classes Vector4, Vector4i and Projection.

* Two versions of Vector4 (float and integer).
* A Projection class, which is a 4x4 matrix specialized in projection types.

These types have been requested for a long time, but given they were very corner case they were not added before.
Because in Godot 4, reimplementing parts of the rendering engine is now possible, access to these types (heavily used by the rendering code) becomes a necessity.

**Q**: Why Projection and not Matrix4?
**A**: Godot does not use Matrix2, Matrix3, Matrix4x3, etc. naming convention because, within the engine, these types always have a *purpose*. As such, Godot names them: Transform2D, Transform3D or Basis. In this case, this 4x4 matrix is _always_ used as a _Projection_, hence the naming.
2022-07-23 14:00:01 +02:00
a5bc65bbad Merge pull request #63265 from reduz/stream-bpm-support
Implement BPM support in AudioStream files.
2022-07-23 11:21:14 +02:00
d1ddee2258 Implement BPM support
Based on #62896, only implements the BPM support part.

* Implements BPM support in the AudioStreamOGG/MP3 importers.
* Can select BPM/Bar Size and total beats in a song file, as well as edit looping points.
* Looping is now BPM aware
* Added a special importer UI for configuring this.
* Added a special preview showing the audio waveform as well as the playback position in the resource picker.
* Renamed `AudioStream::instance` to `instantiate` for correctness.
2022-07-23 07:31:17 +02:00
fe929d4787 Merge pull request #62513 from reduz/shader_preprocessor_remake 2022-07-23 00:02:33 +02:00
3f504eb9fe Merge pull request #63313 from python273/fix-xr-doc-links 2022-07-22 23:44:00 +02:00
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
7b94603baa Adding shader preprocessor support
Co-authored-by: TheOrangeDay <6472143+TheOrangeDay@users.noreply.github.com>
2022-07-22 22:51:57 +02:00
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
f78d06c9fe Fix tutorial links in XR classes docs 2022-07-22 15:05:31 +03:00
d2fa9cbdfd Merge pull request #63141 from reduz/implement-thread-runner 2022-07-22 13:25:31 +02:00
653f95282c Merge pull request #62996 from reduz/feature-build-profiles 2022-07-22 12:50:20 +02:00
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
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
ccc56cc6d4 Rename epsilon to tolerance in the Plane::has_point method 2022-07-21 20:15:15 +03:00
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
8823eae328 Rename OSX to macOS and iPhoneOS to iOS. 2022-07-21 09:37:52 +03:00
f8137ce6c1 Allow extending MultiplayerPeerExtension from GDScript 2022-07-20 18:19:05 -05:00
0f6028378f Merge pull request #63127 from KoBeWi/raise_from_picture 2022-07-20 22:34:05 +02:00
fa2dcc7ace Merge pull request #47935 from HaSa1002/doc-loading-run-time 2022-07-20 22:33:49 +02:00
ddee5f6050 Add peer visibility to MultiplayerSynchronizer.
MultiplayerSynchronizers can now be configured to limit their visibility
to a subset of the connected peers, if the synchronized node was spawned
by a MultiplayerSpawner (either automatically or via custom spawn) the
given node will also be despawned remotely.

The replication system doesn't have the logic to handle subspawn
directly, but it is possible to handle them appropriately by manually
updating the visibility of the parent before changing the one of the
nested spawns via the "update_visibility" function.

The visibility of each MultiplayerSynchronizer can be controlled by
adding or remove filters via "[add|remove]_visibility_filter(callable)".

To further optimize the network code, visibility filters can be configured
to be automatically updated during idle or physics frame, or set to always
require manual update (via the "update_visibility" function).
2022-07-20 19:08:35 +02:00
8d15814e6a Merge pull request #60256 from octetdev2/docs-fix-staked-typo
Fix typo in `TILE_LAYOUT_OFFSET_STACKED` description
2022-07-20 12:18:41 +02:00
5a61906330 Filled in MultiMesh instance_count doc. 2022-07-19 22:41:56 +02:00
715f556cd4 Merge pull request #62139 from bruvzg/label_font_setttings
Add LabelSettings resource for quick Label theme property override.
2022-07-19 20:16:01 +02:00
eea14a0edc Merge pull request #63005 from Chaosus/image_rotate
Implement `rotate_90/rotate_180` functions to `Image`
2022-07-19 15:21:16 +02:00
7fd29b5464 Merge pull request #59301 from fire-forge/layout-preset-full-rect 2022-07-19 12:06:00 +02:00
97dfbea6ad Rename Control PRESET_WIDE to PRESET_FULL_RECT 2022-07-18 20:08:11 -05:00
84431bd782 Use integer types in Image and ImageTexture methods
- Image.blit_rect()
- Image.blit_rect_mask()
- Image.blend_rect()
- Image.blend_rect_mask()
- Image.fill_rect()
- Image.get_used_rect()
- Image.get_rect()
- ImageTexture.set_size_override()
2022-07-18 19:43:32 -05:00
e8288ac9ab Clarify create_from_image() usage 2022-07-18 13:01:04 +02:00
2c6707cb02 Merge pull request #63134 from KoBeWi/plugin4screen 2022-07-18 11:21:13 +02:00
058c1eac25 Improve docs on how to make main screen plugin 2022-07-18 10:36:17 +02:00
dfc76dc26d i18n: Sync classref translations with Weblate
(cherry picked from commit 7379f2c76a)
2022-07-18 10:29:25 +02:00
181759e872 Merge pull request #62849 from Calinou/doc-httprequest-timeout 2022-07-18 09:19:58 +02:00
349c750b18 Improve documentation for Camera3D's current member
* Added additional information to the camera documentation to explain
  how the 'current' attribute behaves when multiple cameras are in a
  scene.
2022-07-17 11:29:59 +02:00
d139131aab Adding Variable Rate Shading support to Godot
Improve GI renderer and add VRS support
Implement render device has_feature and move subgroup settings to limit_get
2022-07-17 15:42:24 +10:00
9dfd120a7e Merge pull request #63077 from Zylann/doc_plane_distance_to
Indicate Plane.distance_to returns a signed distance
2022-07-16 23:10:12 +02:00
c051c84385 Fix typo in VehicleBody3D.xml 2022-07-16 18:06:01 +01:00