Commit Graph

286 Commits

Author SHA1 Message Date
Rémi Verschelde 6e3f2f44af Use new XDG folders to dehardcode paths 2017-11-19 20:54:26 +01:00
Rémi Verschelde 32c12a92a5 Add initial support for the XDG Base Directory spec
Spec version 0.7 from https://standards.freedesktop.org/basedir-spec/basedir-spec-0.7.html
(latest as of this commit).

Three virtual methods are added to OS for the various XDG paths we will use:
- OS::get_data_path gives XDG_DATA_HOME, or if missing:
  ~/.local/share on X11, ~/Library/Application Support/ on macOS and %APPDATA% on Windows
- OS::get_config_path gives XDG_CONFIG_HOME, or if missing:
  ~/.config on X11, ~/Library/Application Support/ on macOS and %APPDATA% on Windows
- OS::get_cache_path gives XDG_CACHE_HOME, or if missing:
  ~/.cache on X11, ~/Library/Caches on macOS and %APPDATA% on Windows

So for Windows there are no changes, for Linux we follow the full split spec
and for macOS stuff will move from ~/.godot to ~/Library/Application Support/Godot.

Support for system-wide installation of templates on Unix was removed for now,
as it's a bit hackish and I don't think anyone uses it.

user:// will still be OS::get_data_path() + "/godot/app_userdata/$name" by
default, but when using the application/config/use_shared_user_dir option
it will now use XDG_DATA_HOME/$name, e.g. ~/.local/share/MyGame.

For now everything still goes in EditorSettings::get_settings_dir(), but
this will be changed in a later commit to make use of the new splitting
where relevant.

Part of #3513.
2017-11-19 20:54:24 +01:00
Rémi Verschelde 9f134aa5d1 Cleanup old references to GLES2 renderer
There are still some left in the Android Java code, even stuff to swap between
GLES1 and GLES2 support from early Godot days... would be good to see some cleanup
there too one day.

The "graphics/api" option for Android exports is removed, as only GLES 3.0 is supported.
It can be readded when GLES 2.0 support comes back. Fixes #13004.
2017-11-19 17:52:18 +01:00
Rémi Verschelde ad199c3964 EditorSettings: Rename settings_path to settings_dir
Also to prepare for upcoming refactoring for XDG support.
2017-11-17 20:55:09 +01:00
Rémi Verschelde 73049d115e Rename OS::get_data_dir to OS::get_user_data_dir
Will be needed to avoid confusion with system data path (XDG_DATA_HOME)
and editor data dir in upcoming refactoring.
2017-11-17 20:55:09 +01:00
Rhody Lugo 2355f545ec fix window position computation on macOS 2017-11-14 08:59:22 -04:00
Rhody Lugo 7f3ecd4227 change matrix and enable caching for Android, iOS and macOS (cross-compile) 2017-11-13 15:05:26 -04:00
Rémi Verschelde ed57f0a0d4 Remove get_default_video_mode definition on OSX/iOS
It had been missed in d09160a8b6 and broke compilation
for those platforms.

Took the opportunity to run clang-format on the code base to fix some corner cases
that went through our static tests/were overlooked recently.
2017-11-09 23:36:08 +01:00
Juan Linietsky d09160a8b6 Make video mode initialization more intuitive, fixes #12022 2017-11-09 13:02:26 -03:00
Juan Linietsky 7715a261d5
Merge pull request #12262 from AndreaCatania/pplug
Physics server plug
2017-11-03 23:39:44 -03:00
AndreaCatania 7a9ca08f16 Implemented physics plug
Moved init_physics

Implemented physics 2D plug

Fix clang

Fix clang

Fix static check

Fix clang

Fix static check

Moved physics server initialization

