Commit Graph

31640 Commits

Author SHA1 Message Date
Nick Swoboda bf8f763524 Improve error messages related to failing to open files 2020-11-12 17:30:56 -08:00
Tomasz Chabora b7c612bd54 Release pressed action if event is removed 2020-11-12 16:54:16 +01:00
Rémi Verschelde f73374629d
Merge pull request #43477 from bruvzg/xvfb_fix
Fix running on Xvfb server.
2020-11-12 15:39:09 +01:00
bruvzg fed776c64c
Add X11 Atom validity checks. 2020-11-12 16:10:17 +02:00
Rémi Verschelde a7d610db16
Merge pull request #43408 from rcorre/path-gizmos-4.0
Make Path3D handles visible and consistent with 2D.
2020-11-12 13:12:49 +01:00
Ryan Roden-Corrent 8458ba0aef
Proposal 1246: Make Path3D handles more visible.
Resolves godotengine/godot-proposals#1246.

It is difficult to tell the difference between the handles for adjusting
curves and the points themselves when looking at a Path gizmo.
This re-uses the icons used for Path2D.

Unlike Path2D, this does not use a different icon for smooth vs sharp
points, as using a potentially different material for each point would
prevent batching the points in add_handles (and adding them out-of-order
messes up other logic based on handle indices).

This includes a public API change to allow specifying a texture for a
handle material. This allows spatial gizmo plugins to customize the way
a handle is rendered, if desired, but does not break existing behavior
(as providing no texture uses the default).

The path handle icons were resized as well.  16x16 is the standard icon
size. These icons were 10x10 rather than 16x16, and appeared rather
small in the editor.

To resize, I:

- Opened the original in Inkscape
- Resized the document to 16x16
- Opened the transform dialog
- Scaled by 160% proportionally
- Used Align/Distribute to center on the page
- Saved the document
- Cleaned with `svgcleaner --multipass`
2020-11-12 06:37:56 -05:00
Rémi Verschelde dca6bac620
Merge pull request #43244 from HaSa1002/docs-mdt
Docs: MeshDataTool: showcase tool in code example
2020-11-12 11:35:25 +01:00
HaSa1002 4f9b993423 Docs: MeshDataTool: showcase tool in code example 2020-11-12 10:56:39 +01:00
Rémi Verschelde b1db71c9fb
Merge pull request #43220 from YeldhamDev/canvasgroup_codeedit_icons
Add icons for the 'CanvasGroup' and 'CodeEdit' nodes
2020-11-12 10:31:03 +01:00
Rémi Verschelde 0bb51d5353
Merge pull request #43471 from Rubonnek/ipci-not-thread-safe
Document InstancePlaceholder.create_instance not being thread-safe.
2020-11-12 09:23:17 +01:00
Rémi Verschelde 307ea716cc
Merge pull request #43465 from fire/save-screenshot-master
Restore screenshot button.
2020-11-12 08:55:56 +01:00
Wilson E. Alvarez a6f3ef3ac7
Document InstancePlaceholder.create_instance not being thread-safe. 2020-11-11 21:34:51 -05:00
K. S. Ernest (iFire) Lee 4cff322017 Restore screenshot button. 2020-11-11 14:31:54 -08:00
Rémi Verschelde a6d4484e57
Merge pull request #43462 from pulawskig/master
Removing unneeded FuncRef code in C#
2020-11-11 22:54:02 +01:00
Rémi Verschelde 8344d27276
Merge pull request #43451 from timothyqiu/move-line-cursor
Keep cursor relative position after move lines up/down in text editor
2020-11-11 22:32:17 +01:00
Grzegorz Puławski c49810046e Removing unneeded FuncRef code in C# 2020-11-11 21:57:42 +01:00
Rémi Verschelde 2a0debd077
Merge pull request #43457 from reduz/refactor-builtin-methods-again
Refactor variant built-in methods yet again.
2020-11-11 21:27:34 +01:00
Connor Lirot dd021099ff Fix for linux joypad D-pad zeroing
Some controllers (notably those made by 8bitdo) do not always emit an event to zero out a D-pad axis before flipping direction. For example, when rolling around aggressively the D-pad of an 8bitdo SN30 Pro/Pro+, the following may be observed:

