Commit Graph

557 Commits

Author SHA1 Message Date
Rémi Verschelde 404ee1a56b Style: Fix issues that went past CI 2018-08-21 21:28:06 +02:00
Juan Linietsky ee07fb5ebe Changes to ClippedCamera, RayCast,Raycast2D and 2D physics API to add ability to choose between bodies and areas when colliding. 2018-08-21 15:31:23 -03:00
Pedro J. Estébanez 4839e5f6d9 Take CanvasLayer transform into account for 2D physics
Fixes #18073.
2018-08-21 20:10:15 +02:00
Rémi Verschelde 968886768b Lift 1440 limit in rotation_degrees hint range
Fixes #15947.
2018-08-16 14:36:38 +02:00
volzhs 4e9795aa99 Fix not to show configuration warning on every node has script 2018-08-15 21:35:06 +09:00
Juan Linietsky 4e55835e48
Merge pull request #18096 from aaronfranke/master
[Core] Split up math_2d.h
2018-08-14 18:58:32 -03:00
Juan Linietsky ef5095720b -Deprecate ImageTexture::load
-Add warning to Image::load when loading resources
-Add script binding for get_configuration_warning
2018-08-14 16:53:20 -03:00
Aaron Franke cf136a91d6 [Core] Completely kill math_2d.h, change includes 2018-08-11 03:08:34 -05:00
Andrea Catania c1860fe88b Fixed process priority 2018-08-04 14:51:44 +02:00
Juan Linietsky 15db793ef2 Ensure process notification is received only if really enabled, fixes #7894 2018-07-29 21:20:41 -03:00
Ibrahn Sahir 1626ae6421 fixed uninitialised variable that was causing menu crash. 2018-07-28 18:09:47 +01:00
Hein-Pieter van Braam 0e29f7974b Reduce unnecessary COW on Vector by make writing explicit
This commit makes operator[] on Vector const and adds a write proxy to it.  From
now on writes to Vectors need to happen through the .write proxy. So for
instance:

Vector<int> vec;
vec.push_back(10);
std::cout << vec[0] << std::endl;
vec.write[0] = 20;

Failing to use the .write proxy will cause a compilation error.

In addition COWable datatypes can now embed a CowData pointer to their data.
This means that String, CharString, and VMap no longer use or derive from
Vector.

_ALWAYS_INLINE_ and _FORCE_INLINE_ are now equivalent for debug and non-debug
builds. This is a lot faster for Vector in the editor and while running tests.
The reason why this difference used to exist is because force-inlined methods
used to give a bad debugging experience. After extensive testing with modern
compilers this is no longer the case.
2018-07-26 00:54:16 +02:00
Guilherme Felipe d1f5deabd8 Opens the menu with the same parent on mouse focus 2018-07-24 19:59:40 -03:00
Juan Linietsky 172f652dc0
Merge pull request #19888 from AndreaCatania/pry
Implemented proceses priority
2018-07-23 07:21:38 -03:00
Andrea Catania 51dfa10ac7 Implemented proceses priority 2018-07-23 12:19:38 +02:00
Juan Linietsky 336db8bcd1 -Fix tooltips in inspector, now they show as rich text. 2018-07-20 18:16:19 -03:00
Rémi Verschelde 7c9f7452f4 Style: Format code with clang-format 6.0.1 2018-07-18 16:27:03 +02:00
Max Hilbrunner a8a318161b
Merge pull request #19015 from toger5/fixed_scrolling_with_trackpad_in_new_inspector
fixed scrolling in new ispector when using trackpad pan gesture
2018-07-05 00:22:06 +02:00
GagaPete 8a4dccc4ce Fix CORS problems due to added headers on JS target
Before this change, missing User-Agent and Accept headers were automatically
added on all platforms. Setting the User-Agent header forces the browser to
do a CORS preflight (see 1) which fails if the HTTP endpoint is not
configured appropriate. It's not neccesary to set either header as the
browser sets them and so this commit disables that functionality on the JS
target.

