Commit graph

2377 commits

Author SHA1 Message Date
Rémi Verschelde
f0893235a5
Merge pull request #25032 from akien-mga/static-analysis
Fix some errors found by static analysis
2019-01-16 11:18:53 +01:00
Rémi Verschelde
053d7f3765 Fix some errors found by static analysis
Fixes items 10, 16 and 19 from PVS-Studio blog post
in #24014.
2019-01-16 10:59:45 +01:00
George Marques
31433ae8e4 GDScript: check for underscore prefix when type-checking
Some classes are represented internally with an underscore prefix, so we
need to make sure we match this representation when type-checking,
otherwise the check might fail on a valid scenario.
2019-01-15 19:50:48 -02:00
George Marques
4f72c6be8a GDScript: consider constructors as always existing
There's always a constructor, even if implicit, especially for native
types.

Also don't check for signature match on function call, since this
information is not available in release builds.
2019-01-15 19:15:19 -02:00
George Marques
b0c3a3f2da GDScript: allow objects to be keys of dictionaries
The engine allows this already, so the parser should not fail in this
case.
2019-01-15 18:18:03 -02:00
George Marques
573fab7447 GDScript: don't check types on release builds
A lot of information is missing on release, and the checks might take a
performance hit. Also, having GDScript more lenient on release is
usually desirable.
2019-01-15 17:02:15 -02:00
George Marques
4d1551dbb5 GDScript autocomplete: don't carry values when guessing from is
Guessing the type from an `is` operator should no be considered an
assigment. This would cause crashes in certain scenarios.
2019-01-15 16:03:56 -02:00
Anish
8c1677fc3f Fixed infinite loop at end of video.
A missing condition caused infinite looping, despite
the video playing flag being set to false.
Small change to fix.

