Commit Graph

1880 Commits

Author SHA1 Message Date
Viktor Ferenczi c5bd0c37ce Running builder (content generator) functions in subprocesses on Windows
- Refactored all builder (make_*) functions into separate Python modules along to the build tree
- Introduced utility function to wrap all invocations on Windows, but does not change it elsewhere
- Introduced stub to use the builders module as a stand alone script and invoke a selected function

There is a problem with file handles related to writing generated content (*.gen.h and *.gen.cpp)
on Windows, which randomly causes a SHARING VIOLATION error to the compiler resulting in flaky
builds. Running all such content generators in a new subprocess instead of directly inside the
build script works around the issue.

Yes, I tried the multiprocessing module. It did not work due to conflict with SCons on cPickle.
Suggested workaround did not fully work either.

Using the run_in_subprocess wrapper on osx and x11 platforms as well for consistency. In case of
running a cross-compilation on Windows they would still be used, but likely it will not happen
in practice. What counts is that the build itself is running on which platform, not the target
platform.

Some generated files are written directly in an SConstruct or SCsub file, before the parallel build starts. They don't need to be written in a subprocess, apparently, so I left them as is.
2018-07-27 21:37:55 +02:00
Hein-Pieter van Braam 0e29f7974b Reduce unnecessary COW on Vector by make writing explicit
This commit makes operator[] on Vector const and adds a write proxy to it.  From
now on writes to Vectors need to happen through the .write proxy. So for
instance:

Vector<int> vec;
vec.push_back(10);
std::cout << vec[0] << std::endl;
vec.write[0] = 20;

Failing to use the .write proxy will cause a compilation error.

In addition COWable datatypes can now embed a CowData pointer to their data.
This means that String, CharString, and VMap no longer use or derive from
Vector.