1: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Simple_requests
2018-07-04 01:56:44 +02:00
Juan Linietsky 085483e885 -Fix fullscreen on Windows with a HiDPI monitor but a non-HiDPI project
-Replaced some viewport size calls to screen size, since viewport size should be deprecated at this point..
2018-07-03 18:53:27 -03:00
Max Hilbrunner 465edbd2bc
Merge pull request #19853 from khairul169/duplicate_bug
Fix duplicate method on instanced node generates duplicated children.
2018-07-03 18:48:45 +02:00
Marcelo Fernandez deebeb2742 Add a new notification to detect crashes on native scripts 2018-07-02 16:18:58 -03:00
Juan Linietsky 2dc738ce27 -Fixes to how hashing happened, now StringName and NodePath use default hasher, this was leading to some severe slowdown in scenarios
-Fixes to some duplication scenarios for instanced scenes
2018-07-02 15:08:35 -03:00
khairul169 8e03715a5c Fix duplicate bug 2018-06-30 17:35:51 +07:00
Juan Linietsky eeab3502d5 Changes to how node paths are selected from property, allowing setting a hint. 2018-06-27 20:50:25 -03:00
Marcelo Fernandez 8c1c7ff131 Add missing NULL checks for add_child_below_node 2018-06-19 22:47:34 -03:00
Guilherme Felipe aa53c032ed Fix regression with cursor shape 2018-06-07 15:12:59 -03:00
Juan Linietsky b659fd6d74 Entirely new (and much improved) animation editor. 2018-06-07 12:52:00 -03:00
Fabio Alessandrelli 348725dfe0 Add option to disable automatic multiplayer poll
Automatic poll from SceneTree is enabled by default.
This allows for polling (and thus RPCs/RSETs) manually in other loops
(e.g. physics, thread, specific step) and for proper mutex protecion
when accessing the multiplayer API from threads (e.g. for sending larger
files in chunks).
2018-06-03 18:58:04 +02:00
Fabio Alessandrelli 1400f6fdc4 Refactor RPCMode enum and checks 2018-05-29 20:26:41 +02:00
Max Hilbrunner 4c69a495c9
Revert "RPCMode refactor, more sync modes" 2018-05-29 11:47:52 +02:00
Fabio Alessandrelli 9de4ffde61 Refactor RPCMode enum and checks 2018-05-26 10:43:43 +02:00
Webster Sheets 1198662b2b Revert #14753, as it is buggy and no longer necessary. 2018-05-24 16:10:25 -04:00
toger5 0e015f6023 fixed scrolling in new ispector when using trackpad pan gesture 2018-05-18 18:47:39 +02:00
Rémi Verschelde 93c4274941
Merge pull request #18928 from BastiaanOlij/fix_viewport_flags
Store flags so it isn't lost when viewport isn't setup yet
2018-05-16 15:11:20 +02:00
Bastiaan Olij 0fc4f22522 Store flags so it isn't lost when viewport isn't setup yet 2018-05-16 22:19:45 +10:00
Juan Linietsky 005b69cf6e -New inspector.
-Changed UI resizing code, gained huge amount of speed.
-Reorganized timer sync to clean up behavior (sorry forgot commit this before)

-
2018-05-15 17:14:31 -03:00
Max Hilbrunner e744d12e56
Merge pull request #18709 from Faless/multiplayer_docs
Rename multiplayer_api to multiplayer, add docs
2018-05-09 01:41:01 +02:00
Juan Linietsky d5c3fc1522
Merge pull request #15119 from poke1024/visible-subwindows
More efficient subwindow handling
2018-05-08 09:49:34 -03:00
Juan Linietsky c54ac6a15d
Merge pull request #15074 from PJB3005/17-12-26-remove_gui_focus_on_visibility_loss
Hiding a Control now fires NOTIFICATION_FOCUS_EXIT.
2018-05-08 09:40:44 -03:00
Fabio Alessandrelli 234914c42c Rename multiplayer_api to just multiplayer.
Only the class name retain the MultiplayerAPI name
2018-05-08 10:51:04 +02:00
Geequlim 56c2463f8c Fix double free for drag preview control in viewport 2018-05-08 13:52:38 +08:00
Juan Linietsky 7b85c9d0ea
Merge pull request #17295 from eon-s/instance-placeholder
Make InstancePlaceholder more flexible by allowing to instance without removing it.
2018-05-07 20:23:34 -03:00
Juan Linietsky 7b065a59fa
Merge pull request #15911 from Zephilinox/ready_signal
Add ready signal to Node
2018-05-07 17:56:10 -03:00
Juan Linietsky 38aaf78325
Merge pull request #18524 from BastiaanOlij/keep_3d_linear
Added option to viewport to keep linear color
2018-05-07 09:24:39 -03:00
Max Hilbrunner e15305721d
Merge pull request #18454 from KidRigger/working_timer
Allows setting the Timer wait_time in start method.
2018-05-07 09:37:11 +02:00
Bastiaan Olij 6f7fefa489 Added option to viewport to keep linear color 2018-05-06 19:28:09 +10:00
Rémi Verschelde b774156729
Merge pull request #18514 from neikeq/api-hash-fixes
API hash fixes
2018-05-03 14:36:32 +02:00
Rémi Verschelde 741637b966
Merge pull request #18451 from volzhs/node-name
Check invalid node name
2018-05-02 22:21:31 +02:00
volzhs 6758b6c131 Check invalid node name 2018-05-03 00:00:06 +09:00
Pedro J. Estébanez de9d40a953 Implement universal translation of touch to mouse
Now generating mouse events from touch is optional (on by default) and it's performed by `InputDefault` instead of having each OS abstraction doing it. (*)