Fixes: #20552
2019-01-12 00:51:59 +05:30
Rémi Verschelde
658296856c
Merge pull request #24877 from neikeq/issue-24280
Fix properties being lost when reloading placeholder GDScript instance
2019-01-10 18:02:57 +01:00
Rémi Verschelde
9eb9335608 doc: Sync classref with current source + AUTHORS edit 2019-01-10 14:34:29 +01:00
Rémi Verschelde
899ad484e3
Merge pull request #24883 from akien-mga/resourceformat-unregister
Consistency in resource format saver/loader de-registration
2019-01-10 14:25:09 +01:00
Rémi Verschelde
5bf8bdc971
Merge pull request #24884 from Xrayez/fix-#24881
Fix broken encrypted scripts during export
2019-01-10 13:12:33 +01:00
Andrii Doroshenko (Xrayez)
c0cc032799 Fix broken encrypted scripts during export
Use temporary cache directory instead of editor settings directory
in order to resolve encrypted file access needed for encrypting scripts
on all platforms.
2019-01-10 13:53:12 +02:00
Rémi Verschelde
e5f1d19352 Consistency in resource format saver/loader de-registration
Some used 'is_valid()' checks, others not. Validity is already checked in 'unref()',
and 'remove_resource_format_*()' has an ERR_FAIL condition on 'is_null()' already
(which shouldn't happen since we're only unregistering things that we previously
registered.

Also add missing GDCLASS statement in ResourceFormatLoaderVideoStreamGDNative,
missed in #20552 which was last amended before #19501 was merged.
2019-01-10 12:45:57 +01:00
Marcin Zawiejski
7860b74b0f
Remove vsgdnative loader on exit 2019-01-10 07:19:16 +01:00
Ignacio Etcheverry
ea85ff0dc2 Fix properties being lost when reloading placeholder GDScript instance
During reloading in `GDScriptLanguage::reload_all_scripts` a placeholder instance that must remain so is replaced with a new placeholder instance. The state is then restored by calling `ScriptInstance::set` for each property. This does not work if the script is missing the properties due to build/parse failing.
The fix for such cases is to call `placeholder_set_fallback` instead of `set` on the script instance.

I took this chance to move the `build_failed` flag from `PlaceHolderScriptInstance` to `Script`. That improves the code a lot. I also renamed it to `placeholder_fallback_enabled` which is a much better name (`build_failed` could lead to misunderstandings).
2019-01-10 01:58:50 +01:00
Rémi Verschelde
fe8cdafbf4
Merge pull request #20552 from KidRigger/gsoc-peer
Added interface for GDNative Videodecoder.
2019-01-09 17:30:09 +01:00
Hein-Pieter van Braam
e5b335d367 Don't use -ffast-math or other unsafe math optimizations
Godot supports many different compilers and for production releases we
have to support 3 currently: GCC8, Clang6, and MSVC2017. These compilers
all do slightly different things with -ffast-math and it is causing
issues now. See #24841, #24540, #10758, #10070. And probably other
complaints about physics differences between release and release_debug
builds.

I've done some performance comparisons on Linux x86_64. All tests are
ran 20 times.

Bunnymark: (higher is better)
(bunnies)    min    max  stdev average
fast-math   7332   7597    71     7432
this pr     7379   7779   108     7621 (102%)

FPBench (gdscript port http://fpbench.org/) (lower is better)
(ms)
fast-math  15441  16127   192    15764
this pr    15671  16855   326    16001  (99%)

Float_add (adding floats in a tight loop) (lower is better)
(sec)
fast-math   5.49   5.78  0.07     5.65
this pr     5.65   5.90  0.06     5.76  (98%)

Float_div (dividing floats in a tight loop) (lower is better)
(sec)
fast-math  11.70  12.36  0.18    11.99
this pr    11.92  12.32  0.12    12.12  (99%)

Float_mul (multiplying floats in a tight loop) (lower is better)
(sec)
fast-math  11.72  12.17  0.12    11.93
this pr    12.01  12.62  0.17    12.26  (97%)

I have also looked at FPS numbers for tps-demo, 3d platformer, 2d
platformer, and sponza and could not find any measurable difference.

I believe that given the issues and oft-reported (physics) glitches on
release builds I believe that the couple of percent of tight-loop
floating point performance regression is well worth it.

This fixes #24540 and fixes #24841
2019-01-09 02:06:13 +01:00
Hein-Pieter van Braam
ee0c4a97b3 Use 'release_debug' for mono export templates
This fixes the previously wrong PR

Because we don't actually ship 'debug' templates to users make sure
the mono exporter picks the correct 'data' directory for export
templates.

This fixes #24752
2019-01-08 01:44:54 +01:00
Hein-Pieter van Braam
dd766bae78 Use 'release_debug' for mono export templates
Because we don't actually ship 'debug' templates to users make sure
the mono exporter picks the correct 'data' directory for export
templates.

This fixes #24752
2019-01-07 18:19:35 +00:00
Rémi Verschelde
a15620c83e doc: Fix wrong references found by Sphinx and new makerst.py 2019-01-07 12:15:01 +01:00
Rémi Verschelde
26fddb77be doc: Fix wrong references found by new makerst.py
Thanks @PJB3005
2019-01-07 10:06:12 +01:00
Timo Schwarzer
56000929fd
Fix code completion on nodes in current scene 2019-01-05 23:17:02 +01:00
Rémi Verschelde
1ba0b2bc0b
Merge pull request #24741 from timoschwarzer/24697-fix-autocomplete-segfault-in-inner-classes
Fix segfault when trying to autocomplete in inner classes
2019-01-04 19:41:24 +01:00
Rémi Verschelde
5809be9641
Merge pull request #24582 from Xrayez/script-encrypt
Bring back script encryption in export preset
2019-01-04 16:34:38 +01:00
Rémi Verschelde
1808241d16
Merge pull request #24688 from Supatier/add-additional-vscode-name
Add code-oss, vscode-oss, and visual-studio-code-oss to vscode path
2019-01-03 21:32:41 +01:00
Timo Schwarzer
d77643562b
Fix segfault when trying to autocomplete in inner classes
Fixes #24697
2019-01-03 15:51:34 +01:00
supatier
ab7f102b14 Add code-oss, vscode-oss, and visual-studio-code-oss to vscode path 2019-01-02 05:40:34 +07:00
Rémi Verschelde
b16c309f82 Update copyright statements to 2019
Happy new year to the wonderful Godot community!
2019-01-01 12:58:10 +01:00
Rémi Verschelde
d1f3b622f0 Fix missing/malformed license headers 2019-01-01 12:46:36 +01:00
Rémi Verschelde
ac46862097
Merge pull request #24506 from JFonS/expose_gizmos
Expose the new gizmo plugin system to scripting
2018-12-30 15:42:30 +01:00
Rémi Verschelde
dcc7f2b54b
Merge pull request #24545 from akien-mga/osxcross-mono
SCons: Allow building Mono module with OSXCross
2018-12-30 15:07:18 +01:00
Rémi Verschelde
08f71baca5 Fix loading EXR with alpha channel
Fixes #24659.
2018-12-30 14:35:15 +01:00
Rémi Verschelde
95e96947f6 SCons: Drop ios_sim option forcing x86, simulator needs x86_64 2018-12-27 14:11:13 +01:00
Rémi Verschelde
2e39e38c10 doc: Sync classref with current source
Fix various code formatting issues and argument names.
2018-12-27 11:10:18 +01:00
Rémi Verschelde
de4d7a785e Fix size in HeightMapShapeBullet::set_data 2018-12-27 10:29:25 +01:00
Ignacio Etcheverry
ac118434ee
Merge pull request #24622 from Supatier/fix-vscode-w-uncommon-exec-name
Fix: Cannot find code editor: VSCode; although installed on linux
2018-12-27 10:13:04 +01:00
Rémi Verschelde
32a7c05eb4
Merge pull request #24610 from Faless/emws_buf_size_fixes
Fix HTML5 WebSocket client buffers size.
2018-12-27 09:45:25 +01:00
Supatier
b173eed8aa
Fix Godot unable to find VSCode binary
VSCode's executable name is not uniform and godot only search for "code".
2018-12-27 15:16:29 +07:00
Rémi Verschelde
a1fa614e78
Merge pull request #24561 from KellyThomas/fix-antiquewhite
fix capitalization for antiquewhite
2018-12-27 08:52:10 +01:00
Fabio Alessandrelli
77466285f2 Fix HTML5 WebSocket client buffers size. 2018-12-26 17:51:12 +01:00
Andrii Doroshenko (Xrayez)
ba13a2bc05 Bring back script encryption in export preset
Retrieved working implementation from 2.1 branch and adapted to
existing export preset system.

Added Script tab in export preset to export script as raw text,
compiled, or encrypted (same as in 2.1). The script encryption key is
visually validated. The script export mode and the key is saved per
per preset in `export_presets.cfg`, so it makes sense to ignore this
file in version control system.

Each custom exporting procedure can retrieve an export preset set
during project exporting. Refactored project export dialog a bit to
allow easier code comprehension.
2018-12-24 17:16:14 +02:00
Daniel Abbott
572367552c GodotRestInfoContactResultCallback::addSingleResult now returns normal
`PhysicsDirectSpaceState.get_rest_info()` now provides normals in result
Addresses issue 24558
2018-12-22 19:26:18 -07:00
Kelly Thomas
a5e38586ce fix capitalization for antiquewhite 2018-12-23 08:00:35 +08:00
Rémi Verschelde
d52100f4ff SCons: Allow building Mono module with OSXCross
Improve the test logic to only assume that we're building for macOS
if OSXCROSS_ROOT is defined *and* we requested p=osx.

Supersedes #24480.
2018-12-22 12:36:19 +01:00
JFonS
6b15b4f904 Expose the new gizmo plugin system to scripting 2018-12-21 23:56:39 +01:00
Kelly Thomas
09496d93b1 [Mono] Color - add ColorN(), Colors - add named color properties 2018-12-21 15:01:32 +08:00
Rémi Verschelde
2709113c83
Merge pull request #24499 from akien-mga/android-thirdparty
Android: Better identify thirdparty C/C++ code
2018-12-20 19:12:58 +01:00
Rémi Verschelde
6cdcde7114 doc: Add missing commas after "If true/false" 2018-12-20 13:47:12 +01:00
Rémi Verschelde
6770357e47 Android: Better identify thirdparty C/C++ code
- The `cpu-features.{c,h}` code was only used by chance by the webm
  (libvpx) code, so I moved it there. It was actually introduced before
  that and wasn't in use, and libvpx just happened to be able to
  compile thanks to it being bundled.
  It could potentially be compiled on the fly from the Android NDK, but
  since we plan to replace the webm module by a GDNative plugin in the
  near future, I went the bundling route.

- `ifaddrs_android.h` is already provided in the Android NDK as
  `ifaddrs.h`, same as on other Unixes. Yet we cannot use it until we
  up the min API level to 24, where `getifaddrs` is first defined.
  I moved the files to `thirdparty/misc` and synced them with upstream
  WebRTC (only indentation changes and removal of `static` qualifiers).

Also removes dropped thirdparty files from COPYRIGHT.txt after changes
in #24105 and #24145.
2018-12-20 13:07:54 +01:00