_ALWAYS_INLINE_ and _FORCE_INLINE_ are now equivalent for debug and non-debug
builds. This is a lot faster for Vector in the editor and while running tests.
The reason why this difference used to exist is because force-inlined methods
used to give a bad debugging experience. After extensive testing with modern
compilers this is no longer the case.
2018-07-26 00:54:16 +02:00
PanPan 746a15142f change framework name CoreMidi to CoreMIDI 2018-07-26 00:06:17 +08:00
Rémi Verschelde a501678ba1
Merge pull request #20154 from marcelofg55/midi_driver
Added a new MIDIDriver class
2018-07-25 01:17:57 +02:00
Rémi Verschelde d1624cca99
Merge pull request #20245 from bruvzg/fix_win_pp_transp
Fix OpenGL buffer depth for per pixel transparency support (Windows)
2018-07-24 22:36:24 +02:00
Wilson E. Alvarez a22e746bc3 Removed unnecessary assignments 2018-07-24 09:51:03 +02:00
Rémi Verschelde 8e4de57e56 SCons: Add "execinfo" option to force linking libexecinfo
Fixes #20035.
2018-07-22 19:03:52 +02:00
Juan Linietsky 2b9902db06 -Fix disable_3d flag
-Add extra flag optimize=[size,speed] to be able to prioritize size
2018-07-21 17:26:49 -03:00
Marcelo Fernandez 7a5f9fc08e Added a new MIDIDriver class 2018-07-21 09:09:42 -03:00
Rémi Verschelde 814fdd3985 Fix some more build issues after c69de2ba4
Fixes #20301.
2018-07-20 11:56:18 +02:00
Rémi Verschelde 8c9e10553c Fix build issues and typos after c69de2ba4 2018-07-20 08:37:10 +02:00
Juan Linietsky c69de2ba46 -Project/Editor settings now use new inspector
-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-19 19:02:04 -03:00
bruvzg 31a0b9eaed
Fix OpenGL buffer depth for per pixel transparency support (Windows, NVIDIA) 2018-07-18 17:40:20 +03:00
Rémi Verschelde 7c9f7452f4 Style: Format code with clang-format 6.0.1 2018-07-18 16:27:03 +02:00
Rémi Verschelde 26d3e31e05
Merge pull request #20132 from ibrahn/fix-android-device-poll-thread
fixed branch on uninit and data race in editor android device polling
2018-07-17 14:48:49 +02:00
volzhs d18235bc38 Fix keep screen on property path for Android/iOS/UWP 2018-07-17 18:45:57 +09:00
Ibrahn Sahir fe4265ad46 fixed branch on uninit and data race in editor android device polling
Initialised relevant variables before stating thread,
to prevent a branch on uninitialised data.
Fixed race condition in polling that could miss a device change.
2018-07-13 13:30:50 +01:00
George Marques a684e853ab
UWP: Add support for GLES2 driver 2018-07-12 16:21:35 -03:00
Max Hilbrunner 29e70fa5ce
Merge pull request #19840 from jjay/ios_screen_orientation
Respect window/handheld/orientation setting in iOS
2018-07-12 05:23:57 +02:00
Leon Krause b6ae2d8037 Refactor OS_JavaScript 2018-07-10 16:57:56 +02:00
unknown 9cc41a59ac Added support for extra mouse buttons. 2018-07-09 14:34:19 +03:00
Hein-Pieter van Braam e2b7a68db4
Merge pull request #20041 from hpvb/fix-android-export
Write new permissions to the AndroidManifest.xml
2018-07-08 15:47:12 +02:00
Hein-Pieter van Braam 2a126242dd Write new permissions to the AndroidManifest.xml
Instead of editing the placeholder permissions actually write new ones.
This should solve the privacy statement problems for the Play store.
This means we also no longer need to placeholder permissions in the
template.
2018-07-08 14:58:15 +02:00
Patrick Kaster 8bb90fd5f3 added 'android_add_asset_dir('...') method to Android module gradle build config
(cherry picked from commit 9190ae2be7)
2018-07-05 01:58:33 +02:00
Juan Linietsky 085483e885 -Fix fullscreen on Windows with a HiDPI monitor but a non-HiDPI project
-Replaced some viewport size calls to screen size, since viewport size should be deprecated at this point..
2018-07-03 18:53:27 -03:00
Max Hilbrunner 28ebddd49e
Merge pull request #19799 from kosz78/android-payment-fix
Fix possible NullPointerException crash on cancel payment
2018-07-03 18:52:10 +02:00
Max Hilbrunner 2017119a3d
Merge pull request #19919 from marcelofg55/notif_crash
Add a new notification to detect crashes on native scripts
2018-07-03 18:42:49 +02:00
Rémi Verschelde 1d57d03ea0
Merge pull request #19934 from volzhs/gles2-android
Change required gles version to 2 for android
2018-07-03 17:34:11 +02:00
volzhs 1262f940c1 Change required gles version to 2 for android 2018-07-04 00:29:23 +09:00
Max Hilbrunner bb8844d8d7
Merge pull request #19708 from RandomShaper/fix-windows-touch
Fix touch issues on Windows
2018-07-03 15:41:14 +02:00
Marcelo Fernandez deebeb2742 Add a new notification to detect crashes on native scripts 2018-07-02 16:18:58 -03:00
Yasha Borevich f78e5e5725 Respect window/handheld/orientation setting in iOS 2018-07-01 22:08:37 +03:00
Hugo Locurcio 53e94a1ce1
Optimize images losslessly using `oxipng -o6 --strip all --zopfli` 2018-06-28 19:17:41 +02:00
Konstantin Zaitsev d05db4de8e Fix possible NullPointerException crash on cancel payment 2018-06-27 14:12:53 +07:00
Pedro J. Estébanez 2f161ffd4f Fix touch issues on Windows 2018-06-26 20:00:23 +02:00
Rémi Verschelde 07af826051
Merge pull request #19766 from GodotExplorer/android-gles2
Implement OpenGL ES rasterizer selection logic for Android.
2018-06-26 10:00:25 +02:00
geequlim e2aa777d4d Implement OpenGL ES rasterizer selection logic for Android. 2018-06-26 12:21:06 +08:00
Rémi Verschelde 74bd1bf1c2
Merge pull request #19718 from thduynguyen/bug_fixes
bugfix: correct #ifdef for TOUCH_ENABLED and OPENGL_ENABLED
2018-06-25 16:10:40 +02:00
Duy-Nguyen Ta 25ad5f8a35 bugfix: correct #ifdef for TOUCH_ENABLED and OPENGL_ENABLED 2018-06-22 10:42:28 -04:00
Saracen c5bdb5b1d8 IME context detection. 2018-06-11 17:22:11 +01:00
Rémi Verschelde 69058d33fc
Merge pull request #19443 from eska014/html5-audio-refactor
Detect channel count and mix rate in HTML5 audio driver
2018-06-08 18:04:59 +02:00
Leon Krause 8d3ca2c137 Detect channel count, mix rate, and buffer length in HTML5 audio driver
Refactor WebAudio driver.
2018-06-08 02:50:58 +02:00
Hugo Locurcio d54b5da940
Tweak some help texts in the build system
This also removes `unix_global_settings_path` from SConstruct
since it is no longer used.
2018-06-07 21:40:54 +02:00
Juan Linietsky efdd0c4b89 Oops, for some reason gedit used this file as my notebook, though I made a new one. 2018-06-07 12:52:00 -03:00
Juan Linietsky b659fd6d74 Entirely new (and much improved) animation editor. 2018-06-07 12:52:00 -03:00
Rémi Verschelde 7d392cd6f4 SCons: Allow unbundling libwebsockets and miniupnpc 2018-06-07 10:42:30 +02:00
Rémi Verschelde f392650be2 Improve return value of OS.execute in blocking/non-blocking variants
Initialized the PID to -2, which will be the value returns in blocking-
mode where the PID is not available. (-1 was already taken to signify an
execution failure).