The translation algorithm waits for a touch index to be pressed and tracks it translating its events to mouse events until it is raised, while ignoring other pointers.

Furthermore, to avoid an stuck "touch mouse", since not all platforms may report touches raised when the window is unfocused, it checks if touches are still down by the time it's focused again and if so it resets the state of the emulated mouse.

*: In the case of Windows, since it already provides touch-to-mouse translation by itself, "echo" mouse events are filtered out to have it working like the rest.

On X11 a little hack has been needed to avoid a case of a spurious mouse motion event that is generated during touch interaction.

Plus: Improve/fix tracking of current mouse position.

** Summary of changes to settings: **

- `display/window/handheld/emulate_touchscreen` becomes `input/pointing_devices/emulate_touch_from_mouse`
- New setting: `input/pointing_devices/emulate_mouse_from_touch`
2018-04-30 19:03:38 +02:00
Ignacio Etcheverry 7034d48032 Fix binding some core API methods only in tools builds 2018-04-29 19:49:26 +02:00
Anish f714637e58 Allows setting the Timer wait_time in start method.
Allows shortening the two line method of Timer.set_wait_time
followed by Timer.start set wait_time as a parameter to
Timer.start. Also modifies the class documentation.

Fixes: #18107
2018-04-27 01:17:20 +05:30
Guilherme Felipe 4f05190fb0 Implement Input.set_default_cursor_shape to change the default shape
Closes #18043
2018-04-10 11:38:34 -03:00
Geoffrey 8362ce4769 Made print_tree_pretty() function which displays scene tree graphically 2018-04-09 15:01:37 +02:00
Juan Linietsky e9e5aa617e
Merge pull request #17227 from Faless/multiplayer_api
[RFC] MultiplayerAPI refactor
2018-04-08 11:04:16 -03:00
Juan Linietsky 4ee3f3251d
Merge pull request #17382 from bojidar-bg/13971-path-array-unsaved
Duplicate Arrays and Dictionaries when instancing scene in editor
2018-04-08 09:39:03 -03:00
Juan Linietsky 9e7cee2ceb Removed strange custom world2d in CanvasLayer, been there since always and not sure why.
Fixes #17524, fixes #17523.
2018-04-07 19:43:09 -03:00
Pedro J. Estébanez 259ed1d400 Improve popup menus usability
It seems that popups were intended to "grab" the mouse click that triggered them, but their intent was being lost. This commit does the necessary changes to let it happen and updates items that were trying to get advantage of it, because the semantics of `Control::grab_click_focus()` have changed a bit. Namely, it must be called **before** showing the modal.

This allows to popup a menu and activate an item in it in a single click-point-release cycle, instead of having to click once to open the menu and once more to pick an item.

This ability is extended even to context menus activated with the RMB (or any other mouse button, for that matter). The editor benefits from this in the context menu of the tree dock, which has been patched to opt-in for this feature.

This improves UX a bit by saving unnecessary clicks.

From now on, `PopupMenu` always grabs the click and also invalidates the first button release unless the mouse has moved (that's what `set_invalidate_click_until_motion()` was doing and now it's removed), so there is no longer the need of doing both things at every point a pop-up menu is shown.
2018-04-07 01:06:02 +02:00
Rémi Verschelde 01bb39ac3f
Merge pull request #17321 from LinkDoyle/issue_16350
Fix switching WindowDialog types leaves garbage buttons
2018-03-23 11:38:59 +01:00
Ruslan Mustakov 47747718d6 Fix oversampled font artifacts after resize
Font update after resize relies on the viewport size which was updated
after the font was already refreshed, which resulted in artifacts when
it was rendered into the actual/new viewport size.

