summaryrefslogtreecommitdiff
path: root/main/main.cpp
AgeCommit message (Collapse)Author
2020-03-08Refactor ScriptDebugger.Fabio Alessandrelli
EngineDebugger is the new interface to access the debugger. It tries to be as agnostic as possible on the data that various subsystems can expose. It allows 2 types of interactions: - Profilers: A subsystem can register a profiler, assigning it a unique name. That name can be used to activate the profiler or add data to it. The registered profiler can be composed of up to 3 functions: - Toggle: called when the profiler is activated/deactivated. - Add: called whenever data is added to the debugger (via `EngineDebugger::profiler_add_frame_data`) - Tick: called every frame (during idle), receives frame times. - Captures: (Only relevant in remote debugger for now) A subsystem can register a capture, assigning it a unique name. When receiving a message, the remote debugger will check if it starts with `[prefix]:` and call the associated capture with name `prefix`. Port MultiplayerAPI, Servers, Scripts, Visual, Performance to the new profiler system. Port SceneDebugger and RemoteDebugger to the new capture system. The LocalDebugger also uses the new profiler system for scripts profiling.
2020-03-08ScriptDebuggerRemote use threadsFabio Alessandrelli
2020-02-26Merge pull request #36551 from AndreaCatania/navigation_destruction_flushRémi Verschelde
Flushes commands just before the navigation server is destroyed
2020-02-26Flushes commands just before the navigation server is destroyedAndrea Catania
2020-02-25Variant: Added 64-bit packed arrays, renamed Variant::REAL to FLOAT.Juan Linietsky
- Renames PackedIntArray to PackedInt32Array. - Renames PackedFloatArray to PackedFloat32Array. - Adds PackedInt64Array and PackedFloat64Array. - Renames Variant::REAL to Variant::FLOAT for consistency. Packed arrays are for storing large amount of data and creating stuff like meshes, buffers. textures, etc. Forcing them to be 64 is a huge waste of memory. That said, many users requested the ability to have 64 bits packed arrays for their games, so this is just an optional added type. For Variant, the float datatype is always 64 bits, and exposed as `float`. We still have `real_t` which is the datatype that can change from 32 to 64 bits depending on a compile flag (not entirely working right now, but that's the idea). It affects math related datatypes and code only. Neither Variant nor PackedArray make use of real_t, which is only intended for math precision, so the term is removed from there to keep only float.
2020-02-21Huge Debugger/EditorDebugger refactor.Fabio Alessandrelli
2020-02-15Changed logic and optimized ObjectID in ObjectDB and Variant, removed RefPtr.Juan Linietsky
2020-02-13Remove obsolete GLES3 backendRémi Verschelde
Due to the port to Vulkan and complete redesign of the rendering backend, the `drivers/gles3` code is no longer usable in this state and is not planned to be ported to the new architecture. The GLES2 backend is kept (while still disabled and non-working) as it will eventually be ported to serve as the low-end renderer for Godot 4.0. Some GLES3 features might be selectively ported to the updated GLES2 backend if there's a need for them, and extensions we can use for that. So long, OpenGL driver bugs!
2020-02-11More GIProbe work and fixesJuan Linietsky
2020-02-11Rewrote large part of rendering, omni and spot shadows now work.Juan Linietsky
2020-02-11Yay very basic 3D (only white) finally shows.Juan Linietsky
2020-02-11Base 3D engine done, still untested, though.Juan Linietsky
2020-02-11Add runtime GLES2 / Vulkan context selection.bruvzg
2020-02-11Add static Vulkan loader.bruvzg
Initial Vulkan support for Windows. Initial Vulkan support for macOS.
2020-02-11Moved the shader source compilation code outside RenderingDevice and VulkanJuan Linietsky
2020-02-11Bugfixes and ability to better specify filter and repeat modes everywhere.Juan Linietsky
Removes antialiased flag for draw_* methods.
2020-02-11Texture refactorJuan Linietsky
-Texture renamed to Texture2D -TextureLayered as base now inherits 2Darray, cubemap and cubemap array -Removed all references to flags in textures (they will go in the shader) -Texture3D gone for now (will come back later done properly) -Create base rasterizer for RenderDevice, RasterizerRD
2020-02-11Refactored RID/RID_Owner to always use O(1) allocation.Juan Linietsky
* Implements a growing chunked allocator * Removed redudant methods get and getptr, only getornull is supported now.
2020-02-10- Integrated NavigationServer and Navigation2DServer.Andrea Catania
- Added Navigation Agents and Obstacles. - Integrated Collision Avoidance. This work has been kindly sponsored by IMVU.
2020-02-05Remove duplicate ERR_PRINT macro.Marcel Admiraal
2020-01-31Merge pull request #35418 from Calinou/project-manager-viewport-usage-2dRémi Verschelde
Use a cheaper viewport usage mode in the project manager
2020-01-28Improve the error message displayed when the PCK file can't be foundHugo Locurcio
This explains what to do if the executable was renamed, which is helpful for people exporting projects.
2020-01-21Use a cheaper viewport usage mode in the project managerHugo Locurcio
This should speed up rendering slightly. While the project manager is hardly demanding, this may help on high refresh-rate displays or very slow machines.
2020-01-13Sync pending VisualServer commands after ScriptServer finalizationIgnacio Etcheverry
This is needed as C# may free resources from the finalizer thread during CSharpLanguage::finish(). Previously this would result in RIDs not being freed.
2020-01-13Ignore command line --build-solutions when not editing projectRémi Verschelde
This option is meant to use together with `--path` or from a project folder. Otherwise the project manager is opened and the option triggers a crash. Fixes #25589.
2020-01-13Revert "Enable Vsync via Compositor by default"Rémi Verschelde
This reverts commit 9600fd5dde1f85b7dd2dd8558d52ff86b18651e7. Add comment warning about possible implications of using this option. Fixes #35038.
2020-01-10Be stricter on what's considered a scene path in CLI argument parsingHugo Locurcio
This closes #8721.
2020-01-10Merge pull request #34968 from Calinou/enable-vsync-via-compositorRémi Verschelde
Enable Vsync via Compositor by default
2020-01-10Main: Prevent Project Manager-ception in editorRémi Verschelde
Fixes #34904.
2020-01-09Enable Vsync via Compositor by defaultHugo Locurcio
This feature was added in #33414 but it was disabled by default. Now that it got some testing, it's probably safe to enable it by default.
2020-01-08Export: Add dedicated --export-pack option to export data packRémi Verschelde
The previous behavior relying on the provided extension was problematic on macOS since .zip is the main extension used for the full project export (binary + data pack). We add a dedicated `--export-pack` command line option to define when only the data pack should be exported. Its extension will still be inferred from the path. Fixes #23073.
2020-01-07Export: Improve usability of command line interfaceRémi Verschelde
I'm barely scratching the surface of the changes needed to make the --export command line interface easy to use, but this should already improve things somewhat. - Streamline `can_export()` templates check in all platforms, checking first for the presence of official templates, then of any defined custom template, and reporting on the absence of any. Shouldn't change the actual return value much which is still true if either release or debug is usable - we might want to change that eventually and better validate against the requested target. - Fix discrepancy between platforms using `custom_package/debug` and `custom_template/debug` (resp. `release`). All now use `custom_template`, which will break compatibility for `export_presets.cfg` with earlier projects (but is easy to fix). - Use `can_export()` when attempting a command line export and report the same errors that would be shown in the editor. - Improve error reporting after a failed export attempt, handling missing template and invalid path more gracefully. - Cleanup of unused stuff in EditorNode around the export workflow. - Improve --export documentation in --help a bit. Fixes #16949 (at least many of the misunderstandings listed there). Fixes #18470.
2020-01-01Update copyright statements to 2020Rémi Verschelde
Happy new year to the wonderful Godot community! We're starting a new decade with a well-established, non-profit, free and open source game engine, and tons of further improvements in the pipeline from hundreds of contributors. Godot will keep getting better, and we're looking forward to all the games that the community will keep developing and releasing with it.
2019-12-30Merge pull request #34589 from Calinou/improve-cli-export-helpRémi Verschelde
Fix and improve command-line exporting help
2019-12-24Fix and improve command-line exporting helpHugo Locurcio
It was previously mentioning only one of the two required arguments. This also mentions that the export path is relative to the project directory. This partially addresses #28646.
2019-12-24Cleans up headers included in editor_node.hHaoyu Qiu
2019-12-13Add project setting to hide home indicator on iOSJonas Bernemann
On iOS devices without a physical home button iOS shows a home indicator instead. This is often in the way of the UI or the game. Added a project setting to disable hidden home indicator. The default value is to hide the home indicator
2019-12-04Added support for vertical syncing via the Windows OS compositor (DWM.)TerminalJack
2019-12-01iOS modular build and export implementation.bruvzg
2019-11-29Flush remaining messages before quitting the game when loading failsPouleyKetchoupp
This change allows error messages to be printed in the editor debugger when the game fails on load, instead of displaying them in the console terminal only.
2019-11-26godot exit code improvement for --script --check-only, fixes #33895Pawel Lampe
this commit causes godot executable to return non-zero exit code once invalid script is passed via --script during --check-only
2019-11-11Remove ERR_EXPLAIN macros and the scaffolding they needed.Marcel Admiraal
2019-11-08Merge pull request #27742 from rxlecky/camera-replicationRémi Verschelde
Game camera override
2019-11-04Remove unused `editor/active` project settingHugo Locurcio
This closes #33322.
2019-11-01Fix some crashes, overflows and using variables without valuesRafał Mikrut
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-10-14Small fixes to redundand code, copy paste bugsqarmin
2019-10-04Make possible to use just one "size/test_*" value in the settingsMichael Alexsander
2019-09-27Validate audio/video driver command-line argumentsHugo Locurcio
This will exit early if the audio/video driver specified doesn't exist.
2019-09-26SCons: do not build tests with tools=noAndrii Doroshenko (Xrayez)
This doesn't affect the resulting binary size, but allows to save a phew seconds during compilation if building export templates.