OS::execute will now properly return a non-OK error code when it fails
to execute the target file.

The documentation was rewritten to be very clear about the differences
between blocking and non-blocking mode.

Fixes #19056.
2018-05-30 12:55:17 +02:00
Dmitry Pupinin 46bab3abc7 Allow setting higher numbers in Android version/code 2018-05-29 11:59:23 +02:00
Guilherme Felipe c8e0ec0580 Change position of validation in set_custom_mouse_cursor 2018-05-28 09:36:30 -03:00
Max Hilbrunner 856d945248
Merge pull request #19210 from guilhermefelipecgs/fix_invalid_image
Add validation in set_custom_mouse_cursor
2018-05-28 12:52:10 +02:00
Guilherme Felipe aad6bdad94 Add validation in set_custom_mouse_cursor
Check if the image is valid.
2018-05-27 20:55:05 -03:00
Guilherme Felipe aa174d963d Fix memory leak in set_custom_mouse_cursor 2018-05-26 15:56:35 -03:00
Max Hilbrunner fd1ee14056
Merge pull request #19148 from mhilbrunner/mhilbrunner-js-log
Javascript: Remove weird log
2018-05-24 21:11:17 +02:00
Max Hilbrunner 0c56e011ad
Javascript: Remove weird log 2018-05-24 20:18:21 +02:00
Guilherme Felipe 8c17d8e6fe More fixes to set_borderless_window
[x11] Preserve window size when calling this method.
[osx] Make sure it don't make the window resizable if it's not needed.
[windows] clean up the code.
2018-05-23 17:42:31 -03:00
Max Hilbrunner 0980991e64
Merge pull request #19070 from guilhermefelipecgs/fix_19033
Fix mouse confined and set_borderless_window
2018-05-21 18:30:11 +02:00
Max Hilbrunner 3ac7f08b55
Merge pull request #19082 from guilhermefelipecgs/fix_cursor
Fix cursor not displaying arrow when transiting from mode captured to visible.
2018-05-21 18:26:42 +02:00
Guilherme Felipe 9af14ac1db Fix #15678
Fix cursor not displaying arrow when transiting from mode captured to
visible.
2018-05-21 14:37:30 -03:00
Fabio Alessandrelli 875d822d77 Fix OSXCROSS build with clang-6.0 2018-05-21 16:16:16 +02:00
Guilherme Felipe 28d24c4f66 Fix #19033
- Fix a bug when mouse is confined don't update the cursor shape.
- Don't let the mouse leave the window when resizing to a smaller
resolution when MOUSE_MODE_CONFINED.
- Fix set_borderless_window to preserve the actual video_mode.widht/height.
2018-05-20 20:53:04 -03:00
Rémi Verschelde 82042bdd03
Merge pull request #18893 from eska014/html5-reldeb-Os
Build HTML5 release_debug with -Os
2018-05-16 22:50:45 +02:00
Daniele Giuliani d315b0fb8a added get_creation_time function for gdscript 2018-05-16 00:50:57 +02:00
Rémi Verschelde 57d257c361
Merge pull request #18680 from Gamblify/DummyTextureLoader
Dummy texture importer
2018-05-15 10:27:07 +02:00
Leon Krause 975c0516a4 Build HTML5 release_debug with -Os, like release.
The increased build time is negligible in comparison to the decreased
file size.
2018-05-14 15:31:16 +02:00
Leon Krause 504ffda8d7 Small refactoring in HTML5 build scripts
Drop logic for non-existent 'profile' target
2018-05-14 15:30:27 +02:00
Max Hilbrunner 0db3d1d2a7
Merge pull request #15739 from poke1024/macos-catch-exception
Catch NSException in macOS run loop to prevent crashs
2018-05-13 23:51:20 +02:00
bruvzg 096eb38fb0
[macOS] Fix numeric keys scan-codes remapping. 2018-05-13 22:19:08 +03:00
Rémi Verschelde 0902915c33
Merge pull request #18751 from guilhermefelipecgs/fix_cursor_osx
Fix custom cursor disappearing on osx
2018-05-11 14:23:13 +02:00
Ruslan Mustakov 08a924bcee Proper focus in/out handling on iOS
PR #18675 (commit 96301e9) revealed a problem with how iOS lifecycle
callbacks were handled by Godot. Before that PR it was possible to get
NOTIFICATION_WM_FOCUS_IN callback without getting the corresponding
NOTIFICATION_WM_FOCUS_OUT. That commit added a flag to ensure they are
always coupled, but now there is an issue when, for example, you open a
notification panel on iOS without moving the app to background.
It resulted in view.stopAnimation being called without the
corresponding startAnimation when the app moves to foreground again, so
it looked like the game hanged.

