summaryrefslogtreecommitdiff
path: root/scene/main/viewport.h
AgeCommit message (Collapse)Author
2023-02-07Fix Viewport::get_mouse_position for SubViewportsMarkus Sauermann
SubViewports don't have a cached mouse position available. This PR calculates the mouse position from the screen position of the mouse cursor.
2023-02-06Merge pull request #68492 from Sauermann/fix-picking-sortRémi Verschelde
Fix propagation order for 2D physics picking events
2023-02-04Fix propagation order for 2D physics picking eventsMarkus Sauermann
This patch adds a viewport-configuration-option for sorting physics-picking events by the Z-Index and the scene tree position of the collision objects.
2023-02-02Remove `Viewport::_get_input_pre_xform`Markus Sauermann
This function is only relevant for `Window`. So this PR moves the functionality to the `Window`-class.
2023-02-02Simplify Viewport::_set_sizeMarkus Sauermann
`Viewport.to_screen_rect` is used only in a single location to compare it to `Rect2i()`. When called from `SubViewport`, `to_screen_rect` is always equal to `Rect2i()`. When called from `Window`, `to_screen_rect` is always different from `Rect2i()`. So the comparison `to_screen_rect != Rect2i()` can be replaced by `Object::cast_to<Window>(this)`. This allows the removal of `Viewport.to_screen_rect` and the simplification of `Viewport::_set_size`.
2023-02-01Fix stretch transform when resizing SubViewportsMarkus Sauermann
Move calculation of stretch transform from outside to inside of `Viewport::_set_size` function.
2023-02-01Merge pull request #66906 from Sauermann/fix-prohibit-inconsistent-size-stateRémi Verschelde
Prohibit inconsistent size state for SubViewport
2023-01-31Prohibit inconsistent size state for SubViewportMarkus Sauermann
Prohibit size changes of SubViewports with parent SubViewportContainers that have stretch mode enabled.
2023-01-31Merge pull request #65698 from KoBeWi/cameramanRémi Verschelde
Rework how current Camera2D is determined
2023-01-26Merge pull request #68627 from Sauermann/fix-tooltip-positionRémi Verschelde
Fix position of Tooltips
2023-01-26Fix position of TooltipsMarkus Sauermann
CanvasItem::get_screen_transform returns a transform from the CanvasItem to the coordinate system, where a Popup - created as a child of the CanvasItem - should be opened. get_screen_transform makes some simplifications, that work well, when used in the editor, but not in general cases. Since Popups like Tooltips are now used more commonly in projects, it becomes necessary to correct these simplifications. This solution introduces Viewport::get_popup_base_transform, which makes the necessary calculations.
2023-01-09Calculate the mouse focus inverse transform only when neededMarkus Sauermann
Revival of #49158 Co-authored-by: Marcel Admiraal <madmiraal@users.noreply.github.com>
2023-01-08Use BitField<> in core type masksJuan Linietsky
* All core types masks are now correctly marked as bitfields. * The enum hacks in MouseButtonMask and many other types are gone. This ensures that binders to other languages non C++ can actually implement type safe bitmasks. * Most bitmask operations replaced by functions in BitField<> * Key is still a problem because its enum and mask at the same time. While it kind of works in C++, this most likely can't be implemented safely in other languages and will have to be changed at some point. Mostly left as-is. * Documentation and API dump updated to reflect bitfields in core types.
2023-01-05One Copyright Update to rule them allRémi Verschelde
As many open source projects have started doing it, we're removing the current year from the copyright notice, so that we don't need to bump it every year. It seems like only the first year of publication is technically relevant for copyright notices, and even that seems to be something that many companies stopped listing altogether (in a version controlled codebase, the commits are a much better source of date of publication than a hardcoded copyright statement). We also now list Godot Engine contributors first as we're collectively the current maintainers of the project, and we clarify that the "exclusive" copyright of the co-founders covers the timespan before opensourcing (their further contributions are included as part of Godot Engine contributors). Also fixed "cf." Frenchism - it's meant as "refer to / see".
2022-12-02Rework how current Camera2D is determinedkobewi
2022-11-30Fix routing of InputEventScreenDrag events to Control nodesFredia Huya-Kouadio
2022-11-28Merge pull request #59801 from Sauermann/fix-node2d-viewport-root-orderRémi Verschelde
Fix Viewport root order after Node2D raise
2022-11-08Allow canceling Drag and Drop with the Escape-KeyMarkus Sauermann
This patch implements the functionality to cancel Drag and Drop by using the escape key or more general, the ui_cancel action. Since this would be the third location, where the finalization of Drag and Drop would have to be implemented, that functionality was put into the private function _perform_drop. Simplified gui.drag_data.get_type() != Variant::NIL to gui.dragging because they are equivalent.
2022-11-02Fix Viewport root order after Node2D raiseMarkus Sauermann
2022-10-31Viewport canvas cull mask featureBimDav
Co-authored-by: Valentin Zagura <puthre@gmail.com>
2022-10-04Make sure to reset the tooltip of its gui_parent when the viewport is removedRindbee
2022-09-19Change return type of `get_configuration_warnings` to `PackedStringArray`Marc Gilleron
2022-09-07Fix MOUSE_MODE_CAPTURED not working correctly with popupsMinusKube
2022-08-30Prevent subwindow_focused from pointing to a window that is not a subwindowMinusKube
2022-08-30Merge pull request #63003 from Geometror/msaa-2dRémi Verschelde
2022-08-25Fix warp_mouse for transient windows, smoother mouse positioning when ↵MathieuRoux
releasing mouse for spinbox
2022-08-22Make `_validate_property` a multilevel methodYuri Sizov
2022-08-13Implement MSAA for 2D [Vulkan only]Hendrik Brucker
2022-07-28Allow changing mipmap LOD bias when FSR 1.0 scaling is not usedHugo Locurcio
Mipmap LOD bias can be useful to improve the appearance of distant textures without increasing anisotropic filtering (or in situations where anisotropic filtering is not effective). `fsr_mipmap_bias` was renamed to `texture_mipmap_bias` accordingly. The property hint now allows for greater precision as well.
2022-07-25Code quality: Fix header guards consistencyRémi Verschelde
Adds `header_guards.sh` bash script, used in CI to validate future changes. Can be run locally to fix invalid header guards.
2022-07-17Adding Variable Rate Shading support to GodotBastiaan Olij
Improve GI renderer and add VRS support Implement render device has_feature and move subgroup settings to limit_get
2022-07-13Rename soft shadow quality project settings for easier searchingHugo Locurcio
`rendering/quality/shadows` is now `rendering/quality/positional_shadow` to explicitly denote that the settings only affect positional light shadows, not directional light shadows. Shadow atlas settings now contain the word "atlas" for easier searching. Soft shadow quality settings were renamed to contain the word "filter". This makes the settings appear when searching for "filter" in the project settings dialog, like in Godot 3.x.
2022-06-07Initial TAA implementationjfons
Initial TAA support based on the implementation in Spartan Engine. Motion vectors are correctly generated for camera and mesh movement, but there is no support for other things like particles or skeleton deformations.
2022-06-06Fix `Viewport.own_world_3d` documentationHaoyu Qiu
Also fixed the naming of the setter's parameter and made an `if` block straightforward.
2022-05-20Add a new HashSet templatereduz
* Intended to replace RBSet in most cases. * Optimized for iteration speed
2022-05-17Merge pull request #61088 from groud/keep_unhandled_events_on_passRémi Verschelde
2022-05-17Keep input event as unhandled if they go through a control set to ↵Gilles Roudière
MOUSE_FILTER_PASS
2022-05-16Replace most uses of Map by HashMapreduz
* Map is unnecessary and inefficient in almost every case. * Replaced by the new HashMap. * Renamed Map to RBMap and Set to RBSet for cases that still make sense (order matters) but use is discouraged. There were very few cases where replacing by HashMap was undesired because keeping the key order was intended. I tried to keep those (as RBMap) as much as possible, but might have missed some. Review appreciated!
2022-05-02Style: Partially apply clang-tidy's `cppcoreguidelines-pro-type-member-init`Rémi Verschelde
Didn't commit all the changes where it wants to initialize a struct with `{}`. Should be reviewed in a separate PR. Option `IgnoreArrays` enabled for now to be conservative, can be disabled to see if it proposes more useful changes. Also fixed manually a handful of other missing initializations / moved some from constructors.
2022-04-05[Input] Add extra `shortcut_input` input processing step to process Unicode ↵bruvzg
character input with Alt / Ctrl modifiers, after processing of shortcuts.
2022-03-28Fix using Viewport::warp_mouse within ViewportsMarkus Sauermann
2022-03-27Rename warp mouse functions to warp_mouseMarkus Sauermann
2022-03-14Cleanup internal GUI state, if event is accepted in _input.Markus Sauermann
2022-03-13Cleanup embed subwindows getterskobewi
2022-02-19Update variable name to reflect usageMarkus Sauermann
2022-02-03Merge pull request #57517 from groud/viewport_expose_gui_focusRémi Verschelde
2022-02-01Fix mouse_over not dropped when mouse leaves windowMarcel Admiraal
2022-02-01Exposes gui_release_focus and gui_get_focus_owner to ViewportGilles Roudière
2022-01-07Merge pull request #53419 from TechnoPorg/rework-subwindowsRémi Verschelde
2022-01-04Merge pull request #56305 from Calinou/rename-lod-thresholdRémi Verschelde