```
ABS_HAT0X : -1
ABS_HAT0Y : -1
ABS_HAT0Y : 0
ABS_HAT0Y : 1
ABS_HAT0X : 1
```

Notable here is that no event for `ABS_HAT0X: 0` is emitted between the events for `ABS_HAT0X: -1` and `ABS_HAT0X: 1`. Consequently, the game engine believes that both the negative _and_ positive x-axis directions of the D-pad are activated simultaneously (i.e `is_joy_button_pressed()` returns `true` for both `JOY_BUTTON_DPAD_LEFT` and `JOY_BUTTON_DPAD_RIGHT`), which should be impossible.

This issue is _not_ reproducible on all controllers. The Xbox One controller in particular will not exhibit this problem (it always emits zeroing out events for an axis before flipping direction).

The fix is to always zero out the opposite direction on the D-pad axis in question when processing an event with a nonzero value. This unfortunately wastes a small number of CPU cycles on controllers that behave nicely.

**I have verified this issue is also reproducible in the stable 3.2 branch**
2020-11-11 13:54:46 -06:00
reduz 635d33dc6c Refactor variant built-in methods yet again.
* Using C-style function pointers now, InternalMethod is gone.
* This ensures much better performance in typed code.
* Renamed builtin_funcs to utility_funcs, to avoid naming confusion
2020-11-11 16:36:36 -03:00
Rémi Verschelde fb2151089c
Merge pull request #43372 from aaronfranke/clamp-fixes
Minor clamp and float fixes
2020-11-11 13:20:19 +01:00
Rémi Verschelde acb7d99fce
Merge pull request #43449 from nekomatata/line_edit_window_pos
Expose LineEdit scroll offset to scripts
2020-11-11 13:18:55 +01:00
Aaron Franke 4abf189e36
Allow getting Input axis/vector values by specifying multiple actions
For get_vector, use raw values and handle deadzones appropriately
2020-11-11 06:02:44 -05:00
Aaron Franke 195d58be0f
Add raw strength value for internal use 2020-11-11 05:58:21 -05:00
Haoyu Qiu 87fb2bde0c Keep cursor relative position after multiline move 2020-11-11 18:29:32 +08:00
PouleyKetchoupp 4775db1600 Expose LineEdit scroll offset to scripts 2020-11-11 10:07:31 +01:00
Rémi Verschelde 10fd107599
Merge pull request #43443 from Faless/js/4.0_audio_worklet
[HTML5] Port inline JS code to libraries, AudioWorklet support.
2020-11-11 10:07:28 +01:00
Rémi Verschelde 88d463cabc
Merge pull request #43446 from reduz/create-variant-builtin-funcs
Create Variant built-in functions.
2020-11-11 00:25:41 +01:00
reduz 5288ff538d Create Variant built-in functions.
-Moved Expression to use this, removed its own.
-Eventually GDScript/VisualScript/GDNative need to be moved to this.
-Given the JSON functions were hacked-in, removed them and created a new JSONParser class
-Made sure these functions appear properly in documentation, since they will be removed from GDScript
2020-11-10 19:31:10 -03:00
Aaron Franke ee79fc627c
Minor clamp and float fixes 2020-11-10 14:30:07 -05:00
Fabio Alessandrelli 179ec3ca0e [HTML5] AudioWorklet API implementation.
Rewrote AudioDriverJavaScript to support multiple processor nodes.
The old (and deprecated) ScriptProcessorNode when threads are not
available, and the new AudioWorklet API when threads are enabled.

The new implementation uses two ring buffers and a shared state to
communicated with the AudioWorklet thread.

