summaryrefslogtreecommitdiff
path: root/scene/main/viewport.h
AgeCommit message (Collapse)Author
2019-10-23Implement game camera overrideErik
Implemented uniform API in Viewport class to override 2D and/or 3D camera. Added buttons in 2D and 3D editor viewport toolbars that override the running game camera transform with the editor viewport camera transform. Implemented via remote debugger protocol and camera override API. Removed LiveEditFuncs function pointers from ScriptDebugger class. Since the debugger got access to the SceneTree instance (if one exists), there is no need to store the function pointers. The live edit functions in SceneTree are used directly instead. Also removed the static version of live edit functions in SceneTree for the same reason. This reduced the SceneTree -> Debugger coupling too since the function pointers don't need to be set from SceneTree anymore. Moved script_debugger_remote.h/cpp from 'core/' to 'scene/debugger/'. This is because the remote debugger is now using SceneTree directly and 'core/' classes should not depend on 'scene/' classes.
2019-08-12Remove redundant author doc commentsIAmActuallyCthulhu
2019-05-13Implement ability to render viewports directly to screenclayjohn
2019-03-30Drop mouseover when mouse not in the windowPedro J. Estébanez
Not that this is critical, but it makes behavior of GUI and 2D/3D picking consistent among them. This also contributes to dropping GUI focus when the mouse leaves the window (in addition to when it loses focus).
2019-03-09Fix fake null-motion mouse event floodPedro J. Estébanez
This commit also improves a bit the code quality by making the intent of fake events (and themselves) more explicit. Fixes #26460.
2019-03-05Improve/fix pickingPedro J. Estébanez
Acknowledge mouse button events as position tellers (to make picking more solid; for instance, the touch mouse is raised with a mouse unpressed event that may have a more current position) Forget mouse position for physics if touch mouse raised (because the position known as last is no longer meaningful) Remove needless check for mouse over/exit (now there's code to inject an spurious move for cases where camera/objects have moved) Restrict 2D mouse over/exit to mouse events (including emulated from touch; true touches shouldn't trigger the signals) Fixes #26460.
2019-03-02hide hdr and shadow_contact in gles2clayjohn
2019-01-26Rewrite how font oversampling is updated more carefully, fixes #24338Juan Linietsky
2019-01-18respect mouse mode when setting enter/exit notifications and signals, fixes ↵Juan Linietsky
#19785
2019-01-01Update copyright statements to 2019Rémi Verschelde
Happy new year to the wonderful Godot community!
2018-12-19fix near infinite loop when no previous mouse positionArjen van Staalduinen
Added physics_has_last_mousepos to better deal with situations where there is no last_mousepos
2018-12-14Fix touch release event on _gui_inputKonrad Nowakowski
2018-11-28Improved the mouse focus system (mouse keeps focus on a control while ↵Juan Linietsky
buttons are pressed). Fixes #19154 and likely many others. WARNING: Test well in every OS, if mouse wheel events are not properly sent as pressed+unpressed pair, it will fail and break (and the OS needs to be fixed). Only tested on X11 so far.
2018-11-15-Send mouse motion events again to CollisionObjects (Area/Body) if they ↵Juan Linietsky
move, even if mouse does not. Fixes #16536 (likely many others should check) -Add ability for viewports to set input events as handled locally
2018-11-07Merge pull request #21386 from RandomShaper/fix-picking-in-canvas-layersJuan Linietsky
Fix picking in CanvasLayer
2018-09-12Make core/ includes absolute, remove subfolders from include pathRémi Verschelde
This allows more consistency in the manner we include core headers, where previously there would be a mix of absolute, relative and include path-dependent includes.
2018-08-25Fix picking in CanvasLayerPedro J. Estébanez
New APIs in 2D physics allow intersection queries filtered by CanvasLayer object instance id. Viewport keep an inventory of its descendant CanvasLayers and takes advantage of all that to test picking with the mouse/touch position correctly transformed for each CanvasLayer.
2018-08-24Avoid misuse of set_drag_preview() function where it shouldn't be. Closes #20100Juan Linietsky
2018-08-11[Core] Completely kill math_2d.h, change includesAaron Franke
2018-07-20-Fix tooltips in inspector, now they show as rich text.Juan Linietsky
2018-06-07Entirely new (and much improved) animation editor.Juan Linietsky
2018-05-16Merge pull request #18928 from BastiaanOlij/fix_viewport_flagsRémi Verschelde
Store flags so it isn't lost when viewport isn't setup yet
2018-05-16Store flags so it isn't lost when viewport isn't setup yetBastiaan Olij
2018-05-08Merge pull request #15119 from poke1024/visible-subwindowsJuan Linietsky
More efficient subwindow handling
2018-05-06Added option to viewport to keep linear colorBastiaan Olij
2018-04-07Improve popup menus usabilityPedro J. Estébanez
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-01-18Remove obsolete Viewport _update_rect() codeRémi Verschelde
2018-01-05Add missing copyright headers and fix formattingRémi Verschelde
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-01Update copyright statements to 2018Rémi Verschelde
Happy new year to the wonderful Godot community!
2017-12-28More efficient subwindow handlingBernhard Liebl
2017-12-26Removed the InputEvent ID field, which was unused and can cause bugs.Juan Linietsky
2017-12-04-Implemented Proxy Textures (needed to solve the problem with ViewportTexture)Juan Linietsky
-Properly use hierarchy to initialize resources local to scene (solves problem of GUI in 3D)
2017-09-07Restored auto snapping of controls to pixels, fixes #10847 and probably ↵Juan Linietsky
several more issues. Made it optional in the project settings but defaults to true.
2017-08-31Exposed new ClearMode function to Viewport clases, closes #9995Juan Linietsky
2017-08-27Use HTTPS URL for Godot's website in the headersRémi Verschelde
2017-07-28Adding base classes and structures for ARVR supportBastiaanOlij
Added ArVrScriptInterface Added ARVRCamera, ARVRController and ARVROrigin helper objects
2017-06-16-Fix freezes caused by etccomp2, closes #9183Juan Linietsky
-Normalmaps are now detected and imported as RGTC, both in S3TC and ETC2, this improves their quality.
2017-06-11Restored multiple viewport function, as well as view modes.Juan Linietsky
2017-06-09-Restored multithread capability to VisualServerJuan Linietsky
-Restored resource previews!
2017-05-20Removal of InputEvent as built-in Variant type..Juan Linietsky
this might cause bugs I haven't found yet..
2017-05-17Removal of Image from Variant, converted to a Resource.Juan Linietsky
2017-04-10Rename [gs]et_pos to [gs]et_position for ControlsSergey Pusnei
Control set_pos -> set_position Control set_global_pos -> set_global_position [gs]et_mouse_pos -> [gs]et_mouse_position [gs]et_global_mouse_pos -> [gs]et_global_mouse_position fixes #8005
2017-04-08Add "Godot Engine contributors" copyright lineRémi Verschelde
2017-03-05A Whole New World (clang-format edition)Rémi Verschelde
I can show you the code Pretty, with proper whitespace Tell me, coder, now when did You last write readable code? I can open your eyes Make you see your bad indent Force you to respect the style The core devs agreed upon A whole new world A new fantastic code format A de facto standard With some sugar Enforced with clang-format A whole new world A dazzling style we all dreamed of And when we read it through It's crystal clear That now we're in a whole new world of code
2017-01-23Ability to delete, drag and drop audio buses!Juan Linietsky
2017-01-14removed duplicated functions in class hierarchy that were bound more than onceJuan Linietsky
added a check to detect this case in the future
2017-01-11Type renames:Juan Linietsky
Matrix32 -> Transform2D Matrix3 -> Basis AABB -> Rect3 RawArray -> PoolByteArray IntArray -> PoolIntArray FloatArray -> PoolFloatArray Vector2Array -> PoolVector2Array Vector3Array -> PoolVector3Array ColorArray -> PoolColorArray
2017-01-10- _ready() callback only happens once now, if you want to receive it again, ↵Juan Linietsky
use request_ready() - C++ Nodes mostly do an internal process callback, so it does not conflict with users willing to use their own process callbacks - callbacks such as _input, _process, _fixed_process _unhandled_input, _unhandled_key_input do not requiere calling a function to enable them. They are enabled automatically if found on the script.
2017-01-10Groundbreaking!! Godot resources can now be flagged to be local to the scene ↵Juan Linietsky
being edited! This means that each time this scene is instanced, the resource will be unique! As such, thanks to this, the following features were implemented: -ButtonGroup is no longer a control, it's now a resource local to the scene -ViewportTexture can be created from the editor and set to any object, making ViewportSprite and other kind of nodes obsolete!
2017-01-02ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to ↵Juan Linietsky
Variant. All usages of "type" to refer to classes were renamed to "class" ClassDB has been exposed to GDScript. OBJ_TYPE() macro is now GDCLASS()