summaryrefslogtreecommitdiff
path: root/main/main.cpp
AgeCommit message (Collapse)Author
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-09-10Make sure project manager gets editor hint setRémi Verschelde
Previous fix in e8e06b2 worked in most cases but not if you run e.g. 'godot -', where the '-' argument would mean that 'project_manager' is false and yet that's what will be opened eventually.
2018-09-10Set editor hint for the project managerRémi Verschelde
Fixes #21823.
2018-08-26Fall back to GLES2 if GLES3 is not workingHein-Pieter van Braam
This adds a static is_viable() method to all rasterizers which has to be called before initializing the rasterizer. This allows us to check what rasterizer to use in OS::initialize together with the GL context initialization. This commit also adds a new project setting "rendering/quality/driver/driver_fallback" which allows the creator of a project to specify whether or not fallback to GLES2 is allowed. This setting is ignored for the editor so the editor will always open even if the project itself cannot run. This will hopefully reduce confusion for users downloading projects from the internet. We also no longer crash when GLES3 is not functioning on a platform. This fixes #15324
2018-08-24Make some debug prints verbose-only, remove othersRémi Verschelde
2018-08-24Add print_verbose to print to stdout only in verbose modeRémi Verschelde
Equivalent of the cumbersome: if (OS::get_singleton()->is_stdout_verbose()) print_line(msg);
2018-07-27Main: Fix --check-only option implemented as pairedRémi Verschelde
Fixes #20503. Also added the option to the Linux manpage.
2018-07-25Merge pull request #18368 from Gamblify/RasterizerEngineSyncRémi Verschelde
sync rasterizers with engine
2018-07-20Fix build issues and typos after c69de2ba4Rémi Verschelde
2018-07-19-Project/Editor settings now use new inspectorJuan Linietsky
-Project/Editor settings now show tooltips properly -Settings thar require restart now will show a restart warning -Video driver is now visible all the time, can be changed easily -Added function to request current video driver
2018-07-17Add Audio Server profiling time to the profilerMarcelo Fernandez
2018-07-05Merge pull request #19229 from RandomShaper/fix-focus-stealMax Hilbrunner
Fix debugger focus stealing
2018-06-25Fix vsync initializationChaosus
2018-06-15The build-solutions flag now forces editor mode.Nathan Warden
2018-06-15Removed unused AudioServer::update functionMarcelo Fernandez
2018-06-05Rasterizers are now in sync with engineGustav Lund
The rasterisers (both GLES3 and GLES2) were calculating their own frame delta time This fix lets the rasterizers get the frame delta through the draw call That way any regulations to the frame step from the main script will not cause particle systems to process at a different step than the rest of the Engine. Remove unused rasterizer storage variable frame.prev_tick variable were not used anywhere and has been removed
2018-05-31Add cli paramerter --check-only for script parsingTimur Celik
2018-05-28Fix debugger focus stealingPedro J. Estébanez
At least on Windows, the authorization must be given every time, not only at startup.
2018-05-28Revert "Make the performance reporting update frequency customizable"Juan Linietsky
2018-05-26Merge pull request #18998 from Calinou/customizable-performance-reporting-rateMax Hilbrunner
Make the performance reporting update frequency customizable
2018-05-22Only add autoloads in editor if they have tool scriptsGeorge Marques
2018-05-18Make the performance reporting update frequency customizableHugo Locurcio
The default update frequency has been changed from 1000ms to 250ms.
2018-05-15-New inspector.Juan Linietsky
-Changed UI resizing code, gained huge amount of speed. -Reorganized timer sync to clean up behavior (sorry forgot commit this before) -
2018-05-14Merge pull request #18545 from vnen/editor-autoloadJuan Linietsky
Enable autoload in editor
2018-05-12Change reused variable name in command line parsingLeon Krause
2018-05-12Remove dead branch in command line logicLeon Krause
2018-05-12Revert "Fix custom resource path look-up per command line"Leon Krause
This reverts commit 942f6dfbd66c1d15a45ef6447fd883103d9678a8.
2018-05-11Merge pull request #18770 from eska014/cmdlineRémi Verschelde
Command line fixes
2018-05-10Fix help/man for --export and --export-debugLeon Krause
2018-05-10Fix custom resource path look-up per command lineLeon Krause
2018-05-10Fix setting for pointing emulationvolzhs
Fix #18582 GLOBAL_DEF("input/something") is treated as Input Map setting, not as General.
2018-05-08Merge pull request #14622 from bruvzg/non-rectangular-windowsHein-Pieter van Braam
Experimental support for windows with per-pixel transparency.
2018-05-07Local debugger fixes and extensionsBlazej Floch
- Adds q/quit option to console debugging - Adds options (variable_prefix) - Breaks into debugger with Ctrl-C in local debug mode (Unix/Windows) - Added option to list all breakpoints - Fixes add/remove breakpoint bug (invalid path parsing) - Minor cleanup
2018-05-07Merge pull request #17353 from zmanuel/timer_hysteresis_multiframe_pr1Juan Linietsky
Use hysteresis for smoother physics update frequency
2018-05-02Merge pull request #17196 from RandomShaper/improve-gui-touchRémi Verschelde
Implement universal translation of touch to mouse (3.1)
2018-05-01Enable autoload in editorGeorge Marques
- Tool scripts will be executed and can be accessed by plugins. - Other script languages can implement add/remove_named_global_constant to make use of this functionality.
2018-04-30Implement universal translation of touch to mousePedro J. Estébanez
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-22Change ".." punctuation for "..." in editor strings (#16507)Hugo Locurcio
2018-04-19Enable DynamicFont oversampling by defaultHugo Locurcio
This results in a better DynamicFont appearance when scaled, which is especially noticeable when using the `2d` scaling mode.
2018-04-09Add hysteresis to physics timestep count per frameManuel Moos
Add new class _TimerSync to manage timestep calculations. The new class handles the decisions about simulation progression previously handled by main::iteration(). It is fed the current timer ticks and determines how many physics updates are to be run and what the delta argument to the _process() functions should be. The new class tries to keep the number of physics updates per frame as constant as possible from frame to frame. Ideally, it would be N steps every render frame, but even with perfectly regular rendering, the general case is that N or N+1 steps are required per frame, for some fixed N. The best guess for N is stored in typical_physics_steps. When determining the number of steps to take, no restrictions are imposed between the choice of typical_physics_steps and typical_physics_steps+1 steps. Should more or less steps than that be required, the accumulated remaining time (as before, stored in time_accum) needs to surpass its boundaries by some minimal threshold. Once surpassed, typical_physics_steps is updated to allow the new step count for future updates. Care is taken that the modified calculation of the number of physics steps is not observable from game code that only checks the delta parameters to the _process and _physics_process functions; in addition to modifying the number of steps, the _process argument is modified as well to stay in expected bounds. Extra care is taken that the accumulated steps still sum up to roughly the real elapsed time, up to a maximum tolerated difference. To allow the hysteresis code to work correctly on higher refresh monitors, the number of typical physics steps is not only recorded and kept consistent for single render frames, but for groups of them. Currently, up to 12 frames are grouped that way. The engine parameter physics_jitter_fix controls both the maximum tolerated difference between wall clock time and summed up _process arguments and the threshold for changing typical_physics_steps. It is given in units of the real physics frame slice 1/physics_fps. Set physics_jitter_fix to 0 to disable the effects of the new code here. It starts to be effective against the random physics jitter at around 0.02 to 0.05. at values greater than 1 it starts having ill effects on the engine's ability to react sensibly to dropped frames and framerate changes.
2018-04-07Experimental support for windows with per-pixel transparency (macOS, X11 and ↵bruvzg
Windows).
2018-03-21Add --print-fps option to output FPS to stdoutRémi Verschelde
Works both for the editor and games. Projects can still use "debug/settings/stdout/print_fps" to enable it permanently. The --print-fps option takes precedence (so works even if the project setting is disabled). That setting is also no longer redefined on the fly based on the verbose flag, that was a mess.
2018-03-15Fix debugger_stdout_settings being ignoredBernhard Liebl
2018-03-02Fix `--help` output, allow renderer override from command line ↵bruvzg
(`--video-driver`).
2018-02-26Allow running with a custom resource without a main sceneHein-Pieter van Braam
After 3f8a4cc7193e964f716fde2cd28a946669e2d8d6 trying to run an individual scene on a project without a main scene fails. We move the check until after we've determined whether or not we're trying to run an individual scene. We also stop trying to show the project manager if any game pack is found at all, unless the user explicitly asks for the project manager to be shown.
2018-02-24Add --quit option to help output and update manpageRémi Verschelde
2018-02-23Refactor version macros and fix related bugsRémi Verschelde
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-19Added an auto quit and auto build flag to the command line options.Nathan Warden
2018-02-19Prevent loading project-specific config in Project ManagerRémi Verschelde
The Project Manager should share the same settings as the editor most of the time. The whole init stuff with Main::setup and Main::start needs a good cleanup though. Fixes #15199.
2018-02-18Merge pull request #16749 from PJB3005/18-02-16-project-manager-mono-debug-fixIgnacio Etcheverry
Makes project manager never initialize mono debug.