Moved physics server settings initialization
2017-11-04 03:25:51 +01:00
N0hbdy f3fc07272c Add Colemak keybindings to editor for osx 2017-10-30 22:51:02 +01:00
Rémi Verschelde 87694d1884 Disable logging until the logs location is sorted out
Temporary workaround for #12277.
2017-10-29 15:50:27 +01:00
Marcelo Fernandez ad4000d376 Implemented vsync OS functions for OS X 2017-10-23 13:26:33 -03:00
J08nY b1252caa10
Use binary names instead of absolute paths in calls to OS::execute.
Now that #12009 is merged, we should let the system find the binary on
the users $PATH and don't assume we know where to look for them in
different distributions.
2017-10-13 16:45:24 +02:00
Rémi Verschelde e8b9cca614 Merge pull request #11810 from marcelofg55/osx_export_improv
OS X export code improvements
2017-10-09 12:20:39 +02:00
Rémi Verschelde 2e0c7bb22a Merge pull request #11718 from poke1024/retina
Fixes some retina problems on multi monitor setups
2017-10-09 11:04:46 +02:00
N0hbdy a0c6fa68fb Fix python 3 build in osx-specific platform 2017-10-07 00:01:36 -07:00
Bernhard Liebl a7f18798aa fixes several scaling problems on multi monitor retina/non-retina setups on OS X 2017-10-05 08:12:17 +02:00
Juan Linietsky 3cadecf17b fixed the OS.has_feature() API, and added support for 32 and 64. 2017-10-03 17:36:14 -03:00
Marcelo Fernandez b6daa94a80 Improvements on the export code on OS X 2017-10-03 15:09:57 -03:00
Andreas Haas 132ba0ed97 Merge pull request #11568 from endragor/loggers
Extract logging logic
2017-10-02 23:51:26 +02:00
Poommetee Ketson 478fd21e07 Merge pull request #11575 from marcelofg55/move_path_to_trash
FileSystemDock will now remove files/dirs to trashcan using OS::move_to_trash
2017-10-02 23:52:09 +07:00
Marcelo Fernandez 12d40fa03f Merged iphone and osx audio drivers into drivers/coreaudio 2017-09-30 02:16:42 -03:00
Marcelo Fernandez 20918587d3 FileSystemDock will now remove files/dirs to trashcan using OS::move_to_trash 2017-09-25 21:49:01 -03:00
Elliott Sales de Andrade 45a9a680a3 Use BoolVariable for third-party options. 2017-09-25 14:36:30 -04:00
Elliott Sales de Andrade f9e463bce2 Use EnumVariable for choice-based build options. 2017-09-25 14:36:01 -04:00
Ruslan Mustakov 1a2311e350 Extract logging logic
Previously logging logic was scattered over OS class implementations
with plenty of duplication. Major changes in this commit:

 - Extracted logging logic into a separate Logger hierarchy. It allows
   easy configuration of logging mechanism depending on compile-time or
   run-time configuration.

 - Implemented RotatedFileLogger which is usually used with StdLogger,
   providing persistency of logs. It is often important to be able to
   obtain logs of the game even in production to be able to understand
   what happened prior to some problem. On mobile there previously was
   no way to obtain the logs aside from having the device connected to
   your machine.

 - flush() is not performed in release mode for every logged line. It
   is only performed for errors.
2017-09-25 16:19:21 +07:00
BastiaanOlij 9d04f89beb Removed get_resource_dir from osx platform 2017-09-24 19:37:22 +10:00
BastiaanOlij 86c66597f3 Comment out code that is causing project loading to fail on osx 2017-09-22 13:05:53 +10:00
Rémi Verschelde e8a0c5da77 Merge pull request #11243 from hpvb/add-debug-info-on-release
Create separate debug info files by default
2017-09-21 10:30:17 +02:00
letheed 5ad9be4c24 Rename pos to position in user facing methods and variables
Rename user facing methods and variables as well as the corresponding
C++ methods according to the folloming changes:

* pos -> position
* rot -> rotation
* loc -> location