The audio.worklet.js JavaScript file is always added to the export
template, but only really used (and downloaded) in the thread build.
2020-11-10 18:56:21 +01:00
Rémi Verschelde a80ec80b57
Merge pull request #43441 from pWNn1sher/master
Checking for half_image_size[ x & y ] to be non-negative.
2020-11-10 18:10:02 +01:00
Pun1sher ec6a4c92fe
Checking for half_image_size[ x & y ] to be non-negative.
This make sure that (1x1) , (1 x X) and (X , 1) pixel images using sub-sampling will get correct half_image_size i.e NON-NEGATIVE.
fix : https://github.com/godotengine/godot/issues/42363
2020-11-10 21:23:08 +05:30
Rémi Verschelde 9397a5a272
Merge pull request #43437 from akien-mga/doc-operators
doc: Add template to document Variant operators, fixups to #43419
2020-11-10 15:58:36 +01:00
Rémi Verschelde 1626cfd937
Merge pull request #41230 from naithar/feature/pluggable-ios-modules
[iOS] [4.0] iOS Plugins
2020-11-10 15:43:50 +01:00
Rémi Verschelde 05fe063ea9
Merge pull request #43436 from qarmin/invalid_id
Remove Attempted to free invalid ID error
2020-11-10 15:34:46 +01:00
Rémi Verschelde 64e893deac
doc: Sync classref to add operators after #43419 2020-11-10 15:00:50 +01:00
Rémi Verschelde 34cad0d020
doc: Fixups to #43419 which added operators in the docs
- Escape the method names as e.g. `operator <` is invalid XML.
- Add a hack to merge all String % operator definitions for each Variant type
  as a single one with `Variant` argument type.
- Add support for the new qualifiers in makerst.py.
- Drop unused `doc_merge.py`, seems to date back to when we had all the
  documentation in a single `classes.xml`.
2020-11-10 15:00:07 +01:00
Sergey Minakov 1f2f477e1e iOS Export: support multi-target plugin
Plugins can use 'binary_name.a' or 'binary_name.release.a' and 'binary_name.debug.a' for plugin library.
2020-11-10 16:40:06 +03:00
Sergey Minakov 1f94a59859 iOS Export: export modification to support plugins
Added plugin configuration.
Export options now use plugins that could be enabled/disabled.
Plugin changes are observed at runtime.
2020-11-10 16:40:01 +03:00
Sergey Minakov 70f492082e iOS: change platform code to support plugins 2020-11-10 16:28:36 +03:00
Sergey Minakov 30783d57cc iOS Modules: separate main platform code from modules
Moved previously builtin modules 'GameCenter', 'AppStore', 'iCloud' to separate modules to be represented as plugin.
Modified 'ARKit' and 'Camera' to not be builtin into engine and work as plugin.
Changed platform code so it's not affected by the move.
Modified Xcode project file to remove parameters that doesn't make any effect.
Added basic '.gdip' plugin config file.
2020-11-10 16:28:29 +03:00
Rafał Mikrut 925ae37d8d Remove Attempted to free invalid ID error 2020-11-10 14:22:41 +01:00
Rémi Verschelde 03ae26bb74
Merge pull request #43398 from KoBeWi/add_an_array_to_another_array_but_with_a_method
Add append_array() method to Array class
2020-11-10 13:53:58 +01:00
Rémi Verschelde 0efe6dff5f
Merge pull request #43350 from gvekan/fix-load-autocomplete
Fix completion for built-in load() function
2020-11-10 13:21:37 +01:00
Rémi Verschelde 714dbc368c
Merge pull request #43357 from KoBeWi/editor_art_3d
Register methods for drawing 3D editor overlays
2020-11-10 13:17:12 +01:00
Gustav 0ddd4097a6 Fix completion for built-in load function 2020-11-10 12:00:08 +01:00
Rémi Verschelde 263f731924
Merge pull request #43434 from sneik15/patch-1
Updated gd_glue.cpp to work in the variant refactoring (Mono enabled)
2020-11-10 11:56:18 +01:00
Fabio Alessandrelli e2083871eb [HTML5] Port JavaScript inline code to libraries.
The API is implemented in javascript, and generates C functions that can
be called from godot.
This allows much cleaner code replacing all `EM_ASM` calls in our C++
code with plain C function calls.
This also gets rid of few hacks and comes with few optimizations (e.g.
custom cursor shapes should be much faster now).
2020-11-10 11:42:51 +01:00
Fabio Alessandrelli 54cda5c3b8 [HTML5] Update syntax for lto. 2020-11-10 11:42:51 +01:00
Fabio Alessandrelli 05261cceaf Fix gdnative build when WebRTC module is disabled. 2020-11-10 11:42:51 +01:00