Fixes #15173.
2018-03-19 20:44:26 +07:00
Fabio Alessandrelli c531262190
Merge pull request #16947 from Faless/ui_actions
GUI elements ui_action usage, improvements
2018-03-16 20:55:11 +01:00
Hein-Pieter van Braam 99f286e23f
Merge pull request #17264 from poke1024/fix-gesture-key-event-accepted
Fix gesture events being blocked
2018-03-15 23:13:04 +01:00
Bojidar Marinov 9f6c0c6eae
Duplicate Arrays and Dictionaries when instancing scene in editor
Also, add deep (=false) parameter to Array.duplicate and Dictionary.duplicate

Fixes #13971
2018-03-13 17:18:08 +02:00
Link 611c050469 Fix switching WindowDialog types leaves garbage buttons
We can distinguish between node-specific children and custom children by `child->is_owned_by_parent()`.

Fixes: #16350
2018-03-07 18:28:29 +08:00
eon-s 5e427190bc Added create_instance
Allows to create an instance from an `InstancePlaceholder` without removing the placeholder.

Deprecates `replace_by_instance`.
2018-03-05 22:57:17 -03:00
Bernhard Liebl 166c2bdea7 Fix gesture events being blocked 2018-03-04 22:19:10 +01:00
Fabio Alessandrelli 5081ced57f Use MultiplayerAPI class for high level networking
Remove networking related logic from Node and SceneTree.
SceneTree now simply relay all networking related stuff to
MultiplayerAPI for compatibility
2018-03-03 18:34:22 +01:00
Ranoller 979dccbd8d
FIX Windows enter/exit mouse notifications
Fix to this issue #17202
2018-03-03 03:42:38 +01:00
Rémi Verschelde ce7da2c7d6 Viewport: Fix missing tooltips w/ disabled physics object picking
Previously this option seemed to be the sole responsible for enabling
physics processing in Viewport, while several other features like
tooltips and debugging collision hints rely on it.

All this logic is moved to internal processing (it's incorrect to let
it be affected by users disabling physics/idle processing), and disabling
physics object picking no longer affects the internal physics processing.

Fixes #17001.
2018-03-01 16:01:10 +01:00
Hein-Pieter van Braam d702d7b335 Fix various valgrind reported uninitialized variable uses 2018-02-28 21:55:13 +01:00
Rémi Verschelde 23ebae01dc Refactor version macros and fix related bugs
The previous logic with VERSION_MKSTRING was a bit unwieldy, so there were
several places hardcoding their own variant of the version string, potentially
with bugs (e.g. forgetting the patch number when defined).

The new logic defines:

- VERSION_BRANCH, the main 'major.minor' version (e.g. 3.1)
- VERSION_NUMBER, which can be 'major.minor' or 'major.minor.patch',
  depending on whether the latter is defined (e.g. 3.1.4)
- VERSION_FULL_CONFIG, which contains the version status (e.g. stable)
  and the module-specific suffix (e.g. mono)
- VERSION_FULL_BUILD, same as above but with build/reference name
  (e.g. official, custom_build, mageia, etc.)
  Note: Slight change here, as the previous format had the build name
  *before* the module-specific suffix; now it's after
- VERSION_FULL_NAME, same as before, so VERSION_FULL_BUILD prefixed
  with "Godot v" for readability

Bugs fixed thanks to that:

- Export templates version matching now properly takes VERSION_PATCH
  into account by relying on VERSION_FULL_CONFIG.
- ClassDB hash no longer takes the build name into account, but limits
  itself to VERSION_FULL_CONFIG (build name is cosmetic, not relevant
  for the API hash).