I changed focus out notification to be sent in applicationWillResignActive,
because it makes more sense than to do it in applicationDidEnterBackground,
because it is always called in pair with applicationDidBecomeActive, where
focus in is sent. applicationDidEnterBackground may not come under
circumstances that are now described as a comment in code.
2018-05-11 17:19:39 +07:00
Guilherme Felipe 50a0220d2d Reset the cursor with Input.set_custom_mouse_cursor(null) 2018-05-10 20:02:12 -03:00
Rémi Verschelde a415efa4b7
Merge pull request #18765 from eska014/enginejs-extalt
Facilitate using non-default filename extensions in HTML5 platform
2018-05-10 21:57:07 +02:00
Max Hilbrunner 486ec499f3
Merge pull request #18766 from eska014/html5-localcustomshell
Use local path for custom HTML5 shell export
2018-05-10 16:51:13 +02:00
Leon Krause d1970888d3 Use local path for custom HTML5 shell export 2018-05-10 15:31:44 +02:00
Leon Krause 96f907c023 Accept non-default main packs in engine.js startGame()
Allows using startGame() with main packs exported as .zip, but also any
other custom extension, for example if a web game host does not allow
the .pck filename extension.
2018-05-10 15:08:19 +02:00
Max Hilbrunner f20af4b632
Merge pull request #18753 from eska014/html5-iframefocus
Fix keyboard focus lock-out with HTML5 canvas in iframe
2018-05-10 15:01:24 +02:00
Leon Krause 32eb3e1b7d Add Engine.setWebAssemblyFilenameExtension()
Some web game hosts only allow certain filename extensions. If .wasm is
not allowed, this function allows overriding the WebAssembly filename
extension to work around that restriction.
2018-05-10 14:50:34 +02:00
Leon Krause 9080e96bc8 Fix keyboard focus lock-out with HTML5 canvas in iframe 2018-05-10 02:42:47 +02:00
Rémi Verschelde fe82b5a122
Merge pull request #18749 from eska014/html5-mousecapture-rel
Fix relative motion with captured mouse in HTML5 platform
2018-05-10 01:26:49 +02:00
Guilherme Felipe 48f9e6a05b Fix custom cursor disappearing on osx 2018-05-09 20:06:59 -03:00
Leon Krause d78b10313b Fix relative mouse motion when captured in HTML5 platform 2018-05-10 01:02:48 +02:00
Rémi Verschelde 1380040337
Merge pull request #18716 from guilhermefelipecgs/support_for_atlas_tex_on_cursor_2
Add support for atlas texture on set_custom_mouse_cursor
2018-05-09 19:53:56 +02:00
Guilherme Felipe 8ead09342d Add support for atlas texture on set_custom_mouse_cursor 2018-05-09 12:44:43 +00:00
Gustav Lund 3dcf338ebb Dummy texture importer
Added a dummy importer for textures to use with the server platform.
Allows for running a project in headless mode without crashing when loading scenes containing textured objects
Also as a result decreases load time as no image files have to be loaded.
2018-05-09 08:13:02 +02:00
Hein-Pieter van Braam 07f590046a For uwp the ARM architecture needs to be in lower case 2018-05-09 01:16:05 +02:00
Rémi Verschelde 720e2f7b09
Merge pull request #18726 from volzhs/remove-legacy
Remove android compatibility under API 16
2018-05-08 23:49:37 +02:00
volzhs 2f8f34ceaf Remove android compatibility under API 16 2018-05-09 06:01:33 +09:00
Hein-Pieter van Braam e668757aa9
Merge pull request #14622 from bruvzg/non-rectangular-windows
Experimental support for windows with per-pixel transparency.
2018-05-08 16:44:35 +02:00
Rémi Verschelde a6552819b1 Android: Increase targetSdkVersion to 27
Matches the change for 2.1 in #18626, and the new requirements from Google
for new apps starting with August 2018 (targetSdkVersion 26 or higher):
https://android-developers.googleblog.com/2017/12/improving-app-security-and-performance.html
2018-05-08 15:29:42 +02:00
Rémi Verschelde 7e39647623
Merge pull request #18665 from mhilbrunner/build-sdk
Windows detect.py: Detect missing WindowsSdkDir
2018-05-08 10:21:54 +02:00
Max Hilbrunner af128f6d39
Merge pull request #16573 from StateOff/more_console_debugging
Local debugging fix & extensions
2018-05-08 07:00:45 +02:00
Blazej Floch c45f44d856 Local debugger fixes and extensions
- 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-07 23:17:06 -04:00
Max Hilbrunner c32b24da70
Merge pull request #18627 from RameshRavone/patch-2
Fix: JAR files signed with the MD5 algorithm as unsigned (godot 3)
2018-05-08 04:31:20 +02:00
RameshRavone d3182248c4
Fix: JAR files signed with the MD5 algorithm as unsigned 2018-05-07 21:02:53 +05:30
Ruslan Mustakov 96301e934d Resume audio on iOS after phone call or alarm
When a phone call or an alarm triggers on iOS, the application receives
an "audio interruption" and it's up to the application to resume
playback when the interruption ends. I added handling for audio
interruptions same as if the game is focused out and then back in.
2018-05-07 15:48:46 +07:00
Max Hilbrunner a6b191e3e0
Windows detect.py: Detect missing WindowsSdkDir 2018-05-07 00:42:12 +02:00
Max Hilbrunner a53b08861a
Merge pull request #18541 from profan/fix/win-sleep
Windows: ensure minimum possible timer resolution for sleep
2018-05-05 06:47:13 +02:00
Rémi Verschelde 18c28c159d
Merge pull request #17196 from RandomShaper/improve-gui-touch
Implement universal translation of touch to mouse (3.1)
2018-05-02 10:47:49 +02:00
Rémi Verschelde de97339a2d
Merge pull request #18291 from akien-mga/coverity-uninitialized-scalar-var
Fix Coverity reports of uninitialized scalar variable
2018-05-01 19:14:07 +02:00
Robin Hübner 8cb1ff9452 windows: ensure minimum possible timer resolution for sleep 2018-05-01 09:58:16 +02:00
Pedro J. Estébanez de9d40a953 Implement universal translation of touch to mouse
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-30 19:03:38 +02:00