C++ variables are left as is.
2017-09-20 13:11:10 +02:00
Marcelo Fernandez 9a0aa45d5c Fix crash handler not including stdlib.h 2017-09-19 11:21:45 -03:00
Marcelo Fernandez ff1e0a3e2c Prevent running the crash_handler when a debugger is present on windows 2017-09-18 16:29:23 -03:00
Rémi Verschelde 53bbc046ee Merge pull request #11252 from marcelofg55/fix_noaudio_crash
Fix crash when no audio driver is available
2017-09-17 22:48:22 +02:00
Hein-Pieter van Braam 88be952fc9 Create separate debug info files by default
Now that we have a built-in stacktrace on a segfault it would be useful
to have debug information on debug_release builds so that bugreports can
include this information. Without this debug info we will still get
function names in the backtrace but not file location.

This commit will by default build all targets with minimal debug info
and then strip the information into separate files. On MacOS this is a
.dSYM file, on Linux/MingW this is a .debug file. MacOSX will
automatically load a dSYM file if it exists in its debugger. On
Linux/MingW we create a 'gnu debuglink' meaning that gdb and friends
will automatically find the debug symbols if they exist.

Existing workflow for developers does not change at all, except that we
now create two instead of one build artifact by default.

This commit also adds a 'debug_symbols' option to X11, MacOS, and MingW
targets. The default is 'yes' which corresponds to -g1. The alternatives
are 'no' (don't generate debug infos at all) or 'full' which runs with
-g2. A target=debug build will now build with -g3.
2017-09-16 12:00:46 +02:00
Thomas Herzog 7dffed485b Merge pull request #11230 from maxim-sheronov/fix_enum_bindings
Fix enums bindings
2017-09-15 08:43:35 +02:00
Marcelo Fernandez 7a4c0ff35e Fix crash when no audio driver is available 2017-09-13 20:54:55 -03:00
Maxim Sheronov 0fffa45158 Fix enums bindings
Add missed bindings for enums
Move some enums to class to have correct output of api.json
2017-09-13 20:57:07 +03:00
Marcelo Fernandez 83fe937362 Added a crash handler to dump the backtrace on Windows, Linux and OS X 2017-09-13 10:07:23 -03:00
Rémi Verschelde 42504ef0d4 Merge pull request #11062 from BastiaanOlij/osx_datapack
Fixed loading package from resource folder, exporting textures to bun…
2017-09-13 11:11:01 +02:00
Marcelo Fernandez 730d36f350 Fixed issues with surround sound on audio server 2017-09-12 15:13:28 -03:00
Marcelo fb871b5ada Implemented DirAccess get_drive and get_drive_count for OS X 2017-09-11 23:46:34 -03:00
BastiaanOlij 099546ac00 Fixed loading package from resource folder, exporting textures to bundle and added a bit of feedback for a debug compile 2017-09-08 11:39:32 +10:00
Rémi Verschelde 3694c58d3c Merge pull request #10775 from marcelofg55/buffersize_fixes
Corrections to audio buffer size calculations
2017-09-01 21:41:24 +02:00
Marcelo Fernandez f231eadc9e Corrections to audio buffer size calculations 2017-09-01 11:12:13 -03:00
Poommetee Ketson ed606ded52 Fix files header 2017-09-01 21:07:55 +07:00
poke1024 9d841b5336 Implements OS_OSX::get_system_dir() 2017-08-29 20:31:03 +02:00
Matthias Hoelzl b6e1e47e3a Make build scripts Python3 compatible
- The Windows, UWP, Android (on Windows) and Linux builds are
  tested with Scons 3.0 alpha using Python 3.
- OSX and iOS should hopefully work but are not tested since
  I don't have a Mac.
- Builds using SCons 2.5 and Python 2 should not be impacted.
2017-08-27 23:05:39 +02:00
Rémi Verschelde bd282ff43f Use HTTPS URL for Godot's website in the headers 2017-08-27 14:16:55 +02:00
Fabio Alessandrelli d7f08ead4e Allow building fat binaries with osxcross 2017-08-23 15:44:22 +02:00
Rémi Verschelde 7f49e2a7a0 Merge pull request #10487 from marcelofg55/curscr_as_default
p_screen param from get_screen_* funcs now default to the current screen
2017-08-22 08:12:04 +02:00
Rémi Verschelde df590fc2d3 Merge pull request #10340 from Rubonnek/remove-unnecessary-assignments
Removed unnecessary assignments
2017-08-22 00:58:12 +02:00
Rémi Verschelde 13f879587d Merge pull request #10254 from marcelofg55/master
Added notification const NOTIFICATION_WM_ABOUT
2017-08-22 00:56:31 +02:00
Marcelo Fernandez 63f847b306 p_screen param from get_screen_* funcs now default to the current screen 2017-08-21 18:28:29 -03:00
Wilson E. Alvarez 738d2ab969 Removed unnecessary assignments 2017-08-21 15:15:55 -04:00
Marcelo Fernandez c6edf1821e Fix y axis for set_window_position on OS X 2017-08-21 12:36:04 -03:00
Marcelo Fernandez eab850524e Add closest_power_of_2 func and implement mix_rate/latency on OS X 2017-08-17 19:51:13 -03:00
Marcelo Fernandez aae29c7a0e Added notification const NOTIFICATION_WM_ABOUT 2017-08-17 11:28:45 -03:00
bruvzg 8aa86cb9bc Implement NSTextInputClient protocol for IME 2017-08-09 19:09:33 +03:00
toger5 2286037bc3 removed calls to cursor_set_visible on all platforms fixes #10167 2017-08-08 14:04:22 +02:00
Rémi Verschelde b0dfec77c2 Merge pull request #10127 from bruvzg/3.0-osx-logging
Duplicate error messages to macOS logging system (Console.app)
2017-08-07 14:58:25 +02:00
Rémi Verschelde ae88eb5b50 Merge pull request #10099 from bruvzg/3.0-fix-osx-warp_mouse_pos
Fix warp_mouse_pos on macOS
2017-08-07 14:47:54 +02:00
bruvzg 68bf243461 Duplicate error messages to macOS logging system 2017-08-06 21:55:30 +03:00
Bojidar Marinov 7b7c7c8dc0
Rename KEY_RETURN to KEY_ENTER and KEY_ENTER to KEY_KP_ENTER
Closes #7695
2017-08-06 16:26:07 +03:00
bruvzg 0ed3da8e2a Fix warp_mouse_pos on macOS 2017-08-04 23:43:32 +03:00
Rémi Verschelde 76005a8e75 Style: Apply clang-format on all files
Thus fixing some invalid changes that had still made it to the master branch.
2017-07-30 22:53:40 +02:00
Marcelo Fernandez 76821bbb47 Fix mutex initialisation in OS X Audio Driver 2017-07-30 16:35:08 -03:00
Rémi Verschelde 263452ee91 Merge pull request #9960 from marcelofg55/master
Fix get_screen_* funcs returning old values after resolution changes on OS X
2017-07-30 20:59:04 +02:00
Marcelo Fernandez abbf821ddf Fix get_screen_* funcs returning old values after resolution changes on OS X 2017-07-28 18:08:57 -03:00
bruvzg d18922a56e Change display scale when moving the window from monitor to monitor 2017-07-28 20:17:19 +03:00
Rémi Verschelde a7b35edf7b Merge pull request #9874 from bruvzg/3.0-osx-menu
Add macOS main menu (3.0)
2017-07-28 11:05:05 +02:00
Rémi Verschelde 5caf9d0d08 Merge pull request #9876 from bruvzg/3.0-resize-fix
Improved macOS window resizing behaviour (3.0)
2017-07-28 11:02:28 +02:00
bruvzg 3220fee6b2 Fix is_window_fullscreen() and set_window_fullscreen() behaviour after window has entered/left full-screen mode via green zoom button.
Fix get/set_current_screen & set_window_maximized.
2017-07-27 10:05:33 +03:00
bruvzg f98a203377 Add macOS main menu 2017-07-27 10:05:29 +03:00
bruvzg 1c1565d0f9 Improved macOS window resizing behaviour. 2017-07-26 16:29:48 +03:00
bruvzg 7de7ca8ae4 Remove duplicate keycode constant for Numpad Enter key. 2017-07-26 14:43:02 +03:00
Marcelo Fernandez 2c27501c3f Fix Right-Click (Ctrl-Click) on OS X 2017-07-23 12:45:59 -03:00
Rémi Verschelde e5aa8546ec Merge pull request #9713 from marcelofg55/master
Fix for possible crash in OS X audio init.
2017-07-23 13:05:49 +02:00
Juan Linietsky 25678b1876 -Renamed GlobalConfig to ProjectSettings, makes more sense.
-Added system for feature overrides, it's pretty cool :)
2017-07-19 17:06:03 -03:00
Marcelo Fernandez bbc207675f Fix for possible crash in OS X audio init. 2017-07-19 11:05:51 -03:00
geequlim 5a2500f580 Fix errors with global config names no more sorrys please 2017-07-19 09:25:50 +08:00
Juan Linietsky bbada82f80 -Reorganized all properties of project settings (Sorry, Again).
(Lot's of bloat accumulated, so it was time for clean up.)
-Made EditorSettings and ProjectSettings search more useful (search in sections too)
2017-07-17 22:18:58 -03:00
Marcelo Fernandez 764f607611 Reinit audio device when the system default device changes on OS X 2017-07-16 23:35:23 -03:00
BastiaanOlij e735963182 Fix typo in plist export 2017-07-06 00:14:05 +10:00
Rémi Verschelde 5a48b428fd Merge pull request #9476 from marcelofg55/master
Implemented borderless fullscreen code on OSX.
2017-07-05 10:51:55 +02:00
Rémi Verschelde 5c1995ef49 Merge pull request #9468 from BastiaanOlij/osx_export_dmg
On OSX export to DMG and optionally code sign the app bundle
2017-07-03 23:25:43 +02:00
Marcelo Fernandez a9c5895c16 Implemented borderless fullscreen code on OSX. 2017-07-02 23:40:44 -03:00
BastiaanOlij 7ddf3d6cc4 On OSX export to DMG and optionally code sign the app bundle 2017-07-02 21:23:33 +10:00
Rémi Verschelde e91a267a7c Buildsystem: Improve detect.py readability and fix issues
Tried to organize the configure(env) calls in sections, using the same order
for all platforms whenever possible.

Apart from cosmetic changes, the following issues were fixed:
- Android: cleanup linkage, remove GLESv1_CM and GLESv2
- iPhone: Remove obsolete "ios_gles22_override" option
- OSX:
  * Fix bits detection (default to 64) and remove obsolete "force_64_bits" option
    (closes #9449)
  * Make "fat" bits argument explicit
- Server: sync with X11
- Windows: clean up old DirectX 9 stuff
- X11:
  * Do not require system OpenSSL for building (closes #9443)
  * Fix typo'ed use_leak_sanitizer option
  * Fix .llvm suffix overriding custom extra_suffix
2017-07-01 08:20:51 +02:00
Marcelo Fernandez fd7976ddd7 Implemented borderless window code for OSX. 2017-06-27 16:57:28 -03:00
Poommetee Ketson e3998528e0 BuildSystem: generated files have .gen.extension 2017-06-25 07:55:01 +07:00
BastiaanOlij 5b44f092f9 Reimplement export module for OSX 2017-06-23 00:01:55 +10:00
ageazrael 109ad227d3 Used in the macOS HiDPI options window is too small 2017-06-13 09:54:55 +08:00
ageazrael b3accab62d Fixed middle mouse button can't bounce in macOS 2017-06-13 09:27:49 +08:00
Juan Linietsky bcc435094d Restired multithread support in OSX and Windows, should stop the crashes. 2017-06-10 10:15:33 -03:00
toger5 328d0e2b4e osx release right button event fixed
RIGHT_MOUSE_BUTTON was not removed from the button mask (instead it was added...)
fixes #9079
2017-06-06 19:40:06 -07:00
alexholly a3c90b0293 renamed all Rect2.pos to Rect2.position 2017-06-04 02:09:17 +02:00
Andreas Haas 9bc5348961
InputEvent: Renamed "pos" property to "position"
Make the naming consistent with other classes.
2017-06-03 11:26:39 +02:00
volzhs 0627445863 Make OS.get_locale() returns same value 2017-05-27 03:50:22 +09:00