- Docs XML no longer hardcode the VERSION_STATUS, this was annoying.
- Small cleanup in Windows .rc file thanks to new macros.
2018-02-23 20:15:29 +01:00
Fabio Alessandrelli 90b9449844 Properly set input as handled when closing modal 2018-02-23 13:01:28 +01:00
luz.paz 612ab4bbc6 Fix typos with codespell
Found via `codespell -q 3 --skip="./thirdparty,./editor/translations" -I ../godot-word-whitelist.txt`
Whitelist consists of:
```
ang
doubleclick
lod
nd
que
te
unselect
```
2018-02-21 19:46:06 +01:00
Artem Varaksa d35e486228 Clean up some bad words from code comments 2018-02-17 16:00:39 +03:00
Zephilinox a826fb8d8b Add ready signal to Node
Closes #15889
2018-01-20 21:57:59 +00:00
Rémi Verschelde 598724c043 Remove obsolete Viewport _update_rect() code 2018-01-18 22:37:45 +01:00
Rémi Verschelde 9f479f096c Fix typos in code and docs with codespell
Using v1.11.0 from https://github.com/lucasdemarchi/codespell
2018-01-18 22:01:42 +01:00
Juan Linietsky a26e6c8215 Renamed tree_exited to tree_exiting. tree_exited is now used for actual out of tree notification.
Updated doc accordingly.
2018-01-12 08:29:24 -03:00
Bojidar Marinov 9b8e8b2220
Bind many more properties to scripts
Notable potentially breaking changes:
- PROPERTY_USAGE_NOEDITOR is now PROPERTY_USAGE_STORAGE | PROPERTY_USAGE_NETWORK, without PROPERTY_USAGE_INTERNAL
- Some properties were renamed, and sometimes even shadowed by new ones
- New getter methods (some virtual) were added
2018-01-12 00:58:14 +02:00
AndreaCatania 5ac441131e Fixed crash on duplicate GIProbe baking 2018-01-11 19:50:33 +01:00
Poommetee Ketson 768fd83e61 Fix typo in new strings 2018-01-06 21:33:11 +07:00
Juan Linietsky 90d47ae23d Force button release when window focuses out, fixes #15318 and likely many other issues. 2018-01-05 15:40:08 -03:00
Rémi Verschelde e4213e66b2 Add missing copyright headers and fix formatting
Using `misc/scripts/fix_headers.py` on all Godot files.
Some missing header guards were added, and the header inclusion order
was fixed in the Bullet module.
2018-01-05 01:22:23 +01:00
Rémi Verschelde ffd6838704
Merge pull request #15192 from volzhs/expose-quit-on-go-back
Bind SceneTree::set_quit_on_go_back() to gdscript
2018-01-03 12:14:16 +01:00
Rémi Verschelde b50a9114b1 Update copyright statements to 2018
Happy new year to the wonderful Godot community!
2018-01-01 14:40:47 +01:00
Noshyaar 7d0212f4eb
Merge pull request #14953 from poke1024/fix-toolbar-gesture
Hide tooltip on gesture input
2018-01-01 18:53:11 +07:00
volzhs c132d873b1 Bind SceneTree::set_quit_on_go_back() to gdscript
Fix #15189
2017-12-30 21:15:17 +09:00
Bernhard Liebl 098bcf55d0 More efficient subwindow handling 2017-12-28 11:27:43 +01:00
Noshyaar ab444a8ca9
Merge pull request #14996 from neikeq/enums-mono
Mono: Make the bindings generator output enums
2017-12-27 10:29:00 +07:00
PJB3005 7f0a1c1780 Hiding a control now fires NOTIFICATION_FOCUS_EXIT.
It always removed the focus from the control, but this happened without firing the relevant notification.
2017-12-26 20:58:53 +01:00
Juan Linietsky 02e883713a
Merge pull request #14977 from volzhs/fix-crash-group
Fix crash & error at saving scene
2017-12-26 11:43:02 -03:00
Juan Linietsky 4a2eef4ad8 Removed the InputEvent ID field, which was unused and can cause bugs. 2017-12-26 09:49:31 -03:00
Noshyaar a483edbddd
Merge pull request #14899 from volzhs/render-quality-option
Respect HDR option
2017-12-25 08:36:46 +07:00
Noshyaar 1348b087e6
Merge pull request #14753 from NathanWarden/mouse_button_fix
Fixed a bug where mouse button focus breaks when using multiple buttons at once.
2017-12-25 08:33:42 +07:00
volzhs d6a88cdc41 Fix crash from move_child at saving scene 2017-12-25 01:31:13 +09:00
Ignacio Etcheverry 0a0a44da8d Mono: Make the bindings generator output enums
- Switch to PascalCase for constants names
2017-12-24 04:20:41 +01:00
Bernhard Liebl 27afa8813d Hide tooltip on gesture input 2017-12-22 19:39:23 +01:00
Juan Linietsky 1fa9aac3e4 -Make capture dependent on a cell size, not subdivision.
-Fixed a bug recently introduced when releasing mouse events and calling popups
2017-12-21 11:05:55 -03:00
volzhs 0856259d19 Respect HDR option 2017-12-21 22:49:55 +09:00