summaryrefslogtreecommitdiff
path: root/scene/main/viewport.h
AgeCommit message (Collapse)Author
2021-11-12Use "enum class" for input enumsAaron Franke
2021-10-08Allow any floating-point value as a 3D rendering scale optionHugo Locurcio
This allows for finer control over 3D rendering resolution. Supersampling can also be performed by setting a 3D rendering resolution above 1.0, which is useful for offline rendering or for very high-end GPUs.
2021-09-16Rename Listener2D/Listener3D to AudioListener2D/AudioListener3DWilson E. Alvarez
2021-09-13Merge pull request #49063 from Calinou/remove-16x-msaaRémi Verschelde
Remove 16× MSAA support due to driver bugs and low performance
2021-08-31Add Listener2Dkobewi
2021-08-26Optionally scale 3D render contentBastiaan Olij
2021-08-25Remove 16× MSAA support due to driver bugs and low performanceHugo Locurcio
In the `master` branch, 16× MSAA caused the entire system to freeze on NVIDIA GPUs. This is likely caused by graphics drivers not actually implementing 16× MSAA, but combining 8× MSAA with 2× SSAA instead. On top of that, modern shader complexity makes 16× MSAA very difficult to use while keeping a good framerate. 8× MSAA is hard enough to use as it is.
2021-08-23Entirely removes BIND_VMETHOD in favor of GDVIRTUALreduz
* `_gui_input`, `_input`, `_unhandled_input` and `_unhandled_key_input` are now regular C++ virutal functions. * Everything else converted to GDVIRTUAL * BIND_VMETHOD is gone, always use the new syntax from now on. Creating `_gui_input` method and using the binder to register events will no longer work, simply override the virtual function now.
2021-08-13Disable Node3D when compiling without 3D and fix disable_3d optionAaron Franke
2021-08-13Fix some unnecessary includesAaron Franke
2021-08-10Organize methods in Viewport and explicitly name 3D methods with 3DAaron Franke
2021-08-09Use doubles for time in many other placesAaron Franke
2021-07-23Show tooltips even when paused or time_scale is 0kobewi
2021-07-22Make `MenuButton`'s `switch_on_hover` work againMichael Alexsander
2021-07-21Use the standard C `INFINITY` and `NAN` constants directlyHugo Locurcio
The `Math_INF` and `Math_NAN` defines were just aliases for those constants, so we might as well use them directly. Some portions of the code were already using `INFINITY` directly.
2021-07-20Merge pull request #38317 from verdog/get-cam-2d-4.0Rémi Verschelde
add viewport.get_camera_2d()
2021-07-16Merge pull request #47395 from sygi/shape_idx_collisionHugo Locurcio
Add shape_idx to CollisionObject2D mouse_entered signal
2021-07-03add viewport.get_camera_2d()Josh Chandler
* there is now a more clear distinction between camera_2d and camera_3d functions in the engine code * simplified camera2d's exported interface - now everything happens directly with the 'current' variable and make_current and clear_current are no longer exposed- there were some situations where calling one instead of set_current would result in incomplete results * rebased to current godot master
2021-07-03Fix Render Inforeduz
* Fixed and redone the process to obtain render information from a viewport * Some stats, such as material changes are too difficult to guess on Vulkan, were removed. * Separated visible and shadow stats, which causes confusion. * Texture, buffer and general video memory can be queried now. * Fixed the performance metrics too.
2021-07-02Add mouse_shape_entered and mouse_shape_exited signals to CollisionObject2D.sygi
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2021-06-29Fixes to 2D viewportreduz
* Editor 2D viewport now uses embedded subwindows (windows no longer pop up) * Restored the ability to disable 3D on the 2D viewport (makes 3D not display on 2D when there is a camera on the scene)
2021-06-16Refactor VisibilityNotifier3Dreduz
* This is the 3D counterpart to #49632 * Implemented a bit different as 3D works using instancing After merged, both 2D and 3D classes will most likely be renamed in a separate PR to DisplayNotifier2D/3D.
2021-06-05Rename GI Classesreduz
* GIProbe is now VoxelGI * BakedLightmap is now LightmapGI As godot adds more ways to provide GI (as an example, SDFGI in 4.0), the different techniques (which have different pros/cons) need to be properly named to avoid confusion.
2021-06-03Rename Transform to Transform3D in coreAaron Franke
2021-05-18Use a non-zero default size for SubViewportsHugo Locurcio
This makes viewports visible out of the box.
2021-05-01Move XR flag from subviewport into viewportBastiaan Olij
2021-04-23Implement occlusion cullingjfons
Added an occlusion culling system with support for static occluder meshes. It can be enabled via `Project Settings > Rendering > Occlusion Culling > Use Occlusion Culling`. Occluders are defined via the new `Occluder3D` resource and instanced using the new `OccluderInstance3D` node. The occluders can also be automatically baked from a scene using the built-in editor plugin.
2021-04-11Use Array for node configuration warningsNathan Franke
Previously, the warnings were passed as a string and delimitation of which were hard coded at each implementation.
2021-03-28Rename Texture.get_data() to get_image()Marcel Admiraal
2021-02-24Fix crash during drag if user freed the drag previewDelf Neumärker
2021-02-09Initialize class variables with default values in scene/ [2/2]Rafał Mikrut
2021-02-07Implement pause-aware pickingPedro J. Estébanez
This changes the way 2D & 3D physics picking behaves in relation to pause: - When pause is set, every collision object that is hovered or captured (3D only) is released from that condition, getting the relevant mouse-exit callback., unless its pause mode makes it immune from pause. - During the pause. picking only considers collision objects immune from pause, sending input events and enter/exit callbacks to them as expected. - When pause is left, nothing happens. This is a big difference with the classic behavior, which at this point would process all the input events that have been queued against the current state of the 2D/3D world (in other words, checking them against the current position of the objects instead of those at the time of the events).
2021-01-24Shadow map rendering optimizationreduz
-All shadow rendering is done with raster now (no compute) -All shadow rendering is done by rendering directly to the shadow atlas -Improved how buffer clearing is done to optimize the above. -Ability to set shadows as 16 bits.
2021-01-19Added GPU based cluster builderreduz
Clustering is now GPU based, uses an implementation based on the Activision algorithm.
2021-01-01Update copyright statements to 2021Rémi Verschelde
Happy new year to the wonderful Godot community! 2020 has been a tough year for most of us personally, but a good year for Godot development nonetheless with a huge amount of work done towards Godot 4.0 and great improvements backported to the long-lived 3.2 branch. We've had close to 400 contributors to engine code this year, authoring near 7,000 commit! (And that's only for the `master` branch and for the engine code, there's a lot more when counting docs, demos and other first-party repos.) Here's to a great year 2021 for all Godot users 🎆
2020-12-18Implement automatic LOD (Level of Detail)reduz
-Happens on import by default for all models -Just works (tm) -Biasing can be later adjusted per node or per viewport (as well as globally) -Disabled AABB.get_support test because its broken
2020-12-10Rename Viewport::ClearMode::CLEAR_MODE_ONLY_NEXT_FRAME to CLEAR_MODE_ONCEMarcel Admiraal
2020-11-26Implement signed distance fields for 2D shadersreduz
2020-11-16Remove empty lines around braces with the formatting scriptAaron Franke
2020-11-03Tooltips: Improve code clarity and docsRémi Verschelde
The return type for `_make_custom_tooltip` is clarified as Control, and users should make sure to return a visible node for proper size calculations. Moreover in the current master branch, a PopupPanel will be added as parent to the provided tooltip to make it a sub-window. Clarifies documentation for `Control._make_custom_tooltip`, and shows how to use the (until now undocumented) "TooltipPanel" and "TooltipLabel" theme types to style tooltips. Fixes #39677.
2020-10-30Refactor pixel snapping.reduz
-Rename pixel_snap to snap_2d_to_vertices -Added snap_2d_to_transforms which is more useful Fixes #41814 Solves proposal https://github.com/godotengine/godot-proposals/issues/1666 Supersedes #35606, supersedes #41535, supersedes #41534
2020-10-26Fix uninitialized `Viewport::use_debanding` member variableHugo Locurcio
2020-10-24Refactored 2D shader and lighting systemreduz
-Removed normal/specular properties from nodes -Create CanvasTexture, which can contain normal/specular channels -Refactored, optimized and simplified 2D shaders -Use atlas for light textures. -Use a shadow atlas for shadow textures. -Use both items aboves to make light rendering stateless (faster). -Reorganized uniform sets for more efficiency.
2020-10-19Merge pull request #38097 from Calinou/add-viewport-debandingJuan Linietsky
Add a debanding property to Viewport
2020-09-08Fixed minor typo, gui_hid -> gui_hide.Jonah Stich
2020-08-14Add a debanding property to ViewportHugo Locurcio
It can be enabled in the Project Settings (`rendering/quality/screen_filters/use_debanding`). It's disabled by default as it has a small performance impact and can make PNG screenshots much larger (due to how dithering works). It will also slightly brighten the scene's dark areas. As a result, it should be enabled only when banding is noticeable enough. This closes #17006.
2020-07-10Add override keywords.Marcel Admiraal
2020-07-01Fix doubleclick on tree item, restore input focus on previous windows.Juan Linietsky
Closes #37335
2020-07-01Ensure embedded mode works againJuan Linietsky
Also implemented application in/out notifications in X11.
2020-06-26Addition of SDFGI for open world global illuminationJuan Linietsky
Move GI to a deferred pass