Compare commits

...

975 Commits
master ... 3.0

Author SHA1 Message Date
Rémi Verschelde 362774c617 Windows: Appease capricious MSVC versions with moody headers
Fixes #37799.
Fixes #37986.

(cherry picked from commit 4d3a18d9ff)
2020-05-25 17:59:20 +02:00
Rémi Verschelde 040254ef7c Fix potential divisions by 0 reported by MSVC
The `TextEdit` one was indeed a potential bug.
The `PCKPacker` one seems to be a false positive, it's already in a
`for` loop that depends on `files.size()`.

(cherry picked from commit ca4e4506db)
2020-03-25 10:27:48 +01:00
Rémi Verschelde 7bfb7df673 Travis: Fix clang-format on non-master branches
`git diff-tree` used to fail on the `3.2` branch (and other non-master
branches) as Travis doesn't actually check that branch from the remote:
```
fatal: ambiguous argument '3.2': unknown revision or path not in the
working tree.
```

The exit code would still be 0 so we'd miss badly formatted commits
targeting stable branches.

We do it manually to ensure that it's going to work as we want it.

(cherry picked from commit e479231b21)
2020-03-12 14:09:37 +01:00
Rémi Verschelde ffa4e3fa7d Sync AUTHORS and DONORS with master branch 2020-03-11 14:50:33 +01:00
bruvzg fe3d7ba5b0 Replace IOHIDDeviceRegisterRemovalCallback with IOHIDManagerRegisterDeviceRemovalCallback to fix gamepad disconnection callback on macOS Catalina.
(cherry picked from commit 6b23e36dbc)
2020-03-06 11:42:36 +01:00
Rémi Verschelde 5bfb10f585 HTML5: Explicitly link idbfs.js for IDBFS support
Upstream Emscripten changed this in 1.39.1+, so IDBFS is no longer
included by default and has to be linked manually.

The explicit linking doesn't seem to be problematic on earlier
versions (tested `1.38.47-upstream`).

Fixes #33724.

(cherry picked from commit e5dfcb5edd)
2019-11-29 16:02:44 +01:00
Rémi Verschelde e647b5b73c HTML5: Fix support for Emscripten 1.39.1+
A change in upstream Emscripten 1.39.1+ made our buildsystem error
out where it was previously only issuing a warning:
```
[  5%] Linking Static Library ==> main/libmain.javascript.opt.bc
shared:WARNING: Assuming object file output in the absence of `-c`, based on output filename. Please add with `-c` or `-r` to avoid this warning
Ranlib Library         ==> main/libmain.javascript.opt.bc
/opt/emsdk/upstream/bin/llvm-ranlib: error: unable to load 'main/libmain.javascript.opt.bc': file too small to be an archive
```

As advised on emscripten-core/emscripten#9806, we should be using
`emar` here to create the static library and not `emcc`.
This was apparently done to workaround Emscripten issues in the past,
but evidently this is no longer necessary.

The rest of the `env` redefinitions should probably be re-assessed
against the current state of Emscripten.

Fixes #33374.

(cherry picked from commit e9e2a4b044)
2019-11-29 15:59:52 +01:00
Rémi Verschelde f7eed5166b Update AUTHORS list
New contributors added to AUTHORS:
@kawa-yoiko, @m4gr3d, @QbieShay, @RevoluPowered, @rxlecky

(cherry picked from commit 62a09a2ee3)
2019-11-12 15:46:39 +01:00
Rémi Verschelde 5b28699eba tinyexr: Sync with upstream 656bb61
(cherry picked from commit 6a2c2e5062)
2019-11-12 09:54:48 +01:00
Rémi Verschelde 1ca01acfe4 nanosvg: Sync with upstream c1f6e20
Now formally unmaintained, so probably no further sync to expect
from this repository.

(cherry picked from commit 097b746fdd)
2019-11-12 09:53:18 +01:00
Rémi Verschelde 8c73f79492
Merge pull request #33558 from akien-mga/3.0-openssl-1.0.2t
openssl: Update to pristine 1.0.2t (security update)
2019-11-12 09:48:12 +01:00
Rémi Verschelde 21596fb992 openssl: Update to pristine 1.0.2t (security update) 2019-11-12 08:33:02 +01:00
Jonathan Mannancheril f6ab796bf3 Update libogg to upstream c8fca6b
(cherry picked from commits 6eb8c11d32
and e70e894433)
2019-11-12 08:16:37 +01:00
volzhs 25007bdb61 Update libwebp to 1.0.3
(cherry picked from commit 074d421dca)
2019-11-12 08:15:03 +01:00
Jonathan Mannancheril 104b06e967 Update stb_vorbis to 1.17
(cherry picked from commit 97af5569d9)
2019-11-12 08:06:06 +01:00
Rémi Verschelde 9864066ec6 stb_vorbis: Update to upstream version 1.16
(cherry picked from commit 3e727bc659)
2019-11-12 08:05:29 +01:00
Rémi Verschelde 2fa9cae76c New contributors added to AUTHORS:
@DavidSichma, @ptrojahn

New Platinum sponsor, added to splash screen:
Interblock

New Gold sponsor:
Image Campus

(cherry picked from commit c663d65ffc)
2019-11-08 15:30:55 +01:00
Rémi Verschelde 0ce197f238 Update AUTHORS and DONORS list
New contributors added to AUTHORS:
@creikey, @IronicallySerious, @LikeLakers2, @minraws, @NilsIrl,
@profan, @raphael10241024

New Platinum sponsor, added to splash screen:
Heroic Labs

Merged some duplicates via .mailmap to allow better tracking of
commit counts with `git shortlog -s -n -e --no-merges`.

Thanks to all contributors and donors for making Godot possible!

(cherry picked from commit 664d7e7336)
2019-11-08 15:30:33 +01:00
Rémi Verschelde 7fb435f787 Updated .mailmap for a better output in `git shortlog -s -n -e --no-merges`.
(cherry picked from commit e761af5794)
2019-11-08 15:30:18 +01:00
Max 82e52c32a6 Fix crash on exit or resume on iOS 13
Fixes #7966.

(cherry picked from commit 29bde8cd74)
2019-11-08 14:09:25 +01:00
Rémi Verschelde 2d386ec2fa Travis: Make scons cache branch-specific
(cherry picked from commit a99b7a5f88)
2019-11-08 13:08:29 +01:00
bruvzg 68ce59a12d Fix non-HiDPI mode on HiDPI displays on macOS Catalina.
(cherry picked from commit 509afcea92)
2019-10-25 16:32:38 +02:00
bruvzg 84a227b663 [macOS] Fix rendering on retina displays with HiDPI support disabled.
(cherry picked from commit 50e2c1e184)
2019-10-25 16:32:31 +02:00
Rémi Verschelde 455d1d3a7e Update AUTHORS and DONORS list
New contributors added to AUTHORS:
@merumelu, @sparkart

Thanks to all contributors and donors for making Godot possible!

(cherry picked from commit 41beecaa08)
2019-09-24 13:21:26 +02:00
Rémi Verschelde 5385f52486 bullet: Backport upstream patch to fix clang 8 build
Fixes #32301.

(cherry picked from commit 471daf4773)
2019-09-24 13:20:03 +02:00
mellondill 38f1a2c5dd https://github.com/godotengine/godot/issues/31297 - HTML5: this.rtenv.callMain is not a function when using latest-upstream backend
Added needed changed for normal compiling with emscripten 1.38.41 and later

(cherry picked from commit 3c176827d6)
2019-08-21 11:08:18 +02:00
Emmanuel Barroga 56b5af2ba7 Fix ProgressBar Wrong Value with Border
Closes: #30969

The FG rectangle of the progressbar is incorrect when dealing with a non-zero border. This issue stems from wrong order of operations when drawing the rectangle: int p = r * get_size().width - mp;


(cherry picked from commit 7db96e22dd)
2019-08-21 11:06:51 +02:00
Rémi Verschelde 1b05404dbf jpgd.h: Backport security vulnerabilities fixes from Google Android
Squashed version of https://github.com/richgel999/jpeg-compressor/pull/10
with the line endings fixed (DOS to Unix).

See https://github.com/richgel999/jpeg-compressor/pull/10 and #30952
for details. Relates to CVE-2017-0700.

Fixes #30952.

(cherry picked from commit 5c333270ed)
2019-08-21 11:04:57 +02:00
Fabio Alessandrelli 41fe1bd887 Add NULL-terminator the string passed to strtol.
This is actually expected by the function although it was apparently
working in GCC without the terminator, it breaks (at least some) clang
versions.

(cherry picked from commit 2f91e250f6)
2019-08-21 11:03:53 +02:00
Rémi Verschelde 6aaca81d2b Update AUTHORS and DONORS list
New contributors added to AUTHORS:
@Anutrix, @hbina, @santouits

Thanks to all contributors and donors for making Godot possible!

(cherry picked from commit 6d6b9ccc9a)
2019-08-02 09:45:30 +02:00
Rémi Verschelde 0621d2a28c Update AUTHORS and DONORS list
New contributor added to AUTHORS:
@aqnuep

Thanks to all contributors and donors for making Godot possible!

(cherry picked from commit ab1cb10317)
2019-08-02 09:45:26 +02:00
Rémi Verschelde 3b5837e4d9
Merge pull request #30965 from akien-mga/3.0-android_stl-no
Android: Restore support for android_stl=no builds
2019-07-30 17:16:40 +02:00
Rémi Verschelde b87d819aad Android: Restore support for android_stl=no builds
Two modules fail building with this option, so we force users to disable them.
Small cleanup based on 2.1 branch and cherry-pick 01e65c4555
to fix support for NDK r20 (fixes #30688).
2019-07-30 15:21:12 +02:00
StraToN d092798038 Adds a meta on top of every generated class to hide 'Edit on Github' link
Linked docs issue https://github.com/godotengine/godot-docs/pull/2656

(cherry picked from commit d83b8881ae)
2019-07-29 15:27:46 +02:00
Bastiaan Olij 57e19f1e8c Sort data exported to the api.json file for GDNative
(cherry picked from commit 0d2f3f4f50)
2019-07-29 13:36:14 +02:00
Rémi Verschelde b896eb5fd4
Merge pull request #30291 from akien-mga/3.0
Assorted cherry-picks from the master branch for Godot 3.0.7
2019-07-09 08:46:19 +02:00
Rémi Verschelde 3600735b24 Android: Target SDK 28, required by Google from Aug 2019
(cherry picked from commit 7249992b62)
2019-07-08 14:08:23 +02:00
Rémi Verschelde 0c4881f1db
Merge pull request #30306 from Faless/mp/safe_decode_3.0
[3.0] Multiplayer API now respects allow_object_decoding
2019-07-04 08:10:47 +02:00
Fabio Alessandrelli 57a03a051f Multiplayer API now respects allow_object_decoding
Add doc about allow_object_decoding in PacketPeer
2019-07-03 19:34:16 +02:00
Leon Krause bcbc198992 Enable Theora module for HTML5 platform
(cherry picked from commit b4b816c122)
2019-07-03 17:02:13 +02:00
Leon Krause ad8f85f8b7 Fix WebM module for HTML5 platform
(cherry picked from commit 92b259ccf1)
2019-07-03 17:02:13 +02:00
Rémi Verschelde 6604638d82 Fix Theora/Webm loaders declaring binary extension
RES_BASE_EXTENSION is only to declare our proprietary binary formats
(e.g. "scn", "res", etc.).

Fixes #20395.

(cherry picked from commit 333999c24f)
2019-07-03 17:02:13 +02:00
Rémi Verschelde 816366ba05 Fix loading and exporting of Theora and WebM video streams
Theora and WebM video streams were mistakenly imported with a ResourceImporter,
but those imported ogvstr and webmstr were simply links to the local resource.
While that works fine in the editor, it no longer works when exporting a game
as the "source" ogv and webm files are ommitted and only the ogvstr and webmstr
references were exported.

As discussed with @reduz, it doesn't make sense to import videos, as we only
intend to play them back and not modify them/access their raw data. As such we
use a ResourceFormatLoader instead of an importer, to load the file on the fly.
ogv and webm files linked to this loader are now considered as resources, and
thus exported.

Note: The Theora and WebM loaders lack any kind of validity check beyond the
existence of the target file, but it was already the case with the importer.
Better checks and error reports could be added, but those loaders will eventually
be obsoleted by GDNative plugins anyway.

Fixes #14954.

(cherry picked from commit 6dc20adadd)
2019-07-03 17:02:13 +02:00
Fabio Alessandrelli d9992a2b78 Fix ENet incorrectly binding to wildcard.
Values were not properly initialized, and wildcard would evaluate to
true in most cases.

(cherry picked from commit abe2c22966)
2019-07-03 17:02:13 +02:00
Ibrahn Sahir c27f44f525 Check project settings live before lookup in crash handler
In x11, windows and osx crash handlers, check project settings exists
before looking up the crash handler message setting.
Avoids crashing the crash handler when handling a crash outside project
settings lifetime. Instead omitting the configurable message and
continuing with trace dump.

(cherry picked from commit 63068e2ccd)
2019-07-03 17:02:13 +02:00
Hein-Pieter van Braam-Stewart 95fe095a5a Don't try to statically allocate 2x 8193 pointers
Maximum stack size is only 8KiB, this will try to allocate 8193 *
sizeof(void*) * 2 = 131088 bytes on the stack. This causes a crash in
some cases.

(cherry picked from commit c52f890626)
2019-07-03 17:02:13 +02:00
Hein-Pieter van Braam-Stewart 0b4dec63a9 Object::script may not be a valid Ref<Script>
It appears that Object::script may be a valid ScriptInstance but not be
castable to Ref<Script>. There were only 5 places in the code that made
this assumption. This commit fixes that.

(cherry picked from commit 20b0046945)
2019-07-03 17:02:13 +02:00
Rémi Verschelde 733668074a Fix creating editor data, config and cache paths
We used to abort if the system-specific data folder (e.g. `~/.local`
or `%APPDATA%`) is missing, but the next code chunk actually creates
it with `make_dir_recursive` if missing.

Fixes #26598.

(cherry picked from commit c0050d9295)
2019-07-03 16:18:34 +02:00
Hugo Locurcio 41cda84b11 Add a setting hint for the Output panel font size
This closes #21237.

(cherry picked from commit 07e87f6ec0)
2019-07-03 16:13:07 +02:00
Rémi Verschelde d127f92bd5 Image: Fix decompressing ETC2
Thanks to @Rriik for finding the bug and its cause.

Fixes #25595.

(cherry picked from commit 1772d6fa23)
2019-07-03 16:11:46 +02:00
Marc Gilleron 0f2e3976d0 Fixed uninitialized log member due to THEME_CHANGED notification
(cherry picked from commit fb2eb66e40)
2019-07-03 16:11:03 +02:00
Bojidar Marinov aca8176341 Fix crashes when calling update_bitmask_area
Fixes #25504

(cherry picked from commit abfeba8d12)
2019-07-03 16:10:42 +02:00
Bastiaan Olij 633ac4f753 Using DisplayLink to emulate vsync on OSX
(cherry picked from commit b53f2d1d59)
2019-07-03 16:10:10 +02:00
Rémi Verschelde 2ff2b727b6 Prevent upscaled SVG from exceeding Image bounds
Also expose Image MAX_WIDTH and MAX_HEIGHT.

Fixes #24455.

(cherry picked from commit cc0842f9a6)
2019-07-03 16:05:39 +02:00
Rémi Verschelde c2541188f2 Fix recursive assignment of Textures and BitMapFont
Fixes #24213.

(cherry picked from commit 402cfa983d)
2019-07-03 16:05:10 +02:00
Konrad Nowakowski 8718f898c1 Fix polygon drawing on WebGL1
(cherry picked from commit a0bdd9605a)
2019-07-03 16:03:06 +02:00
marxin 194ed96e89 Fix #19633 by proper store to &ubo_data.shadow_matrix[1234].
It is not valid in C++ to store into shadow_matrix1[16] with shadow_matrix1[16 * j]
(for j > 0). Even though there's a valid space in a struct after shadow_matrix1.
Knowing that GCC performs aggressive optimizations that eventually lead
to a wrong code. Code has been changed into union where one can either
use shadow_matrix[4 * 16], or individual shadow_matrix1, shadow_matrix2, etc. GCC pragma
is not needed any longer.

(cherry picked from commit d9eb6a5b20)
2019-07-03 15:59:16 +02:00
RedMser 740e77f47f Fix shader compile error line numbers starting at 0.
(cherry picked from commit a285a1cfdf)
2019-07-03 15:55:18 +02:00
bruvzg 0195619925 [macOS] Fix missing mouse move event speed.
(cherry picked from commit b7e9e184aa)
2019-07-03 15:54:38 +02:00
Hein-Pieter van Braam cada03eedb 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

(cherry picked from commit e5b335d367)
2019-07-03 15:53:22 +02:00
Rémi Verschelde c6cc6c86e5 Fix loading EXR with alpha channel
Fixes #24659.

(cherry picked from commit 08f71baca5)
2019-07-03 15:50:46 +02:00
Daniel Abbott cf2ebf5d47 `GodotRestInfoContactResultCallback::addSingleResult` now returns normal
`PhysicsDirectSpaceState.get_rest_info()` now provides normals in result
Addresses issue 24558

(cherry picked from commit 572367552c)
2019-07-03 15:50:10 +02:00
Rémi Verschelde 49d724ac52 Label: Fix kerning when using Uppercase mode
Seemingly a typo, I did not check what exact impact it had, but
the x_ofs would likely have accumulated errors when using fonts
with varying char widths.

(cherry picked from commit 7cb5e005ee)
2019-07-03 15:44:00 +02:00
João Álvaro Ferreira 69673367a1 Enabled rst files to escape for parentheses after brackets
(cherry picked from commit a720993cc8)
2019-07-03 15:43:31 +02:00
Ruslan Mustakov c42cacfc3d Fix iOS safe area insets to use pixels and not points
(cherry picked from commit 230510d628)
2019-07-03 15:41:00 +02:00
Pedro J. Estébanez fc38c87030 Fix blitting from negative position
(cherry picked from commit 6dc9a1b475)
2019-07-03 15:40:42 +02:00
Aaron Franke 58c87e5d26 Fix many errors found by PVS-Studio
Fix errors 2, 3, 4, 6, 8, 9, 11, 12, 13, 14, and 15.

(cherry picked from commit cb01268562)
2019-07-03 15:39:12 +02:00
Leon Krause dafdd9a08e Check for WebGL RGTC extension
(cherry picked from commit 93bed8cf57)
2019-07-03 15:34:25 +02:00
Leon Krause a2381b9049 Build squish decompression in runtime
(cherry picked from commit 32751e09ac)
2019-07-03 15:34:08 +02:00
allkhor b680939036 TextEdit: remove selection when clear happens.
(cherry picked from commit 594e0261f3)
2019-07-03 15:17:13 +02:00
Pedro J. Estébanez 94476aba94 Fix crash on signal/resume to dangling target
(cherry picked from commit 06b6cea62e)
2019-07-03 15:16:33 +02:00
allkhor a1b0e7b12c RichTextLabel: clear the scroll offset.
(cherry picked from commit 970dc91cb7)
2019-07-03 15:15:38 +02:00
Marcelo Fernandez 08fd792c45 Fix X11 running a project with fullscreen setting on and resizable off with multiple screens
(cherry picked from commit 385832ed30)
2019-07-03 15:07:21 +02:00
bruvzg 02585688cd [macOS] Disable setWantsLayer on macOS < 10.14
(cherry picked from commit 4aa441591c)
2019-07-03 15:05:47 +02:00
pshe94 4d610757af Use VScrollBar when calculating horiz. offset in ScrollContainer
Someone forgot to change `h_scroll` to `v_scroll` when copy-pasting the code ;)

(cherry picked from commit 554b3f77c7)
2019-07-03 15:02:26 +02:00
Ibrahn Sahir 0b2a884fe2 Assign pointer null in RegEx::clear to avoid double free on destruction.
(cherry picked from commit f8a1c77fcf)
2019-07-03 15:01:37 +02:00
bruvzg f666a5f34a [macOS] Fix blank splash screen
(cherry picked from commit 30852d0237)
2019-07-03 14:59:46 +02:00
bruvzg a110937a16 Fix initial blank screen on macOS Mojave (except splash).
(cherry picked from commit 07aee14dd7)
2019-07-03 14:59:22 +02:00
bruvzg 811b11c452 Fix .app bundle crash on macOS
(cherry picked from commit cfce8de0b5)
2019-07-03 14:58:46 +02:00
Colin Kinloch 9e91d4e5cb Update mouse location on background scroll and window focus in macOS
(cherry picked from commit 464842c62c)
2019-07-03 14:57:53 +02:00
Poommetee Ketson 0f5538e44d Fix formatting -0.0 by %+f displays +-0.0
(cherry picked from commit aa311320d9)
2019-07-03 14:53:16 +02:00
Ruslan Mustakov e689fe0451 Notify node's moved children after sibling removed
Fixes #16213.

(cherry picked from commit 3b02cd3e71)
2019-07-03 14:52:49 +02:00
Marcelo Fernandez c658929cf3 Fix possible crash with VideoPlayer _mix_audio function
(cherry picked from commit ea43218bca)
2019-07-03 14:51:46 +02:00
Leon Krause 53f484fbba Use BufferSubData instead of MapBufferRange in HTML5 platform
WebGL does not support MapBufferRange or UnmapBuffer.
Also used in non-ES platforms where an extra-copy is avoided.

(cherry picked from commit 92e7c8daf0)
2019-07-03 14:46:06 +02:00
Xavier Sellier 9776f0da4d Prevent a device to be added/deleted more than once on Android
cherry-picked from fb5a601217

(cherry picked from commit 7dcf779a8b)
2019-07-03 14:41:29 +02:00
Karen Schwane 6392a7d7f1 Move jcenter behind mavenCentral and google gradle repos to fix build problems
(cherry picked from commit a01ce6299c)
2019-07-03 14:41:03 +02:00
Sean McCarthy 6dcb5f5ed9 Fix "fill" justification in RichTextLabel to only affect lines that have automatically wrapped.
(cherry picked from commit 0ce185629d)
2019-07-03 14:40:35 +02:00
DualMatrix 1a703c3254 Fixed error when duplicating a scene which has connection
Fixed error when duplicating a scene which has connection

(cherry picked from commit 6afedaa498)
2019-07-03 14:39:52 +02:00
exts a7d070d2d5 fixes #22828 - res://user had incorrect substr value
(cherry picked from commit 18b6f5a6c9)
2019-07-03 14:39:25 +02:00
Gleb Mineev 8ce8a45219 #21661: fixed GraphNode title offset
(cherry picked from commit 746ad820cf)
2019-07-03 14:27:49 +02:00
qonnop b9ee398cbc Fixed DDS loader according to issue #22530
width and height attributes have to be switched according to the
official DDS header docs:
https://docs.microsoft.com/en-us/windows/desktop/direct3ddds/dds-header

(cherry picked from commit a93edeb307)
2019-07-03 14:27:25 +02:00
Sergey Lapin 661885dbd8 MeshDataTool memory corruption fix
Fix for incorrect types used in MeshDataTool for bones and weights.

If your mesh contains these memory accesses get OOB and might crash
the application

Closes #21713

(cherry picked from commit e50d56b4c6)
2019-07-03 14:26:51 +02:00
DualMatrix 251282d2cf Made Debugger's Video Memory tab show correct resource paths.
Made Debugger's Video Memory tab show correct resource paths.

The Icons are still missing but that is due to the get_icon(type, "EditorIcons") for type = "Texture" being missing. Adding that icon would fix it.

(cherry picked from commit 8f89e2b490)
2019-07-03 14:26:28 +02:00
Ibrahn Sahir 2e86a5f929 Fixed hang when segfaulting after OS object destroyed (OSX and X11)
The two POSIX style crash handlers (OSX and X11) now remove their signal
handlers when they are destroyed.
Additonally if they are called while no OS singleton is set, they will
simply abort(). This should not happen now that they remove themselves,
but if a future change seperates OS object and crash handler lifetimes,
this may be easier to report/debug than hanging on SIGSEGV.

(cherry picked from commit 653b832422)
2019-07-03 14:25:56 +02:00
volzhs a3753eda62 Ignore invalid device for Android
(cherry picked from commit 3a2d707697)
2019-07-03 14:25:22 +02:00
cyclopsian 049c91f4d1 Check for absolute paths in OBJ loader
(cherry picked from commit 45ba58c123)
2019-07-03 14:23:11 +02:00
elasota 7ac73098fc Fix FileAccessCompressed::get_8 returning 0 for the last byte of a file
(cherry picked from commit 88c74aa017)
2019-07-03 14:22:06 +02:00
Bojidar Marinov a2dae3379d Ensure --export implies --editor
Fixes #30149

(cherry picked from commit 9ebc146383)
2019-07-03 14:21:19 +02:00
Rémi Verschelde 6be8a83584 Make sure project manager gets editor hint set
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.

(cherry picked from commits e8e06b2c9a
and c0df3b147e)
2019-07-03 14:19:56 +02:00
Hein-Pieter van Braam c3ac242181 When resizing an X11 window wait for the WM to process our request
On X11 when we send an XResizeWindow request to the X server it is happy
to say it is done when the request has been handed over to the window
manager. The window manager itself may however take some time to
actually do the resize. Godot expects that a resize request is
immediate. To work around this issue we could implement the whole
_NET_WM_SYNC_REQUEST protocol. However this protocol does not fit very
well with the way we currently process X events and would when
implemented in the current framework still cause a 1 frame delay between
a resize request and the actual resize happening.

This fixes #21720

(cherry picked from commit 9a1deedb84)
2019-07-03 14:18:17 +02:00
Bastiaan Olij 2a66cfc2d0 Fixed a theoretical condition where prealpha prevents lighting
(cherry picked from commit 0625f5b546)
2019-07-03 14:14:55 +02:00
Leon Krause 0da50fecbf Fix missing texture-download error with OpenGL ES
(cherry picked from commit 57eaea571a)
2019-07-03 14:13:12 +02:00
Pedro J. Estébanez 61b6c9c348 Fix multitouch input not working on certain devices on Windows
Fixes #20474.

(cherry picked from commit 28019c71a6)
2019-07-03 14:07:11 +02:00
Andrea Catania 7957a7bd2e Fixed crash if convex has 0 vertices
(cherry picked from commit 9a67a07a2c)
2019-07-03 14:06:38 +02:00
Rémi Verschelde 5955526b25 Fix operator precedence in PhysicsBody2D::set_weight
Fixes #16038.

(cherry picked from commit 3b01bf94ad)
2019-07-03 14:05:52 +02:00
Fabio Alessandrelli 681c22375b Fix DNS resolution when cache is invalid.
Fix StreamPeerTCP.connect_to_host return value.

(cherry picked from commit 97757cd1d1)
2019-07-03 14:05:19 +02:00
Poommetee Ketson 3b89c2be89 Fix arg name in docs, some copy-paste errors
(cherry picked from commit 76adef2704)
2019-07-03 14:02:47 +02:00
Chaosus ebe8bcd0cf Added FRAGCOORD to spatial light processing
(cherry picked from commit 37f5cc5b63)
2019-07-03 13:59:17 +02:00
Justin Abene 37bb769470 Prevent "cannot use a string pattern on a bytes-like object"
Fixes #21207

(cherry picked from commit c6a4ca5c9e)
2019-07-03 13:58:55 +02:00
Hein-Pieter van Braam 73fa1470b3 Remove faces in in QuickHull::build() that we don't need anymore
We delete the faces for consideration in this loop but we can still
sometimes find an edge that connects to this face. We now interate over
all edges and disconnect edges connecting to this face.

This fixes #16560 and fixes #17569

(cherry picked from commit 33669a8bca)
2019-07-03 13:58:27 +02:00
John Teasdale 75f1731232 Bullet picking will now ignore objects without input_ray_pickable
(cherry picked from commit 7323f7998b)
2019-07-03 13:58:07 +02:00
DualMatrix 7624e1009a Fixed !is_inside_tree() errors in file dialog
Fixed !is_inside_tree() errors appearing when current_file has a . in it.

(cherry picked from commit 2b13938459)
2019-07-03 13:57:37 +02:00
Rémi Verschelde 7586957720 Export dialog: Fix error color and link alignment
Also fix extraneous "- " line when there are more than 2 messages.

(cherry picked from commit 5542d4a830)
2019-07-03 13:56:28 +02:00
Hein-Pieter van Braam 68d09255bd Call minimum_size_changed() in PopupMenu::remove_item()
When removing an item from a PopupMenu we need to update the control's
size cache otherwise the size of the PopupMenu itself lags behind by 1
item size. Meaning the PopupMenu will remain too large.

(cherry picked from commit 2d032c1562)
2019-07-03 13:56:06 +02:00
Hein-Pieter van Braam e4733c5fc4 Delay emitting pressed signals in PopupMenu
When processing items we may actually delete the item we're processing
in the callback for the signal. To avoid this, call the signal after
we're done processing the items. But before hiding the popupmenu itself.

Thanks to @reduz for writing the whole solution.

This fixes #19842

(cherry picked from commit fa7eac8a0d)
2019-07-03 13:55:23 +02:00
Hein-Pieter van Braam 5e25f40d83 Replace XRaiseWindow with a _NET_ACTIVE_WINDOW ClientRequest
This fixes the editor on X11 not getting put on the foreground when a
debugged project hits an error or breakpoint.

(cherry picked from commit 827cadafc8)
2019-07-03 13:53:55 +02:00
Teashrock f7aaf161fb Fixed absent variable exception while trying to raise another exception.
(cherry picked from commits 51a0a38135
and 695b8d254e)
2019-07-03 13:48:46 +02:00
Thomas ten Cate 2e34a922f0 Reset caret blink when Ctrl+moving the cursor
There was a hardcoded exception to never reset caret blinking if Ctrl
(`command`) was pressed. This broke on Ctrl+arrows,
Ctrl+Home/End/PgUp/PgDn, Ctrl+C, Ctrl+V, Ctrl+Backspace and Ctrl+Delete.

Resetting blink only for those Ctrl operations that actually touch the
cursor somehow would clutter the code a lot, so I removed the check
entirely. That means we now also reset blinking on unrelated operations
like Ctrl+O, but that seems pretty harmless. I actually like the
additional bit of feedback even in that case (most of these will
immediately defocus the editor anyway, so you never see it).

Fixes #18100

(cherry picked from commit 44d761e55c)
2019-07-03 13:35:41 +02:00
Nick Hope d3b67bde8a fixed: windows mono compile (#20598)
tidy: formatting.

(cherry picked from commit 24b4694313)
2019-07-03 13:35:41 +02:00
Marcin Zawiejski 771f1fe5c1 Fix Windows handles leak
Fixes thread and process handles leak when running and killing project
from editor (caused by a missing CloseHandle call) plus a potential leak
when calling OS_Windows::execute with p_blocking and !r_pipe.

The leak could be easily observed with a Handles counter in Task Manager
(or Performance Monitor) for the Godot editor process.

(cherry picked from commit b1e0da455b)
2019-07-03 13:35:41 +02:00
Swarnim Arun 209c6164f4 Fix Visual Script duplicate issue
(cherry picked from commit b893dc2028)
2019-07-03 13:35:41 +02:00
Chaosus 92fb290f69 Added conversions between matrixes in shaders
(cherry picked from commit ca0a6c3fca)
2019-07-03 13:35:41 +02:00
Chaosus d2bf31bdad Fix crash when you pass invalid parameter to ImageTexture.set_data
(cherry picked from commit bde962dbdd)
2019-07-03 13:35:41 +02:00
K. S. Ernest (iFire) Lee ff35310650 Bones are now named and their parents are correct.
(cherry picked from commit ac541f5d16)
2019-07-03 13:35:41 +02:00
Rémi Verschelde 005d1c8901 Fix loading PO files with missing newline after last msgstr
Fixes #20375.

(cherry picked from commit 12d69ef53e)
2019-07-03 13:35:41 +02:00
Ibrahn Sahir 112075b3ad correctly close handle in alsa audio driver.
(cherry picked from commit 3e85e89dc5)
2019-07-03 13:35:41 +02:00
Marcelo Fernandez 5c69f83c96 Fix possible crash at NativeScript::get_base_script
(cherry picked from commit 77f3c0b495)
2019-07-03 13:35:41 +02:00
Rémi Verschelde 754514df7e Shader lang: Properly assign INSTANCE_ID to gl_InstanceID
Note that gl_InstanceID is not supported in OpenGL ES 2.0,
so in the gles2 backend we assign it to 0.

Also clean up some duplicates/commented out code.
Fixes #20088.

(cherry picked from commit 00dfc9c8eb)
2019-07-03 13:35:41 +02:00
Marcelo Fernandez 0572b52ba1 Fix upper/lower case convertion for characters >= 0x80
(cherry picked from commit ecb071b221)
2019-07-03 13:35:41 +02:00
karroffel f302888a47 fix nameclash with MSVC
(cherry picked from commit 43ae1c712f)
2019-07-03 13:23:41 +02:00
Rémi Verschelde 392d988228 Export: Properly reload preset when opening dialog
Fixes #20119 where newly installed templates were not detected.

Also fix a bug with preset deletion where it would attempt to
edit an already removed preset. For this I made it so that
ItemList::deselect_all() also resets `current` to -1, as a manual
ItemList::deselect(idx) already does.

(cherry picked from commit 13239cd4cc)
2019-07-03 13:23:10 +02:00
matthew1006 c68a465f47 Fixed OS.has_feature not using custom feature tags.
(cherry picked from commit 25e64ffa20)
2019-07-03 13:21:56 +02:00
volzhs fd5dca2689 Fix copying ttf, otf by DND to editor
regression from d65ac7378c

(cherry picked from commit 4bb85b70e1)
2019-07-03 13:09:18 +02:00
Yar-Mukhamedov 47c7bfd678 Fix export templates installation error...
(cherry picked from commit bf37bd94b6)
2019-07-03 13:08:44 +02:00
Overblob 854fc3cb97 Fixed error due to bad cursor handling when parsing shader code
Fixed completion error log thrown on "no auto-completion found" for typings with no completion.

(cherry picked from commit 7a74d310aa)
2019-07-03 13:07:45 +02:00
Ibrahn Sahir 33a93311ec fix scrollbar icons with atlas texture.
Draw scrollbar icons through their textures, rather than calling
directly to the server. Allows atlas textures to manipulate the source
rect as required.

(cherry picked from commit e51a94905d)
2019-07-03 13:07:12 +02:00
Ibrahn Sahir b890ed527b 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.

(cherry picked from commit fe4265ad46)
2019-07-03 13:06:46 +02:00
karroffel 4b69ed4124 fix wrong loop condition in MultiMesh allocation
(cherry picked from commit 3d33da19bd)
2019-07-03 13:04:56 +02:00
Saracen 493e220ab9 Fix bits_per_pixel validation in BMP and TGA loader modules.
(cherry picked from commit 115f6d14a0)
2019-07-03 13:02:45 +02:00
Juan Linietsky 16e6d6fede Don't post process on tiny render targets, fixes #19628
(cherry picked from commit a78b42c058)
2019-07-03 13:01:53 +02:00
Josh Taylor b1bb7e48ca Changed minimum visible viewport size
When the viewport's size.y becomes lower than 2, the storage->frame.current_rt->effects.mip_maps[0].sizes Vector during rendering becomes empty, resulting in crashes in at least GLES3. This is a temporary fix to stop rendering a viewport when its size is below 2 rather than below 1.

(cherry picked from commit 892a4b175a)
2019-07-03 13:01:02 +02:00
Will Nations f4db382c50 Fix underline_meta not working in RichTextLabel
(cherry picked from commit a9ea06e73a)
2019-07-03 12:43:24 +02:00
Yasha Borevich f17983e9cf Fix memory leak in GDScript during infinnity loops with yields
(cherry picked from commit 30317296af)
2019-07-03 12:42:41 +02:00
matthew1006 dae30964a2 Fixed project settings overrides not using custom feature tags.
(cherry picked from commit 1844704c20)
2019-07-03 12:41:27 +02:00
Duy-Nguyen Ta f27c989829 bugfix: correct #ifdef for TOUCH_ENABLED and OPENGL_ENABLED
(cherry picked from commit 25ad5f8a35)
2019-07-03 12:40:34 +02:00
bruvzg 042a74a696 [macOS] Allow using user provided `.icns` files for exported app icons.
(cherry picked from commit 22ee26849e)
2019-07-03 12:33:25 +02:00
bruvzg 56a82b473e Fix macOS icon export (add 1024px PNG icon and 32px/16px RLE icons).
(cherry picked from commit 56b26c4369)
2019-07-03 12:33:25 +02:00
Marcelo Fernandez deef878f6f Add missing NULL checks for add_child_below_node
(cherry picked from commit 8c1c7ff131)
2019-07-03 12:33:25 +02:00
Marcelo Fernandez fab378abf5 Fix profiler not updating on realtime
(cherry picked from commit 34045051d2)
2019-07-03 12:33:25 +02:00
Rémi Verschelde a41f7579c8 Fix property hint for ReflectionProbe extents
(cherry picked from commit 2fabb81318)
2019-07-03 12:33:25 +02:00
Emmanuel Leblond 3808544891 [Pluginscript] Fix not working exports in editor
(cherry picked from commit 380b85a32f)
2019-07-03 12:33:25 +02:00
Rémi Verschelde 69f08cd2cc Fix shortcuts using KEY_MASK_CTRL instead of KEY_MASK_CMD
KEY_MASK_CMD is automatically replaced by KEY_MASK_CTRL on non-OSX
and KEY_MASK_META (Command key) on OSX, so it should be used for all
Ctrl/Cmd + key shortcuts.

Also de-hacked the macOS shortcut replacements with proper conditional
definition. Not tested on macOS, cannot judge if they are good shortcuts.

Fixes #10761.

(cherry picked from commit 3f09cac267)
2019-07-03 12:33:25 +02:00
Oliver Rausch 2107517f2f Fix return type of isnan and isinf in the shader language
(cherry picked from commit 2368b31e1e)
2019-07-03 12:33:25 +02:00
Fabian 82e54db588 Fix for not picking up locale of some .po translation files
(cherry picked from commit 1065f06eef)
2019-07-03 12:33:25 +02:00
Webster Sheets 793a205ae1 Revert #14753, as it is buggy and no longer necessary.
(cherry picked from commit 1198662b2b)
2019-07-03 12:33:25 +02:00
George Marques a5a9d887da Fix positive operator in GDScript compiler
(cherry picked from commit 3cec24baa8)
2019-07-03 12:33:25 +02:00
volzhs 12458ebe8c Fix updating mesh when reimporting
(cherry picked from commit 9d5e1228ea)
2019-07-03 12:33:25 +02:00
Chaosus 367bec2010 Fix bug in CubeMesh
(cherry picked from commit b3fccc5778)
2019-07-03 12:33:24 +02:00
Marcelo Fernandez f85b2a62f7 Fix missing return on Navigation2D::get_closest_point_owner
(cherry picked from commit b9023715e2)
2019-07-03 12:33:24 +02:00
nemerle 13a90fdd89 Fix PoolAllocator::resize for too large p_new_size
The code had a subtle signed/unsigned bug -
```cpp
if( signed - unsigned < 0)
// signed - unsigned is unsigned in c++, so
if( unsigned < 0)
// and thus the if block will never be executed
```

Thus all the following code would be ran, including unnecessary retries
of compacting the pool.

(cherry picked from commit 2bbe6144ff)
2019-07-03 12:33:24 +02:00
Bojidar Marinov 761bfb156d Fix a corner-case bug in _copy_texscreen in the gles3 renderer
Fixes #17698

(cherry picked from commit ee52d12921)
2019-07-03 12:33:24 +02:00
Webster Sheets 46f091bfcb AtlasTexture fixes, part 2.
(cherry picked from commit c522fe05e0)
2019-07-03 12:33:24 +02:00
Webster Sheets d1c93a0af3 Fix AtlasTexture usage in Sprite3D.
Changes as requested in b484d5c.

(cherry picked from commit 4b545e3105)
2019-07-03 12:33:24 +02:00
Peter Folkins 9d006730ad Fix script editor CTRL+CLICK on singleton functions
(cherry picked from commit 0c1a71b047)
2019-07-03 12:33:24 +02:00
Robin Hübner e867befd46 Fix delay in rename_error windows save loop, should be 100msec, not 1sec
(cherry picked from commit caa887f317)
2019-07-03 12:27:24 +02:00
Brian Richardson fdbef334bb Camera::project_local_ray_normal needs to be virtual so that ARVRCamera::project_local_ray_normal gets called.
(cherry picked from commit 680a5cbb0b)
2019-07-03 12:27:24 +02:00
Rémi Verschelde dfb839ebce Fix Node2D::global_scale's PropertyInfo type
Was missed in #18391.

(cherry picked from commit 8852ca1455)
2019-07-03 12:27:24 +02:00
Ruslan Mustakov 6c9bddef53 Fix Node2D::global_position to have Vector2 type
(cherry picked from commit 8619b0d280)
2019-07-03 12:27:24 +02:00
Michael cc8e1e93c3 Fixed 2D intersect_shape limiting broadphase results
Physics2DDirectSpaceStateSW was applying the result limit to broadphase
collision detection instead of narrow. This is inconsistent with its 3D
variant, as well as the rest of the 2D direct space state functions.

Broadphase is now limited by INTERSECTION_QUERY_MAX like everything else,
and narrow phase is exited early when the result limit has been reached.

(cherry picked from commit 1ba106a71e)
2019-07-03 12:27:24 +02:00
sheepandshepherd 3fcdb3198b Fix NativeScript property list
(cherry picked from commit bc110b3771)
2019-07-03 12:27:24 +02:00
Markus Ewald 3d5c5c28d5 Implement VisualServerScene::instance_set_extra_visibility_margin() method to actually apply extra culling margin and mark instance AABB dirty
(cherry picked from commit fc166f3ee1)
2019-07-03 12:27:24 +02:00
Bernhard Liebl ac1520325c Catch NSException in macOS run loop to prevent crashs
(cherry picked from commit 3ff18ee61e)
2019-07-03 12:27:23 +02:00
Marcelo Fernandez 5a89810238 Fix missing const in CapsuleShapeSW::get_area
(cherry picked from commit 9042ef3836)
2019-07-03 12:27:23 +02:00
Thomas Karcher b977e8ab0c Update of RigidBody2D class description
Added a hint in the RigidBody2D class description regarding the transformation issue mentioned in https://github.com/godotengine/godot/issues/5734

(cherry picked from commit 1170b78e28)
2019-07-03 11:07:05 +02:00
lopho 2ccca78929 Document CollisionObject2D pickable requires collision_layer
Documents CollisionObject2D mouse_entered, mouse_exited and input_event requiring at least one collision_layer to be set.

(cherry picked from commit da73bcca6f)
2019-07-03 11:06:30 +02:00
Jiří Procházka 768f5fd1ac Small documentation improvements
(cherry picked from commit 04b49264f2)
2019-07-03 11:05:23 +02:00
clayjohn 3066616e1a changed references to array types in arraymesh doc
(cherry picked from commit e8858a9a44)
2019-07-03 11:04:55 +02:00
Soham Kar 197ea38552 Fixed copy&paste error #28117
Changed "left to right" in VSplitContainer to "top to bottom".

(cherry picked from commit aa8b2f4448)
2019-07-03 11:03:44 +02:00
Rémi Verschelde 67a72a2759 doc: Add note about VisibilityNotifier.is_on_screen after instantiation
Fixes #9430.

(cherry picked from commit 3fc1f7dfbe)
2019-07-03 11:03:17 +02:00
Ignacio Etcheverry 64a7a6b2f4 Mono: Buildsystem support for finding MSBuild from VS2019
(cherry picked from commit e82b2def8e)
2019-07-03 11:02:10 +02:00
Sebastian Hartte adb9815199 Add support for new MSBuild directory naming introduced in VS 2019.
(cherry picked from commit 7440295ad1)
2019-07-03 11:01:35 +02:00
Poommetee Ketson 3daca13f72 Fix error explanation in core_bind Thread::_start_func
(cherry picked from commit 2caaa7c97d)
2019-07-03 10:59:11 +02:00
Jared 68148b16d3 Documented set_point_cloud() for ConvexPolygonShape2D
(cherry picked from commit 1d238c1835)
2019-07-03 10:56:30 +02:00
Rémi Verschelde 1fae776445 Fix GeometryInstance extra_cull_margin step
Fixes #22369.

(cherry picked from commit d4c75e608e)
2019-07-03 10:53:46 +02:00
Bernhard M. Wiedemann 413f4db585 BuildSystem: Fix font list
We want to add the individual strings to the list
and not add a list object to the list.

Without this patch, sorting failed because "str < list"
is not a valid operation in python.

(cherry picked from commit f312582326)
2019-07-03 10:48:19 +02:00
Rémi Verschelde c85d2d7420 AppVeyor: Skip saving cache on non-master branches
Otherwise we run into situations where commits to stable branches
induce very long build times, as they have to basically build from
scratch but also invalidate the cache for future commits on the
master branch.

This commit also makes the cache folder branch-specific, but since
it's still limited to 1 GB of total cache size, we don't enable it
for non-master, as we would still run into issues with non-master
build invalidating the master cache.

(cherry picked from commit b021bdbf1f)
2019-07-03 07:46:13 +02:00
Rémi Verschelde e284ea344d SCons: Default to builtin libpng/freetype on Linux (+ openssl)
The rationale for keeping those shared by default is that they're typical
dependencies found on any Linux system, and it saves compilation time and
binary size to link their dynamically.

But since official builds default to all-builtin, and Debian/Ubuntu still
don't have libpng16 (which we now require) readily available on all their
supported releases, it's simpler to bundle all the things.

This does not change the fact that those dependencies *can* be unbundled
on Linux, it's only the default option changing.

(cherry picked from commit 1769cbc0e2)

For 3.0, also building by default against bundled openssl.
2019-07-02 15:00:59 +02:00
Rémi Verschelde 315abb0513 Update sponsors
Image Campus is no longer a Gold sponsor at this time.

(cherry picked from commit 328805ae31)
2019-06-04 12:58:34 +02:00
Rémi Verschelde cae8e9fa8e openssl: Update to pristine 1.0.2s (security update) 2019-06-04 12:21:32 +02:00
Rémi Verschelde 069c4908c8 tinyexr: Sync with upstream 65f9859
(cherry picked from commit 9ce6588466)
2019-06-04 11:28:36 +02:00
Rémi Verschelde 2e18a4acdf TinyEXR: Sync with upstream master branch
Fixes #24247.

(cherry picked from commit 9105538b45)
2019-06-04 11:27:11 +02:00
elasota 0921e68913 Fix tiled EXR crash, update tinyexr to head to fix corrupted uncompressed EXR loading
(cherry picked from commit 4b7885fb1e)
2019-06-04 11:26:10 +02:00
Rémi Verschelde c9fdaa412a nanosvg: Sync with upstream c1f6e20
(cherry picked from commit 43d6774dcc)
2019-06-04 11:25:29 +02:00
Jari Ronkainen bed09c2af6 Do not use deprecated stuff that only glibc now implements
(cherry picked from commit 687b95b41f)
2019-06-04 11:23:26 +02:00
volzhs b9e0da98bb Update minizip to 1.2.11
(cherry picked from commit 7e563f75b5)
2019-06-04 11:17:01 +02:00
Rémi Verschelde 73f3bf15ea Update DONORS list
(cherry picked from commit 33bcd97700)
2019-06-04 11:01:17 +02:00
Rémi Verschelde 4845b27126 Update AUTHORS and DONORS list
New contributors added to AUTHORS:
@Kanabenki, @KoBeWi

Thanks to all contributors and donors for making Godot possible!

(cherry picked from commit 958c915f60)
2019-06-04 10:36:41 +02:00
Rémi Verschelde 37423caa06 stb: Update to upstream stb_truetype 1.21 and stb_vorbis 1.15
(cherry picked from commit f102546f34)
2019-06-04 10:33:47 +02:00
Guilherme Felipe 1b991ef095 Update stb_truetype to 1.19 and stb_vorbis to 1.14
(cherry picked from commit afbc66fccd)
2019-06-04 10:33:31 +02:00
Rémi Verschelde 9b8929cd28 libwebp: Sync with upstream 1.0.2
(cherry picked from commit 93f6a065f8)
2019-06-04 10:32:43 +02:00
volzhs f5dbc64e10 Update libwebp to 1.0.1
(cherry picked from commit d4133ac844)
2019-06-04 10:32:38 +02:00
volzhs c1b14b220b Update libwebp to 1.0.0
(cherry picked from commit 6ed8124923)
2019-06-04 10:32:30 +02:00
Guilherme Felipe c3ad539b41 Update libvorbis to 1.3.6
(cherry picked from commit 4932c7ddcf)
2019-06-04 10:31:42 +02:00
Rémi Verschelde 3f94d2697a libpng: Update to upstream 1.6.37
Fixes CVE-2019-7317.

(cherry picked from commit 225b61ab2a)
2019-06-04 10:31:16 +02:00
Chaosus 51c3b1cf7c Update libpng (1.6.35 --> 1.6.36)
(cherry picked from commit 5a89d08e3f)
2019-06-04 10:30:57 +02:00
Rémi Verschelde 1c9e21ab8a certs: Sync with latest ca-certificates-2018.2.26-2.fc29
(cherry picked from commit e50407d2d2)
2019-06-04 10:30:07 +02:00
James Buck cd25c9724f Fix editor tooltip formatting
Removed unnecessary word wrap which caused broken tags and general
ugliness. Fixes #24926

(cherry picked from commit 8b1b2f6a4c)
2019-04-20 19:55:19 +02:00
Rémi Verschelde adadff09b8
Merge pull request #28197 from akien-mga/3.0-drop-thekla-rand48
thekla_atlas: Drop potentially GPL'ed nvmath/Rand48 code
2019-04-19 21:13:08 +02:00
Rémi Verschelde dcdb707dec thekla_atlas: Clarify licensing for nvmesh and poshlib
Fixes #28180.
2019-04-19 13:17:46 +02:00
Rémi Verschelde 0dddfc12db thekla_atlas: Drop potentially GPL'ed nvmath/Rand48 code
We don't use it anyway.

Fixes #28182.
2019-04-19 12:57:39 +02:00
Rémi Verschelde 1949f8c7f5 Sync AUTHORS and DONORS with master branch 2019-04-07 21:50:07 +02:00
Rémi Verschelde a68965f64a SCons: Fix python3 compat for builtin_bullet=no
(cherry picked from commit 44f1b390a3)
2019-04-03 17:01:46 +02:00
Rémi Verschelde a3f901ecad AppVeyor: Force installing SCons 3.0.1
3.0.2 was released today and when installed via pip, it seems to be
missing from the PATH.

(cherry picked from commit fb47d8f554)
2019-03-26 15:38:32 +01:00
Rémi Verschelde f4b3756e85 SCons: Fix import clash between Godot and system modules
See #24965 for details. `sys.path.insert` is hacky, but should work
relatively well for both Python 2 and Python 3. When we eventually
deprecate Python 2 support, we could look into using importlib.

Fixes #24965.

(cherry picked from commit 644b266bae)
2019-02-27 09:20:15 +01:00
Rémi Verschelde 917d027941 Android: Enable arm64-v8a export by default
From August 1, 2019, Google Play requires that all new apps and app updates
include 64-bit versions, so we enable ARM64 by default.

IINM support for x86 and x86_64 is still be optional, so not enabling them
out of the box.

Part of #25030.

(cherry picked from commit 9e820cdf20)
2019-01-16 13:59:41 +01:00
Rémi Verschelde 0aa350306b SCons: Drop unused MPC_FIXED_POINT define
(cherry picked from commit eebca76be5)
2019-01-16 13:02:53 +01:00
Rémi Verschelde 392e5cfa1e Android: Add support for x86_64 architecture
Like arm64v8, this is only supported by API 21 and later,
so we enforce 21 as min API for x86_64.

Part of #25030.

(cherry picked from commit 7f4ee36469)
2019-01-16 12:51:56 +01:00
Rémi Verschelde 9b226e60e3 SCons: Deprecate ios_sim option forcing x86, simulator needs x86_64
(cherry picked from commit 95e96947f6)
2019-01-16 12:35:29 +01:00
Hein-Pieter van Braam 49929c1e57 Fix OSXCROSS build with clang-6.0
Backport from Fabio Alessandrelli's commit at
875d822d77
2019-01-08 00:55:46 +01:00
Rémi Verschelde 0eab0d9343 Update copyright statements to 2019
Happy new year to the wonderful Godot community!
2019-01-03 11:41:35 +01:00
Rémi Verschelde 468b3dccab Fix missing/malformed license headers 2019-01-03 11:18:27 +01:00
Juan Linietsky 202528c557 Initalize font size to 16, closes #21165
(cherry picked from commit c399c41dfb)
2018-12-09 13:45:36 +01:00
Andrea Beconcini 134428aefd uwp export: fix existing template check
(cherry picked from commit 11a1624202)
2018-11-28 10:28:28 +01:00
Andrii Doroshenko (Xrayez) bf6186449f Init `ignore_camera_zoom` property in parallax background constructor
The default value for `ignore_camera_zoom` property was initialized by garbage value,
leading to camera's zoom to be ignored even if unset in editor most of the time.

(cherry picked from commit 86eaded7b4)
2018-11-28 10:27:55 +01:00
Ibrahn Sahir c02ef4d7b9 Moved dynamic font list from static to lifetime controlled by main.
Means the list is destroyed before the OS object, allowing it the
opportunity to print an error if there are still dynamic font objects
hanging around.

(cherry picked from commit 7d82bed4f4)
2018-11-28 10:27:42 +01:00
Juan Linietsky b5866566d0 Make sky and ground energy do something, fixes #18856
(cherry picked from commit afe4f2080a)
2018-11-28 10:27:42 +01:00
Julien CATINEAU 22b105e421 add option to invert y-axis
(cherry picked from commit 57e6b8781c,
with later renaming from efd4228892
and 563356109b)
2018-11-28 10:27:42 +01:00
Juan Linietsky 9c8d84ed6c Get rid of gridmap error due to not yet valid cursor instance, fixes #17546
(cherry picked from commit 8306d60e85)
2018-11-28 10:27:42 +01:00
Juan Linietsky 586b73adf7 Do not error on empty shader, just treat it as invalid by default. Fixes #15998.
(cherry picked from commit 4d88721e62)
2018-11-28 10:27:42 +01:00
Rémi Verschelde a1b748f5f4 Travis: Install libstdc++ >= 4.9 for clang-format-6.0
(cherry picked from commit 22b176f69d)
2018-11-28 10:27:42 +01:00
Rémi Verschelde ce87428cfb Travis: Update style checks to clang-format 6.0.1
(cherry picked from commit 003ac67df1)
2018-11-28 10:27:42 +01:00
ShyRed e7886978bd Remove disabled shapes from physics
Disabling a shape removes it from physics calculations. Enabling a shape adds it back to the physics calculations.

(cherry picked from commit 4d6bb43931)
2018-11-28 10:27:42 +01:00
Juan Linietsky 7e1e73c719 Avoid double underscore from breaking glsl compiler, fixes #12880
(cherry picked from commit f00b522705)
2018-11-28 10:27:42 +01:00
Leon Krause 701683e557 Fix HTML5 gamepad input
(cherry picked from commit cd7c0f67b9)
2018-11-28 10:27:42 +01:00
Rémi Verschelde 272c31c837 Settings: Sort text editor themes alphabetically
(cherry picked from commit f0051394da)
2018-11-28 10:27:42 +01:00
Dominique LaSalle a142f89540 Fix gles3 shader to actually multiply specular light by rev_amount for fog calculations.
(cherry picked from commit f39d14dd61)
2018-11-28 10:27:42 +01:00
JFonS 07c85d3cdf Fix editor only lights
(cherry picked from commit 99a097aff2)
2018-11-28 10:27:42 +01:00
Toshiwo 5c8e340a3f fixed issue with PrismMesh size, ignore for VS code .code-workspace
(cherry picked from commit b27b1a99a0)
2018-11-28 10:27:42 +01:00
Hein-Pieter van Braam 3f5d9074e4 Properly export the various 'use dGPU' symbols when building with MingW
This fixes exporting the NvOptimusEnablement export when building with
MingW. This also adds the equivalent for AMD.

This fixes #23400

(cherry picked from commit 19d91f788d)
2018-11-28 10:27:42 +01:00
Hein-Pieter van Braam 96ed1801aa When starting up try creating directories recursively
Previously we had a check to see if cache and data directories exist and
another check to try to make them if they do not. However the second
check was never reached if we don't have the directories in question.

Furthermore for cache directories on Linux people who never started a
desktop environment we need to recurisively create the XDG directory as
well as the godot specific directory.

This fixes #17963

(cherry picked from commit 321ac5ae13)
2018-11-28 10:27:41 +01:00
volzhs 5dd8f775f9 Fix keep screen on property path for Android/iOS/UWP
(cherry picked from commit d18235bc38)
2018-11-28 10:27:41 +01:00
Rémi Verschelde e08eb964c4 libpng: Update to upstream version 1.6.35
(cherry picked from commit f4e682d717)
2018-11-28 10:27:41 +01:00
Juan Linietsky 36027d425c Ensure index is only saved when scene is inherited, or parent node is not from the edited scene. Closes #17562.
(cherry picked from commit d5d83b754d)
2018-11-28 10:27:41 +01:00
Juan Linietsky 248eee819a Add support for line continuations (wtf) in obj format, fixes #7974
(cherry picked from commit 5a5614e8ad)
2018-11-28 10:27:41 +01:00
Juan Linietsky 8ff42771a4 Ensure process notification is received only if really enabled, fixes #7894
(cherry picked from commit 15db793ef2)
2018-11-28 10:27:41 +01:00
Juan Linietsky a93e28291f Ensure one shot signals are not disconnected while edited, closes #7776
(cherry picked from commit ac52eb444f)
2018-11-28 10:27:41 +01:00
Juan Linietsky 10a71ab4d6 Added missing support for traditional chinese on Windows, fixes #7674
(cherry picked from commit e896261b87)
2018-11-28 10:27:41 +01:00
Juan Linietsky 4bcea9de74 Remove pointless check for no texture, fixes #7298
(cherry picked from commit 95a9e51975)
2018-11-28 10:27:41 +01:00
Juan Linietsky a2297c64e6 Perform a name check when loading scenes and running on editor, fixes #6152
(cherry picked from commit 200c6cf630)
2018-11-28 10:27:41 +01:00
Rémi Verschelde 482d60854a
Merge pull request #23904 from akien-mga/3.0-openssl-1.0.2q
[3.0] openssl: Update to pristine 1.0.2q (security update)
2018-11-22 19:56:49 +01:00
Rémi Verschelde cff0913be8 openssl: Update to pristine 1.0.2q (security update) 2018-11-22 17:51:18 +01:00
Rémi Verschelde 8bde816efd openssl: Reorder sources alphabetically 2018-11-22 16:43:17 +01:00
Rémi Verschelde 176f5c648d Doc: Fix typo in File documentation
Fixes #19383.

(cherry picked from commit 8569a0db3c)
2018-11-05 16:00:39 +01:00
MrVallentin 4c35d33ef6 Fixed typos
(cherry picked from commit 693ee5dd56)
2018-11-05 08:52:23 +01:00
Alexander Holland 2b54f0e680 Doc RichTextLabel push strikethrough and align
(cherry picked from commit 1f271e4be6)
2018-11-01 11:44:47 +01:00
Rémi Verschelde 2b1f692455 doc: Sync classref with current source 2018-11-01 11:39:29 +01:00
Rémi Verschelde aba24e6866 doc: Fix invalid [enum] uses
(cherry picked from commit 22b7489ab1)
2018-11-01 11:39:29 +01:00
Ibrahn Sahir 24269555a3 Corrected art depo link in editor icons readme.
(cherry picked from commit e1b14db86a)
2018-11-01 11:39:29 +01:00
Michael Alexsander Silva Dias e2267c80a0 Small doc formating changes and Linux cursor theme note
(cherry picked from commit 79ab43299a)
2018-11-01 11:39:29 +01:00
Rémi Verschelde 67a108b196 DocData: Fix return type listed as "var" instead of "Variant"
(cherry picked from commit f92b87e5f8)
2018-11-01 11:39:28 +01:00
Ibrahn Sahir d4e4c4f7e3 Fixed up a couple of license names in COPYRIGHT.txt
A couple of entries were using SPDX name over the Debian standard ones.
Switched these over and noted this policy at the top of the file to avoid
confusion.

(cherry picked from commit 6f2977f9c3)
2018-11-01 11:39:28 +01:00
Florian Jung 8514b4d403 Add documentation details about Image formats and color space conversion
(cherry picked from commit e37f408e70)
2018-11-01 11:39:28 +01:00
Chris Bradfield 5d53d6dd8c [DOCS] Classref additions and consistency fixes
(cherry picked from commit ec5cc708ce)
2018-11-01 11:39:28 +01:00
char0xff 51317569f9 Improve EditorPlugin.xml and EditorInterface.xml
(cherry picked from commit a0efe25c9e)
2018-11-01 11:39:28 +01:00
LikeLakers2 5d7a22e6d9 [Docs] Remove double-spaces from descriptions, as well a couple other small fixes
(cherry picked from commit eaac1e3b81)
2018-11-01 11:39:28 +01:00
lupoDharkael 8cdcd45561 Add code example to ArrayMesh class docs
(cherry picked from commit 9b85866c07)
2018-11-01 11:39:28 +01:00
Damien Picard f7bd6c1948 Doc: fix example in Array sort_custom()
(cherry picked from commit 5e8e216ee0)
2018-11-01 11:39:27 +01:00
aBARICHELLO f35e821d57 Add Input buttons and axes missing descriptions
(cherry picked from commit 6e0de76746)
2018-11-01 11:39:27 +01:00
Chris Bradfield d9d1a91c5f [DOCS] Update VisibilityEnabler* and TileSet doc
(cherry picked from commit 49549ce93c)
2018-11-01 11:39:27 +01:00
florian 8970abd67f ItemList signals additional documentation
Signals:
* item_selected
* item_rmb_select

(cherry picked from commit 65d182a939)
2018-11-01 11:39:27 +01:00
florian cee98e5a0b Document find_node()'s owner argument behaviour
(cherry picked from commit c14e034f06)
2018-11-01 11:39:27 +01:00
florian acd6ef1b3b Add Behaviour of SceneTree pausing to the doc
(cherry picked from commit 353af122b8)
2018-11-01 11:39:27 +01:00
Nathan Lovato 2da5e51eee [DOC] Complete the TextureProgress reference
Added 6 missing entries, clarified one definition

(cherry picked from commit 86a138f154)
2018-11-01 11:39:27 +01:00
clayjohn 924f7c6261 added descriptions to MeshDataTool doc
(cherry picked from commit 596c36a9ac)
2018-11-01 11:39:27 +01:00
Zaven Muradyan bba922c562 Add useful links for contributors to CONTRIBUTING and README docs.
(cherry picked from commit 172694ac4c)
2018-11-01 11:39:27 +01:00
Zaven Muradyan 27f606db1b Add comments to javascript wrapper parts.
The code in pre.js and engine.js is a bit confusing to see in isolation,
since the files aren't valid JS files by themselves. This just adds some
explanatory text to both files.

Fixes #22937.

(cherry picked from commit 61d5513525)
2018-11-01 11:39:27 +01:00
Alexander Holland 8b895dda3e Doc Tabs
(cherry picked from commit 3a875d3200)
2018-11-01 11:39:26 +01:00
Ashafix f442bc4b18 more detailed example for usage of PackedScene
(cherry picked from commit 725bec7735)
2018-11-01 11:39:26 +01:00
santouits 9a867f3da1 NavigationPolygon descriptions of the class and methods
(cherry picked from commit 1c14b01422)
2018-11-01 11:39:26 +01:00
Ashafix 72000d7b35 Added section that coordinates can be accessed via indexes
(cherry picked from commit bbfa37a29c)
2018-11-01 11:39:26 +01:00
Max Hilbrunner a9657c63f4 [DOCS] StreamPeerTCP
(cherry picked from commit 1df0900d8e)
2018-11-01 11:39:26 +01:00
M. Huri e6ae704f32 Repaired mistyped of 'its' on several files.
(cherry picked from commit b46ba24e3b)
2018-11-01 11:39:26 +01:00
paul gruenbacher f0cdf4294e added docs for lookeahead
Fix indenting

lookahead clarification

fix ahead

(cherry picked from commit 1c73443915)
2018-11-01 11:39:26 +01:00
Max Hilbrunner b404e9da00 [DOCS] YSort
(cherry picked from commit 1511a66a98)
2018-11-01 11:39:25 +01:00
Alexander Holland 21be3316b8 Doc Tabcontainer rearrange tabs
(cherry picked from commit 44aa312881)
2018-11-01 11:39:25 +01:00
Alexander Holland 5581d12e44 Doc LineEdit MenuRedo and clear_button_enabled
(cherry picked from commit c6dbcb1474)
2018-11-01 11:39:25 +01:00
M. Huri 7e8736a47d [Docs] Fixed 'get_button_count's link and a typo related to 'button'.
(cherry picked from commit 967831d9a0)
2018-11-01 11:39:25 +01:00
Alexander Holland ef66d357a7 Filled missing Doc for String and FileDialog
(cherry picked from commit e4b2a20cd6)
2018-11-01 11:39:25 +01:00
clayjohn c6f8ceface update and expand surfacetool doc
(cherry picked from commit 84e82a387f)
2018-11-01 11:39:25 +01:00
Chris Bradfield 0cdcecb813 [DOCS] SpatialMaterial descriptions
(cherry picked from commit 5e42e45c04)
2018-11-01 11:39:25 +01:00
Kelly Thomas 2eeeb163ba [Docs] Fix some broken links
(cherry picked from commit b1ab7b4acf)
2018-11-01 11:39:25 +01:00
Michael Alexsander Silva Dias 9a126f75bb Add example to Animation doc
(cherry picked from commit a02f02b9ed)
2018-11-01 11:39:24 +01:00
Michael Alexsander Silva Dias d2b6a0dc7a Add note in ParallaxLayer doc about ignoring position/scale changes after entering the scene
(cherry picked from commit 07e0f796af)
2018-11-01 11:39:24 +01:00
florian 0e992e6089 Add critical info to TreeItem.set_custom_draw documentation
Indicates that the method needs 2 arguments to be called

(cherry picked from commit 612193b77f)
2018-11-01 11:39:24 +01:00
florian 0f62f281ae Improve doc of ProjectSettings
Documentation added for:
* bool load_resource_pack(String)
* bool property_can_revert(String)
* Variant property_get_revert(String)
* Error save()
* Error save_custom(String)

(cherry picked from commit 73429cf9f5)
2018-11-01 11:39:24 +01:00
Max Hilbrunner c4e827bba4 [DOCS] NetworkedMultiplayerPeer: TransferMode(s)
(cherry picked from commit 84b6394a4d)
2018-11-01 11:39:24 +01:00
FlamyAT ef1376306a Fixed casting result in float.xml
The float-string parsing result in the documentation was inaccurate. 1e-3 is written as 0.001 when decimal.

(cherry picked from commit da296ce30f)
2018-11-01 11:39:24 +01:00
Kelly Thomas 000e3c8585 [DOCS] InputEventMouseButton: correct description for doubleclick property
(cherry picked from commit 7ecad927f3)
2018-11-01 11:39:24 +01:00
Jared 709c44485a Small documentation clarification added to CanvasItem.
(cherry picked from commit d286e98fd1)
2018-11-01 11:39:24 +01:00
char0xff a8b2e475fa Fix mistake in ConfigFile.xml
(cherry picked from commit 77ff6de27e)
2018-11-01 11:39:24 +01:00
char0xff 0795dc22b9 Update EditorInterface.xml
(cherry picked from commit 0c10d3fc16)
2018-11-01 11:39:23 +01:00
Kelly Thomas 9355d9c5a2 Standardize documentation for the pool arrays' invert methods
(cherry picked from commit 3e0ab0a2f2)
2018-11-01 11:39:23 +01:00
Mel Collins 5bf8f2cf9e Clarify which direction RemoteTransform[2D] work
(cherry picked from commit 12448e659a)
2018-11-01 11:39:23 +01:00
Carl Scarlett fa43d3b190 added clarification about Input.get_accelerometer only working when project is exported
(cherry picked from commit 91aa940b42)
2018-11-01 11:39:23 +01:00
VirtualBox 4afb9fcf1c Fix mistake in Array.xml
(cherry picked from commit cfb54df986)
2018-11-01 11:39:23 +01:00
Chris Bradfield 2fad317498 [DOCS] Classref additions and corrections
(cherry picked from commit c049c8fbb9)
2018-11-01 11:39:23 +01:00
Rémi Verschelde 0cceb0f261 RayCast2D: Fix reporting old collider after collision ended
It now behaves the same as RayCast (3D).
Fixed documentation accordingly and documented new configuration options.

Supersedes and closes #20567.

(cherry picked from commit 449fcc5a72)
2018-11-01 11:39:23 +01:00
Tiger C 6faa928979 Added documentation for some RigidBody methods, and copied the descriptions to matching PhysicsDirectBodyState methods.
(cherry picked from commit 74aa104607)
2018-11-01 11:39:23 +01:00
Chris Bradfield fdc2bb1952 [DOCS] Corrections and clarifications
(cherry picked from commit 285234e8d9)
2018-11-01 11:39:22 +01:00
VirtualBox 3395a55db4 Update UndoRedo.xml
(cherry picked from commit 57f3e89f70)
2018-11-01 11:39:22 +01:00
Mel Collins 172c6c615e Clarify direction of input event propagation
(cherry picked from commit 2d0a55c86c)
2018-11-01 11:39:22 +01:00
Chris Bradfield 2d0e7bd484 [DOCS] Many class ref updates
(cherry picked from commit 2a0991dde6)
2018-11-01 11:39:22 +01:00
Chris Bradfield d533bb9552 [DOCS] Updates to assorted class descriptions.
(cherry picked from commit 23b7edb214)
2018-11-01 11:39:22 +01:00
Rémi Verschelde cb935f030f Doc: Clarify usage of dialog_hide_on_ok and caveat for FileDialog
Fixes #20817.

(cherry picked from commit 155fb45ca2)
2018-11-01 11:39:22 +01:00
clayjohn c682baa97a removed reference to texscreen
(cherry picked from commit 333dfd562b)
2018-11-01 11:39:22 +01:00
Fluffel a1134e861e [DOCS] get_indexed, tween
(cherry picked from commit a164d593c0)
2018-11-01 11:39:21 +01:00
Poommetee Ketson 9a3a714ee1 [DOCS] SceneTree stretching constants
(cherry picked from commit 5ed0861e81)
2018-11-01 11:39:21 +01:00
Poommetee Ketson 052919fe44 [DOCS] complete Tree.get_drop_section_at_position and Tree.drop_mode_flags
(cherry picked from commit 6536834d42)
2018-11-01 11:39:21 +01:00
PJB3005 08555b9bde Improve TileMap.get_used_cells docs.
(cherry picked from commit 338217c30b)
2018-11-01 11:39:21 +01:00
Saracen 548777910b Fixes the hyperlinks for enumerators inside classes in the editor help.
(cherry picked from commit 63c6a2487f)
2018-11-01 11:39:21 +01:00
Jason Anderson 13177d2635 Added AudioStream descriptions
(cherry picked from commits 17eb26a83a
and 512ae49f7d)
2018-11-01 11:39:21 +01:00
Noshyaar b4b544ff73 Fix example code for EditorImportPlugin
(cherry picked from commit 817f315eae)
2018-11-01 11:39:21 +01:00
Rémi Verschelde caea1601c4 Doc: Add example for array indexing
Supersedes and closes #20180.

(cherry picked from commit adb16be6b9)
2018-11-01 11:39:21 +01:00
toger5 2b954b0d55 mention load in texture class
(cherry picked from commit 533e026f9c)
2018-11-01 11:39:21 +01:00
Thomas ten Cate 5281636de4 Document return value of yield() with signals
Fixes godotengine/godot-docs#1478

(cherry picked from commit 117c666fce)
2018-11-01 11:39:20 +01:00
Hugo Locurcio bb5312d3f7 Document Vector2.round() and Vector3.round()
(cherry picked from commit 61fd3cd32a)
2018-11-01 11:39:20 +01:00
Emmanuel Leblond dd81ee9855 Correct test list returned by test_get_names
(cherry picked from commit 7e3b605ff4)
2018-11-01 11:39:20 +01:00
Rémi Verschelde 80e66a6214 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.

(cherry picked from commit f392650be2)
2018-11-01 11:39:20 +01:00
Daniel "Orangestar" O d73de3fb97 Fix Error in the ScrollContainer Tooltips
(cherry picked from commit 40ec56801b)
2018-10-31 10:58:24 +01:00
Leon Krause c9ab2bab22 Fix help/man for --export and --export-debug
(cherry picked from commit c4c7270cc7)
2018-10-31 10:57:39 +01:00
Leon Krause ce362c03cf Allow exporting runnable presets from command line
(cherry picked from commit af7926cf98)
2018-10-31 10:56:44 +01:00
Rémi Verschelde 83b53ce6c8
Merge pull request #23033 from akien-mga/3.0
Backport of Android buildsystem improvements for 3.0
2018-10-16 14:32:28 +02:00
Wojciech Milkowski 74fe5968c1 Fix build with Android NDK r18
As a bonus there is no need to use undocumented Gradle API any more.

(cherry picked from commit 3598165c4d)
2018-10-15 16:27:40 +02:00
Wojciech Milkowski 8c714bf8cd No need to link with libandroid_support in NDK 17
According to https://github.com/bytedeco/javacpp/pull/244 in NDK 17
libandroid_support library is not needed any more, and on armv8 is
already gone which breaks compilation.

(cherry picked from commit 3a3ea6d514)
2018-10-09 09:23:19 +02:00
Ridwan Abdul Hafidh d3ca68aee4 add support libc++_shared stl on android
(cherry picked from commit b0419db46f)
2018-10-09 09:23:03 +02:00
Tiago Quendera a063074346 Update detect.py
Fixed a typo in detect.py

(cherry picked from commit aa594614db)
2018-10-09 09:20:31 +02:00
Rémi Verschelde f16f9b2b8a i18n: Sync translations with Weblate 2018-08-23 13:37:15 +02:00
Rémi Verschelde d95d136550 Update AUTHORS and DONORS list
New contributors added to AUTHORS:
@dragmz, @fire

Thanks to all contributors and donors for making Godot possible!

[ci skip]

(cherry picked from commit 284b56f2fb)
2018-08-13 08:11:35 +02:00
Hein-Pieter van Braam 16ab5e091d 3.0.7-devel
Onwards my precious!
2018-07-31 20:13:10 +02:00
Hein-Pieter van Braam 8ac39d8863 3.0.6 changelog 2018-07-31 20:03:50 +02:00
Hein-Pieter van Braam 83140541dc Fix Mono compilation on Windows/Ming 2018-07-28 23:01:38 +02:00
Hein-Pieter van Braam 4491151aa9 Version 3.0.6-stable 2018-07-28 21:39:16 +02:00
Fabio Alessandrelli 5262d1bbcc Fix marshalls size checks.
Yesterday, when playing around with my network code, I realized there is
a security issue in decode_variant, at least when decoding PoolArrays.
Basically, the size of the PoolArray is encoded in a uint32_t, when
decoding it, that value is cast to int when comparing if the packet is
actually that size causing numbers with MSB=1 to be interpreted as
negative thus always passing the check. That same value though, is used
as uint32_t again to resize the output vector.  For this reason, sending
a malformed packet with declared type PoolByteArray and size of 2^31(+x)
causes the engine to try to allocate 2+GB of pool memory, causing the
engine to crash.
2018-07-28 21:21:19 +02:00
Ignacio Etcheverry 1a325e3580 Fix continuous attempt to reload domain with API assemblies out of sync
(cherry picked from commit 762c912e8e)
2018-07-28 16:06:30 +02:00
Ignacio Etcheverry fc678567d7 Mono: Fix domain reload never triggering
(cherry picked from commit f1130f9a8a)
2018-07-28 16:06:30 +02:00
Ignacio Etcheverry 286ff21dd1 Fix '!valid' error spam on C# script instance create
(cherry picked from commit 8edf85b09c)
2018-07-28 16:06:30 +02:00
Ignacio Etcheverry cf1c127c23 Mono: Fix null dereferences
(cherry picked from commit 5aefe5d936)
2018-07-28 16:06:30 +02:00
Ignacio Etcheverry e7110984f3 Add Dictionary::erase_checked(key) method
Same as erase, but it returns a boolean value indicating whether the pair was erased or not.
This method should be removed during the next compatibility breakage, and 'Dictionary::erase(key)' should be changed to return a boolean.

(cherry picked from commit 2f69e36cef)
2018-07-28 16:06:30 +02:00
Ignacio Etcheverry 31f8d3525d Add Array and Dictionary wrapper classes to C#
(cherry picked from commit ee3c476c9a)
2018-07-28 16:06:30 +02:00
Ignacio Etcheverry e1cf8dc2cb Mono: Pending exceptions and cleanup
(cherry picked from commit 4739cb8c00)
2018-07-28 16:06:30 +02:00
Rémi Verschelde 291be24742 Mono: Default to not shipping C# scripts content
Fixes #20053.

(cherry picked from commit df170d81cc)
2018-07-28 16:06:30 +02:00
Aaron Franke 3304c7620a [Mono] Improvements to GD.cs: PascalCasing and real_t
[Mono] Improvements to GD.cs: PascalCasing and real_t

(cherry picked from commit 174cf31d00)
2018-07-28 16:06:30 +02:00
Pieter-Jan Briers ba441c48b0 Makes Mono bindings partial & adds GetNode<T>.
(cherry picked from commit a8c97eb094)
2018-07-28 16:06:30 +02:00
oisincar e5aedf130f Fix bug with Basis.Transposed()
Fix bug where Basis.Transposed() incorrectly updated local basis, and
returned an unmodified copy. This also fixes Transform.Inverse().

(cherry picked from commit 7a4d593198)
2018-07-28 16:06:30 +02:00
Ignacio Etcheverry 94debea0a9 Make C# bindings generator ignore disabled classes
(cherry picked from commit 92c7fe422b)
2018-07-28 16:06:30 +02:00
Aaron Franke c6a48e11e9 [Mono] Update about/warning text
I've removed the section about being unable to export games using C# - as you are now able to do this, as long as the export templates are installed. Also, I've made a few minor grammar tweaks.

(cherry picked from commit 69530ef614)
2018-07-28 16:06:30 +02:00
Mads Ynddal 327452cb09 Added path for Mono installed through Homebrew
On macOS, it is common to install packages like Mono through the third-party
package-manager Homebrew. This commit simply adds an additional path to
where Homebrew installs the Mono framework.

(cherry picked from commit 39aabba0a9)
2018-07-28 16:06:30 +02:00
Kelly Thomas c751b66d38 convert unicode mono root path to ascii string
(cherry picked from commit 753230c275)
2018-07-28 16:06:30 +02:00
Nathan Warden 5928b18cf3 The build-solutions flag now forces editor mode.
(cherry picked from commit 03bb14bcc5)
2018-07-28 16:06:30 +02:00
Rémi Verschelde f37779ba20 Travis: Build Mono module in linux tools job
(cherry picked from commit 7bf0c134a7)
2018-07-28 16:06:30 +02:00
Rémi Verschelde ef67ef3155 Travis: Make dependencies follow the matrix requirements
Also make the coverity addon only applied to the static checks build job.

(cherry picked from commit c58f73fd35)
2018-07-28 16:06:30 +02:00
Rémi Verschelde ba3406fffe Travis: Cleanup build matrix
Remove unused MinGW config, switch server build to gcc/tools.
Update COVERITY_SCAN_TOKEN's secure.

(cherry picked from commit f827dcba44)
2018-07-28 16:06:30 +02:00
Aaron Franke 68bfea5aa0 [Mono] Rename Fposmod to PosMod
[Mono] Rename Fposmod to PosMod

(cherry picked from commit 5b2b23c9a9)
2018-07-28 16:06:30 +02:00
Josh Faust be588f9493 Fix crash on editor startup when running with platform=server
(cherry picked from commit 4e58db9f12)
2018-07-28 16:06:30 +02:00
Josh Faust c3fcb18bc6 Fix scene import when platform=server
Adds code in RasterizerStorageDummy to store off mesh surface information,
rather than just throwing it away. Without this, all surface arrays were
just defaulting to empty when the packed scene was written.

(cherry picked from commit 5b639269a2)
2018-07-28 16:06:30 +02:00
chanon 4897227d04 fix can't set AudioStreamPlayer stream to null
(cherry picked from commit 2bdac0a5d9)
2018-07-28 16:06:30 +02:00
Chaosus 11cbf850a4 Fix vsync initialization
(cherry picked from commit 5c0a576630)
2018-07-28 16:06:30 +02:00
Konstantin Zaitsev c00c3f10a4 Fix possible NullPointerException crash on cancel payment
(cherry picked from commit d05db4de8e)
2018-07-28 16:06:30 +02:00
Michael Lee 00fa61f8f5 Preventing an editor crash in the event that a plugin scene's root-node is null.
(cherry picked from commit 2adfdbe184)
2018-07-28 16:06:30 +02:00
Marcelo Fernandez d3a482ab65 Fix possible bug with AudioStreamPlayer2D audio position
(cherry picked from commit 0c78a58b64)
2018-07-27 17:14:22 +02:00
Hein-Pieter van Braam b64850e732 Make _ALWAYS_INLINE_ and _FORCE_INLINE_ equivalent
_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-27 17:14:22 +02:00
Pedro J. Estébanez bc2ee93758 Fix touch issues on Windows
(cherry picked from commit 2f161ffd4f)
2018-07-27 17:14:22 +02:00
Hein-Pieter van Braam 2843a3f7e7
Merge pull request #20517 from akien-mga/openssl-1.0.2o
openssl: Update to pristine 1.0.2o (security update)
2018-07-27 17:10:51 +02:00
Rémi Verschelde 33a9bda1d9 openssl: Update to pristine 1.0.2o (security update) 2018-07-27 16:17:27 +02:00
bruvzg d3c4f91c9c Workaround for clang 6 bug.
(cherry picked from commit b68222e4e7)
2018-07-26 16:09:42 +02:00
Rémi Verschelde 5c6c88ef15 i18n: Sync translations with Weblate 2018-07-26 11:22:43 +02:00
Rémi Verschelde 69cdb35820 Travis: Update clang-format version in shell script
(cherry picked from commit 36efa7d445)
2018-07-18 17:49:27 +02:00
Rémi Verschelde 4d89153e5f Travis: Install libstdc++ >= 4.9 for clang-format-6.0
(cherry picked from commit 22b176f69d)
2018-07-18 17:45:39 +02:00
Rémi Verschelde c709dff1a2 Style: Format code with clang-format 6.0.1
(cherry picked from commit 7c9f7452f4)

Travis: Update style checks to clang-format 6.0.1

(cherry picked from commit 003ac67df1)
2018-07-18 16:37:23 +02:00
Rémi Verschelde d859aa1438 Update AUTHORS and DONORS list
New contributor added to AUTHORS:
@JFonS
Also updated alphabetically sorting with `sort -d`.

Thanks to all contributors and donors for making Godot possible!

[ci skip]

(cherry picked from commit b631306de1)
2018-07-18 10:31:45 +02:00
Rodolfo Ribeiro Gomes 4fcb0d036c fix default glTF metallic & roughness factor values
The glTF 2.0 spec says that these pbrMetallicRoughness material
properties should be set as 1.0 by default.
In fact, KhronosGroup's official Blender Exporter does not even write
down those parameters if they are set as 1.0.

However, Godot import them as 0.0.

https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#pbrmetallicroughness

Fixes: #19613 https://github.com/godotengine/godot/issues/19613
(cherry picked from commit 01b01209a3)
2018-07-10 00:10:39 +02:00
Hein-Pieter van Braam b5338b640f Bump to 3.0.6-devel 2018-07-09 14:32:35 +02:00
Hein-Pieter van Braam 6a88e22423 Version 3.0.5-stable 2018-07-08 16:03:43 +02:00
Hein-Pieter van Braam 861d341dff 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.

(cherry picked from commit 2a126242dd)
2018-07-08 15:48:08 +02:00
volzhs a34daf6851 Fix segfault at quiting editor
(cherry picked from commit e639db0529)
2018-07-08 15:39:15 +02:00
Pedro J. Estébanez 59a00c3cdd Fix debugger focus stealing
At least on Windows, the authorization must be given every time, not only at startup.

(cherry picked from commit 2fcbf9dd81)
2018-07-08 15:39:15 +02:00
Kelly Thomas e86ef017f2 allow undefined GODOT_DEBUG_MSBUILD environment variable
(cherry picked from commit 17516822f9)
2018-07-08 15:39:15 +02:00
Ignacio Etcheverry d4a226500b Mono: Add 'View log' button to open the MSBuild log of a build
(cherry picked from commit 4a021fa7a2)
2018-07-08 15:39:15 +02:00
Ignacio Etcheverry 16550339ba Mono: Fix passing wrong logger assembly path to MSBuild
- Add option to print MSBuild's stdout and stderr instead of redirecting it. This can be enabled by setting the environment variable: Godot_DEBUG_MSBUILD=1

(cherry picked from commit 25f10b3c40)
2018-07-08 15:39:15 +02:00
Ignacio Etcheverry 84e1551c64 Mono: Null checks when marshaling from MonoArray* and managed Dictionary
(cherry picked from commit 7933a6cc9f)
2018-07-08 15:39:15 +02:00
Nathan Warden af902dc042 Lerp now consistent with Godot API. InverseLerp fixed.
(cherry picked from commit c2315e3291)
2018-07-08 15:39:15 +02:00
Rémi Verschelde d99b247cc7 Revert "Fix saving unmodified scenes and resources"
This reverts commits 28ab60422d
and 7821b70a00.

Fixes #19576, and likely the fact that subresources are no
longer saved when saving scenes with no change.

(cherry picked from commit 5d7f9f804a)
2018-07-08 15:39:15 +02:00
GagaPete 139185e543 Fix CORS problems due to added headers on JS target
Before this change, missing User-Agent and Accept headers were automatically
added on all platforms. Setting the User-Agent header forces the browser to
do a CORS preflight (see 1) which fails if the HTTP endpoint is not
configured appropriate. It's not neccesary to set either header as the
browser sets them and so this commit disables that functionality on the JS
target.

1: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Simple_requests
(cherry picked from commit 8a4dccc4ce)
2018-07-08 15:39:15 +02:00
= 64bcefb7cd Mono: Fixes annotated signal loading in exported binaries
(cherry picked from commit 489c9adf03)
2018-07-08 15:39:15 +02:00
Rémi Verschelde 4ac9932128
Merge pull request #19944 from PatrickKaster/feature/android_modules_asset_dir
asset_dir method in Android modules' gradle config
2018-07-04 23:29:38 +02:00
Patrick Kaster 9190ae2be7 added 'android_add_asset_dir('...') method to Android module gradle build config 2018-07-04 23:04:14 +02:00
Rémi Verschelde a03cf8964f Fix date typo in changelog 2018-06-28 14:22:43 +02:00
Hein-Pieter van Braam 4bf441c32b Bump to 3.0.5
And onwards!
2018-06-23 17:05:45 +02:00
Hein-Pieter van Braam b116a45f07 Add changelog for 3.0.4 2018-06-23 16:45:07 +02:00
Hein-Pieter van Braam d91613592b Godot 3.0.4-stable 'brown paper bag' 2018-06-22 15:33:45 +02:00
Rémi Verschelde e6df472e8f doc: Remove extraneous empty lines in descriptions 2018-06-22 14:51:59 +02:00
Mel Collins f6abffdb4a Add longer description to ViewportTexture doc
(cherry picked from commit cf63abac36)
2018-06-22 14:47:09 +02:00
Max Hilbrunner a1930b1772 [DOCS] Builtin keywords because search is terribad
(cherry picked from commit 5002db6be1)
2018-06-22 14:46:48 +02:00
Max Hilbrunner 9530ce9d3f [DOCS] TreeItem: Small fix for remove_child()
(cherry picked from commit 25b5242d9f)
2018-06-22 14:46:35 +02:00
Max Hilbrunner 3d8e49d9e8 [DOCS] InputEventMouseButton: Factor
(cherry picked from commit 03250259d3)
2018-06-22 14:46:17 +02:00
Mel Collins 64419a2ea1 Add a little to ViewportTexture docs
(cherry picked from commit b820056b38)
2018-06-22 14:45:44 +02:00
letheed 34eabc0602 Fix Vector2 doc of floor, add ceil doc
(cherry picked from commit d759d25aca)
2018-06-22 14:45:18 +02:00
tagcup ade470352c Added some details in skeleton docs.
Workaround for #19551.

(cherry picked from commit 195e963613)
2018-06-22 14:44:53 +02:00
unknown ae48b1b94a Added description for abs function in Rect2
(cherry picked from commit d1b3f36eab)
2018-06-22 14:44:34 +02:00
clayjohn 394838901d updated Viewport docs to correct wrong information and fill out empty sections
(cherry picked from commit 650ebdc832)
2018-06-22 14:44:06 +02:00
Bastiaan Olij f49fcc960b Added some documentation to particles
(cherry picked from commit c4dfef58d9)
2018-06-22 14:43:45 +02:00
Rhody Lugo 2f3e4c1a7a add NoCache wrapper to Command
(cherry picked from commit 920224a535)
2018-06-22 14:42:14 +02:00
Rémi Verschelde d04cc2855a i18n: Sync translations with Weblate 2018-06-22 10:57:15 +02:00
Rémi Verschelde 909eaede4c Disable threading in Asset Library
Threaded HTTPRequest appears to be crashy on 3.0.x.
Fixes #19336.
2018-06-22 09:30:17 +02:00
Marc Gilleron 4d7aa0b762 Make heightmap shape usable from PhysicsServer
- Fixed bad size check
- Fixed bad member initialization
- Removed unused cell_size (Bullet expects us to use localScaling)
- Accept precomputed min/max height, will be calculated if not provided

(cherry picked from commit a66e1af168)
2018-06-14 15:50:15 +00:00
Hein-Pieter van Braam 98609279b6 Bump version to 3.0.4
And onwards!
2018-06-14 15:37:51 +00:00
Rémi Verschelde 25047050b7 Update AUTHORS and DONORS list
New contributors added to AUTHORS:
@Nallebeorn, @ibrahn, @KellyThomas, @ShyRed

Thanks to all contributors and donors for making Godot possible!

[ci skip]

(cherry picked from commit a18fe06773)
2018-06-14 15:22:48 +00:00
Hein-Pieter van Braam 38e6ba10b4 Update changelog for 3.0.3-stable 2018-06-14 15:21:42 +00:00
Hein-Pieter van Braam e649ec71df Fix some missed changes from a cherrypick 2018-06-13 12:21:29 +00:00
Hein-Pieter van Braam 711aa196af Bump version to 3.0.3-stable 2018-06-13 11:57:40 +00:00
bruvzg 518a691231 Mono: Allow loading `mscorlib` from resources.
(cherry picked from commit b3ddf12fb1)
2018-06-13 11:57:40 +00:00
Rémi Verschelde e8bfc09b81 i18n: Sync translations with Weblate 2018-06-05 22:10:51 +02:00
Rémi Verschelde 74808e71d2 i18n: Sync translation templates with current source 2018-06-05 22:04:33 +02:00
Hugo Locurcio 403f7dc35f Change ".." punctuation for "..." in editor strings (#16507)
(cherry picked from commit 1c419531a0)
2018-06-05 21:42:33 +02:00
Hein-Pieter van Braam e09170dffa Revert "Prevent visibility notification been called twice in object creation"
This reverts commit 826108efec.

This caused a regression (#18614), and potentially other unintended regressions.
2018-06-05 12:14:57 +02:00
Hein-Pieter van Braam f640639867 Fix Mono static linking on Mingw 2018-06-01 21:45:21 +02:00
Hein-Pieter van Braam d24f77be99 Fix documentation version strings 2018-06-01 18:19:33 +02:00
Kelly thomas f697b53eba round / ceil methods for c sharp vectors
(cherry picked from commit a6bd2c6e72)
2018-06-01 18:08:52 +02:00
Alexander Alekseev 8231b3cef8 Vector3::round, Vector2::round & Vector2::ceil methods were added.
Now both structs (Vector2 & Vector3) have round, floor & ceil methods.
(see #18603)

(cherry picked from commit 26963473a9)
2018-06-01 18:08:29 +02:00
Adam Cigánek b95cc40640 Set current SynchronizationContext before the game loop starts
This fixes the problem that `SynchronizationContext.Current` would be null
during the call to `_EnterTree`, `_Ready` and the first call to `_Process` thus
the task continuations would be scheduled outside the main thread, which is unexpected and might lead to crashes.

With this change, task continuations are scheduled always on the main thread and so async/await can be used without any explicit synchronization, which is what is expected.

Fixes #18849

(cherry picked from commit f25240cfe6)
2018-06-01 18:07:32 +02:00
Michele Valente 9294978596 fixes build error on Linux after its introduction in #18949
The function expects now a return value. Returning NULL seems to work in
this case.

(cherry picked from commit 6c74f3de6d)
2018-06-01 18:06:44 +02:00
Ignacio Etcheverry 3d3e4e62af Mono: Project building fixes
- Set (Csc/Vbc/Fsc)ToolExe environment variables to point to the batch files in Mono's bin directory when building with Mono's MSBuild.
- Set Mono's MSBuild as the default build tool on Windows.
- Generate projects with portable DebugType instead of full.

(cherry picked from commit 01397a10d9)
2018-06-01 18:06:42 +02:00
Kelly Thomas d00926894e mono: add Slerp method to vector classes, expose Cross method for Vector2, and fix unnecessary casts in Basis
(cherry picked from commit b335274bcd)
2018-06-01 18:05:28 +02:00
Carter Anderson 5d2ad1e5c7 Reduce allocations when converting mono arrays to pool arrays
(cherry picked from commit 56262ceafe)
2018-06-01 18:04:54 +02:00
Ignacio Etcheverry 9945da3efc Mono: Improve 'script class not found' error
No longer printed when using using placeholder script instances (for non-tool scripts in the editor).
Print different error if the project assembly is not loaded

(cherry picked from commit c8945fe7d8)
2018-06-01 18:04:12 +02:00
Rémi Verschelde d1e5677fe6 Travis: Add server build with clang
(cherry picked from commit 1e19e2846d)
2018-06-01 18:02:49 +02:00
geequlim 49ddd7b0e7 Add more IDE created files into .gitignore
(cherry picked from commit d3a6960437)
2018-06-01 18:01:21 +02:00
Max Hilbrunner e29800ea7b Javascript: Remove weird log
(cherry picked from commit 0c56e011ad)
2018-06-01 18:00:51 +02:00
volzhs 97ad6b813a Make filename clipped on Import dock
(cherry picked from commit 12fb5f58d9)
2018-06-01 18:00:17 +02:00
Bastiaan Olij 77542276f8 Check for 0 roll influence
(cherry picked from commit 660bebec94)
2018-06-01 17:59:15 +02:00
Bastiaan Olij 0a3779135d Improve side impulse calculation
(cherry picked from commit a36e5951ff)
2018-06-01 17:59:11 +02:00
anakimluke edf423a7aa fixed minor doc wording problem
(cherry picked from commit 4fe2605ab3)
2018-06-01 17:56:56 +02:00
clayjohn 02b1586de2 filled in docs for panorama sky
filled in docs for panorama sky

(cherry picked from commit 1bf7f8fcd1)
2018-06-01 17:56:24 +02:00
clayjohn a2a136ea02 added documentation for procedural sky
Added documentation for procedural sky

added documentation for procedural sky

added documentation for procedural sky

(cherry picked from commit 6711691d10)
2018-06-01 17:55:54 +02:00
Kelly Thomas 9b8388dab1 [docs] fix links in class docs
(cherry picked from commit 888eefa0fd)
2018-06-01 17:55:13 +02:00
Kelly Thomas fbad7c2dd9 [docs] fix links in class docs
(cherry picked from commit c6ed46891d)
2018-06-01 17:53:52 +02:00
Chris Bradfield 12fe774844 [DOCS] Update VideoPlayer classref
(cherry picked from commit 393125a6a4)
2018-06-01 17:52:07 +02:00
Max Hilbrunner 8dc021925f [DOCS] Array sort
(cherry picked from commit 9115d84913)
2018-06-01 17:50:56 +02:00
Bastiaan Olij 6843ccf462 Added some quick info on shaders to the docs
(cherry picked from commit b7ae2ca128)
2018-06-01 17:50:29 +02:00
Michael Alexsander Silva Dias b27352a401 Fixed GroupCallFlags links in the SceneTree's doc.
(cherry picked from commit e10687a520)
2018-06-01 17:49:22 +02:00
Kelly Thomas 8461d6b5f9 Mono: Basis constructor for euler parameter
(cherry picked from commit c26d30986a)
2018-06-01 17:46:38 +02:00
Kelly Thomas 0febfa9eea mono: New Color methods: Darkened, Lightened and ToRgba32
(cherry picked from commit 88bd33f451)
2018-06-01 17:45:49 +02:00
Kelly Thomas 232a3a524b mono: Plane, expose Normal, and D
(cherry picked from commit 16e1b4bacf)
2018-06-01 17:44:56 +02:00
toger5 b04c9a1b66 fixed capital A osx
(cherry picked from commit 6476b708d9)
2018-06-01 17:43:28 +02:00
toger5 dd026c77e3 fixed a input not registered in osx script editor
(cherry picked from commit d927e972d1)
2018-06-01 17:43:14 +02:00
Sherjil Ozair 00bf66d7f2 Add additional macos shortcuts for going to start/end of line
(cherry picked from commit 166c7fdc9d)
2018-06-01 17:43:10 +02:00
Kelly Thomas 6224f02c56 Fix index out of range error in string.Extension()
(cherry picked from commit c7e98eef67)
2018-06-01 17:37:43 +02:00
Rémi Verschelde 31ce9ba07f Fix scons installation on AppVeyor
Seems like AppVeyor just upgraded pip and finally removed the
deprecated --egg switch.

(cherry picked from commit 79e76d8329)
2018-06-01 17:35:29 +02:00
Ignacio Etcheverry 94b4bb2a12 Mono: Fix MonoImage filename being set to an invalid path
(cherry picked from commit 97fb999976)
2018-06-01 17:33:51 +02:00
Dmitry Pupinin 188bfd2ac9 Increase versionCode range 3.0
(cherry picked from commit d71d968987)
2018-06-01 17:33:27 +02:00
Hein-Pieter van Braam 04defcca4f Bump to 3.0.3rc3 2018-06-01 17:27:54 +02:00
Paul Joannon 81eb60434a [mono] fix signals parameter retrieval
(cherry picked from commit 7a72395412)
2018-05-16 12:27:45 +02:00
Hein-Pieter van Braam 6635f2a108 Add back missing method from e10a2e5999 2018-05-14 00:25:34 +02:00
Paul Joannon 1d3be8c453 fix API string path
(cherry picked from commit a35c8bbdc7)
2018-05-13 23:03:48 +02:00
JFonS 4de1d0905a Fix vector reduction in shader language
(cherry picked from commit 5b50685b38)
2018-05-13 23:02:32 +02:00
Karolis K c461b15720 Fix icon if remote icon load fails
(cherry picked from commit c3e921fba3)
2018-05-13 22:58:13 +02:00
Fabio Alessandrelli 5c93f887ba Implement missing methods in dummy rasterizer
(cherry picked from commit 0cad1417b6)
2018-05-13 22:56:53 +02:00
Leon Krause 9dc5ca0e7c Fix duplicate definitions with FreeType
(cherry picked from commit b8c35b4078)
2018-05-13 22:46:11 +02:00
Chris Bradfield c7b141d20a [DOCS] Vector2/Vector3/TileMap wording fixes
(cherry picked from commit 8bc4882dd3)
2018-05-13 22:45:08 +02:00
volzhs 0b3b3de2cd Ability to change path color with self modulate
Fix #18164

(cherry picked from commit d77ffa3e97)
2018-05-13 22:43:10 +02:00
Bastiaan Olij 5e551a584e added custom aabb to primitives
(cherry picked from commit 1ee40206d4)
2018-05-13 22:41:29 +02:00
Alexander Holland fd95935fef hide tab changed debug print
(cherry picked from commit 31f28885f9)
2018-05-13 22:40:28 +02:00
RaphaelHunter 4fbb460a02 Fix:code editor text size should change at least one each time, don't mind how you setting your display scale
(cherry picked from commit eeb0534426)
2018-05-13 22:39:13 +02:00
Michael Alexsander Silva Dias 4aad40d249 Small changes for some strings.
(cherry picked from commit 5b0ddb1354)
2018-05-13 22:37:56 +02:00
Hugo Locurcio 8ccb27ce18 Tweak the property hint ranges of caret blink and line length guideline
This allows for more precise adjustments.

(cherry picked from commit 0eb2f6c223)
2018-05-13 22:36:21 +02:00
Anish 9a0a40042e Adds keywords to autocomplete predictions.
Adds keywords to the autocomplete prediction in GDScript so
they are not replaced by irrelevant predictions.

Fixes: #5972
(cherry picked from commit 6e32157a65)
2018-05-13 22:35:19 +02:00
Unknown 09277c8fd8 LinkButtons are now responsive to engine theme
Fixes #18636, so now LinkButtons (like those in the asset store) will change font colour to remain visible in any engine theme, just like Labels etc

(cherry picked from commit c364a1278e)
2018-05-13 22:34:10 +02:00
Hein-Pieter van Braam faceb5b75d Implement pull/18665 for 3.0
Windows detect.py: Detect missing WindowsSdkDir
2018-05-13 22:32:01 +02:00
Hein-Pieter van Braam 9dc5ba1aaf Bump version to 3.0.3rc2 2018-05-13 22:28:07 +02:00
robfram a187fb381e Fix placeholders position in `LineEdit` when editing inside the Editor
Editing the `Text` property through the editor causes a wrong
placement of the placeholder, as it calls `LineEdit::clear_internal`,
which was wrongly reseting the cached placeholder width.

Fix #18184.

(cherry picked from commit c17de1f70f)
2018-05-13 22:19:42 +02:00
Leon Krause 868c44b239 Fix keyboard focus lock-out with HTML5 canvas in iframe
(cherry picked from commit 9080e96bc8)
2018-05-13 22:17:53 +02:00
Charly Mourglia 10c12b37ec Consider TextEdit paste operation complex.
Not considering a paste operation as a complex one ends up
adding an unneeded extra step when pasting over a selection.

This fixes issue #18325

(cherry picked from commit b09e0454bb)
2018-05-13 22:16:56 +02:00
Brian Richardson ae32bcf4c3 Fix a crash when trying to run Godot debugger on a release build.
The GDScriptLanguage::enter_function is wrapped in #ifdef DEBUG but the exit_function is not, resulting in a stack underflow error.

(cherry picked from commit 9149b11973)
2018-05-13 22:14:44 +02:00
thfrwn 3491e776dd fix clang6 assignment error
(cherry picked from commit f48ff4dc64)
2018-05-13 22:13:14 +02:00
Ibrahn Sahir 5f632391ca fix for segfault when using CallBasic in visual script on release build
(cherry picked from commit 95dfa5b96d)
2018-05-13 22:11:08 +02:00
Poommetee Ketson 2e61ca6193 Particles: fix corrupted scene when saved after convert (2nd try)
(cherry picked from commit 38865345d9)
2018-05-13 22:08:53 +02:00
Peter Folkins 3013f4cf2b Fix AnimationPlayer edited scene bug
(cherry picked from commit 223f085857)
2018-05-13 22:05:28 +02:00
Peter Folkins 31c4b743cb Fix enums without class name not opening docs page
(cherry picked from commit ccd986f53e)
2018-05-13 22:04:37 +02:00
Felix Yang 78e2e48d57 Fix for Issue#18457 - Folder name with trailing space on Windows
(cherry picked from commit 164dceab28)
2018-05-13 22:03:40 +02:00
Ignacio Etcheverry 736e574a5e Fix editor detecting msbuild with a msvc 'tools only' install
(cherry picked from commit 93d13bee8b)
2018-05-13 22:00:53 +02:00
Ignacio Etcheverry 664052824e Fix MSVC check when building with mono
(cherry picked from commit a1aa98e05a)
2018-05-13 22:00:20 +02:00
RaphaelHunter 0b9f61c9a6 add condition check in Imgae::create(...)
(cherry picked from commit 63e258cc8f)
2018-05-13 21:59:22 +02:00
Hein-Pieter van Braam 41bb321962 For uwp the ARM architecture needs to be in lower case
(cherry picked from commit 07f590046a)
2018-05-13 21:58:37 +02:00
Geequlim 0c030d6e08 Fix double free for drag preview control in viewport
(cherry picked from commit 56c2463f8c)
2018-05-13 21:56:56 +02:00
Pedro J. Estébanez c8ce9c0080 Fix Variant leak in call_native
(cherry picked from commit 474eda9e30)
2018-05-13 21:55:19 +02:00
DmitryKrutskikh a519dcd576 Disable 'run' button if any project not selected and tiny refactoring
(cherry picked from commit 965b6ac273)
2018-05-13 21:53:27 +02:00
Leon Krause 66c0be642f Fix relative mouse motion when captured in HTML5 platform
(cherry picked from commit d78b10313b)
2018-05-13 21:52:14 +02:00
Guilherme Felipe 2fa54c1df6 Fix custom cursor disappearing on osx
(cherry picked from commit 48f9e6a05b)
2018-05-13 21:51:25 +02:00
Yaakuro 7f65584f28 Use mimetype according to glTF spec.
(cherry picked from commit 9a50a4442d)
2018-05-13 21:48:37 +02:00
Ruslan Mustakov 7e09206e5c 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.

(cherry picked from commit 08a924bcee)
2018-05-13 21:46:57 +02:00
Ruslan Mustakov ecb4c4268c 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.

(cherry picked from commit 96301e934d)
2018-05-13 21:46:53 +02:00
bruvzg db76c54117 Fix Linux/X11 build on ARMs.
(cherry picked from commit ce64c2a32e)
2018-05-13 21:45:09 +02:00
ShyRed c2a8eb2081 Use fake audio playing property in editor
It appears that some time ago users were supposed to be able to include the playback of sound effects in their animations by placing keys on the "playing" property. Back then the key frame editor took the value of the checkbox in the property_editor.

Somewhere / Sometime this behaviour changed and the key frame editor is now reading the actual value from the object instead of relying on the property editor.

This commit introduces a fake active field that is returned when reading the playing property in the editor. While the actual active flag is changed when playback is finished the fake one will stay the same thus allowing the user to take their time with setting the key in the animation editor.

(cherry picked from commit bc1522e268)
2018-05-13 21:42:27 +02:00
Hein-Pieter van Braam 5917063192
Merge pull request #18082 from RandomShaper/improve-gui-touch-3.0
Implement universal translation of touch to mouse (3.0)
2018-05-13 21:30:37 +02:00
Hein-Pieter van Braam bcb38393a5
Merge pull request #18157 from RandomShaper/improve-uri-utils-3.0
Improve/fix URI utils (3.0)
2018-05-13 21:11:42 +02:00
Rémi Verschelde 1905e1c8a2 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

(cherry picked from commit a6552819b1)
2018-05-08 15:30:11 +02:00
Gustav Lund a6c9527c2f Fix for large .pck files
An error in unix file IO was causing crashes when getting the size of a file larger than max integer size
As ftell returns a long the fix is trivial

(cherry picked from commit 8a7840a304)
2018-05-08 09:10:26 +02:00
Chris Bradfield f4c469f1b7 Rewrite Tween class reference.
(cherry picked from commit d7218c742c)
2018-05-08 09:09:04 +02:00
Kelly Thomas 196107cd9e correct documentation for version number data type
(cherry picked from commit 28eb97c8ab)
2018-05-08 09:08:52 +02:00
Mel Collins 33b78c0ad6 [DOCS] Clarify look_at and looking_at
(cherry picked from commit b431264f77)
2018-05-08 09:07:52 +02:00
RameshRavone fa19d01c7b Fix: JAR files signed with the MD5 algorithm as unsigned
(cherry picked from commit d3182248c4)
2018-05-08 09:06:54 +02:00
Rémi Verschelde f847837fb2 Update AUTHORS and DONORS list
New contributor added to AUTHORS:
@mysticfall

Thanks to all contributors and donors for making Godot possible!

[ci skip]

(cherry picked from commit bd54ff78d9)
2018-05-04 15:14:16 +02:00
Rémi Verschelde 056348a8c0 i18n: Sync translation templates with current source 2018-05-03 11:25:51 +02:00
Rémi Verschelde ddbe559c04 i18n: Sync translations with Weblate 2018-05-03 11:20:59 +02:00
Your Name 63e70e3cd1 Bump to 3.0.3-rc1 2018-05-01 22:08:47 +02:00
Robin Hübner 4866733a74 GDNative Unix: fix shared lib loading, dlopen expects leading ./ to interpret as relative path.
(cherry picked from commit 8287441955)
2018-05-01 22:07:02 +02:00
Marcelo Fernandez 01e64eb247 Prevent PulseAudio driver to lock its mutex for too long
(cherry picked from commit cf4371a0ad)
2018-05-01 22:05:20 +02:00
Marcelo Fernandez 4fe0a8efd8 Fixed high cpu usage with PulseAudio
(cherry picked from commit 11078101db)
2018-05-01 22:04:51 +02:00
Max Hilbrunner 0551c5c2cd PCKPacker:pck_start(): Update version
(cherry picked from commit a3aa5ad0d0)
2018-05-01 22:04:08 +02:00
Pedro J. Estébanez e10a2e5999 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.
2018-04-30 19:04:35 +02:00
Hein-Pieter van Braam cd9b0d7cc3 Fix msbuild with a msvc 'tools only' install
Taken from https://github.com/Microsoft/vswhere/wiki/Find-MSBuild
without '-products *' vswhere does not locate msbuild when installing a
tools-only (no IDE) version of the microsoft compilers.

(cherry picked from commit 0ec912a79e)
2018-04-30 12:54:51 +02:00
Hein-Pieter van Braam 8e301c69cb Fix lto builds on clang compilers
This needs to go to master also
2018-04-30 00:52:42 +02:00
Hein-Pieter van Braam 3ee4d6af2e Hand-merge API hash fixes #18514
This hasn't made it into master yet but is important for mono support.
If this turns out to be the wrong call we'll revert and merge whatever
next version of this becomes available.
2018-04-29 20:44:48 +02:00
Ignacio Etcheverry 00c55bb2eb Fix _export_begin not being called when exporting to android
(cherry picked from commit c8884ce3bd)
2018-04-29 18:45:09 +02:00
Ignacio Etcheverry fe9da69f96 Make 'Export PCK/ZIP' work well with EditorExportPlugin
Add debug flag to the 'Export PCK/ZIP' option
Make 'Export PCK/ZIP' notify when the export process begins. This is necessary to receive the 'EditorExportPlugin::_export_begin' callback

(cherry picked from commit 68b35de2b6)
2018-04-29 18:44:55 +02:00
Ignacio Etcheverry c358e4c728 Add option to link mono statically on Windows
(cherry picked from commit b5e6e142ef)
2018-04-29 16:16:26 +02:00
Ivan Vodopiviz 7645c539c8 Fix new Node dialog Create button behavior
Added a one-liner to update the Create button disabled state when
selecting an item from the search results list.

Fixes #17265, long live the Realm!

(cherry picked from commit 68a4241131)
2018-04-29 15:14:09 +02:00
Marcelo Fernandez e7837828f6 Improved error checking at EditorExportPlatformPC::export_project
(cherry picked from commit 0876502f72)
2018-04-29 15:12:21 +02:00
Marcelo Fernandez 272fb05270 Added File.get_path and File.get_path_absolute functions
(cherry picked from commit a4e64c5454)
2018-04-29 15:09:29 +02:00
ShyRed 41f360f9c2 Update preview on filesystem change
Check and recreate a file's preview, if it has changes to it in the filesystem.

(cherry picked from commit 188ccf190b)
2018-04-29 15:08:11 +02:00
Bernhard Liebl 4ce6a8f5f9 Show error icon at "Output" in case of errors
(cherry picked from commit 5120690013)
2018-04-29 15:06:29 +02:00
Bastiaan Olij dfe6d42a01 A few fixes on the ARVR Server
(cherry picked from commit 5356423377)
2018-04-29 15:05:38 +02:00
Peter Folkins c20776945d Set default file name for exported projects
(cherry picked from commit bff73bdbf1)
2018-04-29 15:03:45 +02:00
Wilson E. Alvarez 0d6c64b38a Removed unneeded sort from SpriteFramesEditor plugin
(cherry picked from commit bb9c75c5ed)
2018-04-29 15:02:18 +02:00
Leon Krause c968c787e5 Disable Emscripten assertions in release_debug builds
The messages generated by some assertions can be confusing to users.

(cherry picked from commit d6c9d8d778)
2018-04-29 15:01:29 +02:00
Bernhard Liebl 6e658fdcc1 Warn about WorldEnvironment being ignored
(cherry picked from commit 29d305599d)
2018-04-29 15:00:41 +02:00
Pieter-Jan Briers aedc4a4e80 Explicitly print an error when --export fails.
Previously this would not explicitly say the export failed.
Sure you might see another error somewhere,
but that's not very reliable/obvious.

(cherry picked from commit 4954982b95)
2018-04-29 14:57:32 +02:00
Wilson E. Alvarez 7417b6adb4 Comment out some debugging messages when playing Theora files
(cherry picked from commit 9590282ae8)
2018-04-29 14:56:52 +02:00
Fabio Alessandrelli 66b36235c9 Fix IPhone and OSX cross compilation
(cherry picked from commit e7b9e2f970)
2018-04-29 14:46:03 +02:00
Rémi Verschelde e317ab9abe Add --print-fps option to output FPS to stdout
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.

(cherry picked from commit 10fa69285c)
2018-04-29 14:44:43 +02:00
Brigham Henry Keys 6a48c552e2 Updated thekla_atlas to support arm64
(cherry picked from commit cd63e699ca)
2018-04-29 14:43:53 +02:00
Craigory V Coppola a1fd60f7d2 Docs update for several classes
Namely: Dictionary, GraphEdit, Object, TileMap, Script, ScollBar,
ScrollContainer and SplitContainer

(cherry picked from commit 0dd526e062)
2018-04-29 14:42:13 +02:00
HoratioZEDU b5ecdd8ce8 Fixed (minor) typo in CapsuleShape2D doc page
(cherry picked from commit 2dcd499707)
2018-04-29 14:35:59 +02:00
homer666 20ea59332f [DOCS] Popup.popup_exclusive description
(cherry picked from commit d4ce53b9b1)
2018-04-29 14:35:42 +02:00
krogank9 57b895338b [DOCS] Add note that Pool*Arrays are passed by value (#18340)
(cherry picked from commit 6b797574a2)
2018-04-29 14:33:28 +02:00
Poommetee Ketson 2f82b67071 [DOCS] add HTTPRequest.request return values
(cherry picked from commit f05e24ed18)
2018-04-29 14:32:44 +02:00
bncastle 56b8c4b0eb Add descriptions for GroupCall flags
Add descriptions for GroupCall flags

(cherry picked from commit 7eed3cc199)
2018-04-29 14:32:13 +02:00
Max Hilbrunner bae5f9feb8 [DOCS] OS
(cherry picked from commit 66714a3d29)
2018-04-29 14:31:56 +02:00
Poommetee Ketson e95f542204 Add new transform tutorial to appropriate classes
(cherry picked from commit e83af5dfc6)
2018-04-29 14:30:45 +02:00
Denis Washington e7c42f132c Add Navigation docs
(cherry picked from commit 89b9e8852e)
2018-04-29 14:30:25 +02:00
Denis Washington 1608f04851 Add Navigation2D docs
(cherry picked from commit a7f3933a51)
2018-04-29 14:30:13 +02:00
Max Hilbrunner 93ebac318b [DOCS] SceneTree
(cherry picked from commit bc66869d4c)
2018-04-29 14:29:25 +02:00
Mel Collins c4d66d087f [DOCS] Tweaks and fixes for (Interpolated)Camera
(cherry picked from commit 99110772c0)
2018-04-29 14:28:58 +02:00
GaryO feee8ddd3c Add detail to doc for add_surface_from_arrays (#17911)
Includes review comments from #17911 from @cbscribe and @Noshyaar

(cherry picked from commit 06c5a9ed5f)
2018-04-29 14:27:46 +02:00
Michael Alexsander Silva Dias 659df8cbd8 Added missing end points for brief descriptions in the docs.
(cherry picked from commit d912e10c65)
2018-04-29 14:27:30 +02:00
Mel Collins 19a010cc3a [DOCS] Some content for InterpolatedCamera
(cherry picked from commit c05d12384a)
2018-04-29 14:27:15 +02:00
mhilbrunner 307fcb2713 [DOCS] Typo fix for CollisionShape[2D]
(cherry picked from commit 41da122875)
2018-04-29 14:27:01 +02:00
Max Hilbrunner ec017f4c01 [DOCS] Node & PackedScene (#17833)
* [DOCS] Node: SceneSaver -> PackedScene

* [DOCS] PackedScene: Code example, resolve TODO

(cherry picked from commit 13d5ee01f9)
2018-04-29 14:25:17 +02:00
Pieter-Jan Briers f12db4013e Improve Input.is_action_just_* docs.
More clarification.

(cherry picked from commit 11aa330a6f)
2018-04-29 14:24:52 +02:00
mhilbrunner e53f01a7af [DOCS] Node: Networking updates, fix outdated and missing docs
(cherry picked from commit 5a3e841c60)
2018-04-29 14:24:26 +02:00
Max Hilbrunner 46de6afc40 [DOCS] Input
(cherry picked from commit 22cb4a1cf9)
2018-04-29 14:23:23 +02:00
Max Hilbrunner 90bf0b7aec [DOCS] Net.MultiplayerEnet: List returned errors
(cherry picked from commit ec3f5218e8)
2018-04-29 14:23:04 +02:00
Neil Moore 6cdf6d3044 Update Image format enumeration documentation
Provides more information about each image format.

(cherry picked from commit 60f1f58158)
2018-04-29 14:22:40 +02:00
Xavier Cho 1da969736f Remove duplicated declaration of RoundToInt() from Mathf
(cherry picked from commit 9e2e6bb1e2)
2018-04-29 14:15:09 +02:00
Paul Joannon 486f4d2769 [mono] add the 'Facades' subfolder to the searched directories in _preload_hook
(cherry picked from commit 22606a7bec)
2018-04-29 13:54:16 +02:00
Ignacio Etcheverry 199a54d5ac Mono: BindingsGenerator enum fixes
- Make enums have an unique signature name of int. This means that when generating internal methods, there is no difference between different enums types nor between enums and int. This way enums can re-use internal methods.
- Make type resolver fallback to int if a type is not found and it's an enum.

(cherry picked from commit fbc808012f)
2018-04-29 13:49:27 +02:00
Xavier Cho 57c281557a #18051: Fix indentation issues introduced during clean up
(cherry picked from commit 6b611e6431)
2018-04-29 13:40:15 +02:00
Xavier Cho d330bee1c2 #18051: Do not use `var` in a for-loop, or where type is not obvious
(cherry picked from commit e59fad3924)
2018-04-29 13:40:09 +02:00
Xavier Cho 72bcacf2b6 #18051: Use common name for Color type argument
(cherry picked from commit 94edd92248)
2018-04-29 13:40:04 +02:00
Xavier Cho 3876a8776e #18051: Remove redundant verbatim prefixes
(cherry picked from commit f0bf5532fa)
2018-04-29 13:39:51 +02:00
Xavier Cho 37ce381e3d #18051: Use default parameter value
(cherry picked from commit 85787776a5)
2018-04-29 13:39:40 +02:00
Xavier Cho 939d50243b #18051: Use array initializer when applicable
(cherry picked from commit b765c051cb)
2018-04-29 13:39:34 +02:00
Xavier Cho 57f18194f5 #18051: Remove redundant parenthesis
(cherry picked from commit 9097c71255)
2018-04-29 13:39:28 +02:00
Xavier Cho 58f2953ddf #18051: Remove unnecessary variable assignments
(cherry picked from commit 93dd59d763)
2018-04-29 13:39:22 +02:00
Xavier Cho 31171ea5a2 #18051: Use 'var' when applicable
(cherry picked from commit fdfc478c88)
2018-04-29 13:39:08 +02:00
Xavier Cho e7b97af276 #18051: Remove redundant casts and 'using', 'else', 'this' statements
(cherry picked from commit 0ef3e0577b)
2018-04-29 13:38:58 +02:00
Marcelo Fernandez 95004aafb2 Fix use64 used without being initialized
(cherry picked from commit 9b4d23e898)
2018-04-28 23:06:24 +02:00
Ignacio Etcheverry 3f6ea30f8d Mono: Fix '!t' error messages when generating bindings
This error wasn't affecting the bindings generation process.

(cherry picked from commit ff7fe9e771)
2018-04-28 22:59:38 +02:00
Ignacio Etcheverry 58918b629d Mono: Do not spam script class not found error
Print this error only when trying to instantiate the script. This way we prevent errors being printed for source files which are not meant to be used as scripts.

(cherry picked from commit f8ce412560)
2018-04-28 22:59:25 +02:00
Ignacio Etcheverry 736d8db007 Mono: Fix crash on script load if the scripts domain isn't loaded
(cherry picked from commit 89e84185e8)
2018-04-28 22:59:11 +02:00
Pieter-Jan Briers 1e8ff7460a Fixes a typo in the VisualServer.canvas_item_add_set_transform docs.
(cherry picked from commit 09f79cde69)
2018-04-28 22:58:29 +02:00
sersoong b5425e3d87 Fixed context menu TTR bugs
(cherry picked from commit a1cfc89108)
2018-04-28 22:57:32 +02:00
George Marques 3acd6fb728 Fix names of Variant operators
(cherry picked from commit fefee533ae)
2018-04-28 22:56:33 +02:00
volzhs 94ddb499df Fix error spam with Sprite has compressed texture
Fix #18177

(cherry picked from commit 3ecf8eef37)
2018-04-28 22:54:54 +02:00
volzhs 5a947ebc42 Fix index out of size error on Image
Fix #18229

(cherry picked from commit af0d547c02)
2018-04-28 22:54:44 +02:00
Bojidar Marinov 44f4c8e745 Fix crash resulting from bad month check in core_bind.cpp
Also, make it clear that day is 0-based. This might cause very slight differcies in existing games.
Fixes #18221

(cherry picked from commit 4b9cf93338)
2018-04-28 22:53:02 +02:00
Ruslan Mustakov 4eed7cb9b2 Fix Android input source checks
Input source types are not pure bit flags, they are combinations of
flags, so != 0 check was incorrect and resulted in crashes later, when
trying to obtain the device.

(cherry picked from commit 5dffa506dc)
2018-04-28 22:50:25 +02:00
Michael Alexsander Silva Dias ca00323e7f Minor fixes for the AnimationPlayer doc.
(cherry picked from commit 9c3698dee2)
2018-04-28 22:48:28 +02:00
Will Vincent d49fc76ab8 Remove incorrect & potentially confusing references to Euler
e is referred to as Euler’s number, so technically the MATH_EXP description in VisualScript doc was not incorrect, though could potentially lead to confusion.

e is different from Euler’s constant however, making the existing GDScript exp & VisualScriptMathConstant descriptions nvalid.

(cherry picked from commit b6b8c7b215)
2018-04-28 22:47:43 +02:00
ShyRed d89015cfe3 ItemList selection: Check against item count
ItemList needs to check against the number of items available when the user moves the selection via "ui_right" action.

(cherry picked from commit cbcb96ae85)
2018-04-28 22:43:36 +02:00
Chaosus 826108efec Prevent visibility notification been called twice in object creation
(cherry picked from commit d42b17607e)
2018-04-28 22:38:19 +02:00
Andrea Catania 739c14b07d Fixed wrong function call
(cherry picked from commit df2a626b49)
2018-04-28 22:35:25 +02:00
robfram 7f64090401 LineEdit placeholder alignment, content margins, and overflow bugs
LineEdit doesn't correctly uses style margins nor use placeholders
width correctly, causing multiple rendering bugs.

(cherry picked from commit 53b51f68bf)
2018-04-28 22:30:06 +02:00
Pedro J. Estébanez 3bda257163 Fix theme editor sample widgets
(cherry picked from commit a0626d7d9c)
2018-04-28 22:19:54 +02:00
Pedro J. Estébanez 02f767fe0d Add support for radio-looking items with icon
Letting users of `PopupMenu` use them. `OptionButton` was one of those interested and is updated in this commit.

Fixes #18063.

(cherry picked from commit b964a9e678)
2018-04-28 22:17:08 +02:00
Pedro J. Estébanez 20fa30bde6 Use radio-button-like menu entries where applicable
(cherry picked from commit a6dc160d5c)
2018-04-28 22:16:53 +02:00
Pedro J. Estébanez b5b0e42b85 Support radio-button entries in ItemListPlugin
(cherry picked from commit bf14a6deff)
2018-04-28 22:16:38 +02:00
Pedro J. Estébanez a525ea128d Add radio-button-looking entries to PopupMenu
They work exactly the same as current checkbox-decorated items, but in order to preserve compatibility, separate methods are used, like `add_radio_check_item()`. The other option would have been to add a new parameter at the end of `add_check_item()` and the like, but that would have forced callers to provide the defaults manually.

`is_item_checkable()`, `is_item_checked()` and `set_item_checked()` are used regardless the item is set to look as check box or radio button.

Keeping check in the name adds an additional clue about these facts.

Closes #13055.

(cherry picked from commit ab3b1d9f3e)
2018-04-28 22:16:25 +02:00
Andrea Catania 3b57b95efb Fixed area overlap cleaning
(cherry picked from commit 45b778c7f8)
2018-04-28 22:10:29 +02:00
Alexander Alekseev 4002da9603 Fix RigidBody's configuration warning for Z axis
(cherry picked from commit 6a5ed3a42b)
2018-04-28 20:30:34 +02:00
Crazy-P e5a17617e6 Resolves Inccorect Quaternion Conversion
Fixes https://github.com/godotengine/godot/issues/18025

(cherry picked from commit ae7a9df292)
2018-04-28 20:29:40 +02:00
Pedro J. Estébanez 4e756d61c8 Fix skeleton import from glTF
For some glTF files, the order of bones in the skeleton array wasn't matching the joints array in the meshes.

Fixes #17808.

(cherry picked from commit d8765dd103)
2018-04-28 20:24:43 +02:00
Alexander Alekseev 0f5a3d23ea Update transform buttons in tile editor while using T, A, S shortcuts (fixes #17962)
(cherry picked from commit 0853ac2006)
2018-04-28 20:24:00 +02:00
karroffel 2e31c9fe10 fix bone scale/rotation in AnimationPlayers
fixes #17325.

The bone pose transform was created by setting the rotation and
**then** scaling the transform. This leads to object "deformation"
that's not intended.

(cherry picked from commit 4303fbca5a)
2018-04-28 20:19:35 +02:00
Alexander Alekseev cf3c1d878d Fix of a possible memory leak: ConcavePolygonShapeBullet::setup was able to exit without releasing the 'shapeInterface' pointer.
(cherry picked from commit b569251110)
2018-04-28 20:18:03 +02:00
Poommetee Ketson c5dfe6824c Mesh: fix crash when creating mesh outline from QuadMesh
Since create_outline can only make outline for PRIMITIVE_TRIANGLES,
when QuadMesh (which is PRIMITIVE_TRIANGLE_FAN) is used to create
outline, will leave `arrays` empty, and crash when it is being indexed
for "indices" subarray.

This PR shows error when there's only one surface and it is not
TRIANGLES. Also prevent the crash if it has more than one surface
and none of them are TRIANGLES (and any other cases that could leave
`arrays` empty) by checking the size of `arrays` == 8 before indexing
it, since the method seems to expect `arrays` to be of that size.

(cherry picked from commit a492d22952)
2018-04-28 20:16:22 +02:00
Andrea Catania 640063334d physics area added monitorable check
(cherry picked from commit fe768f4f00)
2018-04-28 20:15:24 +02:00
Andrea Catania ac9e87aae3 Fixed physics server area cleaning
(cherry picked from commit 776942981b)
2018-04-28 20:14:28 +02:00
Andrea Catania 5e09cf3e89 Corrected physics query max result checking
(cherry picked from commit 444b8471a3)
2018-04-28 20:13:28 +02:00
Igors Vaitkus 6989a7ac53 Fix UpdatePowerInfo method implementation in PowerIphone class
(cherry picked from commit 06fab24348)
2018-04-28 20:11:49 +02:00
Tom Dobbelaere 060f9f2cd7 Trigger IO error only after exhausting attempts
(cherry picked from commit a4fae0e5e3)
2018-04-28 20:06:30 +02:00
Benedikt Bär 4c19fc2eb1 Implement missing navgiation polygon debugging in tilemap
(cherry picked from commit 84d60b0829)
2018-04-28 20:03:46 +02:00
Fabio Alessandrelli 5e70e4469a Fix bug in HTML5 HTTPClient.
The URL parameter already has a slash, adding an extra one results in
an invalid resource path

(cherry picked from commit b8c73b195f)
2018-04-28 20:01:35 +02:00
Poommetee Ketson 287f169f2a [Docs] fix typos
(cherry picked from commit a88ee7d920)
2018-04-28 20:00:42 +02:00
Michael Alexsander Silva Dias 60bc0f79a7 Fixed some popups not shrinking their size back when losing items.
(cherry picked from commit 7cbf301f31)
2018-04-28 19:59:37 +02:00
Ruslan Mustakov c8d0d38cab Add safety checks when handling Android input
It is possible that input comes before the engine is fully initialized.
This fixes the crashes that ocurred when that happens.

(cherry picked from commit 995724b762)
2018-04-28 19:58:00 +02:00
Leon Krause d3ffc8ad0c Fix engine.js startGame() when loading from directory
(cherry picked from commit 3014e48ec5)
2018-04-28 19:54:29 +02:00
Leon Krause 393e1ef4ee Allow custom path when using engine.js preloadFile() with URL
(cherry picked from commit d373029382)
2018-04-28 19:54:19 +02:00
Leon Krause 78b44eab0a Fix engine.js preloadFile() with directories
(cherry picked from commit 6f1bddf4b5)
2018-04-28 19:54:12 +02:00
Leon Krause 0f6626977b Expose Emscripten libs to engine.js discreetly
(cherry picked from commit 63c7fc6358)
2018-04-28 19:54:00 +02:00
Ben Hickling 71885e5ae4 multiply blend mode fix for spatial materials
(cherry picked from commit 314a419511)
2018-04-28 17:53:53 +02:00
Alessandro 038c4d3a83 Fix all categories unfold when one key binding is changed
(cherry picked from commit eda1e266c8)
2018-04-28 17:52:20 +02:00
bruvzg de66976ff0 Fix dragging window from non-retina to retina display.
(cherry picked from commit 14597dc2b2)
2018-04-28 17:51:11 +02:00
Benedikt Bär b08aa6fb3c Fix compressor audio effect sidechain selection
(cherry picked from commit 7792dfe554)
2018-04-28 17:49:39 +02:00
Ivan Vodopiviz ce944bc3fb Prevented external editor from running multiple times
Fixes #16923. I'm not a fan of the special case for scripts in editor_node.cpp, but in any case,
I made it so it wouldn't make the external editor to re-open just because we switched scenes.

(cherry picked from commit f5147befb6)
2018-04-28 17:47:23 +02:00
Poommetee Ketson 5485939233 [DOCS] minor ParticlesMaterial docs fix Linear -> Radial
(cherry picked from commit 7d18334ad2)
2018-04-28 17:46:34 +02:00
robfram 3cc2eee4e8 Fix crash in `canvas_item_add_polyline` when passing more points than colors
When `p_points.size() > p_colors.size()`, it crashed with invalid
array access to `p_colors`. Also, when `p_colors` was an empty
`Vector` it crashed due a missing `else` checking the `size`
condition, as the code handling that special case exists.

This PR fixes the missing `else` for `p_colors.size == 0` and,
following the `canvas_item_add_multiline` spirit, it only uses the
first color for the whole polyline if points and colors differ in
size.

Fix #17621.

(cherry picked from commit 8eedb2afe2)
2018-04-28 17:45:25 +02:00
Ruslan Mustakov 56395b03e1 Fix oversampled font artifacts after resize
Font update after resize relies on the viewport size which was updated
after the font was already refreshed, which resulted in artifacts when
it was rendered into the actual/new viewport size.

Fixes #15173.

(cherry picked from commit 47747718d6)
2018-04-28 17:42:57 +02:00
Gilles Roudiere 448d281222 Fixes wrong calculation of gridcontainer's children size
(cherry picked from commit 896e5a64d3)
2018-04-28 17:40:29 +02:00
Pedro J. Estébanez c07d588e80 Fix listing files inside directory in pack file
When adding a directory path to the inventory of the pack, an empty file name was being added to the file list. That made `Directory.get_ntext()` signal end-of-list too early so that files in a subdirectory were missed.

Fixes #15801.
Helps with #16798.

(cherry picked from commit 536611704a)
2018-04-28 17:35:48 +02:00
Ivan Vodopiviz 52c710f25a Changed debug max distance to avoid overflow
Changed it to roughly sqrt(FLT_MAX), it's a little less to account for float inaccuracies.
Fixes #1835

(cherry picked from commit 55f79f2e80)
2018-04-28 17:32:59 +02:00
Michael Alexsander Silva Dias 29a02a78df Fixed small typo in the "InstancePlaceholder" doc.
(cherry picked from commit 712d6e724a)
2018-04-28 17:31:08 +02:00
robfram 91525e3075 Fix bug added in PR#17589. Resources couldn't be saved to files
This PR fixes the code to avoid saving default environment every time
the project is run whitin the editor.

Should fix #17727. Sorry for the troubles!

(cherry picked from commit 7821b70a00)
2018-04-28 17:22:42 +02:00
robfram 7563c17113 Fix saving unmodified scenes and resources
When `_save_all_scenes` or `save_resource_in_path` was called, they
always saved all the scenes and the resource no matter if they were
modified or not. For example, when `saving before run` option was
checked, it always overwrote the current scene and the default
environment simply by opening and runing the project.

This PR adds checks for unsaved scenes (using the same `unsave` check
others method used) and modified resources (comparing last modified
time and last import time).

Fix #6025.

(cherry picked from commit 28ab60422d)
2018-04-28 17:22:29 +02:00
JFonS 43dcf23990 Hinted shader uniforms can have a default value
(cherry picked from commit 479f531635)
2018-04-28 17:16:07 +02:00
Bernhard Liebl 1182637ec9 Fix debugger_stdout_settings being ignored
(cherry picked from commit 2b728de8f2)
2018-04-28 17:12:41 +02:00
robfram d40f40e1c9 Fix pressing `F3` do both changing to script editor AND find next text
As `KEY_F3` was used both for changing to script editor window and, in
the script editor, for finding the next result in the last search, and
the key event is **not** consumed, the resulting behaviour was similar
to press `F3` twice, first to change to script editor and second to
find the next result of a previous search.

This PR sets the `key_pressed` status of `InputEvent` to `false` if
this event is responsible of an editor change, simulating the
consumption of the event.

Fix #17334

(cherry picked from commit 8939f44f6a)
2018-04-28 17:09:55 +02:00
robfram fa831f0224 Fix non-valid characters for `input_action`
Add a new function to check action names, `_validate_action_name`, in
the spirit of `_valprop`. Offending characters include non-printable
ascii, and `\/=:"`. Also set only one text for the UI message.

(cherry picked from commit da6c07698f)
2018-04-28 17:07:20 +02:00
robfram 141e389c3f Fix non working action names containing whitespaces
Now the action name is quoted if it contains spaces. Also, quotation
mark (") is added to the forbidden character list for action names, as
it was also a bug.

Fix #17322

(cherry picked from commit ea94a82596)
2018-04-28 17:04:20 +02:00
Poommetee Ketson 72350eebb2 ScriptTextEditor: fix capitalize offset
(cherry picked from commit caa0d513ab)
2018-04-28 16:45:17 +02:00
Jorn Van denbussche 80fbea28fb Fixes importing hdr files with extra header info
(cherry picked from commit 886156da2c)
2018-04-28 16:42:27 +02:00
Hein-Pieter van Braam 7ec8a6e756 Fix converting a tilset if the existing file is not a tileset
See ed3b080ca6
2018-04-28 16:40:31 +02:00
Poommetee Ketson ddb31e9c5a EditorNode: fix clicking ok keeps trying to save
(cherry picked from commit e12e6cacdb)
2018-04-28 16:29:58 +02:00
Bernhard Liebl dc97f91a18 Fix column width on AutoLoad table on hidpi displays
(cherry picked from commit f494d5ac5c)
2018-04-28 16:28:47 +02:00
ShyRed 171542d96a Update TileMap when its TileSet changes
Make TileMap monitor its TileSet for changes and emit a signal when the TileSet changes. This makes the editor update and show the updated version of the TileSet.

(cherry picked from commit 67f4944a21)
2018-04-28 16:25:33 +02:00
robfram b855bc44ae Implement line clipping for `TextureProgress` to avoid bad rendering due to imprecise UV mapping
Original code used a quick aproximation for simulating the
correspondent texel in the `TextureProgress` texture as radial
progress indicator. This lead to visualization errors. Changed it for
a Liang-Barsky line clipping algorithm stripped to its minimum for
this specific use case.

Fix #17364.

(cherry picked from commit 7991bd168d)
2018-04-28 16:19:52 +02:00
ShyRed c39e32ae60 Update Sprite when Texture changes
Make Sprite monitor its Texture for changes and trigger an update when the sprite changes.

(cherry picked from commit a23c0877f1)
2018-04-28 16:13:28 +02:00
Bernhard Liebl 5eef26b64e Fix broken hover/select coloring of keys in animation editor
(cherry picked from commit 172aa6c61e)
2018-04-28 16:07:03 +02:00
Pieter-Jan Briers 0d2a2a9300 Fixes canvas light shaders.
Fixes #16904

Restore more out functionality, fix built-ins.

Requested changes, I think?

(cherry picked from commit 25ba49fd88)
2018-04-28 16:03:23 +02:00
Bernhard Liebl 6d767b0f9a AnimationPlayer: fix scrubbing after play backwards
(cherry picked from commit b553b38e7b)
2018-04-28 15:55:36 +02:00
robfram d49579b038 Fix overwriting all common properties when using `Change Type` tool
If you change the type of an existing node, it checks if you have
modified the initial value of their properties before overwriting
their values in the new node.

For example, if you created a `Label` and changed it to
`LineEdit`, the `mouse_filter` property was created as `Ignore`
for the original `Label` node, and was maintained after changing
it to `LineEdit` causing not to work as expected. Now it checks if
`Ignore` is the default value for `Label` nodes, and as it is, the
property value is left unchanged, maintaining the default value
for `LineEdit`, which is `Stop`.

Fix #13955 and alike.

(cherry picked from commit 8ea4ea0d53)
2018-04-28 15:47:57 +02:00
Poommetee Ketson a3ba1b0280 Fix script template on `_ready` behavior
(cherry picked from commit 01ec06d9ae)
2018-04-15 01:18:49 +02:00
Marcelo Fernandez c2e02e2066 Added error checks for fscache saving
(cherry picked from commit 06e537fec5)
2018-04-15 01:17:01 +02:00
Chaosus 3503ee4be6 Fix invalid mix function overload
(cherry picked from commit 97bef8d908)
2018-04-15 01:13:38 +02:00
Bernhard Liebl 069b429795 AnimationPlayer: fix popups close on double click
(cherry picked from commit 6d51b6ab42)
2018-04-15 01:08:45 +02:00
Saracen 2f7aa6c2aa Make the shader token names consistent.
(cherry picked from commit b095e21d91)
2018-04-15 01:07:37 +02:00
Chaosus a29680c25a [Mono] Improve Mathf
(cherry picked from commit 655a4e6540)
2018-04-15 00:57:14 +02:00
Alexander Alekseev 3a430e46b9 [mono] Fixes #17936 as GodotSharp (Core\Basic.cs) requires C#7 now, but we most probably should keep C#6 yet
(cherry picked from commit 5677aed175)
2018-04-15 00:56:14 +02:00
Nikodem Lokatelj b4733a1da9 Fixed _issue_activated to take the correct issue id from the list
(cherry picked from commit 4fdee1d9f1)
2018-04-15 00:55:25 +02:00
Wilson E. Alvarez 8ebd4bb874 Move GodotSharp and MonoBuildTab member variables to initializer list
(cherry picked from commit 3f86fefb64)
2018-04-15 00:54:00 +02:00
Chaosus 63a88c69ac Added wrap functions to C#
(cherry picked from commit d52722c6da)
2018-04-15 00:52:29 +02:00
Ignacio Etcheverry bfc94dd4c9 Mono: Runtime main args and assembly search fixes
- Setup runtime main args during initialization. This must be done manually by embedders who do not call mono_runtime_run_main. Fixes NullReferenceException in System.Environment.
- Continue to search the assembly in the rest of the search locations if loading it from one of them failed.

(cherry picked from commit fa1d656af4)
2018-04-15 00:48:15 +02:00
Andreas Haas 6472d8c7d4 Mono: Avoid invalid class names.
Disallow reserved keywords as class names and prefix base class with the Godot
namespace if it's the same as the class name.

Fixes #12483

(cherry picked from commit 700d07cf7c)
2018-04-15 00:48:11 +02:00
Hein-Pieter van Braam e4fadebc3b Fix a merge error 2018-04-15 00:43:26 +02:00
Ignacio Etcheverry 548ec63f76 EditorExport: Allow export plugins to add shared libraries
(cherry picked from commit a38b59b656)
2018-04-15 00:04:18 +02:00
Ignacio Etcheverry 9e4d34aebb Mono: Add project export plugin
(cherry picked from commit 9fd606c549)
2018-04-15 00:04:14 +02:00
Paul Joannon d02c891a4b [mono] write classes with no constructor as abstract
(cherry picked from commit ef5672d3f9)
2018-04-14 23:54:11 +02:00
Paul Joannon 3bd414786c [mono] rename functions to conform to PascalCase
in:
* StringExtensions.cs
* Transform.cs

(cherry picked from commit d7020aef8d)
2018-04-14 23:53:56 +02:00
Carter Anderson c7adcc8dca Fix mono basis GetEuler bug and marshalling/unmarshalling
(cherry picked from commit 91f271fa9e)
2018-04-14 23:20:33 +02:00
Aaron Franke 577f3ccaf9 Replace float with real_t, default Vectors, other misc C# improvements
Replace float with real_t in most files, defined at the top of each file via using. Objects such as Vector3 now accept doubles as inputs, and convert to real_t internally. I've added default Vectors such as Vector3.Zero. Other misc C# improvements such as Mathf.RoundToInt(). Color continues to use float only because high precision is not needed for 8-bit color math and to keep things simple. Everything seems to compile and work fine, but testing is requested, as this is the first time I've ever contributed to Godot.

(cherry picked from commit ff97c97c93)
2018-04-14 23:20:03 +02:00
robfram bffd4f0548 Fix bad autocomplete of partially written node paths when using syntactic sugar notation ($)
If you had a tree like Node2D->Sprite->Camera2D and you write a
code like $Node2D/Spr and chose the autocompletion sugested
Node2D/Sprite, the resulting string was $Node2D/Node2D/Sprite
instead $Node2D/Sprite. If you chose Node2D/Sprite/Camera2D, then
you ended with $Node2D/Node2D/Sprite/Camera2D.

Fix #15813.

(cherry picked from commit 95f186b621)
2018-04-14 23:14:30 +02:00
Hugo Locurcio 4c8c383876 Update Hack font to v3.003
(cherry picked from commit 93f52813bf)
2018-04-14 23:11:18 +02:00
Marcelo Fernandez 125b403c0f WASAPI driver will now resample when the device rate != audio/mix_rate
(cherry picked from commit d21a2019f1)
2018-04-14 22:07:30 +02:00
Marcelo Fernandez 5f5ec7e162 WASAPI audio driver compile fix on mingw
(cherry picked from commit 3316a64e12)
2018-04-14 22:03:10 +02:00
Marcelo Fernandez a91d9cb918 Fix possible crash when audio channels change
(cherry picked from commit 87ebdd6041)
2018-04-14 21:47:05 +02:00
Marcelo Fernandez a7ea441504 Fix PulseAudio problems with 8 channels devices
(cherry picked from commit 34395c6a38)
2018-04-14 21:46:11 +02:00
Marcelo Fernandez 4b5472b100 Fix error detecting for PulseAudio pa_stream_new call
(cherry picked from commit 86e101ec82)
2018-04-14 21:46:06 +02:00
Rémi Verschelde 3dc4447cb8 CoreAudio: Fix iphone build after audio device refactor (#17742)
(cherry picked from commit e955fbc36e)
2018-04-14 21:44:57 +02:00
Marcelo Fernandez 9a21f964ba Added new audio device functions to set/get the audio device
(cherry picked from commit ecc1b34cbc)
2018-04-14 21:42:44 +02:00
Marcelo Fernandez 1f07f71b6c Fix PulseAudio driver for audio devices that report unknown number of channels
(cherry picked from commit 11fbfab7ec)
2018-04-14 21:38:26 +02:00
Alexander Holland 259b9664ef auto-completion edge jump
arrow up/down jumps to end/start on edges

(cherry picked from commit e36dd4282b)
2018-04-14 21:29:48 +02:00
Leon Krause b5a55810c5 Disable FreeType SIMD in HTML5 builds
SIMD is currently unsupported in WebAssembly.

(cherry picked from commit 315983c90d)
2018-04-14 21:15:37 +02:00
robfram 4fc6256010 Change shebang of pre-commit-clang-format hook to make it portable
The default one is "#!/bin/bash", but BSD systems doesn't have bash
in that path. For portability reasons, it should be changed to
"#!/usr/bin/env bash".

More info: https://en.wikipedia.org/wiki/Shebang_%28Unix%29#Portability

(cherry picked from commit 52abf4ba84)
2018-04-14 20:59:39 +02:00
bruvzg ce1b62a01f Explicitly set OpenGL profile to core (X11, Windows).
Enable GLES2 on Windows.

(cherry picked from commit ad67911f1a)
2018-04-14 20:56:49 +02:00
Emanuele Fornara 28d4271e3e skip demo download prompt if ssl is unavailable
(cherry picked from commit 0071c04dcb)
2018-04-14 20:44:54 +02:00
Lars Kokemohr 30b5265417 completed-signal is emitted by all GDScriptFunctionStates of a coroutine now, allowing to yield for completion of a function with more than one yield inside.
(cherry picked from commit 3dfef37628)
2018-04-14 20:42:44 +02:00
poke1024 2f53325bed Fix round preview getting square on "run scene" (issue 16734)
(cherry picked from commit 899f7b125e)
2018-04-14 20:37:54 +02:00
Andreas Loew 7ad6a9aeea Fix selection of Sprites using AtlasTexture in the editor.
Fixes #16261.

(cherry picked from commit a01ba4523b)
2018-04-14 20:30:51 +02:00
Marcelo Fernandez 8018dc6599 Fix for a possible crash when a custom theme is not loaded properly
(cherry picked from commit 2f1429eb24)
2018-04-14 20:28:13 +02:00
Ranoller aaed3ef5ed FIX Windows enter/exit mouse notifications
Fix to this issue #17202

(cherry picked from commit 979dccbd8d)
2018-04-14 20:25:57 +02:00
Ruslan Mustakov 99cf2ffb19 iPhone X support and iOS-related fixes
Starting from April 2018 Apple no longer accepts apps that do not
support iPhone X. For games this mainly means respecting the safe area,
unobstructed by notch and virtual home button. UI controls must be
placed within the safe area so that users can interact with them.

This commit:

- Adds OS::get_window_safe_area method that returns unobscured area of
  the window, where interactive controls should be rendered.

- Reorganizes how launch screens are exported - the previous way was
  incorrect and modern iPhones did not pick up the correct screens and
  because of that used a non-native resolution to render the game.

- Adds launch screen options for iPhone X.

- Makes launch screens optional in the export template. If not
  specified, a white screen will be used.

- Adds App Store icon (1024x1024) export option as it now has to be
  bundled with the app instead of being provided in iTunes Connect.

- Fixes crash when launching games in iOS Simulator. It happened because
  controllerWasConnected callback came before the engine was
  initialized. Now in such case the controllers will be queued up and
  registered after initialization is done.

- Fixes issue with the virtual keyboard where for some reason
  autocorrection panel would intersect with the keyboard itself and not
  allow you to use the top row of the keyboard. This is fixed by
  disabling autocorrection altogether.

Closes #17358. Fixes #17428. Fixes #17331.

(cherry picked from commit 1d9a3a9b1c)
2018-04-14 20:17:47 +02:00
Poommetee Ketson 3b200c55b6 GridMap: fix next/prev plane text, fix meta not found
(cherry picked from commit 89323f94bb)
2018-04-14 20:10:02 +02:00
Geoffrey 13e9b605cf Moves the md5sum's from the <filename>.import file into .import/<filename>.md5
Saves asset md5sum's in a file that doesn't contain data that needs to be VC'd
Now saves the md5s to a different file (.import.md5)

Now reads the md5's from a separate file

Now uses a file in the .import folder to store md5s

(cherry picked from commit 030b59502f)
2018-04-14 19:57:45 +02:00
Geoffrey 5d7b7f798a Made print_tree_pretty() function which displays scene tree graphically
(cherry picked from commit 8362ce4769)
2018-04-14 19:56:55 +02:00
Ruslan Mustakov 710b57d493 Make BaseButton not emit press when container is scrolled
This fixes the problem described in #13996 in a proper way.

This also adds "deadzone" property to ScrollContainer. It can be used
on mobile, where taps are not as precise as mouse clicks. Player could
slightly move their finger when tapping, in which case we still want
the button to be pressed rather than the container to be scrolled.

(cherry picked from commit dcf5be92a3)
2018-04-14 19:36:10 +02:00
Rado'sPC\aRaGaR ef44ed93a7 For-in loop variable added to autocompletion
Fix for #16494

(cherry picked from commit f97ebdcab3)
2018-04-14 19:19:47 +02:00
Pedro J. Estébanez 4f0b5f7307 Implement always-on-top for MacOS
Courtesy of @bruvzg.

(cherry picked from commit 2e8c7824c0)
2018-04-14 19:04:13 +02:00
Pedro J. Estébanez 1c25e50490 Add new window setting: always on top
Implemented for Windows and Linux.

(cherry picked from commit ee2c31d306)
2018-04-14 19:03:53 +02:00
Pedro J. Estébanez a9ec1e3913 Fix buggy http-encoding
(cherry picked from commit 1fc85b87bd)

The original commit's message said "percent-encoding" because it was fixing the same code under a different method name. That rename was reverted but the fix was and is still relevant.
2018-04-12 21:22:46 +02:00
Pedro J. Estébanez 46101928bd Enhance HTTPClient.query_string_from_dict()
(cherry picked from commit 8d8e9d54c8)
2018-04-12 21:20:10 +02:00
Rémi Verschelde 74e72c995d Update AUTHORS and DONORS list
New contributor added to AUTHORS:
@robfram

Thanks to all contributors and donors! :)

[ci skip]

(cherry picked from commit e6e911eb2b)
2018-04-06 21:46:45 +02:00
Gilles Roudiere b6f30f1b5b Fixes infinite loop in GridContainer
(cherry picked from commit 44cb8eb3a2)
2018-03-29 00:41:03 +02:00
volzhs b09d06fcf7 Fix getting Android device information
Fix #17644

(cherry picked from commit 4e378aeeb8)
2018-03-29 00:34:31 +02:00
Wilson E. Alvarez 9567297a66 Fixed several leaks in VisualServerScene, RasterizerSceneGLES3 and RasterizerGLES3
(cherry picked from commit e9ac87390c)
2018-03-29 00:29:06 +02:00
Bojidar Marinov 607884139c Fix a potential bug hinted by clang
(cherry picked from commit 4d81e8afe6)
2018-03-29 00:27:46 +02:00
Wilson E. Alvarez 42f351db0d Fixed leak in BulletPhysicsServer
(cherry picked from commit e5ae9750ed)
2018-03-29 00:24:09 +02:00
Rémi Verschelde 9ab9dd73b0 SCons: Fix running 'scons' without platform argument
The cache and progress logic assumed the 'env' to be defined,
but it is only when the selected platform is in the supported list.

Fixes #17497.

(cherry picked from commit a44f9ca545)
2018-03-29 00:21:41 +02:00
Xavier Sellier fa9e03996c Prevent android to split-screen
(cherry picked from commit 61e8f8a866)
2018-03-29 00:19:49 +02:00
Marcelo Fernandez 814b610ed3 Fix for clang warning at distance_to
(cherry picked from commit bbd21c2203)
2018-03-29 00:15:24 +02:00
Leon Krause a5ccaa919e Prevent division by zero in GridContainer
(cherry picked from commit 38623e07ac)
2018-03-29 00:12:35 +02:00
robfram 5042d0c30a Fix silent failure of importing OGG Vorbis files
When importing non-valid OGG Vorbis audio files, now the filesystem
navigation tree shows the correct sad red-face icon, as it does with
non-valid PNG, JPG or WAV files.

Fix #9793.

(cherry picked from commit a8d37de461)
2018-03-29 00:11:46 +02:00
ShyRed 27f5e404a7 Update libwebm
Update of libwebm.

Up-to-date version of libwebm contains several bugfixes that allow playback of files that would crash Godot otherwise.

(cherry picked from commit e71f109910)
2018-03-29 00:06:05 +02:00
Pedro J. Estébanez 2e9c9f7d74 Fix animation length from glTF not correctly set
(cherry picked from commit 1f26da0ad1)
2018-03-29 00:04:15 +02:00
Pedro J. Estébanez 6063e74e06 Fix glTF not accepting VEC3 colors
Aside from the colors themselves, the rejection was adding somes issues later in the mesh import process.

(cherry picked from commit adbe749513)
2018-03-29 00:04:10 +02:00
bncastle 449e75455b Fix BaseButton not always calling _pressed()
Fix "ui_accept" action in BaseButton.cpp not calling _pressed() func in
GDScript

(cherry picked from commit ceb079fa35)
2018-03-28 23:55:58 +02:00
Bernhard Liebl 73cc3a96c0 Fix uninitialized data in Sprite::_get_rects()
(cherry picked from commit 5f917139ab)
2018-03-28 23:54:10 +02:00
Andrew Dunai 683511310e Fix garbage in string padding.
(cherry picked from commit 0269e366f1)
2018-03-28 23:51:31 +02:00
Felix Yang 12336dc253 Added a check for trailing dot when creating folder.
Merge the trailing dot test into existing test. Removed OS test.

(cherry picked from commit 96f61b2d65)
2018-03-28 23:50:29 +02:00
Pedro J. Estébanez 8da76f3bb8 Fix wrong SSL handshake
The name of the remote host is passed to mbed TLS in all cases so the client hello message is correctly formed.

(cherry picked from commit 602da6fa4f)
2018-03-28 23:49:00 +02:00
Marcelo Fernandez 8289f8628d Modify OSX can_export logic to match the logic from EditorExportPlatformPC::can_export
(cherry picked from commit a42dfd7882)
2018-03-28 23:47:22 +02:00
Gary Oberbrunner 91bc845152 Fix infinite loop in GridContainer layout
I had a grid container and tried to set rect.min_height larger in the
editor; that caused an infinite loop in GridContainer::_notification
at line 118. The reason is max_index was being set to the *height* of
the row, not the *index* of the row. So later when it tried to erase
that row and try again, there was nothing to erase.
I applied the same fix to the width code.

(cherry picked from commit 561e57df13)
2018-03-28 23:45:39 +02:00
bruvzg d8a0b6ba63 Hack to force macOS window activation for non-bundled app.
(cherry picked from commit 506e17ee70)
2018-03-28 23:39:16 +02:00
Poommetee Ketson bf4d8ee69c EditorAudioBus: expand effects list
(cherry picked from commit 555a8c0b8d)
2018-03-28 23:36:58 +02:00
Blazej Floch 2c93def09d Add "Show Origin" and "Show Viewport" options to 2D Editor Viewport
(cherry picked from commit 934498d37a)
2018-03-28 23:33:03 +02:00
Andreas Haas 9cbcff4e91 ScriptEditor: Use EditorSettings instead of hardcoded values in constructor.
(cherry picked from commit 1cfc43421e)
2018-03-28 23:13:46 +02:00
Marcelo Fernandez 985b84689f Support for uneven amount of channels on PulseAudio
(cherry picked from commit 00693f4ad0)
2018-03-28 23:05:23 +02:00
Nicolas Silva 89e4125241 Use GL_LINE_STRIP instead of GL_LINES when drawing polylines.
(cherry picked from commit 20cab06f9a)
2018-03-28 23:01:09 +02:00
Hugo Locurcio 209acbaac7 Add documentation for the DynamicFont hinting property
(cherry picked from commit a0ddd6122c)
2018-03-28 22:56:29 +02:00
Hugo Locurcio 8a0966a8cb Add an hinting mode setting to DynamicFonts
- Editor font hinting can now be tweaked in the Editor Settings.
- DynamicFonts used in projects now have tweakable hinting settings
  in their DynamicFontData child. Changes will be visible upon
  reloading the scene in the editor.

(cherry picked from commit c1544c12ef)
2018-03-28 22:56:04 +02:00
MrCdK 99331ca395 Added pitch scale property to AudioStreamPlayer, AudioStreamPlayer2D and AudioStreamPlayer3D
(cherry picked from commit 5bc010e8ee)
2018-03-28 22:43:44 +02:00
Unknown ec362d54a9 Fix Automatic switch to viewport when playing a scene #16357
(cherry picked from commit d002b7d24a)
2018-03-28 22:41:06 +02:00
MrCdK 5e8e2a8730 AudioServer emit bus_layout_changed signal when adding, moving or deleting a bus
(cherry picked from commit 56dcf4b983)
2018-03-28 22:34:43 +02:00
bruvzg df7d60a9d3 Abort compilation on missing return values (CGG/clang)
(cherry picked from commit 5ec09455ed)
2018-03-28 22:21:33 +02:00
J Andrew Long fe20a1e35b add restore purchases for iOS
(cherry picked from commit da652c1539)
2018-03-28 22:16:07 +02:00
Poommetee Ketson 55a66efa38 Fix get_drive (bookmarks) in linux not working
(cherry picked from commit 7e5b10b7d3)
2018-03-28 22:13:39 +02:00
geequlim 5eebe51014 Fix builtin script cannot open from debug stacks
(cherry picked from commit 095e2bcc26)
2018-03-28 22:12:31 +02:00
geequlim 9febb6f747 Don't print error message when select debugger stacks if the debugger is stopped.
Clear debugger stack inspector if the debugger is stopped when selected stack changed.

(cherry picked from commit cfde737478)
2018-03-28 22:09:16 +02:00
volzhs 626525d23a Draw relationship line on scene tree dock if option is on
(cherry picked from commit 36aa62802a)
2018-03-28 22:06:01 +02:00
JFonS a026e2626c Fix weird editor crash when switching from editing one gradient to another keeps 'grabbing' variable to true
(cherry picked from commit f68594a525)
2018-03-28 22:01:19 +02:00
Marc Gilleron cf2e30b30c Fix Line2D tile mode for non-square textures
(cherry picked from commit d2fae5c9a6)
2018-03-28 21:33:49 +02:00
poke1024 f7efa9d43a Fix line thickness for CollisionPolygon2D.
(cherry picked from commit a36f6e5386)
2018-03-28 21:23:42 +02:00
poke1024 dfb739aff0 Fix grid mesh tile panning bug (issue 16524)
Fix basic function and interference of touch pad pan with mesh tile delete (shift + right click on touch pad) in grid map editor (fix 16524)

(cherry picked from commit b90810ce8e)
2018-03-28 21:11:38 +02:00
Fabio Alessandrelli 89bff17cd2 More threading in AssetLib
AssetLib now uses thread as requested to download previews and items

(cherry picked from commit 3a25415a1c)
2018-03-28 21:03:56 +02:00
Poommetee Ketson 3e1716b2c3 GridMapEditorPlgn: fix a leak
(cherry picked from commit 5cf331588a)
2018-03-28 21:02:51 +02:00
Hein-Pieter van Braam e6200de73a Bump version to 3.0.3-devel
And onwards!
2018-03-18 02:38:31 +01:00
Rémi Verschelde 593e616a48 Dist: Fix Linux desktop file launch argument
(cherry picked from commit a55e2f2dac)
2018-03-14 12:06:18 +01:00
Rémi Verschelde eeb7385f02 SCons: Fix linking system pcre2 on server platform
Fixes #17245.

(cherry picked from commit e619727e99)
2018-03-04 13:47:35 +01:00
Hein-Pieter van Braam 2ff3b08583 Bump to 3.0.2-stable
Thanks to all of our contributors!
2018-03-03 15:22:04 +01:00
Hein-Pieter van Braam 6ab8fb04af Fix documentation indentation for apply_torqe_impulse 2018-03-03 15:19:40 +01:00
Hein-Pieter van Braam 498d177cfe Update changelog for 3.0.2 2018-03-03 15:12:41 +01:00
Chaosus 06a60bb6ef Fix floatBitsToUint function
(cherry picked from commit c6b6af7bb5)
2018-03-03 14:54:52 +01:00
Rémi Verschelde c0132f30c4 Viewport: Fix missing tooltips w/ disabled physics object picking
Previously this option seemed to be the sole responsible for enabling
physics processing in Viewport, while several other features like
tooltips and debugging collision hints rely on it.

All this logic is moved to internal processing (it's incorrect to let
it be affected by users disabling physics/idle processing), and disabling
physics object picking no longer affects the internal physics processing.

Fixes #17001.

(cherry picked from commit ce7da2c7d6)
2018-03-03 14:19:57 +01:00
Max Hilbrunner 649cb70ddb [DOCS] Small fix to Area: Fix copy/paste errors
(cherry picked from commit fdd0f18959)
2018-03-03 11:00:41 +01:00
Rémi Verschelde 65d214d3da i18n: Sync translation templates with current source 2018-03-03 10:58:19 +01:00
Rémi Verschelde 9ee98e999b i18n: Sync translations with Weblate
(cherry picked from commit 7c7d3efb5b)
2018-03-03 10:56:41 +01:00
Max Hilbrunner 5bcc7f88b6 [DOCS] Small fix to PinJoint2D
(cherry picked from commit 0b65bac1a1)
2018-03-03 01:55:33 +01:00
Max Hilbrunner 93e99846b0 [DOCS] NetworkedMultiplayerENet
(cherry picked from commit 5aae17a6fb)
2018-03-03 01:55:27 +01:00
Rhody Lugo 5c2e554853 prune cache only at the start and end of build
(cherry picked from commit 29e6ec6594)
2018-03-03 01:53:22 +01:00
Poommetee Ketson c4468aef5d s/Camear/Camera in docs
(cherry picked from commit b099a500eb)
2018-03-03 01:52:12 +01:00
Bernhard Liebl f967334f53 Fix more regressions in RichTextLabel from PR 15711
(cherry picked from commit 0e1e95c41f)
2018-03-03 01:47:52 +01:00
Rémi Verschelde 4132f2ea7e Update AUTHORS and DONORS list
New contributors added as AUTHORS:
@mrcdk, @binbitten, @paulloz, @PJB3005

New Gold sponsor: Skirmish <https://skirmish.io>

Thanks and welcome! :)

[ci skip]

(cherry picked from commit 741af0652d)
2018-03-02 19:48:12 +01:00
Rémi Verschelde 262c97098d Fix serialization of identifiers with non printable ASCII characters
Fixes #6888.

(cherry picked from commit ab001d830b)
2018-03-02 14:54:45 +01:00
Hein-Pieter van Braam cee20e24bd Don't crash when trying to add an invalid navmesh
It is possible to try to add an invalid object as a navmesh through
GDScript which results in an engine crash. This creates a debug message
that should help the user figure out what's wrong.

(cherry picked from commit 555eebf3f4)
2018-03-02 12:06:46 +01:00
Rémi Verschelde 87476c057a NativeScript: Fix initialization in wrong scope
Regression from d702d7b335 which broke javascript build.

(cherry picked from commit 08cadc3d87)
2018-03-02 02:08:50 +01:00
Hein-Pieter van Braam 53693e393d Revert "Make KEY_ESCAPE close all output/debugger docks on bottom"
This reverts commit c04d868476.

This caused a regression when trying to close the typing suggestion.
Reverting this for now until a better implementation for this behavior
gets made.
2018-03-01 23:06:26 +01:00
Anish 3f7e036c4f Godot now allows built-in irrespective of the filepath.
Since the file in the filepath is irrelevant when setting the file
as built-in, changes have been made to allow setting to built-in
even if the file in the path exists.

Fixes #16425

(cherry picked from commit 1fdb8251d2)
2018-03-01 21:38:15 +01:00
Poommetee Ketson 0aab429453 AnimationEditor: fix time indicator offset
(cherry picked from commit acf54f8bdc)
2018-03-01 21:18:58 +01:00
Marcelo Fernandez 61fd30c00e Fixed Windows ignoring minimized/maximized status set by user
(cherry picked from commit f8da9550f4)
2018-03-01 21:15:35 +01:00
Fabio Alessandrelli 44b206a3fa Fix server build on FreeBSD
(cherry picked from commit 8f9914bd94)
2018-03-01 21:12:28 +01:00
Hein-Pieter van Braam 675899a521 Fix various valgrind reported uninitialized variable uses
(cherry picked from commit d702d7b335)
2018-03-01 21:06:31 +01:00
Ruslan Mustakov 61a9ef5d81 Fix intermittent audio driver crash during startup on Android
set_pause can be called before the driver is initialized, and there
already is a check for that. The problem is that the 'active' field
was not initialied in the constructor, which lead to it having an
undefined value.

(cherry picked from commit c10749d51f)
2018-03-01 21:05:15 +01:00
Nicolas Silva 9c27e4d885 Allow degenerate triangles in polygon triangulation when necessary.
(cherry picked from commit e73266a51c)
2018-03-01 20:18:08 +01:00
poke1024 c800653c6f Fix regression through fa98637aca
(cherry picked from commit 89f607604e)
2018-03-01 19:19:29 +01:00
Hein-Pieter van Braam 3e931e258c More reliably find mscorlib.dll on Linux
(cherry picked from commit c094e90b25)
2018-02-27 22:12:01 +01:00
Hein-Pieter van Braam 7e5a374825 Deprecate a typo for a new method introduced in 3.0.1 2018-02-27 17:53:46 +01:00
Hein-Pieter van Braam a850ebf352 Revert "fix spurious error messages during autocomplete and validate"
This reverts commit b7faa76485.

This causes a regression in 3.0.1. We haven't found a proper fix yet so
we're removing this from 3.0.2
2018-02-27 17:52:18 +01:00
Hein-Pieter van Braam 4e1d19b20c Revert "[Mono] Basis values now marshalled in the correct order."
This reverts commit 9173819b71.

The fixes for these issues aren't quite baked yet. Taking them out of
3.0.2
2018-02-27 17:52:18 +01:00
Hein-Pieter van Braam d7430ef077 Revert "The marshalling in was also incorrect."
This reverts commit b6f958965b.

The fixes for these issues aren't quite baked yet. Taking them out of
3.0.2
2018-02-27 17:52:18 +01:00
Poommetee Ketson 17408bea9c (Magnify|Pan)Gesture: implement as_text
(cherry picked from commit 67e20dc2b6)
2018-02-27 17:52:18 +01:00
Rémi Verschelde 2c55064708 doc: Sync with current source 2018-02-27 13:57:29 +01:00
Rémi Verschelde 42e82b9377 doc: Update version string for 3.0.2 2018-02-27 13:57:10 +01:00
Rémi Verschelde a4b077a0ba Android: Mark GLES3 as required in the manifest
Fixes #17076.

(cherry picked from commit 7d09e6540a)
2018-02-27 13:33:59 +01:00
Ignacio Etcheverry f6c65d9d15 Mono: Buildsystem improvements
- Bundle with mscorlib.dll to avoid compatibilities issues
- Add build option 'mono_assemblies_output_dir' to specify the output directory where the assemblies will be copied to. '#bin' by default.

(cherry picked from commit a45697d8df)
2018-02-27 11:35:19 +01:00
Michele Valente 990bddcf36 fix release builds with mono
"_signals" and "signals_invalidated" were moved out of the
"TOOLS_ENABLED" directive. Updated also the two "update_signals" and
"_update_signals" methods so it makes sense.

(cherry picked from commit 3c7d9001bc)
2018-02-27 11:34:52 +01:00
Poommetee Ketson c730a6ce44 Fix error spam when using PanoramaSky without texture
(cherry picked from commit 7a1b7ddf6c)
2018-02-27 11:34:03 +01:00
indicainkwell 115c0a7415 added docs on Control's drag and drop api
(cherry picked from commit 7154a96d3f)
2018-02-27 11:32:35 +01:00
Paul Joannon 87242c7b92 fix build error when compiling with mono, tools=no, target=release
change TTR to RTR in `print_unhandled_exception`

(cherry picked from commit 90a705d671)
2018-02-27 11:25:10 +01:00
Andrea Catania 4eb9ee9355 Fixed physics server typo
(cherry picked from commit 134cca0cf2)
2018-02-27 11:22:56 +01:00
bruvzg 48ed52184d Add missing return statements (iOS and server).
(cherry picked from commit e3c2778d7e)
2018-02-27 00:06:01 +01:00
JFonS 69274ef368 Fix visibility of gizmos on scene load
(cherry picked from commit 99d740c46e)
2018-02-27 00:02:01 +01:00
Paul Joannon 039fc750d5 only show information we have in stacktrace
do not show line number and/or file if not defined

(cherry picked from commit 3ee4ce51a9)
2018-02-26 23:55:27 +01:00
Paul Joannon 58a7d78c22 [mono] get stacktraces for all inner exceptions
(cherry picked from commit 89af6c2cd7)
2018-02-26 23:55:13 +01:00
Ignacio Etcheverry c0386f0124 Mono: Fix bindings for parameters in vararg methods
(cherry picked from commit 0c82858121)
2018-02-26 23:54:32 +01:00
Nathan Warden b6f958965b The marshalling in was also incorrect.
(cherry picked from commit 60daa9d718)
2018-02-26 22:45:53 +01:00
Ignacio Etcheverry dde14e15c6 Mono: Better versioning and gracefully unloading of Godot API assemblies
(cherry picked from commit f37090ccf4)
2018-02-26 22:36:03 +01:00
Hein-Pieter van Braam 1ea805a4aa Add missing #endif for the main.cpp fix.
I forgot to amend my previous commit.
2018-02-26 21:02:03 +01:00
Hein-Pieter van Braam 3b96b3fd12 Allow running with a custom resource without a main scene
After 3f8a4cc719 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.

(cherry picked from commit b4215c991a)
2018-02-26 20:39:48 +01:00
Hein-Pieter van Braam e499b9b4b6 Bump to version 3.0.2-devel 2018-02-26 20:36:43 +01:00
Hein-Pieter van Braam 8ea709a7a9 Update the changelog for 3.0.1 2018-02-26 20:35:13 +01:00
Hugo Locurcio f2e19a26f5 Add a project changelog
(cherry picked from commit f00b2dfc55)
2018-02-25 15:32:08 +01:00
Rémi Verschelde be771e7165 Fix version.txt validation logic for export templates .tpz
It assumed that the version would always be `x.y-status`,
with no dot possible in `status`, so:
- It would not work for 3.0.1-stable (nor 3.0.1.stable with new version logic)
- It would not support Mono templates when we provide them

The validation it did was not really useful anyway, so we just use the raw
string.

(cherry picked from commit eec9261a75)
2018-02-25 15:29:28 +01:00
Rémi Verschelde cb65617897 Revert "Bump to version 3.0.2-devel"
This reverts commit bcbe7a8a6f.

Need to push a fix and retag 3.0.1-stable, sorry.
2018-02-25 14:09:38 +01:00
Hein-Pieter van Braam bcbe7a8a6f Bump to version 3.0.2-devel
The start of the next patch release. Wooooooooooo
2018-02-24 20:08:32 +01:00
Hein-Pieter van Braam ae540c2efe Bump version to 3.0.1-stable
Thanks everyone for all your amazing work getting our first stable patch
release out for the 3.0 series. I'd particularly like to thank @fales
and @fire for their work on the server platform.

Onwards to 3.0.2!
2018-02-24 19:21:52 +01:00
Hein-Pieter van Braam 5f15642fde Update doc version strings to 3.0.1 2018-02-24 18:59:38 +01:00
Hein-Pieter van Braam 17d7084780 Correct version number for 3.0.1 in the manpage 2018-02-24 18:37:01 +01:00
Poommetee Ketson fe38b648b0 [DOCS] clarify that OS.get_user_data_dir needs project name
[ci skip]

(cherry picked from commit 2c22c9dcfb)
2018-02-24 18:33:43 +01:00
Rémi Verschelde ad325be5a0 Add --quit option to help output and update manpage
(cherry picked from commit 95b8984d5f)
2018-02-24 18:32:22 +01:00
Hein-Pieter van Braam d69d58deea Fix Windows file case changing
Windows APIs don't really provide a way to change a filename case. This
implements a little juggling to make this work. We first create a
guaranteed unique temporary file, we then replace the original file with
the temporary file and we finally rename it to the desired filename
case.
2018-02-24 17:37:07 +01:00
Gilles Roudiere 34591f9451 Fixes collisions shape selection
(cherry picked from commit c250a9a9f9)
2018-02-24 10:53:10 +01:00
Rémi Verschelde d79a7a2773 Refactor version macros and fix related bugs
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.

(cherry picked from commit 23ebae01dc)
2018-02-24 01:34:34 +01:00
Rémi Verschelde 05fec82f31
Merge pull request #16934 from anakimluke/fix_space_around_args
Removed whitespaces around arguments of functions.
2018-02-24 01:32:59 +01:00
anakimluke 370f84f41c Removed whitespaces around arguments of functions.
Functions automatically generated by conneting
signals via GUI put whitespaces around the
arguments of the generated function. This is
inconsistent with the style guide.

This commit fixes that.
2018-02-22 19:41:37 -03:00
Rémi Verschelde 689dfcd9ec server: Add support for statically linking libgcc and libstdc++
(cherry picked from commit be7bfdfac3)
2018-02-22 19:06:36 +01:00
Rémi Verschelde 46b594054c doc: Sync classref with current source 2018-02-22 19:02:37 +01:00
Rémi Verschelde 07e2461995 i18n: Sync translation templates with current source 2018-02-22 18:47:07 +01:00
Rémi Verschelde ca5f3b9f8d i18n: Sync translations with Weblate
(cherry picked from commit 661ab3c88e)
2018-02-22 18:42:25 +01:00
Rado'sPC\aRaGaR 3d804778fd Fix quotation in string
fix for #16404

(cherry picked from commit f38e819fc1)
2018-02-22 13:23:44 +01:00
Yan Pas 3e8c214a19 Delete all selected lines using the delete line shortcut in script editor
(cherry picked from commit 7368978a48)
2018-02-22 13:09:02 +01:00
Pieter-Jan Briers e9d8dfbf0e Ignore tools CLI flags in non-tools builds.
Some flags were still parsed but either did nothing or broke everything.

No reason to parse them.

(cherry picked from commit dd19826277)
2018-02-22 13:08:03 +01:00
Pieter-Jan Briers 3687faa78f Enforce insert_final_newline in the editorconfig.
(cherry picked from commit 6861886f70)
2018-02-22 13:06:25 +01:00
Artem Varaksa eacd66e784 Clean up some bad words from code comments
(cherry picked from commit d35e486228)
2018-02-22 12:22:41 +01:00
Poommetee Ketson b5f8c1a53b Fix timer second not zero padded when < 10
Also RTR "Time Left:"

(cherry picked from commit d2e3607fa0)
2018-02-22 12:20:23 +01:00
Rémi Verschelde f04cd405ac Fix loading project.binary from PCK file
Regression introduced in #16825.
My logic was correct, but not the error code I was expecting.
The error reporting in FileAccess likely needs a review too.

(cherry picked from commit 57d562b394)
2018-02-22 12:19:43 +01:00
Rémi Verschelde f55b376d78 Improve error reporting of ProjectSettings::setup()
And use it to better report errors in the console and project manager
when a project.godot file is corrupted.

Fixes #14963.

(cherry picked from commit 7839076f95)
2018-02-22 12:19:28 +01:00
Michael Alexsander Silva Dias fdac09a0aa Made the Debugger's Stack Frames items reselectable.
(cherry picked from commit 32e3f257ac)
2018-02-22 12:18:45 +01:00
luz.paz 751806b5c7 Fix typos with codespell
Found via `codespell -q 3 --skip="./thirdparty,./editor/translations" -I ../godot-word-whitelist.txt`
Whitelist consists of:
```
ang
doubleclick
lod
nd
que
te
unselect
```

(cherry picked from commit 612ab4bbc6)
2018-02-22 12:17:06 +01:00
Poommetee Ketson 40018e995c Color:fix setting V switch S to old V value
(cherry picked from commit f4f92b55e1)
2018-02-22 12:07:07 +01:00
BastiaanOlij be6323d848 Added documentation for VehicleBody
(cherry picked from commit 234b86e6b2)
2018-02-22 12:03:10 +01:00
Artem Varaksa 29089b715d Insert proper copy icon to debugger
(cherry picked from commit db2a1544c0)
2018-02-22 12:02:41 +01:00
Daniel J. Ramirez 7e89cc46dd Icons update
includes new enum, MeshInstance2D, Skeleton2D, Cut, Copy and Paste icons.

(cherry picked from commit cecf274364)
2018-02-22 12:02:02 +01:00
Chaosus a86829211a Added missing shader functions
(cherry picked from commit 8f04a13c98)
2018-02-22 00:02:52 +01:00
isaacremnant f01821b60a Force controls to save rect_clip_content since they do not all default to false.
(cherry picked from commit cc902cf9ab)
2018-02-22 00:01:33 +01:00
hungrymonkey 245c11be08 Change function signature from float to double to match type get_doubleCloses #16160
(cherry picked from commit d2f1c87063)
2018-02-21 23:59:15 +01:00
Bernhard Liebl fa98637aca Fixes wrong vertical font layout in RichTextLabel
(cherry picked from commit 77b1320fb4)
2018-02-21 23:52:49 +01:00
Ian 723613dbc3 TextEdit folding over unindented comments
(cherry picked from commit d327f75392)
2018-02-21 23:51:45 +01:00
Hein-Pieter van Braam 99efa7ce62 Revert "Fix wrong return type of xform functions"
As this will change bindings API this will have to wait for 3.1

This reverts commit 187c40d64d.
2018-02-21 23:47:04 +01:00
AndreaCatania c7040f3218 Fixed sky reflection rendering when transparent BG
(cherry picked from commit c34f18acce)
2018-02-21 23:40:59 +01:00
Neil Moore 5975b44ded Fixes gravity calculation for kinematic bodies in Bullet
(cherry picked from commit 5fb8a6a6c2)
2018-02-21 23:38:30 +01:00
Hein-Pieter van Braam 8efb9c8cdd Actually fix the db/dc renaming mess
Local builds save lives :)
2018-02-21 23:21:21 +01:00
Hein-Pieter van Braam 75289b4017 revert the renaming _tree_db_selected function 2018-02-21 22:57:50 +01:00
Rémi Verschelde ccf27376a6 Update warning about C# support
(cherry picked from commit 24cf4fe062)
2018-02-21 22:55:46 +01:00
Michael Alexsander Silva Dias 23b9f09c58 Fixed "Open" button being enabled when nothing is selected in a FileDialog while in "Open folder" mode.
(cherry picked from commit db80d56388)
2018-02-21 22:23:24 +01:00
Florian Zwoch e1fc7776f6 gltf: improve embedded data discovery
Some editors seems to use the image resource's mime type (e.g. "image/png") for data embedded uris instead of "application/octet-stream".

(cherry picked from commit 1abf464b59)
2018-02-21 22:17:09 +01:00
Chaosus c6a96fc360 Enable snapping when control key pressed
(cherry picked from commit 24c170555d)
2018-02-21 22:16:20 +01:00
Max 4383fae5a4 Fixed disappearing text on filedialog buttons
(cherry picked from commit 6a48f952ca)
2018-02-21 22:15:05 +01:00
Nathan Warden 9cfcf102a0 [Mono] Fixed "expression did not evaluate to a constant" compiler error for visual studio.
(cherry picked from commit 72fe70272d)
2018-02-21 22:12:57 +01:00
Bojidar Marinov 8dc946c89c Fix a rendering bug with screen_texture
(cherry picked from commit ea57a19b34)
2018-02-21 22:11:47 +01:00
karroffel 327fea741a using TIME in light shader enables uses_fragment_time
The GLES3 shader compiler performs certain checks to enable or disable
the usage of certain uniform variables (and with that the set-up of UBOs).

If the `TIME` variable gets used inside the `vertex` function then the
renderer knows that it has to insert that value into the UBO.
The same applies to the `fragment` function.

The `light` function gets executed inside the fragment shader for every
light source that is relevant to the current pixel. If the `TIME` variable
gets used in that function then it needs to be present in the fragment-UBO.
The check for this was missing, so if a shader uses `TIME` inside `light`
but not inside `fragment` then the uniform will not actually be set up.

(cherry picked from commit bb655856e2)
2018-02-21 22:10:28 +01:00
volzhs 317cb336eb Keep to show current script when closing all docs
also fix error when removing multiple tabs from TabContainer at same frame.
like closing multiple docs at once.

Fix #16403

(cherry picked from commit df84290a7e)
2018-02-21 22:09:23 +01:00
Nathan Warden 83b76a8171 Added an auto quit and auto build flag to the command line options.
(cherry picked from commit 4bfb504c2f)
2018-02-21 21:56:37 +01:00
K. S. Ernest (iFire) Lee 70b082c0d9 Create and return LightmapCapture.
(cherry picked from commit 2e66730061)
2018-02-21 21:49:16 +01:00
K. S. Ernest (iFire) Lee bbfec2a7cc Add dummy audio driver, fix dummy rasterizer
(cherry picked from commit 4e1923a931)
2018-02-21 21:49:10 +01:00
Fabio Alessandrelli 8849377f6d Fixes to OS_Server and DummyRasterizer to match new signatures
(cherry picked from commit 2de10aa467)
2018-02-21 21:48:58 +01:00
Fabio Alessandrelli 149ffcb1a4 server platform now compiles and run on linux.
Seems to also be able to do exports of some demos I tried.

(cherry picked from commit 6784d743f7)
2018-02-21 21:48:46 +01:00
Fabio Alessandrelli fb4a784319 Add dummy Texture handling
(cherry picked from commit 72ef766dfa)
2018-02-21 21:48:33 +01:00
Fabio Alessandrelli 8f231d82bb Disable GLES builders and source from server compilation
(cherry picked from commit 8699f643c9)
2018-02-21 21:48:21 +01:00
Fabio Alessandrelli cc280545dc Add dummy resterizer driver
(cherry picked from commit c0dce6e480)
2018-02-21 21:47:38 +01:00
George Marques fa02b58b46 Remove unused variable from plugin settings update
Fix #16199

(cherry picked from commit 9f0cce840d)
2018-02-19 23:15:56 +01:00
Stephen Traskal 000caef623 Fixing folder/file case sensitive renaming issue
Example:
Could not rename "Objects" to "objects" or vice versa

(cherry picked from commit e790ca084d)
2018-02-19 22:47:39 +01:00
x1212 b7faa76485 fix spurious error messages during autocomplete and validate
_parse() caused resets on members like validating and
for_completion by calling clear().

(cherry picked from commit 48c9ed4545)
2018-02-19 22:46:49 +01:00
Konrad Nowakowski a76dfe9c72 Fix 2d collision body update on shape remove
(cherry picked from commit 3659df6624)
2018-02-19 22:43:33 +01:00
Leon Krause a423adbee6 Flush HTTPClient response data only on request/close in HTML5 platform
(cherry picked from commit 98039909f2)
2018-02-19 22:42:38 +01:00
Leon Krause c5b5fd61d4 Warn when polling HTTPClient synchronously in HTML5 platform
(cherry picked from commit ca9fa9cca8)
2018-02-19 22:42:31 +01:00
Leon Krause 5bb269d01d Disable insecure HTTP methods CONNECT and TRACE in HTML5 platform
(cherry picked from commit 2cd7bc04ea)
2018-02-19 22:42:22 +01:00
Leon Krause d5535d9357 Fix HTML5 HTTPClient response header retrieval
(cherry picked from commit 8a21f27f54)
2018-02-19 22:42:08 +01:00
Leon Krause 2714b851bf Fix HTML5 HTTPClient failure detection
(cherry picked from commit 9ea4452d21)
2018-02-19 22:42:01 +01:00
Ignacio Etcheverry 2abbdcaa20 Mono: Fix build status icons
(cherry picked from commit 8bd05f0c71)
2018-02-19 22:40:21 +01:00
Paul Joannon 9cba5ef772 implement signal related methods in csharp_script so signals can be used with emit
(cherry picked from commit cfbd7fd21e)
2018-02-19 22:39:51 +01:00
Paul Joannon 416cd9c8b8 add a [Signal] attribute to CSharpScripts
(cherry picked from commit efd52cd172)
2018-02-19 22:39:44 +01:00
Benjamin Stammen 7a20495a80 Direct to InputEventJoypadButton for using buttons
(cherry picked from commit 6af7dafd6c)
2018-02-19 22:37:09 +01:00
Pedro J. Estébanez bafbd73b51 Remove window decorations for fullscreen on X11
(cherry picked from commit 935a99e758)
2018-02-19 22:36:20 +01:00
Anish ac6811c4fa Gridmap editor now lists plane instead of floor when not horizontal.
Instead of gridmap editor calling grid as floor irrespective of the
orientation, it now calls the grid plane if it's vertical and floor
if horizontal.

Resolves: #14611
(cherry picked from commit 7c356a9c05)
2018-02-19 22:34:16 +01:00
Rémi Verschelde 8372a404bb X11: Link libgcc statically with use_static_cpp option
We were already linking libstdc++ statically for official binaries,
protecting us against most portability issues. But apparently since
we started using GCC 7 for official builds, we also need to link
libgcc statically for at least 32-bit builds to be portable.

Fixes #16409.

(cherry picked from commit b526088ae2)
2018-02-19 22:33:29 +01:00
Rémi Verschelde 5b04dcfabd Update CA certificates to latest Mozilla bundle
Copied from an up-to-date Fedora 27 install (ca-certificates-2018.2.22-1.0.fc27).

(cherry picked from commit 294af5617a)
2018-02-19 22:32:53 +01:00
Pieter-Jan Briers 4b581104e7 Makes project manager never initialize mono debug.
The heuristic whether we're in the project manager inside GDMono
didn't work if the project manager was launched by not having any path
to run.

This is fixed now by making a Main::is_project_manager().

(cherry picked from commit 1099838079)
2018-02-19 22:32:17 +01:00
Pieter-Jan Briers f49601a934 Give C# NodePath a ToString().
It already had an implicit cast operator to string,
but this doesn't get used in say string formatting.

So now something like $"path: {GetPath()}" works.

(cherry picked from commit 3c1f8efd9e)
2018-02-19 22:31:33 +01:00
Pieter-Jan Briers 3e6ab9f3d5 Makes NodePath and RID follow PascalCase in C#.
Fixes #15685

(cherry picked from commit b1a81374d4)
2018-02-19 22:30:45 +01:00
damarindra 9f9731da3a fix crash autotile edit mode
(cherry picked from commit cceb176be3)
2018-02-19 22:30:13 +01:00
Alexander Alekseev 18735ff6f2 Fixes OptionButton selection index being reset to zero at instanciation
Bug: engine tries to set selected item before items were added during save scene/run project, because of wrong properties order.
Fixes #10213.

(cherry picked from commit 66c39b1426)
2018-02-19 22:29:36 +01:00
Michael Alexsander Silva Dias 237cf72f89 Made modifications to the RigidBody(2D) descriptions.
(cherry picked from commit 50e6b3c005)
2018-02-19 22:28:47 +01:00
Anish 5c2b2ca95b Documentation tool does not add escapes to code and codeblocks
Instead of adding the escapes to all * and _ the tool now excludes
the characters inside [code] and [codeblock].

Resolves: #15156
(cherry picked from commit 84e8c49f5d)
2018-02-19 22:28:03 +01:00
Rémi Verschelde 57f707f951 Add locale renames for Hebrew and Indonesian on Windows
Windows does not fully respect ISO 639-1 like other systems,
so we have to override its locale values for those languages.

Also added comments to document the locale provenance.

(cherry picked from commit 0c7bed45c4)
2018-02-19 22:27:19 +01:00
ianb96 2f87e7ffe9 option to disable sort in script list
(cherry picked from commit e1778fb921)
2018-02-19 22:26:29 +01:00
BTaskaya 12da8dcdeb PEP3101 applied with changing old type string formatting as new ones
(cherry picked from commit 78dba05fc0)
2018-02-19 22:25:41 +01:00
Marcelo Fernandez c5388fb0cf Fix for a possible compile error under OS X
(cherry picked from commit 621d28adef)
2018-02-19 22:24:57 +01:00
Michael Alexsander Silva Dias 02e910275c Fixed small typos in the SConstruct file.
(cherry picked from commit b92c5669de)
2018-02-19 22:23:38 +01:00
Andrea Catania 285f47f037 Added return true o collide when no rusult is NULL
(cherry picked from commit f48845428d)
2018-02-19 22:21:58 +01:00
Michael Alexsander Silva Dias 9fb843db06 Added "allow_reselect" property to ItemList and enabled it for the method/help lists.
(cherry picked from commit 4dbf6ac1b8)
2018-02-19 22:21:14 +01:00
Iskustvo 4bdcee2b9d [X11] Improving error detection in move_to_trash
(cherry picked from commit 268d7c7c5b)
2018-02-19 22:20:06 +01:00
Rémi Verschelde fd033473c7 Fix broken APK expansion due to missed option renames
Command line options were refactored for 3.0 to follow the common usage
of double-dashed long options, but `--main-pack` went through the cracks.

Fixes #16533.

(cherry picked from commit e3658a6464)
2018-02-19 22:19:08 +01:00
George Marques a39930c5b9 Add a function to remove controls from containers
Closes #5968

(cherry picked from commit da69a06253)
2018-02-19 22:18:22 +01:00
Artem Varaksa c94d8e6577 Fix #16543 (add button to copy error from debugger)
(cherry picked from commit b169b16f98)
2018-02-19 22:17:26 +01:00
George Marques eb5e5200cc Fix infinite recursion with editor import plugins
(cherry picked from commit 95f7879923)
2018-02-19 22:16:33 +01:00
George Marques d54ac732ae Expose priority and order for custom import plugins
(cherry picked from commit c68948fdfa)
2018-02-19 22:16:13 +01:00
Brandon DeRosier 62fcd772be Add Xbox One Elite and Xbox 360 Afterglow pads
(cherry picked from commit ae579a256e)
2018-02-19 22:15:05 +01:00
Marcelo Fernandez 150423203b Added OS::center_window to center the window precisely on desktop platforms
(cherry picked from commit ea1d726a46)
2018-02-19 22:14:05 +01:00
ShyRed ef60123938 Add import option "scale_mesh" to obj file importer
The new import option "scale_mesh" allows setting a scale that is applied to the mesh's vertices during import.

(cherry picked from commit 291c1d0f45)
2018-02-19 22:13:46 +01:00
Jonathan Tinkham 0d03b5f162 Add and use mono build variables with cloned environment.
(cherry picked from commit 70d281b946)
2018-02-19 22:13:46 +01:00
Paulb23 148e059940 Fixed members overview not scrolling to correct line
(cherry picked from commit 4d92c5e1c3)
2018-02-19 22:13:46 +01:00
Artem Varaksa 7af43c4ca3 Fix #16479 (deselect text when jumping to function)
(cherry picked from commit 3094e89782)
2018-02-19 22:13:46 +01:00
ronroniv 5b32be4701 Update an outdated method name in error message
set_enable_monitoring -> set_monitoring

(cherry picked from commit 5e8f7c9782)
2018-02-19 22:13:46 +01:00
Andrew Silver 47b49200b0 Fixed KinematicBody move_and_slide documentation naming
(cherry picked from commit da81d9f843)
2018-02-19 22:13:46 +01:00
Hugo Locurcio a7d7f763d0 Remove debugging prints related to the asset library
(cherry picked from commit 5513e4e1f9)
2018-02-19 22:13:46 +01:00
Ovnuniarchos eda94419df SpinBoxes calculate correctly their width before first redraw.
(cherry picked from commit fe1ca3c6e6)
2018-02-19 22:13:46 +01:00
Marcin Zawiejski e6252bda5e download templates to a file using separate thread
(cherry picked from commit b4f1a035e3)
2018-02-19 22:13:46 +01:00
Federico Frenguelli 069658f1be Fixed #15082: line edit emits two "text_changed" signals when pasting while text is selected
(cherry picked from commit 9cd3ed4ace)
2018-02-19 22:13:46 +01:00
Nicolas Silva a0e59a7259 Fix polygon triangulation failure.
The ear clipping algorithm used to triangulate polygons has a slightly too conservative point-in-triangle test which can, in some configurations prevent it from finding a possible tessellation. Relaxing the test by considering that points exactly on edges don't belong the triangle fixes the issue. Changing the semantic of the test is safe because no other code makes use of it. A more detailed explanation can be found in issue #16395.

Fixes #16395.

(cherry picked from commit 91215e1919)
2018-02-19 22:13:46 +01:00
Paolo Perkovic 82b9a13e0c Fix timeline track name overlapping keyframe area
(cherry picked from commit 398f5b74e3)
2018-02-19 22:13:46 +01:00
Hugo Locurcio 79ef5f92a9 Remove a few debugging prints
(cherry picked from commit 84267915f5)
2018-02-19 22:13:46 +01:00
Hugo Locurcio 5d7867082d Always detect and use hiDPI in the project manager if needed
This makes its hiDPI behavior consistent with the editor.

(cherry picked from commit 55a2bffac9)
2018-02-19 22:13:45 +01:00
Hugo Locurcio fda35b3f42 Draw the Camera gizmo more accurately
The Camera gizmo no longer looks twice as wide as it actually is.
This fixes #16399.

(cherry picked from commit 0d7d293889)
2018-02-19 22:13:45 +01:00
Michael Alexsander Silva Dias a0e9d751a3 Fixed wrong example in JSONParseResult.
(cherry picked from commit 24e87f97c6)
2018-02-19 22:13:45 +01:00
Marcin Zawiejski d4a70c6c08 fix buffer write performance on Windows and Unix
(cherry picked from commit 8315aa40cc)
2018-02-19 22:13:45 +01:00
binbitten 65aa9063c4 Fix spaces and quotes in external editor flags
(cherry picked from commit fb8d2420b5)
2018-02-19 22:13:45 +01:00
ianb96 9eb546e7ff drop path text at mouse pos
(cherry picked from commit 06965f2770)
2018-02-19 22:13:45 +01:00
ianb96 f031e2f665 disable scene tree shortcuts when in a textfield
(cherry picked from commit 4e96e04389)
2018-02-19 22:13:45 +01:00
Poommetee Ketson 4bed14f69b Gradient: fix wrong property type
(cherry picked from commit 4f9ef96b54)
2018-02-19 22:13:45 +01:00
Chaosus 91692ce72a Fix gradient texture preview
(cherry picked from commit 3ba43ac975)
2018-02-19 22:13:45 +01:00
binbitten 05e97db6f2 Fix wrong property type for fixed icon size in ItemList
(cherry picked from commit 331cfc1d18)
2018-02-19 22:13:45 +01:00
Michael Alexsander Silva Dias 617bcd1b91 Capitalized "View" menu options.
(cherry picked from commit b507eeddcc)
2018-02-19 22:13:45 +01:00
Benjamin Dobell 34d8625d82 Fix pkgconfig detection of mono
(cherry picked from commit 5920bc6f72)
2018-02-19 22:13:45 +01:00
Paolo Perkovic 79b931d093 Fix UX with project settings search functionality
(cherry picked from commit e7b98119df)
2018-02-19 22:13:45 +01:00
Nathan Warden 9173819b71 [Mono] Basis values now marshalled in the correct order.
(cherry picked from commit 0cc4de1f24)
2018-02-19 22:13:45 +01:00
JFonS 8787850286 Fix gizmo solid box mesh being added twice
(cherry picked from commit d0a2931cd7)
2018-02-19 22:13:45 +01:00
Max Hilbrunner 2515d42a14 [DOCS] parse_json: Objects do not keep key order
Document JSON not guaranteeing key order.

(cherry picked from commit 82b8f1729d)
2018-02-19 22:13:44 +01:00
Guilherme Felipe 1a9a40fe31 Make parent folder selectable. Fix #16253
(cherry picked from commit 6e1c02b828)
2018-02-19 22:13:44 +01:00
Guilherme Felipe eda3169cd1 Fixes open button not appearing with multiple selection
Fix #16231

(cherry picked from commit 09c277693e)
2018-02-19 22:13:44 +01:00
George Marques d7f73031fb Show default values in docs for GDScript built-in functions
(cherry picked from commit dca2ae78dd)
2018-02-19 22:13:44 +01:00
Poommetee Ketson ba36ef5465 3DEditor: fix selecting node in viewport not update inspector
(cherry picked from commit cfac160f9f)
2018-02-19 22:13:44 +01:00
Poommetee Ketson 41f9904e71 3DEditor: fix multiple node selection crash the editor
I'm not sure about this fix. This seems to also fixes the weird
selection bug where when selecting node 1 to 3 it focuses on
2nd node.

(cherry picked from commit 25dd1f0681)
2018-02-19 22:13:44 +01:00
Gilles Roudiere a206d3d2fc Fixes a Gridcontainer wrong children fitting with expanded+non-zero minisize
(cherry picked from commit d1f32708b7)
2018-02-19 22:13:44 +01:00
Gilles Roudiere a6ca62ac79 Fixes a bas resizing with SplitContainer
(cherry picked from commit 30e1e42175)
2018-02-19 22:13:44 +01:00
Rémi Verschelde 85dedc09a8 Readd VS.sync and VS.draw to keep compatibility
Those are deprecated as VS.force_sync and VS.force_draw do the same and more explicitly,
but we cannot remove them without marking them as deprecated before that.

Fixes issue introduced in #15892.

(cherry picked from commit fd92e571ac)
2018-02-19 22:13:44 +01:00
Marc Gilleron 9e7c3016d1 Added all missing VisualServer bindings
- Added bindings for multimesh, immediate, skeleton, light, reflection probe, gi probe, lightmap, particles, camera, environment, scenario, instance
- Removed draw and sync, were duplicates of force_* equivalents
- Bumped binders max arguments from 11 to 13
- Wrote some wrappers as not all methods were variant-friendly

(cherry picked from commit e415fd05bb)
2018-02-19 22:13:44 +01:00
Marcelo Fernandez 906cf28dae Improved WASAPI driver so that it always uses the default audio device
(cherry picked from commit d5afcf7ab1)
2018-02-19 22:13:44 +01:00
Rémi Verschelde 801b544ee1 Windows: Fix case of imm32 for case-sensitive MinGW build
Fixes #16713.

(cherry picked from commit 4fa8987494)
2018-02-19 22:13:44 +01:00
geequlim 097f95993f Windows: implement OS.get_unique_id and OS.set_ime_position
(cherry picked from commit 3be04f73f5)
2018-02-19 22:13:39 +01:00
Bernhard Liebl c04d868476 Make KEY_ESCAPE close all output/debugger docks on bottom
(cherry picked from commit 2ae2735a7a)
2018-02-19 21:01:41 +01:00
Saracen 50674dbe15 Expose 'lightmap_unwrap' method to the scripting engine.
(cherry picked from commit e3fdacdf90)
2018-02-19 20:57:40 +01:00
Paul Joannon 71607d9198 Fix bug when launching a game with no main scene
Check for a main scene after loading project settings and exit if there's none (except if launching in editor mode).

(cherry picked from commit 3f8a4cc719)
2018-02-19 20:56:54 +01:00
Julian Murgia 3548f71cc4 Display path to preloaded res + button to open it
(cherry picked from commit b766a849ad)
2018-02-19 20:56:16 +01:00
Paul Joannon a1455f6a03 Change 'Build Project' button style in Mono panel
Address #15208

(cherry picked from commit 484f664331)
2018-02-19 20:50:39 +01:00
Jerome67000 f64b68d870 Change primitive meshes acccuracy value
(cherry picked from commit b72c9b85d0)
2018-02-19 20:49:41 +01:00
Michael Alexsander Silva Dias f1d26c1c72 Re-enabled type icons.
(cherry picked from commit f7547a7f28)
2018-02-19 20:48:36 +01:00
Vincenzo Greco 7f5fde6459 Select root node if search_box is empty in create_dialog
(cherry picked from commit 586e735125)
2018-02-19 20:47:44 +01:00
Colin Kinloch 611caa06a5 Fixed android arm64v8
(cherry picked from commit 853b1daa49)
2018-02-19 20:46:49 +01:00
Nathan Warden 3f6e8d70cf Added async and await as C# keywords.
(cherry picked from commit 3dcf0567a1)
2018-02-05 09:33:01 +01:00
Ignacio Etcheverry 40c779fb70 Mono: Remove automatic script multilevel calls
(cherry picked from commit 84437b4864)
2018-02-05 09:32:29 +01:00
Phil Jones 532abf228c Fix texture import spelling
(cherry picked from commit d1a471f909)
2018-02-04 20:11:13 +01:00
Michael Alexsander Silva Dias 248fea2a79 Small fixes for the Control description in the docs.
(cherry picked from commit 5e0821e867)
2018-02-04 20:10:45 +01:00
Paolo Perkovic 7de47fbabb Fix inconsistencies and typos in argument names
(cherry picked from commit 08d4bfacaf)
2018-02-04 20:10:13 +01:00
volzhs 62dc7ba82f Expand project root directory on editor start
close #16232
Option for expanding all directories on start up is a bit tricky and buggy.

(cherry picked from commit 127d1241bd)
2018-02-04 20:09:26 +01:00
Nathan Warden 4a3a597377 Fix an infinite recursion in the Mathf.Decimals method when using floats.
(cherry picked from commit 2109bd3f97)
2018-02-04 20:08:26 +01:00
Guilherme Felipe 501880e9ba Hide button tree when file system dock isn't in split mode
(cherry picked from commit bb936b5503)
2018-02-04 20:07:56 +01:00
Profesor Tartelett bd02969263 Errata fix on Image get_format() description
The description of this function seems to be duplicated from the preceding description.

(cherry picked from commit 9d735ffacb)
2018-02-04 20:07:19 +01:00
binbitten 0fa4325153 Fix TextEdit current line highlight horizontal offset
(cherry picked from commit ba8c5bff69)
2018-02-04 20:06:46 +01:00
George Marques acf01c955f Expose a few GraphEdit methods to script languages
(cherry picked from commit b80bc73a17)
2018-02-04 20:05:47 +01:00
George Marques 0a75a38db4 Add interface for plugins to enable/disable other plugins
(cherry picked from commit 87be0bc110)
2018-02-04 20:05:12 +01:00
Andreas Haas 845f44b976 ProjectSettings: Disallow adding properties without name.
(cherry picked from commit d664d6e634)
2018-02-04 20:04:31 +01:00
Poommetee Ketson 77ee4ced30 AudioEffectReverb: max predelay_feedback to 0.98
(cherry picked from commit 5a26e0786c)
2018-02-04 20:03:16 +01:00
Chaosus 780a7a281b Viewport doc improvements
(cherry picked from commit ffcbb0c358)
2018-02-04 20:02:38 +01:00
Marlon Henry Schweigert 5481ece976 Display set_nodelay to GDScript
Pass enabled arg

Rename set_nodelay to set_no_delay

Add description to the method

Change description

(cherry picked from commit 87adf9cfba)
2018-02-04 20:02:04 +01:00
Hein-Pieter van Braam ef49c166f6 Allow focus on disabled buttons
This behavior better matches other gui toolkits. A selected disabled
button still can't be interacted with but it can now be selected. This
seems to be what QT and GTK do also.

This fixes #16131

(cherry picked from commit 713f190a30)
2018-02-04 20:00:23 +01:00
Mariano Suligoy 77cc0a023b attemp to fix #15870
(cherry picked from commit 517ff5c8d7)
2018-02-04 19:59:34 +01:00
robfram 1036a76bc5 Fix issue 15895, audio streams don't signalling finished after the first one
if the audio player is set to play again due to the order of calls in
_notification. First it emits the signal, and later it disable the internal
processing regardless what the callback did.

Changed to emit the signal at the end to ensure the changes done at callback
remains.

(cherry picked from commit d588fe2740)
2018-02-04 19:56:37 +01:00
Rémi Verschelde e44bef4404 Update DONORS list
[ci skip]

(cherry picked from commit f13d034485)
2018-02-02 10:07:40 +01:00
Juan Linietsky c77047d6a3 Ability to import .escn files, which is just a .tscn but with forced import.
This works together with the new Blender to Godot exporter.

(cherry picked from commit 1322ca6fb2)
2018-01-31 01:15:00 +01:00
Hein-Pieter van Braam a34afa3820 Implement OS::get_processor_count() for Windows
Current this is hardcoded as '1' for any platform except Unix. The
little is_wow64() dance is required to get correct output on a 32bit
compiled godot running on 64bit Windows according to MSDN.

This code should be UWP safe but I have no way to test that so it's not
implemented for UWP yet.

(cherry picked from commit b4d369c887)
2018-01-30 20:56:53 +01:00
bruvzg 77d27053c3 [macOS] Strip executable when `separate_debug_symbols` is set to yes
(cherry picked from commit 9ef0315b06)
2018-01-30 20:56:16 +01:00
Poommetee Ketson 187c40d64d Fix wrong return type of xform functions
(cherry picked from commit ebe2337515)
2018-01-30 20:55:41 +01:00
Hein-Pieter van Braam e69b30b276 Fix Copy/Paste problems on X11
The target of the TARGETS type should be XA_ATOM and not XA_TARGETS when
requested. Since we are sending a number of ATOMS the size should be set
to the integer size and not the char size.

The size field of the atoms is also the number of atoms and not the size
of the array. This caused some clients to wrongly interpret the data and
read garbage in the X11 packet.

I also add the more modern representation for UTF-8 and clarify the
error message if a client attempts to request a type we don't know
about.

This fixes #10431

(cherry picked from commit fb60f2dbe6)
2018-01-30 20:55:11 +01:00
Geequlim 99e72894a2 Remote debugger send the real instance of WeakRef referenced to
(cherry picked from commit 10f0451cc2)
2018-01-30 20:54:25 +01:00
MrCdK 258119a9cf Expose audio streams get_length()
(cherry picked from commit 8a9f1c2a5d)
2018-01-30 20:53:37 +01:00
Hein-Pieter van Braam 3f6694b894 Bump version to 3.0.1-devel
Onwards, but slowly, towards stability. And the stars.
2018-01-30 20:51:06 +01:00
2722 changed files with 72855 additions and 36683 deletions

View File

@ -12,12 +12,16 @@ environment:
TARGET: release_debug TARGET: release_debug
ARCH: amd64 ARCH: amd64
init:
- ps: if ($env:APPVEYOR_REPO_BRANCH -ne "master") { $env:APPVEYOR_CACHE_SKIP_SAVE = "true" }
cache: cache:
- "%SCONS_CACHE_ROOT%" - "%SCONS_CACHE_ROOT%"
install: install:
- SET "PATH=%PYTHON%;%PYTHON%\\Scripts;%PATH%" - SET "PATH=%PYTHON%;%PYTHON%\\Scripts;%PATH%"
- pip install --egg scons # it will fail on AppVeyor without --egg flag - pip install -U wheel # needed for pip install scons to work, otherwise a flag is missing
- pip install scons==3.0.1
- if defined VS call "%VS%" %ARCH% # if defined - so we can also use mingw - if defined VS call "%VS%" %ARCH% # if defined - so we can also use mingw
before_build: before_build:
@ -25,7 +29,7 @@ before_build:
- python --version - python --version
- scons --version - scons --version
- cl.exe - cl.exe
- SET "SCONS_CACHE=%SCONS_CACHE_ROOT%\master" - set "SCONS_CACHE=%SCONS_CACHE_ROOT%\%APPVEYOR_REPO_BRANCH%"
build_script: build_script:
- scons platform=%GD_PLATFORM% target=%TARGET% tools=%TOOLS% verbose=yes progress=no gdnative_wrapper=yes - scons platform=%GD_PLATFORM% target=%TARGET% tools=%TOOLS% verbose=yes progress=no gdnative_wrapper=yes

View File

@ -1,6 +1,6 @@
# Commented out parameters are those with the same value as base LLVM style # Commented out parameters are those with the same value as base LLVM style
# We can uncomment them if we want to change their value, or enforce the # We can uncomment them if we want to change their value, or enforce the
# chosen value in case the base style changes (last sync: Clang 5.0.0). # chosen value in case the base style changes (last sync: Clang 6.0.1).
--- ---
### General config, applies to all languages ### ### General config, applies to all languages ###
BasedOnStyle: LLVM BasedOnStyle: LLVM
@ -32,6 +32,7 @@ AllowShortIfStatementsOnASingleLine: true
# AfterObjCDeclaration: false # AfterObjCDeclaration: false
# AfterStruct: false # AfterStruct: false
# AfterUnion: false # AfterUnion: false
# AfterExternBlock: false
# BeforeCatch: false # BeforeCatch: false
# BeforeElse: false # BeforeElse: false
# IndentBraces: false # IndentBraces: false
@ -60,6 +61,7 @@ Cpp11BracedListStyle: false
# - foreach # - foreach
# - Q_FOREACH # - Q_FOREACH
# - BOOST_FOREACH # - BOOST_FOREACH
# IncludeBlocks: Preserve
IncludeCategories: IncludeCategories:
- Regex: '".*"' - Regex: '".*"'
Priority: 1 Priority: 1
@ -69,6 +71,7 @@ IncludeCategories:
Priority: 3 Priority: 3
# IncludeIsMainRegex: '(Test)?$' # IncludeIsMainRegex: '(Test)?$'
IndentCaseLabels: true IndentCaseLabels: true
# IndentPPDirectives: None
IndentWidth: 4 IndentWidth: 4
# IndentWrappedFunctionNames: false # IndentWrappedFunctionNames: false
# JavaScriptQuotes: Leave # JavaScriptQuotes: Leave
@ -86,6 +89,10 @@ IndentWidth: 4
# PenaltyExcessCharacter: 1000000 # PenaltyExcessCharacter: 1000000
# PenaltyReturnTypeOnItsOwnLine: 60 # PenaltyReturnTypeOnItsOwnLine: 60
# PointerAlignment: Right # PointerAlignment: Right
# RawStringFormats:
# - Delimiter: pb
# Language: TextProto
# BasedOnStyle: google
# ReflowComments: true # ReflowComments: true
# SortIncludes: true # SortIncludes: true
# SortUsingDeclarations: true # SortUsingDeclarations: true

View File

@ -4,6 +4,7 @@ root = true
charset = utf-8 charset = utf-8
end_of_line = lf end_of_line = lf
indent_style = tab indent_style = tab
insert_final_newline = true
[*.{cpp,hpp,c,h,mm}] [*.{cpp,hpp,c,h,mm}]
trim_trailing_whitespace = true trim_trailing_whitespace = true

6
.gitignore vendored
View File

@ -17,6 +17,8 @@ platform/android/java/build.gradle
platform/android/java/AndroidManifest.xml platform/android/java/AndroidManifest.xml
platform/android/java/libs/* platform/android/java/libs/*
platform/android/java/assets platform/android/java/assets
platform/android/java/.idea/*
platform/android/java/*.iml
# General c++ generated files # General c++ generated files
*.lib *.lib
@ -44,6 +46,7 @@ gmon.out
# QT project files # QT project files
*.config *.config
*.creator *.creator
*.creator.*
*.files *.files
*.includes *.includes
@ -306,5 +309,8 @@ platform/windows/godot_res.res
/.vs /.vs
/.vscode /.vscode
# Visual Studio Code workspace file
*.code-workspace
# Scons progress indicator # Scons progress indicator
.scons_node_count .scons_node_count

106
.mailmap
View File

@ -1,29 +1,115 @@
Alexander Holland <alexander.holland@live.de>
Alexander Holland <alexander.holland@live.de> <alexander.holland@haw-hamburg.de>
Alexander Holland <alexander.holland@live.de> <AlexHolly>
Andrea Catania <info@andreacatania.com> Andrea Catania <info@andreacatania.com>
Andreas Haas <liu.gam3@gmail.com> Andreas Haas <liu.gam3@gmail.com>
Andreas Haas <Hinsbart@users.noreply.github.com> Andreas Haas <liu.gam3@gmail.com> <hinsbart@gmail.com>
Andreas Haas <entenflugstuhl@gmail.com> Andreas Haas <liu.gam3@gmail.com> <hinsbart@users.noreply.github.com>
Andreas Haas <liu.gam3@gmail.com> <entenflugstuhl@gmail.com>
Anish Bhobe <anishbhobe@hotmail.com>
Anutrix <numaanzaheerahmed@yahoo.com>
Aren Villanueva <arenvillanueva@yomogi-soft.com> <aren@displaysweet.com>
Ariel Manzur <ariel@godotengine.org> Ariel Manzur <ariel@godotengine.org>
Ariel Manzur <ariel@okamstudio.com> Ariel Manzur <ariel@godotengine.org> <punto@godotengine.org>
Ariel Manzur <ariel@godotengine.org> <ariel@okamstudio.com>
Ariel Manzur <ariel@godotengine.org> <punto@Ariels-Mac-mini.local>
Ariel Manzur <ariel@godotengine.org> <punto@Ariels-Mac-mini-2.local>
Bastiaan Olij <mux213@gmail.com> Bastiaan Olij <mux213@gmail.com>
Bernhard Liebl <poke1024@gmx.de> Benjamin <mafortion.benjamin@gmail.com>
Bernhard Liebl <poke1024@gmx.org> Bernhard Liebl <Bernhard.Liebl@gmx.org> <poke1024@gmx.de>
Bernhard Liebl <Bernhard.Liebl@gmx.org> <poke1024@gmx.org>
Chaosus <chaosus89@gmail.com>
Chris Bradfield <chris@kidscancode.org> <cb@scribe.net>
Clay John <claynjohn@gmail.com>
Clay John <claynjohn@gmail.com> <clayjohn@shaw.ca>
Dana Olson <dana@shineuponthee.com> <adolson@gmail.com>
Daniel J. Ramirez <djrmuv@gmail.com>
Erik Selecký <35656626+rxlecky@users.noreply.github.com>
Erik Selecký <35656626+rxlecky@users.noreply.github.com> <35656626+SeleckyErik@users.noreply.github.com>
Fabian <supagu@gmail.com>
Ferenc Arn <tagcup@yahoo.com>
Ferenc Arn <tagcup@yahoo.com> <tagcup@users.noreply.github.com>
Fredia Huya-Kouadio <fhuyakou@gmail.com>
Fredia Huya-Kouadio <fhuyakou@gmail.com> <fhuya@google.com>
Geequlim <geequlim@gmail.com> Geequlim <geequlim@gmail.com>
Hugo Locurcio <hugo.locurcio@hugo.pro> Gilles Roudiere <gilles.roudiere@gmail.com>
Gilles Roudiere <gilles.roudiere@gmail.com> <gilles.roudiere@laas.fr>
Gordon MacPherson <gordon@gordonite.tech>
Guilherme Felipe <guilhermefelipecgs@gmail.com>
Hanif Bin Ariffin <hanif.ariffin.4326@gmail.com>
Hein-Pieter van Braam-Stewart <hp@tmm.cx>
Hubert Jarosz <marqin.pl@gmail.com>
Hubert Jarosz <marqin.pl@gmail.com> <marqin.pl+git@gmail.com>
Hugo Locurcio <hugo.locurcio@hugo.pro> <hugo.l@openmailbox.org> Hugo Locurcio <hugo.locurcio@hugo.pro> <hugo.l@openmailbox.org>
Hugo Locurcio <hugo.locurcio@hugo.pro> <Calinou@users.noreply.github.com> Hugo Locurcio <hugo.locurcio@hugo.pro> <Calinou@users.noreply.github.com>
Hugo Locurcio <hugo.locurcio@hugo.pro> Calinou <calinou@opmbx.org>
Ian Bishop <ianb96@gmail.com>
Ignacio Etcheverry <ignalfonsore@gmail.com> Ignacio Etcheverry <ignalfonsore@gmail.com>
Ignacio Etcheverry <ignalfonsore@gmail.com> <neikeq@users.noreply.github.com>
Ilaria Cislaghi <cislaghi.ilaria@gmail.com>
Ilaria Cislaghi <cislaghi.ilaria@gmail.com> <ilaria.cislaghi@simedis.com>
Indah Sylvia <ISylvox@yahoo.com> Indah Sylvia <ISylvox@yahoo.com>
J08nY <johny@neuromancer.sk> <jancar.jj@gmail.com>
J08nY <johny@neuromancer.sk> <J08nY@users.noreply.github.com>
Jakub Grzesik <kubecz3k@gmail.com> Jakub Grzesik <kubecz3k@gmail.com>
Jérôme Gully <jerome.gully0@gmail.com>
JFonS <joan.fonssanchez@gmail.com>
Juan Linietsky <reduzio@gmail.com> Juan Linietsky <reduzio@gmail.com>
Juan Linietsky <juan@okamstudio.com> Juan Linietsky <reduzio@gmail.com> <juan@godotengine.org>
Juan Linietsky <reduz@Juans-MBP.fibertel.com.ar> Juan Linietsky <reduzio@gmail.com> <juan@okamstudio.com>
Juan Linietsky <reduzio@gmail.com> <reduz@Juans-MBP.fibertel.com.ar>
Juan Linietsky <reduzio@gmail.com> <red@kyoko>
Julian Murgia <the.straton@gmail.com> Julian Murgia <the.straton@gmail.com>
Leon Krause <eska@eska.me> Kanabenki <lucien.menassol@gmail.com> <18357657+Kanabenki@users.noreply.github.com>
Leon Krause <eska@eska.me> <eska014@users.noreply.github.com> Kelly Thomas <kelly.thomas@hotmail.com.au>
K. S. Ernest (iFire) Lee <ernest.lee@chibifire.com>
Leon Krause <lk@leonkrause.com> <eska@eska.me>
Leon Krause <lk@leonkrause.com> <eska014@users.noreply.github.com>
Manuel Strey <manuel.strey@gmx.de>
Marcelo Fernandez <marcelofg55@gmail.com> Marcelo Fernandez <marcelofg55@gmail.com>
Marcin Zawiejski <dragmz@gmail.com>
Mariano Javier Suligoy <marianognu.easyrpg@gmail.com> Mariano Javier Suligoy <marianognu.easyrpg@gmail.com>
Mario Schlack <m4r10.5ch14ck@gmail.com>
marxin <mliska@suse.cz>
marynate <mary.w.nate@gmail.com> <marynate@github.com>
Max Hilbrunner <m.hilbrunner@gmail.com>
Max Hilbrunner <m.hilbrunner@gmail.com> <mhilbrunner@users.noreply.github.com>
Michael Alexsander <michaelalexsander@protonmail.com>
Nathan Lovato <nathan@gdquest.com>
Nathan Warden <nathan@nathanwarden.com> <nathanwardenlee@icloud.com>
Nils ANDRÉ-CHANG <nils@nilsand.re>
Nils ANDRÉ-CHANG <nils@nilsand.re> <nils.andre.chang@gmail.com>
Nuno Donato <nunodonato@gmail.com> <n.donato@estrelasustentavel.pt>
Pedro J. Estébanez <pedrojrulez@gmail.com> <RandomShaper@users.noreply.github.com>
Paul Batty <p_batty@hotmail.co.uk> Paul Batty <p_batty@hotmail.co.uk>
Paul Batty <p_batty@hotmail.co.uk> <Paulb23@users.noreply.github.com>
Pawel Kowal <pkowal1982@gmail.com> <pawel.kowal@javart.eu>
Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
Pieter-Jan Briers <pieterjan.briers+git@gmail.com> <pieterjan.briers@gmail.com>
Poommetee Ketson <poommetee@protonmail.com> Poommetee Ketson <poommetee@protonmail.com>
Przemysław Gołąb (n-pigeon) <golab.przemyslaw@gmail.com>
Ralf Hölzemer <r.hoelzemer@posteo.de> <rollenrolm@posteo.de>
Ralf Hölzemer <r.hoelzemer@posteo.de> <rollenrolm@users.noreply.github.com>
Ramesh Ravone <ramesh.maran443@gmail.com>
RaphaelHunter <raphael10241024@gmail.com>
RaphaelHunter <raphael10241024@gmail.com> <Raphael10241024@gmail.com>
RaphaelHunter <raphael10241024@gmail.com> <raphael20141024@gmail.com>
Rémi Verschelde <rverschelde@gmail.com> <remi@verschelde.fr>
Rhody Lugo <rhodylugo@gmail.com> <rhodylugo@me.com>
Robin Hübner <profan@prfn.se> <robinhubner@gmail.com>
romulox_x <romulox_x@yahoo.com>
Ruslan Mustakov <r.mustakov@gmail.com> <ruslan.mustakov@xored.com>
Saracen <SaracenOne@gmail.com> Saracen <SaracenOne@gmail.com>
sheepandshepherd <sheepandshepherd@hotmail.com> <sheepandshepherd@users.noreply.github.com>
Swarnim Arun <swarnimarun11@gmail.com>
Theo Hallenius <redsymbzone@hotmail.com>
Thomas Herzog <therzog@mail.de> Thomas Herzog <therzog@mail.de>
Thomas Herzog <therzog@mail.de> <thomas.herzog@mail.com>
Thomas Herzog <therzog@mail.de> <thomas.herzog@simedis.com>
Twarit <wtwarit@gmail.com>
V.VamsiKrishna <vk@bsb.in> <vamsikrishna.v@gmail.com>
Wilhem Barbier <nounoursheureux@openmailbox.org> <wilhem.b@free.fr>
Wilhem Barbier <nounoursheureux@openmailbox.org> <schtroumps31@gmail.com>
Will Nations <willnationsdev@gmail.com>
yg2f <yoann@terminajones.com>
Zher Huei Lee <lee.zh.92@gmail.com> Zher Huei Lee <lee.zh.92@gmail.com>

View File

@ -1,13 +1,15 @@
language: cpp language: cpp
# OS config, depends on actual 'os' in build matrix
dist: trusty dist: trusty
sudo: false sudo: false
env: env:
global: global:
- SCONS_CACHE=$HOME/.scons_cache - SCONS_CACHE=$HOME/.scons_cache/$TRAVIS_BRANCH
- SCONS_CACHE_LIMIT=1024 - SCONS_CACHE_LIMIT=1024
- OPTIONS="verbose=yes progress=no gdnative_wrapper=yes"
- secure: "QLFRizqry/Y5pnEZvDlQz5S3YydQ+600u4rHEzFgUTd0heYeQaETXAQeMzp0ymuG1BkdRAl5YJoLVJgAzjwI9hrvugvoUlh2//SfpqZCHN/Q1fYbtGgNTn01R3VFEpcfYQL93I2EjrxVm0WTM4PwCvMO+hU0aWTRDvCt1Lty0kMR+RMDQOO/woqunoXh5wvFNxTJJkAmuLe0v962DJYOIwJAnqMLR0aFYjmeQJ20bc/2X5oLt+WuJDuf/lGj6WSlD6z/o/kL3YxHoUyw4A/HAZ2IX0IfNHKuay60ESWzl/NlobnePiPwHAE2pdDVu//q16fanb9VeYnBYRFse49TpFRb86Lo+Qz8nKDJqpQEIY0YKNCFqekrubqTM++Lj6QvGpykQZNxUhybmELcEsRG4PS0UMvCpebdnJD46nNB+DtO2Lgb4xXDLQwpq19z1wizq/XDQ5hz61TIIx8+i8TsgdSQKCTeWovd4HcD4CVjAD5XTLGgyRmI/zC2d+lTnKo6W9diLq/bX/Goq2QPeaTPABqv817IaJka2JyugQ7Qal/+gNTjYRRsimRCL9B2tVh+Uh8rWhTFhQL4QbP5P65HF+p8qojUzqtAhPMbZ8mxUtNukUI3liVgPgiMss96sG0nTVglFgkkAkEjIMFnqMSKnTfG812K4jIhp2jCO2Q3NeI="
cache: cache:
directories: directories:
@ -17,57 +19,70 @@ matrix:
include: include:
- env: STATIC_CHECKS=yes - env: STATIC_CHECKS=yes
os: linux os: linux
compiler: clang compiler: gcc
- env: GODOT_TARGET=x11 TOOLS=yes CACHE_NAME=${GODOT_TARGET}-gcc-tools addons:
apt:
sources:
- llvm-toolchain-trusty-6.0
- ubuntu-toolchain-r-test
packages:
- clang-format-6.0
- libstdc++6 # >= 4.9 needed for clang-format-6.0
coverity_scan:
project:
name: "godotengine/godot"
description: "Godot Engine Coverity scans"
notification_email: coverity@godotengine.org
build_command_prepend: ""
build_command: "scons p=x11 -j2 $OPTIONS"
branch_pattern: coverity_scan
- env: GODOT_TARGET=x11 TOOLS=yes CACHE_NAME=${GODOT_TARGET}-tools-mono-gcc EXTRA_ARGS="module_mono_enabled=yes mono_glue=no"
os: linux os: linux
compiler: gcc compiler: gcc
addons:
apt:
sources:
- mono
packages:
- &linux_deps [libasound2-dev, libfreetype6-dev, libgl1-mesa-dev, libglu1-mesa-dev, libx11-dev, libxcursor-dev, libxi-dev, libxinerama-dev, libxrandr-dev]
- &linux_mono_deps [mono-devel, msbuild]
- env: GODOT_TARGET=x11 TOOLS=no CACHE_NAME=${GODOT_TARGET}-clang - env: GODOT_TARGET=x11 TOOLS=no CACHE_NAME=${GODOT_TARGET}-clang
os: linux os: linux
compiler: clang compiler: clang
#- env: GODOT_TARGET=windows TOOLS=yes CACHE_NAME=${GODOT_TARGET}-gcc-tools addons:
# os: linux apt:
# compiler: gcc packages:
- env: GODOT_TARGET=android TOOLS=no CACHE_NAME=${GODOT_TARGET}-gcc - *linux_deps
- env: GODOT_TARGET=android TOOLS=no CACHE_NAME=${GODOT_TARGET}-clang
os: linux
compiler: clang
- env: GODOT_TARGET=osx TOOLS=yes CACHE_NAME=${GODOT_TARGET}-tools-clang
os: osx
osx_image: xcode9.3
compiler: clang
- env: GODOT_TARGET=iphone TOOLS=no CACHE_NAME=${GODOT_TARGET}-clang
os: osx
osx_image: xcode9.3
compiler: clang
- env: GODOT_TARGET=server TOOLS=yes CACHE_NAME=${GODOT_TARGET}-tools-gcc
os: linux os: linux
compiler: gcc compiler: gcc
#- env: GODOT_TARGET=osx TOOLS=yes CACHE_NAME=${GODOT_TARGET}-clang-tools addons:
# os: osx apt:
# compiler: clang packages:
#- env: GODOT_TARGET=iphone TOOLS=no CACHE_NAME=${GODOT_TARGET}-clang - *linux_deps
# os: osx
# compiler: clang
addons: before_install:
apt: - if [ "$STATIC_CHECKS" = "yes" ]; then
sources: unset SCONS_CACHE;
- ubuntu-toolchain-r-test fi
- llvm-toolchain-trusty-5.0
packages:
- build-essential
- scons
- pkg-config
- libx11-dev
- libxcursor-dev
- libxi-dev
- libxinerama-dev
- libxrandr-dev
- libgl1-mesa-dev
- libglu1-mesa-dev
- libasound2-dev
- libfreetype6-dev
- libssl-dev
# For cross-compiling to Windows.
#- binutils-mingw-w64-i686
#- binutils-mingw-w64-x86-64
#- gcc-mingw-w64-i686
#- gcc-mingw-w64-x86-64
#- g++-mingw-w64-i686
#- g++-mingw-w64-x86-64
#- mingw-w64
# For style checks.
- clang-format-5.0
install: install:
- if [ "$TRAVIS_OS_NAME" = "linux" ] && [ "$GODOT_TARGET" = "android" ]; then - if [ "$TRAVIS_OS_NAME" = "linux" ] && [ "$GODOT_TARGET" = "android" ]; then
@ -90,5 +105,5 @@ script:
- if [ "$STATIC_CHECKS" = "yes" ]; then - if [ "$STATIC_CHECKS" = "yes" ]; then
sh ./misc/travis/clang-format.sh; sh ./misc/travis/clang-format.sh;
else else
scons -j2 CC=$CC CXX=$CXX platform=$GODOT_TARGET TOOLS=$TOOLS verbose=yes progress=no openmp=no gdnative_wrapper=yes; scons -j2 CC=$CC CXX=$CXX platform=$GODOT_TARGET TOOLS=$TOOLS $EXTRA_ARGS $OPTIONS;
fi fi

View File

@ -25,95 +25,153 @@ name is available.
## Developers ## Developers
(in alphabetical order, with 10 commits or more excluding merges) (in alphabetical order, with over 10 commits excluding merges)
Aaron Franke (aaronfranke)
Alexander Holland (AlexHolly) Alexander Holland (AlexHolly)
Alexey Velikiy (jonyrock) Alexey Khoroshavin (allkhor)
Alket Rexhepi (alketii) Alket Rexhepi (alketii)
Andrea Catania (AndreaCatania) Andrea Catania (AndreaCatania)
Andreas Haas (Hinsbart) Andreas Haas (Hinsbart)
Andrii Doroshenko (Xrayez)
Andy Moss (MillionOstrich) Andy Moss (MillionOstrich)
Anish Bhobe (KidRigger)
Anton Yabchinskiy (a12n) Anton Yabchinskiy (a12n)
Anutrix
Aren Villanueva (kurikaesu) Aren Villanueva (kurikaesu)
Ariel Manzur (punto-) Ariel Manzur (punto-)
Bastiaan Olij (BastiaanOlij) Bastiaan Olij (BastiaanOlij)
Ben Brookshire (sheepandshepherd) Ben Brookshire (sheepandshepherd)
Benjamin Larsson (Nallebeorn)
Bernard Liebl (poke1024) Bernard Liebl (poke1024)
Bojidar Marinov (bojidar-bg)
Błażej Szczygieł (zaps166) Błażej Szczygieł (zaps166)
Bojidar Marinov (bojidar-bg)
Bruno Lourenço (MadEqua)
bruvzg
Cameron Reikes (creikey)
Camille Mohr-Daurat (pouleyKetchoupp)
Carl Olsson (not-surt) Carl Olsson (not-surt)
Carter Anderson (cart)
Chris Bradfield (cbscribe)
Clay John (clayjohn)
Dana Olson (adolson) Dana Olson (adolson)
Daniel J. Ramirez (djrm) Daniel J. Ramirez (djrm)
Daniel Rakos (aqnuep)
dankan1890
David Sichma (DavidSichma)
Dharkael (lupoDharkael)
Dmitry Koteroff (Krakean) Dmitry Koteroff (Krakean)
Дмитрий Сальников (DmitriySalnikov) DualMatrix
Emmanuel Barroga (codecustard)
Emmanuel Leblond (touilleMan) Emmanuel Leblond (touilleMan)
Eoin O'Neill (Eoin-ONeill-Yokai)
Eric Lasota (elasota)
Eric Rybicki (ericrybick)
Erik Selecký (rxlecky)
est31
Fabian Mathews (supagu)
Fabio Alessandrelli (Faless) Fabio Alessandrelli (Faless)
Ferenc Arn (tagcup) Ferenc Arn (tagcup)
Franklin Sobrinho (TheHX) Franklin Sobrinho (TheHX)
Fredia Huya-Kouadio (m4gr3d)
Geequlim Geequlim
Gen (dbsGen)
George Marques (vnen) George Marques (vnen)
Gerrit Großkopf (Grosskopf) Gerrit Großkopf (Grosskopf)
Gilles Roudiere (groud) Gilles Roudiere (groud)
Gordon MacPherson (RevoluPowered)
Guilherme Felipe de C. G. da Silva (guilhermefelipecgs) Guilherme Felipe de C. G. da Silva (guilhermefelipecgs)
Hein-Pieter van Braam (hpvb) Hanif Bin Ariffin (hbina)
Haoyu Qiu (timothyqiu)
Hein-Pieter van Braam-Stewart (hpvb)
Hiroshi Ogawa (hi-ogawa) Hiroshi Ogawa (hi-ogawa)
homer666
Hubert Jarosz (Marqin) Hubert Jarosz (Marqin)
Hugo Locurcio (Calinou) Hugo Locurcio (Calinou)
Ian Bishop (ianb96) Ian Bishop (ianb96)
Ibrahn Sahir (ibrahn)
Ignacio Etcheverry (neikeq) Ignacio Etcheverry (neikeq)
Ilaria Cislaghi (QbieShay)
Indah Sylvia (ISylvox) Indah Sylvia (ISylvox)
J08nY J08nY
Jakub Grzesik (kubecz3k) Jakub Grzesik (kubecz3k)
Jérôme GULLY (Nutriz) Jérôme Gully (Nutriz)
Joan Fons Sanchez (JFonS)
Johan Manuel (29jm) Johan Manuel (29jm)
Joshua Grams (JoshuaGrams) Joshua Grams (JoshuaGrams)
Juan Linietsky (reduz) Juan Linietsky (reduz)
Julian Murgia (StraToN) Julian Murgia (StraToN)
Justo Delgado (mrcdk)
Kelly Thomas (KellyThomas)
Kostadin Damyanov (Max-Might) Kostadin Damyanov (Max-Might)
K. S. Ernest (iFire) Lee (fire)
Leon Krause (eska014) Leon Krause (eska014)
Marc Gilleron (Zylann) Lucien Menassol (Kanabenki)
m4nu3lf
Marcel Admiraal (madmiraal)
Marcelo Fernandez (marcelofg55) Marcelo Fernandez (marcelofg55)
Marc Gilleron (Zylann)
Marcin Zawiejski (dragmz)
Mariano Javier Suligoy (MarianoGnu) Mariano Javier Suligoy (MarianoGnu)
Mario Schlack (hurikhan) Mario Schlack (hurikhan)
Martin Capitanio (capnm)
Martin Liška (marxin)
Martin Sjursen (binbitten)
marynate
Masoud BH (masoudbh3) Masoud BH (masoudbh3)
Matthias Hölzl (hoelzl) Matthias Hölzl (hoelzl)
Max Hilbrunner (mhilbrunner) Max Hilbrunner (mhilbrunner)
Michael Alexsander Silva Dias (YeldhamDev) merumelu
Michael Alexsander (YeldhamDev)
MichiRecRoom (LikeLakers2)
mrezai
muiroc
Nathan Warden (NathanWarden) Nathan Warden (NathanWarden)
Nils André-Chang (NilsIrl)
Nuno Donato (nunodonato) Nuno Donato (nunodonato)
Ovnuniarchos Ovnuniarchos
Pascal Richter (ShyRed)
Patrick (firefly2442) Patrick (firefly2442)
Paul Batty (Paulb23) Paul Batty (Paulb23)
Paul Joannon (paulloz)
Paul Trojahn (ptrojahn)
Pawel Kowal (pkowal1982) Pawel Kowal (pkowal1982)
Pedro J. Estébanez (RandomShaper) Pedro J. Estébanez (RandomShaper)
Pieter-Jan Briers (PJB3005)
Poommetee Ketson (Noshyaar) Poommetee Ketson (Noshyaar)
Przemysław Gołąb (n-pigeon) Przemysław Gołąb (n-pigeon)
Rafał Mikrut (qarmin)
Ralf Hölzemer (rollenrolm) Ralf Hölzemer (rollenrolm)
Ramesh Ravone (RameshRavone) Ramesh Ravone (RameshRavone)
raphael10241024
Ray Koopa (RayKoopa) Ray Koopa (RayKoopa)
Rémi Verschelde (akien-mga) Rémi Verschelde (akien-mga)
Rhody Lugo (rraallvv)
Roberto F. Arroyo (robfram)
Robin Hübner (profan)
romulox-x
Ruslan Mustakov (endragor) Ruslan Mustakov (endragor)
Saniko (sanikoyes) Saniko (sanikoyes)
santouits
SaracenOne SaracenOne
sersoong
Shiqing (kawa-yoiko)
Simon Wenner (swenner)
Swarnim Arun (minraws)
Theo Hallenius (TheoXD) Theo Hallenius (TheoXD)
Thomas Herzog (karroffel) Thomas Herzog (karroffel)
Timo Schwarzer (timoschwarzer)
Timo (toger5) Timo (toger5)
V. Vamsi Krishna (vkbsb) Tomasz Chabora (KoBeWi)
Twarit Waikar (IronicallySerious)
Vinzenz Feenstra (vinzenz) Vinzenz Feenstra (vinzenz)
박한얼 (volzhs)
V. Vamsi Krishna (vkbsb)
Wilhem Barbier (nounoursheureux) Wilhem Barbier (nounoursheureux)
Will Nations (willnationsdev) Will Nations (willnationsdev)
Wilson E. Alvarez (Rubonnek) Wilson E. Alvarez (Rubonnek)
Yuri Roubinski (Chaosus) Xavier Cho (mysticfall)
yg2f (SuperUserNameMan)
Yuri Roubinsky (Chaosus)
Zak Stam (zaksnet)
Zher Huei Lee (leezh) Zher Huei Lee (leezh)
ZuBsPaCe ZuBsPaCe
박한얼 (volzhs)
bruvzg
est31
m4nu3lf
marynate
mrezai
rraallvv
romulox-x
sersoong
yg2f (SuperUserNameMan)

286
CHANGELOG.md Normal file
View File

@ -0,0 +1,286 @@
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
## [3.0.6] - 2018-07-29
### Added
- Upgrade bundled OpenSSL to 1.0.2o.
### Fixed
- Security issue relating to deserializing Variants.
- Several editor crashes.
- GLTF import fixes.
- Windows: Fix touch/pen input.
- Mono: --build-solutions now forces editor mode.
- Mono: Several bugfixes.
- Headless: Fix scene imports.
## [3.0.5] - 2018-07-08
### Added
- 'android_add_asset_dir('...') method to Android module gradle build config.
### Fixed
- Android exporter no longer writes unnecessary permissions to the exported APK.
- Segfault when quitting the editor.
- Debugger 'focus stealing' now works more reliably.
- Subresources are now always saved when saving a scene.
- WebAssembly: Supply proper CORS heards.
- Mono: Annotated signal loading in exported projects.
- Mono: Serveral fixes.
## [3.0.4] - 2018-06-23
### Added
- Fix for Bullet's heightmap collider.
- Several documentation fixes.
### Fixed
- Threading problem causing asset library to crash on low threadcount systems.
## [3.0.3] - 2018-06-13
### Added
- C# projects can now be exported for Windows, Linux, and MacOS targets.
- Universal translation of touch to mouse.
- Dynamic fonts can now have a hinting mode set.
- print_tree_pretty() was added allowing a graphical view of the scene tree.
- Restore purchases feature for iOS.
- AudioStreamPlayer, AudioStreamPlayer2D, and AudioStreamPlayer3D now have a pitch scale property.
- Show origin and Show viewport setting in 2D editor.
- You can now set Godot windows as 'always on top'.
- --print-fps options to print FPS to stdout.
### Fixed
- Mono: Signal parameters no longer crash the engine.
- Asset library thread usage, this makes the asset library more responsive.
- Several GLTF import fixes.
- Several memory leaks.
- iPhone X support.
- Several fixes to audio drivers (WASAPI and PulseAudio).
- Several crashes.
- Export PCK/ZIP now works again.
## [3.0.2] - 2018-03-03
### Added
- Mono: We now display stack traces for inner exceptions.
- Mono: Bundle mscorlib.dll with Godot to improve portability.
### Fixed
- Running a scene from a project with a main scene now works again (regression in 3.0.1).
- Correct line spacing in RichTextLabel (regression in 3.0.1).
- TextureProgress now correctly displays when progress > 62 (regression in 3.0.1).
- The editor no longer complains about using an enum from an autoloaded resource (regression in 3.0.1).
- Pressing Escape no longer closes unexpected subwindows (regression in 3.0.1).
- Fix spelling of `apply_torque_impulse()` and deprecate the misspelled method.
- Gizmos are now properly hidden on scene load if the object they control is hidden.
- Remove spurious errors when using a PanoramaSky without textures.
- Show tooltips in the editor when physics object picking is disabled.
- Fix a serialization bug that could cause tscn files to grow very large.
- Do not show the project manager unless no project was found at all.
- The animation editor time offset indicator no longer 'walks' when resizing the editor.
- Allow creation of an in-tscn file GDScript function even if the filename suggested already exists.
- Mono: Godot no longer crashes when opening a project created with an older release.
- Mono: Fix builds of tools=no builds.
- Mono: Fix transformation regression since 3.0.1
- Android: We now require GLESv3 support in the manifest.
- Android: Fix intermittent audio driver crash.
## [3.0.1] - 2018-02-25
### Added
- The 'server' platform is back as it was in Godot 2.1.
- It is now again possible to run a headless Godot on Linux.
- New CLI options
- --build-solutions: build C# solutions without starting the editor.
- --quit: quit the engine after the first main loop iteration.
- It is now possible to scale an .obj mesh when importing.
- Type icons can now be enabled in the editor again.
- New GLSL built-in functions in the shader language
- radians
- degrees
- asinh
- acosh
- atanh
- exp2
- log2
- roundEven
- New GDScript features
- `OS.center_window()`.
- `StreamPeerTCP.set_no_delay()`.
- `EditorPlugin.remove_control_from_container()`.
- A button has been added to the debugger to copy the error messages.
- The Ctrl toggles snapping in the 3D viewport.
- Support has been added for a new .escn, for use with the new Blender exporter.
- CA certificates have been updated to the latest Mozilla bundle.
### Fixed
- Copy/pasting from the editor on X11 will now work more reliably.
- The lightmap baker will now use all available cores on Windows.
- Fixed missing text in some FileDialog buttons.
- Fixes to HTTP requests on the HTML5 platform.
- Many, many fixes and improvements to C# support (including a [Signal] attribute).
- Static linking of `libgcc_s` as well as `libstdc++` for better Linux binary portability.
- Fix broken APK expansion on Android.
- Several crashes in the editor have been fixed.
- Many documentation fixes.
- Several hiDPI fixes.
## Changed
- Bullet physics now correctly calculates effective gravity on KinematicBodies.
- Setting the color `v` member now correctly sets the `s` member.
- RichTextLabels now correctly determine the baseline for all fonts.
- SpinBoxes now correctly calculate their initial size.
- OGG streams now correctly signal the end of playback.
## [3.0] - 2018-01-29
### Added
- Physically-based renderer using OpenGL ES 3.0.
- Uses the Disney PBR model, with clearcoat, sheen and anisotropy parameters available.
- Uses a forward renderer, supporting multi-sample anti-aliasing (MSAA).
- Parallax occlusion mapping.
- Reflection probes.
- Screen-space reflections.
- Real-time global illumination using voxel cone tracing (GIProbe).
- Proximity fade and distance fade (useful for creating soft particles and various effects).
- [Lightmapper](https://godotengine.org/article/introducing-new-last-minute-lightmapper) for lower-end desktop and mobile platforms, as an alternative to GIProbe.
- New SpatialMaterial resource, replacing FixedMaterial.
- Multiple passes can now be specified (with an optional "grow" property), allowing for effects such as cel shading.
- Brand new 3D post-processing system.
- Depth of field (near and far).
- Fog, supporting light transmittance, sun-oriented fog, depth fog and height fog.
- Tonemapping and Auto-exposure.
- Screen-space ambient occlusion.
- Multi-stage glow and bloom, supporting optional bicubic upscaling for better quality.
- Color grading and various adjustments.
- Rewritten audio engine from scratch.
- Supports audio routing with arbitrary number of channels, including Area-based audio redirection ([video](https://youtu.be/K2XOBaJ5OQ0)).
- More than a dozen of audio effects included.
- Rewritten 3D physics using [Bullet](http://bulletphysics.org/).
- UDP-based high-level networking API using [ENet](http://enet.bespin.org/).
- IPv6 support for all of the engine's networking APIs.
- Visual scripting.
- Rewritten import system.
- Assets are now referenced with their source files, then imported in a transparent manner by the engine.
- Imported assets are now cached in a `.import` directory, making distribution and versioning easier.
- Support for ETC2 compression.
- Support for uncompressed Targa (.tga) textures, allowing for faster importing.
- Rewritten export system.
- GPU-based texture compression can now be tweaked per-target.
- Support for exporting resource packs to build DLC / content addons.
- Improved GDScript.
- Pattern matching using the `match` keyword.
- `$` shorthand for `get_node()`.
- Setters and getters for node properties.
- Underscores in number literals are now allowed for improved readability (for example,`1_000_000`).
- Improved performance (+20% to +40%, based on various benchmarks).
- [Feature tags](http://docs.godotengine.org/en/latest/learning/workflow/export/feature_tags.html) in the Project Settings, for custom per-platform settings.
- Full support for the [glTF 2.0](https://www.khronos.org/gltf/) 3D interchange format.
- Freelook and fly navigation to the 3D editor.
- Built-in editor logging (logging standard output to a file), disabled by default.
- Improved, more intuitive file chooser in the editor.
- Smoothed out 3D editor zooming, panning and movement.
- Toggleable rendering information box in the 3D editor viewport.
- FPS display can also be enabled in the editor viewport.
- Ability to render the 3D editor viewport at half resolution to achieve better performance.
- GDNative for binding languages like C++ to Godot as dynamic libraries.
- Community bindings for [D](https://github.com/GodotNativeTools/godot-d), [Nim](https://github.com/pragmagic/godot-nim) and [Python](https://github.com/touilleMan/godot-python) are available.
- Editor settings and export templates are now versioned, making it easier to use several Godot versions on the same system.
- Optional soft shadows for 2D rendering.
- HDR sky support.
- Ability to toggle V-Sync while the project is running.
- Panorama sky support (sphere maps).
- Support for WebM videos (VP8/VP9 with Vorbis/Opus).
- Exporting to HTML5 using WebAssembly.
- C# support using Mono.
- The Mono module is disabled by default, and needs to be compiled in at build-time.
- The latest Mono version (5.4) can be used, fully supporting C# 7.0.
- Support for rasterizing SVG to images on-the-fly, using the nanosvg library.
- Editor icons are now in SVG format, making them better-looking at non-integer scales.
- Due to the library used, only simpler SVGs are well-supported, more complex SVGs may not render correctly.
- Support for oversampling DynamicFonts, keeping them sharp when scaled to high resolutions.
- Improved StyleBoxFlat.
- Border widths can now be set per-corner.
- Support for anti-aliased rounded and beveled corners.
- Support for soft drop shadows.
- VeryLoDPI (75%) and MiDPI (150%) scaling modes for the editor.
- Improved internationalization support for projects.
- Language changes are now effective without reloading the current scene.
- Implemented missing features in the HTML5 platform.
- Cursor style changes.
- Cursor capturing and hiding.
- Improved styling and presentation of HTML5 exports.
- A spinner is now displayed during loading.
- Rewritten the 2D and 3D particle systems.
- Particles are now GPU-based, allowing their use in much higher quantities than before.
- Meshes can now be used as particles.
- Particles can now be emitted from a mesh's shape.
- Properties can now be modified over time using an editable curve.
- Custom particle shaders can now be used.
- New editor theme, with customizable base color, highlight color and contrast.
- A light editor theme option is now available, with icons suited to light backgrounds.
- Alternative dark gray and Arc colors are available out of the box.
- New adaptive text editor theme, adjusting automatically based on the editor colors.
- Support for macOS trackpad gestures in the editor.
- Exporting to macOS now creates a `.dmg` disk image if exporting from an editor running on macOS.
- Signing the macOS export now is possible if running macOS (requires a valid code signing certificate).
- Exporting to Windows now changes the exported project's icon using `rcedit` (requires WINE if exporting from Linux or macOS).
- Improved build system.
- Support for compiling using Visual Studio 2017.
- [SCons](http://scons.org/) 3.0 and Python 3 are now supported (SCons 2.5 and Python 2.7 still work).
- Link-time optimization can now be enabled by passing `use_lto=yes` to the SCons command line.
- Produces faster and sometimes smaller binaries.
- Currently only supported with GCC and MSVC.
- Added a progress percentage when compiling Godot.
- `.zip` archives are automatically created when compiling HTML5 export templates.
- Easier and more powerful way to create editor plugins with EditorPlugin and related APIs.
### Changed
- Increased the default low-processor-usage mode FPS limit (60 → 125).
- This makes the editor smoother and more responsive.
- Increased the default 3D editor camera's field of view (55 → 70).
- Increased the default 3D Camera node's field of view (65 → 70).
- Changed the default editor font (Droid Sans → [Noto Sans](https://www.google.com/get/noto/)).
- Changed the default script editor font (Source Code Pro → [Hack](http://sourcefoundry.org/hack/))
- Renamed `engine.cfg` to `project.godot`.
- This allows users to open a project by double-clicking the file if Godot is associated to `.godot` files.
- Some methods from the `OS` singleton were moved to the new `Engine` singleton.
- Switched from [GLEW](http://glew.sourceforge.net/) to [GLAD](http://glad.dav1d.de/) for OpenGL wrapping.
- Changed the SCons build flag for simple logs (`colored=yes` → `verbose=no`).
- The HTML5 platform now uses WebGL 2.0 (instead of 1.0).
- Redesigned the Godot logo to be more legible at small sizes.
### Deprecated
- `opacity` and `self_opacity` are replaced by `modulate` and `self_modulate` in all 2D nodes, allowing for full color changes in addition to opacity changes.
### Removed
- Skybox support.
- Replaced with panorama skies, which are easier to import.
- Opus audio codec support.
- This is due to the way the new audio engine is designed.
- HTML5 export using asm.js.
- Only WebAssembly is supported now, since all browsers supporting WebGL 2.0 also support WebAssembly.
[3.0]: https://github.com/godotengine/godot/compare/2.1-stable...3.0-stable

View File

@ -70,11 +70,15 @@ Similar rules can be applied when contributing bug fixes - it's always best to
discuss the implementation in the bug report first if you are not 100% about discuss the implementation in the bug report first if you are not 100% about
what would be the best fix. what would be the best fix.
In addition to the following tips, also take a look at the
[Engine development guide](http://docs.godotengine.org/en/latest/development/cpp/)
for an introduction to developing on Godot.
#### Be nice to the git history #### Be nice to the git history
Try to make simple PRs with that handle one specific topic. Just like for Try to make simple PRs that handle one specific topic. Just like for reporting
reporting issues, it's better to open 3 different PRs that each address a issues, it's better to open 3 different PRs that each address a different issue
different issue than one big PR with three commits. than one big PR with three commits.
When updating your fork with upstream changes, please use ``git pull --rebase`` When updating your fork with upstream changes, please use ``git pull --rebase``
to avoid creating "merge commits". Those commits unnecessarily pollute the git to avoid creating "merge commits". Those commits unnecessarily pollute the git

View File

@ -10,8 +10,9 @@
# all corresponding files (also recursively in subfolders), apart from those # all corresponding files (also recursively in subfolders), apart from those
# with a more explicit copyright statement. # with a more explicit copyright statement.
# #
# Licenses are given with their SPDX identifier, and are all included in # Licenses are given with their debian/copyright short name (or SPDX identifier
# plain text at the end of this file (in alphabetical order). # if no standard short name exists) and are all included in plain text at the
# end of this file (in alphabetical order).
# #
# Disclaimer for thirdparty libraries: # Disclaimer for thirdparty libraries:
# ------------------------------------ # ------------------------------------
@ -42,8 +43,8 @@ Source: https://github.com/godotengine/godot
Files: * Files: *
Comment: Godot Engine Comment: Godot Engine
Copyright: 2007-2018, Juan Linietsky, Ariel Manzur. Copyright: 2007-2019, Juan Linietsky, Ariel Manzur.
2014-2018, Godot Engine contributors. 2014-2019, Godot Engine contributors.
License: Expat License: Expat
Files: ./icon.png Files: ./icon.png
@ -91,8 +92,8 @@ Files: ./platform/android/power_android.cpp
./platform/x11/power_x11.cpp ./platform/x11/power_x11.cpp
Comment: Simple DirectMedia Layer Comment: Simple DirectMedia Layer
Copyright: 1997-2017, Sam Lantinga Copyright: 1997-2017, Sam Lantinga
2007-2018, Juan Linietsky, Ariel Manzur. 2007-2019, Juan Linietsky, Ariel Manzur.
2014-2018, Godot Engine contributors. 2014-2019, Godot Engine contributors.
License: Expat and Zlib License: Expat and Zlib
Files: ./servers/physics/gjk_epa.cpp Files: ./servers/physics/gjk_epa.cpp
@ -107,16 +108,16 @@ Files: ./servers/physics/gjk_epa.cpp
./servers/physics/joints/slider_joint_sw.h ./servers/physics/joints/slider_joint_sw.h
Comment: Bullet Continuous Collision Detection and Physics Library Comment: Bullet Continuous Collision Detection and Physics Library
Copyright: 2003-2008, Erwin Coumans Copyright: 2003-2008, Erwin Coumans
2007-2018, Juan Linietsky, Ariel Manzur. 2007-2019, Juan Linietsky, Ariel Manzur.
2014-2018, Godot Engine contributors. 2014-2019, Godot Engine contributors.
License: Expat and Zlib License: Expat and Zlib
Files: ./servers/physics/joints/cone_twist_joint_sw.cpp Files: ./servers/physics/joints/cone_twist_joint_sw.cpp
./servers/physics/joints/cone_twist_joint_sw.h ./servers/physics/joints/cone_twist_joint_sw.h
Comment: Bullet Continuous Collision Detection and Physics Library Comment: Bullet Continuous Collision Detection and Physics Library
Copyright: 2007, Starbreeze Studios Copyright: 2007, Starbreeze Studios
2007-2018, Juan Linietsky, Ariel Manzur. 2007-2019, Juan Linietsky, Ariel Manzur.
2014-2018, Godot Engine contributors. 2014-2019, Godot Engine contributors.
License: Expat and Zlib License: Expat and Zlib
Files: ./thirdparty/b2d_convexdecomp/ Files: ./thirdparty/b2d_convexdecomp/
@ -157,7 +158,7 @@ License: OFL-1.1
Files: ./thirdparty/fonts/Hack_Regular.ttf Files: ./thirdparty/fonts/Hack_Regular.ttf
Comment: Hack font Comment: Hack font
Copyright: 2017, Source Foundry Authors Copyright: 2018, Source Foundry Authors
2003, Bitstream Inc. 2003, Bitstream Inc.
License: Expat and Bitstream Vera Fonts Copyright License: Expat and Bitstream Vera Fonts Copyright
@ -183,9 +184,11 @@ License: BSD-3-clause
Files: ./thirdparty/libpng/ Files: ./thirdparty/libpng/
Comment: libpng Comment: libpng
Copyright: 1995-1996, Guy Eric Schalnat, Group 42, Inc. Copyright: 1995-2019, The PNG Reference Library Authors.
1996-1997, Andreas Dilger 2018-2019, Cosmin Truta.
1998-2016, Glenn Randers-Pehrson 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson.
1996-1997, Andreas Dilger.
1995-1996, Guy Eric Schalnat, Group 42, Inc.
License: Zlib License: Zlib
Files: ./thirdparty/libsimplewebm/ Files: ./thirdparty/libsimplewebm/
@ -284,7 +287,7 @@ License: BSD-3-clause
Files: ./thirdparty/misc/stb_truetype.h Files: ./thirdparty/misc/stb_truetype.h
./thirdparty/misc/stb_vorbis.c ./thirdparty/misc/stb_vorbis.c
Comment: stb libraries Comment: stb libraries
Copyright: 2007-2017, Sean Barrett Copyright: 2007-2019, Sean Barrett
License: public-domain License: public-domain
Files: ./thirdparty/misc/triangulator.cpp Files: ./thirdparty/misc/triangulator.cpp
@ -305,7 +308,7 @@ License: Zlib
Files: ./thirdparty/openssl/ Files: ./thirdparty/openssl/
Comment: The OpenSSL Project Comment: The OpenSSL Project
Copyright: 1998-2017, The OpenSSL Project. Copyright: 1998-2019, The OpenSSL Project.
License: OpenSSL License: OpenSSL
Files: ./thirdparty/opus/ Files: ./thirdparty/opus/
@ -345,13 +348,16 @@ License: Expat
Files: ./thirdparty/thekla_atlas/ Files: ./thirdparty/thekla_atlas/
Comment: Thekla Atlas Comment: Thekla Atlas
Copyright: 2013, Thekla, Inc Copyright: 2013, Thekla, Inc
License: Expat 2009-2017, Ignacio Castaño
2007-2009, NVIDIA Corporation
2004, Brian Hook
License: Expat and BSD-3-clause
Files: ./thirdparty/tinyexr/ Files: ./thirdparty/tinyexr/
Comment: TinyEXR Comment: TinyEXR
Copyright: 2014-2017, Syoyo Fujita Copyright: 2014-2018, Syoyo Fujita
2002, Industrial Light & Magic, a division of Lucas Digital Ltd. LLC 2002, Industrial Light & Magic, a division of Lucas Digital Ltd. LLC
License: BSD-3-Clause License: BSD-3-clause
Files: ./thirdparty/zlib/ Files: ./thirdparty/zlib/
Comment: zlib Comment: zlib
@ -361,7 +367,7 @@ License: Zlib
Files: ./thirdparty/zstd/ Files: ./thirdparty/zstd/
Comment: Zstandard Comment: Zstandard
Copyright: 2016-2018, Facebook, Inc. Copyright: 2016-2018, Facebook, Inc.
License: BSD-3-Clause License: BSD-3-clause

567
DONORS.md
View File

@ -12,201 +12,516 @@ generous deed immortalized in the next stable release of Godot Engine.
## Platinum sponsors ## Platinum sponsors
Enjin Coin <https://enjincoin.io> Heroic Labs <https://heroiclabs.com>
Interblock <http://interblockgaming.com>
## Gold sponsors ## Gold sponsors
Gamblify <https://www.gamblify.com> Gamblify <https://www.gamblify.com>
GameDev.TV <https://www.gamedev.tv> Moonwards <https://www.moonwards.com>
## Mini sponsors ## Mini sponsors
Andreas AD Ford
Alan Beauchamp
Anand Mallik
Andres Hernandez
Andrew Dunai
Brandon Lamb Brandon Lamb
Christian Uldall Pedersen Christian Baune
Christoph Woinke Christopher Montesano
E Hewert Darkhan Baimyrza
Darrin Massena
Dov Zimring
Edward Flick
Gamechuck
GameDev.net
GameDev.tv
Grady
Hein-Pieter van Braam Hein-Pieter van Braam
Jamal Alyafei Jacob McKenney
Jordan M Lucas Javary Co.
Jeffery Chiu
Justin Arnold
Justo Delgado Baudí
Kyle Szklenski
Matthieu Huvé Matthieu Huvé
Maxim Karsten
Mike King
Nathan Warden Nathan Warden
Neal Gompa (Conan Kudo) Neal Gompa (Conan Kudo)
Pascal Julien Péter Magyar
Ruslan Mustakov
Slobodan Milnovic Slobodan Milnovic
Stephan Lanfermann Stephan Lanfermann
Thomas Mathews Steve
Tristan Pemble
VilliHaukka
## Gold donors ## Gold donors
3Dexplorer Andrei
Alexander Otto Dave
Asdf David Gehrig
cheese65536 David Snopek
Jake Bo Ed Morley
Florian Krick
Florian Rämisch
Jakub Grzesik
Manuele Finocchiaro Manuele Finocchiaro
Officine Pixel S.n.c. Officine Pixel S.n.c.
Rémi Verschelde Retro Village
Ronan Zeegers
Sofox
Taylor Ritenour
Zaven Muradyan Zaven Muradyan
Andreas Schüle Asher Glick
Austen McRae Austen McRae
Benjamin Botwin Bernhard Werner
Bernhard Liebl beVR
Cody Brocious Carlo Cabanilla
Gerald E Butler Daniel James
Jahn Johansen David Giardi
Johannes Wuensch Default Name
Kris Michael eggs
Libre-Dépanne Felix Bohmann
Ranoller Florian Breisch
Svenne Krap Gamejunkey
Javier Roman
Jay Horton
Jon Woodward
Karl Werf
Keinan Powers
Klavdij Voncina
Lex Steers
Luke
Maciej Pendolski
Matthew Hillier
Mohamed Ikbel Boulabiar
Mored4u
Rob Messick
Ryan Badour
Sandro Jenny
Scott Wadden
Sergey
thechris
Tom Langwaldt
tukon
William Wold
BanjoNode2D Alex Khayrullin
Chris Goddard
Chris Serino Chris Serino
Christian Padilla
Conrad Curry Conrad Curry
Craig Smith Craig Smith
David Churchill Darrian Little
Dean Harmon Horváth Péter
Guilherme Felipe de C. G. da Silva Ivan Trombley
Henrique Alves Jakub Dering
Laurence Bannister Joan Fons
Przemysław Gołąb (n-pigeon) Joshua Flores
Krzysztof Jankowski
Lord Bloodhound
Pascal Grüter
Petr Malac
Rami
Reneator
Rob
Robert Willes Robert Willes
Robin Arys Ronnie Ashlock
ScottMakesGames SKison
summerblind
Testus Maximus
Thomas Bjarnelöf Thomas Bjarnelöf
Xavier Tan Unseen Domains
Zaq Poi Valryia
Vincent Henderson
Wojciech Chojnacki
Xavier PATRICELLI
Amanda Haldy Adam Nakonieczny
Andreas Haas Adam Neumann
Arnaud Verstuyf Alexander J Maynard
Chris Brown Alexey Dyadchenko
Alex Z
Andreas Funke
André Frélicot
aoshiwik
Ben Powell
Carlos de Sousa Marques
Charlie Whitfield
Chase Taranto
Chris Petrich
Christian Leth Jeppesen
Christoph Schröder
Cody Parker Cody Parker
Coldragon
Craig Ostrin
D D
Daniel Eliasinski Daniel Eichler
Daniel Langegger David White
Denis Janßen
Easypete
Eric Monson Eric Monson
Ezra Theunissen ethan ball
Eugenio Hugo Salgüero Jáñez
Fain
flesk flesk
François Cantin Gary Hulst
Giovanni Solimeno gavlig
Jeppe Zapp GGGames.org
joe513 Green Fox
Justin Arnold Guilherme Felipe de C. G. da Silva
Justo Delgado Baudí Halom Vered
Leandro Voltolino Heath Hayes
Lucien Boudy Idzard Kwadijk
Isaac Clausman
Jared White
Jeff Nyte
Jeremy Sims
Jerry Ling
Joe Flood
John G Gentzel
Jon Hermansen
Jose Malheiro
Joshua Lesperance
Juan Velandia
Juraj Móza
kinfox
Marcelo Dornbusch Lopes
Markus Fehr
Markus Wiesner Markus Wiesner
Pablo Cholaky Martin Eigel
Patrick Schnorbus Matt Eunson
Max Bulai
MuffinManKen
Nick Nikitin
Oliver Dick
Patrick Ting
Paul Hocker
Paul Von Zimmerman
Pete Goodwin Pete Goodwin
Ryan Estes pl
Ted Ranoller
Travis Womack Robert Larnach
Trent McPheron Rocknight Studios
Romildo Franco
Samuel Judd
Scott Pilet
Sean Morgan
SleepCircle
spilldata
Steve Hyatt
Stoned Xander
TheLevelOfDetail .
Thomas Krampl
Thomas Kurz
Tobias Bocanegra
Tricky Fat Cat
Urho
William Foster
Zhou Tuizhi
Zie Weaver
蕭惟允
## Silver donors ## Silver donors
1D_Inc 1D_Inc
Abraham Haskins
Adam
Adam Brunnmeier
Adam Carr
Adam Long
Adam McCurdy
Adam N Webber
Adam Smeltzer
Adam Szymański
Adisibio
Adrian Demetrescu
Agustinus Arya
Aidan O'Flannagain
Aki Mimoto
Alan Mervitz
Alan Stice
Albin Jonasson Svärdsby
Alder Stefano Alder Stefano
Alessandro Senese Alessandro Senese
Alex Barsukov Alexander Erlemann
Álvaro Domínguez López alex clavelle
Andres Cuevas Allan Davis
Anthony Bongiovanni Allen Schade
Andreas Evers
Andreas Krampitz
André Simões
Andrew Thomas
Anthony Staunton
AP Condomines
Arda Erol
Armin Preiml
Arseniy M
Arthur S. Muszynski
Asger
Aubrey Falconer
Avencherus Avencherus
Bastian Böhm B A
Balázs Batári
Benedikt
Ben G
Ben Phelan
Ben Vercammen Ben Vercammen
Bernd Jänichen
Black Block
Blair Allen Blair Allen
Bryanna M Bobby CC Wong
Bryan Stevenson brian
Casey Foote bugcaptor
Christian Baune Burney Waring
Cameron Meyer
Carl van der Geest
Carwyn Edwards
Cassidy James
Chris Brown
Chris Chapin
Christian Winter Christian Winter
Collin Shooltz Christoffer Sundbom
Daniel Egger Christoph Brodmann
Daniel Kaplan Christopher Schmitt
Daniel Mircea Christoph Woinke
David Cravens Clay Heaton
Curt King
Dancin Liao
Daniel Johnson
Daniel Kimblad
Daniel Pontillo
David May David May
Diego Moreira Guimarães David Woodard
DiCola Jamn
Dominic Cooney
Dominik Wetzel Dominik Wetzel
Eric Martini Donn Eddy
Fabian Becker Donovan Hutcheon
fengjiongmax Dragontrapper
Francesco Lisi Dr Ewan Murray
Fredy Romero Sam Duobix
G3Dev sàrl Duodecimal
Geequlim Dylan Todd
Gerrit Großkopf Eduardo Teixeira
Gilberto K. Otubo Edward Herbert
Edward Moulsdale
Edward Swartz
Egon Elbre
Elias Nykrem
Elmeri '- Duy Kevin Nguyen
Ephemeral
Eric Ellingson
Eric Rogers
Eric Williams
Erkki Seppälä
Evan Rose
Fancy Ants Studios
Fekinox
Felix Kollmann
Flaredown
Forty Doubleu
FuDiggity
Gadzhi Kharkharov
gamedev by Celio
Gary Thomas
George Marques
GiulianoB
Gordian Arragon
Greg Olson
GREGORY C FEIN
Greg P
Greyson Richey
Grid
Guldoman Guldoman
HardRound Hal A
HeartBeast
Heribert Hirth Heribert Hirth
Hudson Thorpe-Doubble
Hunter Jones Hunter Jones
Hylpher
Ichiro Dohi
Iiari
iKlem
IndustrialRobot
Jaiden Gerig
Jaime Ruiz-Borau Vizárraga Jaime Ruiz-Borau Vizárraga
Jako Danar
James A F Manley
Janders
Jannik Gröger
JARKKO PARVIAINEN
Jarrod Davis
Jeff Hungerford Jeff Hungerford
Jerry Chen Jennifer Graves
Jesse Liles Jeremy Kahn
Jesse Dubay
Joel Fivat
Joel Höglund
Joel Setterberg
Johannes Wuensch
John Gabriel
Jomei Jackson
Jonas Rudlang
Jonas Yamazaki
Jonathan G
Jonathon Jonathon
Josh 'Cheeseness' Bush Jon Bonazza
Juan Negrier Jon Sully
JuDelCo Jorge Caballero
Jose Aleman
Jose C. Rubio
Joseph Catrambone
Juanfran
Judd
Julian Murgia Julian Murgia
Juraj Móza JungleRobba
Karonis Justin Spedding
KC Chan KaDokta
Kevin Boyer Kauzig
Kevin Kamper Meejach Petersen Keedong Park
Klavdij Voncina Keith Bradner
Kevin McPhillips
kickmaniac
Kiyohiro Kawamura (kyorohiro)
Kjetil Haugland
Klagsam
KR McGinley
KsyTek Games
Kuan Cheang
kycho
Kyle Appelgate
Laurent Tréguier
Leonardo Dimano
Levi Lindsey
Linus Lind Lundgren Linus Lind Lundgren
Lisandro Lorea Lionel Gaillard
magodev Luigi Renna
Martin Novák LunaticInAHat
Matthew Fitzpatrick Lurkars
Matthias Hölzl Major Haul
Max R.R. Collada Malcolm
memoryruins Malik Ahmed
Malik Nejer
Markus Michael Egger
Martin Holas
Martin Liška
Marvin
Mathieu Rimelen
Matt Edwards
Matthew Little
Matti Pohjanvirta
Maxime Blade
Maxwell
medecau
Megasploot
Melissa Mears
mewin
mhilbrunner mhilbrunner
Michael Gringauz Michael Haney
Michael Labbe
Mikael Olsson Mikael Olsson
Mikayla
Mike Birkhead
Mike Cunningham
Mitchell J. Wagner
MoM MoM
monokrome Nathan Fish
Moritz Laass Natrim
nee nee
Neil Blakey-Milner Neil Blakey-Milner
Nik Lee Neil Wang
Niko Leopold Nerdforge
Oleg Tyshchenko Nicholas
Pablo Seibelt Nicholas Girga
Nick Macholl
Nicolás Montaña
Nicolas SAN AGUSTIN
Nima Farid
NZ
Oleg Reva
Olivier
Omar Delarosa
Oscar Norlander
Pan Ip Pan Ip
Pat LaBine
Patrick Nafarrete Patrick Nafarrete
Paul Gieske
Paul Mason Paul Mason
Paweł Kowal Paweł Kowal
Pierre-Igor Berthet Pedro Assuncao
Pietro Vertechi Penguin
Richman Stewart Petrus Prinsloo
Rodolfo Baeza Philip Cohoe
Roger Burgess Point08
Rad Cat
Rafa Laguna
rainerLinux
Raphael Leroux
Remi Rampin
Rémi Verschelde
Ricardo Alcantara
Richard Diss
Richard Ivánek
Robert Farr (Larington)
Robert Hernandez
Roberto Sánchez
Roger Smith Roger Smith
Roland Rząsa
Roman Tinkov Roman Tinkov
Ronald Ho Hip (CrimsonZA)
Ronan
Ryan Groom
Ryan Hentz
Sam.C
Sam Edson
Samuele Zolfanelli
Sasori Olkof Sasori Olkof
Scott D. Yelich Scott D. Yelich
Sootstone Scott Longley
Stephen Traskal Sebastian Michailidis
Theo Cranmore Sergio Mello-Grand
Thomas Norman sgnsajgon
Tom Larrow Shane
Shane Sicienski
Shane Spoor
Siim Raidma
Simon Wenner
SK
smbe19
smo1704
Svenne Krap
Terry
tezuvholovdr
thomas
Thomas Bechtold
Thomas Detoy
Thomas Kelly
Tim Drumheller
Timothy B. MacDonald
Tobbun
Torgeir Lilleskog
Torsten Crass
Travis O'Brien
Trent Skinner
Troy Bonneau
Tryggve Sollid
Turgut Temucin
Tyler Compton
Tyler Stafos
UltyX UltyX
Wout Standaert Vaughan Ling
Xananax & karroffel Victor
Vigilant Watch
Vincent Cloutier
waka nya
Wayne Haak
werner mendizabal
Wiley Thompson
Will
William Hogben
Wyatt Goodin
Yegor
Yuri Sizov
## Bronze donors ## Bronze donors

View File

@ -1,5 +1,5 @@
Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur.
Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md)
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

View File

@ -40,7 +40,7 @@ Official binaries for the Godot editor and the export templates can be found
[See the official docs](http://docs.godotengine.org/en/latest/development/compiling/) [See the official docs](http://docs.godotengine.org/en/latest/development/compiling/)
for compilation instructions for every supported platform. for compilation instructions for every supported platform.
### Community ### Community and contributing
Godot is not only an engine but an ever-growing community of users and engine Godot is not only an engine but an ever-growing community of users and engine
developers. The main community channels are listed [on the homepage](https://godotengine.org/community). developers. The main community channels are listed [on the homepage](https://godotengine.org/community).
@ -49,6 +49,8 @@ To get in touch with the developers, the best way is to join the
[#godotengine IRC channel](https://webchat.freenode.net/?channels=godotengine) [#godotengine IRC channel](https://webchat.freenode.net/?channels=godotengine)
on Freenode. on Freenode.
To get started contributing to the project, see the [contributing guide](CONTRIBUTING.md).
### Documentation and demos ### Documentation and demos
The official documentation is hosted on [ReadTheDocs](http://docs.godotengine.org). The official documentation is hosted on [ReadTheDocs](http://docs.godotengine.org).

View File

@ -2,12 +2,13 @@
EnsureSConsVersion(0, 98, 1) EnsureSConsVersion(0, 98, 1)
# System
import string
import os
import os.path
import glob import glob
import os
import string
import sys import sys
# Local
import methods import methods
# moved below to compensate with module version string # moved below to compensate with module version string
@ -30,7 +31,7 @@ for x in glob.glob("platform/*"):
continue continue
tmppath = "./" + x tmppath = "./" + x
sys.path.append(tmppath) sys.path.insert(0, tmppath)
import detect import detect
if (os.path.exists(x + "/export/export.cpp")): if (os.path.exists(x + "/export/export.cpp")):
@ -81,6 +82,7 @@ env_base.android_gradle_plugins = []
env_base.android_gradle_classpath = [] env_base.android_gradle_classpath = []
env_base.android_java_dirs = [] env_base.android_java_dirs = []
env_base.android_res_dirs = [] env_base.android_res_dirs = []
env_base.android_asset_dirs = []
env_base.android_aidl_dirs = [] env_base.android_aidl_dirs = []
env_base.android_jni_dirs = [] env_base.android_jni_dirs = []
env_base.android_default_config = [] env_base.android_default_config = []
@ -106,6 +108,7 @@ env_base.__class__.android_add_flat_dir = methods.android_add_flat_dir
env_base.__class__.android_add_dependency = methods.android_add_dependency env_base.__class__.android_add_dependency = methods.android_add_dependency
env_base.__class__.android_add_java_dir = methods.android_add_java_dir env_base.__class__.android_add_java_dir = methods.android_add_java_dir
env_base.__class__.android_add_res_dir = methods.android_add_res_dir env_base.__class__.android_add_res_dir = methods.android_add_res_dir
env_base.__class__.android_add_asset_dir = methods.android_add_asset_dir
env_base.__class__.android_add_aidl_dir = methods.android_add_aidl_dir env_base.__class__.android_add_aidl_dir = methods.android_add_aidl_dir
env_base.__class__.android_add_jni_dir = methods.android_add_jni_dir env_base.__class__.android_add_jni_dir = methods.android_add_jni_dir
env_base.__class__.android_add_default_config = methods.android_add_default_config env_base.__class__.android_add_default_config = methods.android_add_default_config
@ -125,6 +128,7 @@ env_base.__class__.split_lib = methods.split_lib
env_base.__class__.add_shared_library = methods.add_shared_library env_base.__class__.add_shared_library = methods.add_shared_library
env_base.__class__.add_library = methods.add_library env_base.__class__.add_library = methods.add_library
env_base.__class__.add_program = methods.add_program env_base.__class__.add_program = methods.add_program
env_base.__class__.CommandNoCache = methods.CommandNoCache
env_base["x86_libtheora_opt_gcc"] = False env_base["x86_libtheora_opt_gcc"] = False
env_base["x86_libtheora_opt_vc"] = False env_base["x86_libtheora_opt_vc"] = False
@ -135,7 +139,6 @@ customs = ['custom.py']
profile = ARGUMENTS.get("profile", False) profile = ARGUMENTS.get("profile", False)
if profile: if profile:
import os.path
if os.path.isfile(profile): if os.path.isfile(profile):
customs.append(profile) customs.append(profile)
elif os.path.isfile(profile + ".py"): elif os.path.isfile(profile + ".py"):
@ -161,11 +164,11 @@ opts.Add(BoolVariable('xml', "XML format support for resources", True))
# Advanced options # Advanced options
opts.Add(BoolVariable('disable_3d', "Disable 3D nodes for smaller executable", False)) opts.Add(BoolVariable('disable_3d', "Disable 3D nodes for smaller executable", False))
opts.Add(BoolVariable('disable_advanced_gui', "Disable advance 3D gui nodes and behaviors", False)) opts.Add(BoolVariable('disable_advanced_gui', "Disable advanced 3D gui nodes and behaviors", False))
opts.Add('extra_suffix', "Custom extra suffix added to the base filename of all generated binary files", '') opts.Add('extra_suffix', "Custom extra suffix added to the base filename of all generated binary files", '')
opts.Add('unix_global_settings_path', "UNIX-specific path to system-wide settings. Currently only used for templates", '') opts.Add('unix_global_settings_path', "UNIX-specific path to system-wide settings. Currently only used for templates", '')
opts.Add(BoolVariable('verbose', "Enable verbose output for the compilation", False)) opts.Add(BoolVariable('verbose', "Enable verbose output for the compilation", False))
opts.Add(BoolVariable('vsproj', "Generate Visual Studio Project.", False)) opts.Add(BoolVariable('vsproj', "Generate Visual Studio Project", False))
opts.Add(EnumVariable('warnings', "Set the level of warnings emitted during compilation", 'no', ('extra', 'all', 'moderate', 'no'))) opts.Add(EnumVariable('warnings', "Set the level of warnings emitted during compilation", 'no', ('extra', 'all', 'moderate', 'no')))
opts.Add(BoolVariable('progress', "Show a progress indicator during build", True)) opts.Add(BoolVariable('progress', "Show a progress indicator during build", True))
opts.Add(BoolVariable('dev', "If yes, alias for verbose=yes warnings=all", False)) opts.Add(BoolVariable('dev', "If yes, alias for verbose=yes warnings=all", False))
@ -211,7 +214,7 @@ for k in platform_opts.keys():
for x in module_list: for x in module_list:
module_enabled = True module_enabled = True
tmppath = "./modules/" + x tmppath = "./modules/" + x
sys.path.append(tmppath) sys.path.insert(0, tmppath)
import config import config
enabled_attr = getattr(config, "is_enabled", None) enabled_attr = getattr(config, "is_enabled", None)
if (callable(enabled_attr) and not config.is_enabled()): if (callable(enabled_attr) and not config.is_enabled()):
@ -231,14 +234,6 @@ env_base.Append(CPPPATH=['#core', '#core/math', '#editor', '#drivers', '#'])
env_base.platform_exporters = platform_exporters env_base.platform_exporters = platform_exporters
env_base.platform_apis = platform_apis env_base.platform_apis = platform_apis
"""
sys.path.append("./platform/"+env_base["platform"])
import detect
detect.configure(env_base)
sys.path.remove("./platform/"+env_base["platform"])
sys.modules.pop('detect')
"""
if (env_base['target'] == 'debug'): if (env_base['target'] == 'debug'):
env_base.Append(CPPFLAGS=['-DDEBUG_MEMORY_ALLOC']) env_base.Append(CPPFLAGS=['-DDEBUG_MEMORY_ALLOC'])
env_base.Append(CPPFLAGS=['-DSCI_NAMESPACE']) env_base.Append(CPPFLAGS=['-DSCI_NAMESPACE'])
@ -262,8 +257,8 @@ elif env_base['p'] != "":
if selected_platform in platform_list: if selected_platform in platform_list:
tmppath = "./platform/" + selected_platform
sys.path.append("./platform/" + selected_platform) sys.path.insert(0, tmppath)
import detect import detect
if "create" in dir(detect): if "create" in dir(detect):
env = detect.create(env_base) env = detect.create(env_base)
@ -353,6 +348,7 @@ if selected_platform in platform_list:
env.Append(CCFLAGS=['-Wall', '-Wno-unused']) env.Append(CCFLAGS=['-Wall', '-Wno-unused'])
else: # 'no' else: # 'no'
env.Append(CCFLAGS=['-w']) env.Append(CCFLAGS=['-w'])
env.Append(CCFLAGS=['-Werror=return-type'])
#env['platform_libsuffix'] = env['LIBSUFFIX'] #env['platform_libsuffix'] = env['LIBSUFFIX']
@ -387,7 +383,7 @@ if selected_platform in platform_list:
suffix += env.extra_suffix suffix += env.extra_suffix
sys.path.remove("./platform/" + selected_platform) sys.path.remove(tmppath)
sys.modules.pop('detect') sys.modules.pop('detect')
env.module_list = [] env.module_list = []
@ -397,7 +393,7 @@ if selected_platform in platform_list:
if not env['module_' + x + '_enabled']: if not env['module_' + x + '_enabled']:
continue continue
tmppath = "./modules/" + x tmppath = "./modules/" + x
sys.path.append(tmppath) sys.path.insert(0, tmppath)
env.current_module = x env.current_module = x
import config import config
if (config.can_build(selected_platform)): if (config.can_build(selected_platform)):
@ -445,7 +441,7 @@ if selected_platform in platform_list:
if not env['verbose']: if not env['verbose']:
methods.no_verbose(sys, env) methods.no_verbose(sys, env)
if (True): # FIXME: detect GLES3 if (not env["platform"] == "server"): # FIXME: detect GLES3
env.Append( BUILDERS = { 'GLES3_GLSL' : env.Builder(action = methods.build_gles3_headers, suffix = 'glsl.gen.h',src_suffix = '.glsl') } ) env.Append( BUILDERS = { 'GLES3_GLSL' : env.Builder(action = methods.build_gles3_headers, suffix = 'glsl.gen.h',src_suffix = '.glsl') } )
scons_cache_path = os.environ.get("SCONS_CACHE") scons_cache_path = os.environ.get("SCONS_CACHE")
@ -494,127 +490,118 @@ else:
print("\nPlease run scons again with argument: platform=<string>") print("\nPlease run scons again with argument: platform=<string>")
screen = sys.stdout # The following only makes sense when the env is defined, and assumes it is
node_count = 0 if 'env' in locals():
node_count_max = 0 screen = sys.stdout
node_count_interval = 1 # Progress reporting is not available in non-TTY environments since it
node_pruning = 8 # Number of nodes to process before prunning the cache # messes with the output (for example, when writing to a file)
if ('env' in locals()): show_progress = (env['progress'] and sys.stdout.isatty())
node_count = 0
node_count_max = 0
node_count_interval = 1
node_count_fname = str(env.Dir('#')) + '/.scons_node_count' node_count_fname = str(env.Dir('#')) + '/.scons_node_count'
# Progress reporting is not available in non-TTY environments since it
# messes with the output (for example, when writing to a file)
if sys.stdout.isatty():
show_progress = env['progress']
else:
show_progress = False
import time, math import time, math
class cache_progress: class cache_progress:
# The default is 1 GB cache and 12 hours half life # The default is 1 GB cache and 12 hours half life
def __init__(self, path = None, limit = 1073741824, half_life = 43200): def __init__(self, path = None, limit = 1073741824, half_life = 43200):
global node_pruning self.path = path
self.path = path self.limit = limit
self.limit = limit self.exponent_scale = math.log(2) / half_life
self.exponent_scale = math.log(2) / half_life if env['verbose'] and path != None:
if env['verbose'] and path != None: screen.write('Current cache limit is ' + self.convert_size(limit) + ' (used: ' + self.convert_size(self.get_size(path)) + ')\n')
screen.write('Current cache limit is ' + self.convert_size(limit) + ' (used: ' + self.convert_size(self.get_size(path)) + ')\n')
self.pruning = node_pruning
self.delete(self.file_list())
def __call__(self, node, *args, **kw):
global node_count, node_count_max, node_count_interval, node_count_fname, node_pruning, show_progress
if show_progress:
# Print the progress percentage
node_count += node_count_interval
if (node_count_max > 0 and node_count <= node_count_max):
screen.write('\r[%3d%%] ' % (node_count * 100 / node_count_max))
screen.flush()
elif (node_count_max > 0 and node_count > node_count_max):
screen.write('\r[100%] ')
screen.flush()
else:
screen.write('\r[Initial build] ')
screen.flush()
# Prune if the number of nodes processed is 'node_pruning' or bigger
self.pruning -= node_count_interval
if self.pruning <= 0:
self.pruning = node_pruning
self.delete(self.file_list()) self.delete(self.file_list())
def delete(self, files): def __call__(self, node, *args, **kw):
if len(files) == 0: global node_count, node_count_max, node_count_interval, node_count_fname, show_progress
return if show_progress:
if env['verbose']: # Print the progress percentage
# Utter something node_count += node_count_interval
screen.write('\rPurging %d %s from cache...\n' % (len(files), len(files) > 1 and 'files' or 'file')) if (node_count_max > 0 and node_count <= node_count_max):
map(os.remove, files) screen.write('\r[%3d%%] ' % (node_count * 100 / node_count_max))
screen.flush()
elif (node_count_max > 0 and node_count > node_count_max):
screen.write('\r[100%] ')
screen.flush()
else:
screen.write('\r[Initial build] ')
screen.flush()
def file_list(self): def delete(self, files):
if self.path == None: if len(files) == 0:
# Nothing to do return
return [] if env['verbose']:
# Gather a list of (filename, (size, atime)) within the # Utter something
# cache directory screen.write('\rPurging %d %s from cache...\n' % (len(files), len(files) > 1 and 'files' or 'file'))
file_stat = [(x, os.stat(x)[6:8]) for x in glob.glob(os.path.join(self.path, '*', '*'))] [os.remove(f) for f in files]
if file_stat == []:
# Nothing to do
return []
# Weight the cache files by size (assumed to be roughly
# proportional to the recompilation time) times an exponential
# decay since the ctime, and return a list with the entries
# (filename, size, weight).
current_time = time.time()
file_stat = [(x[0], x[1][0], (current_time - x[1][1])) for x in file_stat]
# Sort by the most resently accessed files (most sensible to keep) first
file_stat.sort(key=lambda x: x[2])
# Search for the first entry where the storage limit is
# reached
sum, mark = 0, None
for i,x in enumerate(file_stat):
sum += x[1]
if sum > self.limit:
mark = i
break
if mark == None:
return []
else:
return [x[0] for x in file_stat[mark:]]
def convert_size(self, size_bytes): def file_list(self):
if size_bytes == 0: if self.path == None:
return "0 bytes" # Nothing to do
size_name = ("bytes", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB") return []
i = int(math.floor(math.log(size_bytes, 1024))) # Gather a list of (filename, (size, atime)) within the
p = math.pow(1024, i) # cache directory
s = round(size_bytes / p, 2) file_stat = [(x, os.stat(x)[6:8]) for x in glob.glob(os.path.join(self.path, '*', '*'))]
return "%s %s" % (int(s) if i == 0 else s, size_name[i]) if file_stat == []:
# Nothing to do
return []
# Weight the cache files by size (assumed to be roughly
# proportional to the recompilation time) times an exponential
# decay since the ctime, and return a list with the entries
# (filename, size, weight).
current_time = time.time()
file_stat = [(x[0], x[1][0], (current_time - x[1][1])) for x in file_stat]
# Sort by the most resently accessed files (most sensible to keep) first
file_stat.sort(key=lambda x: x[2])
# Search for the first entry where the storage limit is
# reached
sum, mark = 0, None
for i,x in enumerate(file_stat):
sum += x[1]
if sum > self.limit:
mark = i
break
if mark == None:
return []
else:
return [x[0] for x in file_stat[mark:]]
def get_size(self, start_path = '.'): def convert_size(self, size_bytes):
total_size = 0 if size_bytes == 0:
for dirpath, dirnames, filenames in os.walk(start_path): return "0 bytes"
for f in filenames: size_name = ("bytes", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB")
fp = os.path.join(dirpath, f) i = int(math.floor(math.log(size_bytes, 1024)))
total_size += os.path.getsize(fp) p = math.pow(1024, i)
return total_size s = round(size_bytes / p, 2)
return "%s %s" % (int(s) if i == 0 else s, size_name[i])
def progress_finish(target, source, env): def get_size(self, start_path = '.'):
global node_count, progressor total_size = 0
with open(node_count_fname, 'w') as f: for dirpath, dirnames, filenames in os.walk(start_path):
f.write('%d\n' % node_count) for f in filenames:
progressor.delete(progressor.file_list()) fp = os.path.join(dirpath, f)
total_size += os.path.getsize(fp)
return total_size
try: def progress_finish(target, source, env):
with open(node_count_fname) as f: global node_count, progressor
node_count_max = int(f.readline()) with open(node_count_fname, 'w') as f:
except: f.write('%d\n' % node_count)
pass progressor.delete(progressor.file_list())
cache_directory = os.environ.get("SCONS_CACHE")
# Simple cache pruning, attached to SCons' progress callback. Trim the
# cache directory to a size not larger than cache_limit.
cache_limit = float(os.getenv("SCONS_CACHE_LIMIT", 1024)) * 1024 * 1024
progressor = cache_progress(cache_directory, cache_limit)
Progress(progressor, interval = node_count_interval)
progress_finish_command = Command('progress_finish', [], progress_finish) try:
AlwaysBuild(progress_finish_command) with open(node_count_fname) as f:
node_count_max = int(f.readline())
except:
pass
cache_directory = os.environ.get("SCONS_CACHE")
# Simple cache pruning, attached to SCons' progress callback. Trim the
# cache directory to a size not larger than cache_limit.
cache_limit = float(os.getenv("SCONS_CACHE_LIMIT", 1024)) * 1024 * 1024
progressor = cache_progress(cache_directory, cache_limit)
Progress(progressor, interval = node_count_interval)
progress_finish_command = Command('progress_finish', [], progress_finish)
AlwaysBuild(progress_finish_command)

View File

@ -93,7 +93,7 @@ env.add_source_files(env.core_sources, "*.cpp")
# Make binders # Make binders
import make_binders import make_binders
env.Command(['method_bind.gen.inc', 'method_bind_ext.gen.inc'], 'make_binders.py', make_binders.run) env.CommandNoCache(['method_bind.gen.inc', 'method_bind_ext.gen.inc'], 'make_binders.py', make_binders.run)
# Chain load SCsubs # Chain load SCsubs

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */
@ -264,10 +264,18 @@ Size2 _OS::get_window_size() const {
return OS::get_singleton()->get_window_size(); return OS::get_singleton()->get_window_size();
} }
Size2 _OS::get_real_window_size() const {
return OS::get_singleton()->get_real_window_size();
}
void _OS::set_window_size(const Size2 &p_size) { void _OS::set_window_size(const Size2 &p_size) {
OS::get_singleton()->set_window_size(p_size); OS::get_singleton()->set_window_size(p_size);
} }
Rect2 _OS::get_window_safe_area() const {
return OS::get_singleton()->get_window_safe_area();
}
void _OS::set_window_fullscreen(bool p_enabled) { void _OS::set_window_fullscreen(bool p_enabled) {
OS::get_singleton()->set_window_fullscreen(p_enabled); OS::get_singleton()->set_window_fullscreen(p_enabled);
} }
@ -300,6 +308,14 @@ bool _OS::is_window_maximized() const {
return OS::get_singleton()->is_window_maximized(); return OS::get_singleton()->is_window_maximized();
} }
void _OS::set_window_always_on_top(bool p_enabled) {
OS::get_singleton()->set_window_always_on_top(p_enabled);
}
bool _OS::is_window_always_on_top() const {
return OS::get_singleton()->is_window_always_on_top();
}
void _OS::set_borderless_window(bool p_borderless) { void _OS::set_borderless_window(bool p_borderless) {
OS::get_singleton()->set_borderless_window(p_borderless); OS::get_singleton()->set_borderless_window(p_borderless);
} }
@ -359,7 +375,7 @@ Error _OS::shell_open(String p_uri) {
int _OS::execute(const String &p_path, const Vector<String> &p_arguments, bool p_blocking, Array p_output) { int _OS::execute(const String &p_path, const Vector<String> &p_arguments, bool p_blocking, Array p_output) {
OS::ProcessID pid; OS::ProcessID pid = -2;
List<String> args; List<String> args;
for (int i = 0; i < p_arguments.size(); i++) for (int i = 0; i < p_arguments.size(); i++)
args.push_back(p_arguments[i]); args.push_back(p_arguments[i]);
@ -372,6 +388,7 @@ int _OS::execute(const String &p_path, const Vector<String> &p_arguments, bool p
else else
return pid; return pid;
} }
Error _OS::kill(int p_pid) { Error _OS::kill(int p_pid) {
return OS::get_singleton()->kill(p_pid); return OS::get_singleton()->kill(p_pid);
@ -607,8 +624,8 @@ uint64_t _OS::get_unix_time_from_datetime(Dictionary datetime) const {
unsigned int second = ((datetime.has(SECOND_KEY)) ? static_cast<unsigned int>(datetime[SECOND_KEY]) : 0); unsigned int second = ((datetime.has(SECOND_KEY)) ? static_cast<unsigned int>(datetime[SECOND_KEY]) : 0);
unsigned int minute = ((datetime.has(MINUTE_KEY)) ? static_cast<unsigned int>(datetime[MINUTE_KEY]) : 0); unsigned int minute = ((datetime.has(MINUTE_KEY)) ? static_cast<unsigned int>(datetime[MINUTE_KEY]) : 0);
unsigned int hour = ((datetime.has(HOUR_KEY)) ? static_cast<unsigned int>(datetime[HOUR_KEY]) : 0); unsigned int hour = ((datetime.has(HOUR_KEY)) ? static_cast<unsigned int>(datetime[HOUR_KEY]) : 0);
unsigned int day = ((datetime.has(DAY_KEY)) ? static_cast<unsigned int>(datetime[DAY_KEY]) : 0); unsigned int day = ((datetime.has(DAY_KEY)) ? static_cast<unsigned int>(datetime[DAY_KEY]) : 1);
unsigned int month = ((datetime.has(MONTH_KEY)) ? static_cast<unsigned int>(datetime[MONTH_KEY]) - 1 : 0); unsigned int month = ((datetime.has(MONTH_KEY)) ? static_cast<unsigned int>(datetime[MONTH_KEY]) : 1);
unsigned int year = ((datetime.has(YEAR_KEY)) ? static_cast<unsigned int>(datetime[YEAR_KEY]) : 0); unsigned int year = ((datetime.has(YEAR_KEY)) ? static_cast<unsigned int>(datetime[YEAR_KEY]) : 0);
/// How many days come before each month (0-12) /// How many days come before each month (0-12)
@ -628,15 +645,15 @@ uint64_t _OS::get_unix_time_from_datetime(Dictionary datetime) const {
ERR_EXPLAIN("Invalid hour value of: " + itos(hour)); ERR_EXPLAIN("Invalid hour value of: " + itos(hour));
ERR_FAIL_COND_V(hour > 23, 0); ERR_FAIL_COND_V(hour > 23, 0);
ERR_EXPLAIN("Invalid month value of: " + itos(month + 1)); ERR_EXPLAIN("Invalid month value of: " + itos(month));
ERR_FAIL_COND_V(month + 1 > 12, 0); ERR_FAIL_COND_V(month > 12 || month == 0, 0);
// Do this check after month is tested as valid // Do this check after month is tested as valid
ERR_EXPLAIN("Invalid day value of: " + itos(day) + " which is larger than " + itos(MONTH_DAYS_TABLE[LEAPYEAR(year)][month])); ERR_EXPLAIN("Invalid day value of: " + itos(day) + " which is larger than " + itos(MONTH_DAYS_TABLE[LEAPYEAR(year)][month - 1]) + " or 0");
ERR_FAIL_COND_V(day > MONTH_DAYS_TABLE[LEAPYEAR(year)][month], 0); ERR_FAIL_COND_V(day > MONTH_DAYS_TABLE[LEAPYEAR(year)][month - 1] || day == 0, 0);
// Calculate all the seconds from months past in this year // Calculate all the seconds from months past in this year
uint64_t SECONDS_FROM_MONTHS_PAST_THIS_YEAR = DAYS_PAST_THIS_YEAR_TABLE[LEAPYEAR(year)][month] * SECONDS_PER_DAY; uint64_t SECONDS_FROM_MONTHS_PAST_THIS_YEAR = DAYS_PAST_THIS_YEAR_TABLE[LEAPYEAR(year)][month - 1] * SECONDS_PER_DAY;
uint64_t SECONDS_FROM_YEARS_PAST = 0; uint64_t SECONDS_FROM_YEARS_PAST = 0;
for (unsigned int iyear = EPOCH_YR; iyear < year; iyear++) { for (unsigned int iyear = EPOCH_YR; iyear < year; iyear++) {
@ -929,6 +946,11 @@ void _OS::request_attention() {
OS::get_singleton()->request_attention(); OS::get_singleton()->request_attention();
} }
void _OS::center_window() {
OS::get_singleton()->center_window();
}
bool _OS::is_debug_build() const { bool _OS::is_debug_build() const {
#ifdef DEBUG_ENABLED #ifdef DEBUG_ENABLED
@ -1008,6 +1030,7 @@ void _OS::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_window_position", "position"), &_OS::set_window_position); ClassDB::bind_method(D_METHOD("set_window_position", "position"), &_OS::set_window_position);
ClassDB::bind_method(D_METHOD("get_window_size"), &_OS::get_window_size); ClassDB::bind_method(D_METHOD("get_window_size"), &_OS::get_window_size);
ClassDB::bind_method(D_METHOD("set_window_size", "size"), &_OS::set_window_size); ClassDB::bind_method(D_METHOD("set_window_size", "size"), &_OS::set_window_size);
ClassDB::bind_method(D_METHOD("get_window_safe_area"), &_OS::get_window_safe_area);
ClassDB::bind_method(D_METHOD("set_window_fullscreen", "enabled"), &_OS::set_window_fullscreen); ClassDB::bind_method(D_METHOD("set_window_fullscreen", "enabled"), &_OS::set_window_fullscreen);
ClassDB::bind_method(D_METHOD("is_window_fullscreen"), &_OS::is_window_fullscreen); ClassDB::bind_method(D_METHOD("is_window_fullscreen"), &_OS::is_window_fullscreen);
ClassDB::bind_method(D_METHOD("set_window_resizable", "enabled"), &_OS::set_window_resizable); ClassDB::bind_method(D_METHOD("set_window_resizable", "enabled"), &_OS::set_window_resizable);
@ -1016,7 +1039,11 @@ void _OS::_bind_methods() {
ClassDB::bind_method(D_METHOD("is_window_minimized"), &_OS::is_window_minimized); ClassDB::bind_method(D_METHOD("is_window_minimized"), &_OS::is_window_minimized);
ClassDB::bind_method(D_METHOD("set_window_maximized", "enabled"), &_OS::set_window_maximized); ClassDB::bind_method(D_METHOD("set_window_maximized", "enabled"), &_OS::set_window_maximized);
ClassDB::bind_method(D_METHOD("is_window_maximized"), &_OS::is_window_maximized); ClassDB::bind_method(D_METHOD("is_window_maximized"), &_OS::is_window_maximized);
ClassDB::bind_method(D_METHOD("set_window_always_on_top", "enabled"), &_OS::set_window_always_on_top);
ClassDB::bind_method(D_METHOD("is_window_always_on_top"), &_OS::is_window_always_on_top);
ClassDB::bind_method(D_METHOD("request_attention"), &_OS::request_attention); ClassDB::bind_method(D_METHOD("request_attention"), &_OS::request_attention);
ClassDB::bind_method(D_METHOD("get_real_window_size"), &_OS::get_real_window_size);
ClassDB::bind_method(D_METHOD("center_window"), &_OS::center_window);
ClassDB::bind_method(D_METHOD("set_borderless_window", "borderless"), &_OS::set_borderless_window); ClassDB::bind_method(D_METHOD("set_borderless_window", "borderless"), &_OS::set_borderless_window);
ClassDB::bind_method(D_METHOD("get_borderless_window"), &_OS::get_borderless_window); ClassDB::bind_method(D_METHOD("get_borderless_window"), &_OS::get_borderless_window);
@ -1493,6 +1520,17 @@ bool _File::is_open() const {
return f != NULL; return f != NULL;
} }
String _File::get_path() const {
ERR_FAIL_COND_V(!f, "");
return f->get_path();
}
String _File::get_path_absolute() const {
ERR_FAIL_COND_V(!f, "");
return f->get_path_absolute();
}
void _File::seek(int64_t p_position) { void _File::seek(int64_t p_position) {
@ -1782,6 +1820,8 @@ void _File::_bind_methods() {
ClassDB::bind_method(D_METHOD("open", "path", "flags"), &_File::open); ClassDB::bind_method(D_METHOD("open", "path", "flags"), &_File::open);
ClassDB::bind_method(D_METHOD("close"), &_File::close); ClassDB::bind_method(D_METHOD("close"), &_File::close);
ClassDB::bind_method(D_METHOD("get_path"), &_File::get_path);
ClassDB::bind_method(D_METHOD("get_path_absolute"), &_File::get_path_absolute);
ClassDB::bind_method(D_METHOD("is_open"), &_File::is_open); ClassDB::bind_method(D_METHOD("is_open"), &_File::is_open);
ClassDB::bind_method(D_METHOD("seek", "position"), &_File::seek); ClassDB::bind_method(D_METHOD("seek", "position"), &_File::seek);
ClassDB::bind_method(D_METHOD("seek_end", "position"), &_File::seek_end, DEFVAL(0)); ClassDB::bind_method(D_METHOD("seek_end", "position"), &_File::seek_end, DEFVAL(0));
@ -2262,7 +2302,7 @@ void _Thread::_start_func(void *ud) {
} break; } break;
case Variant::CallError::CALL_ERROR_TOO_FEW_ARGUMENTS: { case Variant::CallError::CALL_ERROR_TOO_FEW_ARGUMENTS: {
reason = "Too Many Arguments"; reason = "Too Few Arguments";
} break; } break;
case Variant::CallError::CALL_ERROR_INVALID_METHOD: { case Variant::CallError::CALL_ERROR_INVALID_METHOD: {
@ -2353,7 +2393,7 @@ _Thread::_Thread() {
_Thread::~_Thread() { _Thread::~_Thread() {
if (active) { if (active) {
ERR_EXPLAIN("Reference to a Thread object object was lost while the thread is still running.."); ERR_EXPLAIN("Reference to a Thread object object was lost while the thread is still running...");
} }
ERR_FAIL_COND(active == true); ERR_FAIL_COND(active == true);
} }

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */
@ -155,6 +155,8 @@ public:
virtual Point2 get_window_position() const; virtual Point2 get_window_position() const;
virtual void set_window_position(const Point2 &p_position); virtual void set_window_position(const Point2 &p_position);
virtual Size2 get_window_size() const; virtual Size2 get_window_size() const;
virtual Size2 get_real_window_size() const;
virtual Rect2 get_window_safe_area() const;
virtual void set_window_size(const Size2 &p_size); virtual void set_window_size(const Size2 &p_size);
virtual void set_window_fullscreen(bool p_enabled); virtual void set_window_fullscreen(bool p_enabled);
virtual bool is_window_fullscreen() const; virtual bool is_window_fullscreen() const;
@ -164,7 +166,10 @@ public:
virtual bool is_window_minimized() const; virtual bool is_window_minimized() const;
virtual void set_window_maximized(bool p_enabled); virtual void set_window_maximized(bool p_enabled);
virtual bool is_window_maximized() const; virtual bool is_window_maximized() const;
virtual void set_window_always_on_top(bool p_enabled);
virtual bool is_window_always_on_top() const;
virtual void request_attention(); virtual void request_attention();
virtual void center_window();
virtual void set_borderless_window(bool p_borderless); virtual void set_borderless_window(bool p_borderless);
virtual bool get_borderless_window() const; virtual bool get_borderless_window() const;
@ -405,6 +410,9 @@ public:
void close(); ///< close a file void close(); ///< close a file
bool is_open() const; ///< true when file is open bool is_open() const; ///< true when file is open
String get_path() const; /// returns the path for the current open file
String get_path_absolute() const; /// returns the absolute path for the current open file
void seek(int64_t p_position); ///< seek to a given position void seek(int64_t p_position); ///< seek to a given position
void seek_end(int64_t p_position = 0); ///< seek from the end of file void seek_end(int64_t p_position = 0); ///< seek from the end of file
int64_t get_position() const; ///< get position in the file int64_t get_position() const; ///< get position in the file

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */
@ -207,6 +207,47 @@ MethodDefinition D_METHOD(const char *p_name, const char *p_arg1, const char *p_
return md; return md;
} }
MethodDefinition D_METHOD(const char *p_name, const char *p_arg1, const char *p_arg2, const char *p_arg3, const char *p_arg4, const char *p_arg5, const char *p_arg6, const char *p_arg7, const char *p_arg8, const char *p_arg9, const char *p_arg10, const char *p_arg11, const char *p_arg12) {
MethodDefinition md;
md.name = StaticCString::create(p_name);
md.args.resize(12);
md.args[0] = StaticCString::create(p_arg1);
md.args[1] = StaticCString::create(p_arg2);
md.args[2] = StaticCString::create(p_arg3);
md.args[3] = StaticCString::create(p_arg4);
md.args[4] = StaticCString::create(p_arg5);
md.args[5] = StaticCString::create(p_arg6);
md.args[6] = StaticCString::create(p_arg7);
md.args[7] = StaticCString::create(p_arg8);
md.args[8] = StaticCString::create(p_arg9);
md.args[9] = StaticCString::create(p_arg10);
md.args[10] = StaticCString::create(p_arg11);
md.args[11] = StaticCString::create(p_arg12);
return md;
}
MethodDefinition D_METHOD(const char *p_name, const char *p_arg1, const char *p_arg2, const char *p_arg3, const char *p_arg4, const char *p_arg5, const char *p_arg6, const char *p_arg7, const char *p_arg8, const char *p_arg9, const char *p_arg10, const char *p_arg11, const char *p_arg12, const char *p_arg13) {
MethodDefinition md;
md.name = StaticCString::create(p_name);
md.args.resize(13);
md.args[0] = StaticCString::create(p_arg1);
md.args[1] = StaticCString::create(p_arg2);
md.args[2] = StaticCString::create(p_arg3);
md.args[3] = StaticCString::create(p_arg4);
md.args[4] = StaticCString::create(p_arg5);
md.args[5] = StaticCString::create(p_arg6);
md.args[6] = StaticCString::create(p_arg7);
md.args[7] = StaticCString::create(p_arg8);
md.args[8] = StaticCString::create(p_arg9);
md.args[9] = StaticCString::create(p_arg10);
md.args[10] = StaticCString::create(p_arg11);
md.args[11] = StaticCString::create(p_arg12);
md.args[12] = StaticCString::create(p_arg13);
return md;
}
#endif #endif
ClassDB::APIType ClassDB::current_api = API_CORE; ClassDB::APIType ClassDB::current_api = API_CORE;
@ -306,7 +347,7 @@ uint64_t ClassDB::get_api_hash(APIType p_api) {
OBJTYPE_RLOCK; OBJTYPE_RLOCK;
#ifdef DEBUG_METHODS_ENABLED #ifdef DEBUG_METHODS_ENABLED
uint64_t hash = hash_djb2_one_64(HashMapHasherDefault::hash(VERSION_FULL_NAME)); uint64_t hash = hash_djb2_one_64(HashMapHasherDefault::hash(VERSION_FULL_CONFIG));
List<StringName> names; List<StringName> names;
@ -323,7 +364,7 @@ uint64_t ClassDB::get_api_hash(APIType p_api) {
ClassInfo *t = classes.getptr(E->get()); ClassInfo *t = classes.getptr(E->get());
ERR_FAIL_COND_V(!t, 0); ERR_FAIL_COND_V(!t, 0);
if (t->api != p_api) if (t->api != p_api || !t->exposed)
continue; continue;
hash = hash_djb2_one_64(t->name.hash(), hash); hash = hash_djb2_one_64(t->name.hash(), hash);
hash = hash_djb2_one_64(t->inherits.hash(), hash); hash = hash_djb2_one_64(t->inherits.hash(), hash);

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */
@ -68,6 +68,8 @@ MethodDefinition D_METHOD(const char *p_name, const char *p_arg1, const char *p_
MethodDefinition D_METHOD(const char *p_name, const char *p_arg1, const char *p_arg2, const char *p_arg3, const char *p_arg4, const char *p_arg5, const char *p_arg6, const char *p_arg7, const char *p_arg8, const char *p_arg9); MethodDefinition D_METHOD(const char *p_name, const char *p_arg1, const char *p_arg2, const char *p_arg3, const char *p_arg4, const char *p_arg5, const char *p_arg6, const char *p_arg7, const char *p_arg8, const char *p_arg9);
MethodDefinition D_METHOD(const char *p_name, const char *p_arg1, const char *p_arg2, const char *p_arg3, const char *p_arg4, const char *p_arg5, const char *p_arg6, const char *p_arg7, const char *p_arg8, const char *p_arg9, const char *p_arg10); MethodDefinition D_METHOD(const char *p_name, const char *p_arg1, const char *p_arg2, const char *p_arg3, const char *p_arg4, const char *p_arg5, const char *p_arg6, const char *p_arg7, const char *p_arg8, const char *p_arg9, const char *p_arg10);
MethodDefinition D_METHOD(const char *p_name, const char *p_arg1, const char *p_arg2, const char *p_arg3, const char *p_arg4, const char *p_arg5, const char *p_arg6, const char *p_arg7, const char *p_arg8, const char *p_arg9, const char *p_arg10, const char *p_arg11); MethodDefinition D_METHOD(const char *p_name, const char *p_arg1, const char *p_arg2, const char *p_arg3, const char *p_arg4, const char *p_arg5, const char *p_arg6, const char *p_arg7, const char *p_arg8, const char *p_arg9, const char *p_arg10, const char *p_arg11);
MethodDefinition D_METHOD(const char *p_name, const char *p_arg1, const char *p_arg2, const char *p_arg3, const char *p_arg4, const char *p_arg5, const char *p_arg6, const char *p_arg7, const char *p_arg8, const char *p_arg9, const char *p_arg10, const char *p_arg11, const char *p_arg12);
MethodDefinition D_METHOD(const char *p_name, const char *p_arg1, const char *p_arg2, const char *p_arg3, const char *p_arg4, const char *p_arg5, const char *p_arg6, const char *p_arg7, const char *p_arg8, const char *p_arg9, const char *p_arg10, const char *p_arg11, const char *p_arg12, const char *p_arg13);
#else #else

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */
@ -55,7 +55,7 @@
#define _COMMA_11 , #define _COMMA_11 ,
#define _COMMA_12 , #define _COMMA_12 ,
// 1-based comma separed list of ITEMs // 1-based comma separated list of ITEMs
#define COMMA_SEP_LIST(ITEM, LENGTH) _COMMA_SEP_LIST_##LENGTH(ITEM) #define COMMA_SEP_LIST(ITEM, LENGTH) _COMMA_SEP_LIST_##LENGTH(ITEM)
#define _COMMA_SEP_LIST_12(ITEM) \ #define _COMMA_SEP_LIST_12(ITEM) \
_COMMA_SEP_LIST_11(ITEM) \ _COMMA_SEP_LIST_11(ITEM) \
@ -95,7 +95,7 @@
ITEM(1) ITEM(1)
#define _COMMA_SEP_LIST_0(ITEM) #define _COMMA_SEP_LIST_0(ITEM)
// 1-based semicolon separed list of ITEMs // 1-based semicolon separated list of ITEMs
#define SEMIC_SEP_LIST(ITEM, LENGTH) _SEMIC_SEP_LIST_##LENGTH(ITEM) #define SEMIC_SEP_LIST(ITEM, LENGTH) _SEMIC_SEP_LIST_##LENGTH(ITEM)
#define _SEMIC_SEP_LIST_12(ITEM) \ #define _SEMIC_SEP_LIST_12(ITEM) \
_SEMIC_SEP_LIST_11(ITEM); \ _SEMIC_SEP_LIST_11(ITEM); \
@ -135,7 +135,7 @@
ITEM(1) ITEM(1)
#define _SEMIC_SEP_LIST_0(ITEM) #define _SEMIC_SEP_LIST_0(ITEM)
// 1-based space separed list of ITEMs // 1-based space separated list of ITEMs
#define SPACE_SEP_LIST(ITEM, LENGTH) _SPACE_SEP_LIST_##LENGTH(ITEM) #define SPACE_SEP_LIST(ITEM, LENGTH) _SPACE_SEP_LIST_##LENGTH(ITEM)
#define _SPACE_SEP_LIST_12(ITEM) \ #define _SPACE_SEP_LIST_12(ITEM) \
_SPACE_SEP_LIST_11(ITEM) \ _SPACE_SEP_LIST_11(ITEM) \
@ -309,9 +309,9 @@ class CommandQueueMT {
}; };
uint8_t command_mem[COMMAND_MEM_SIZE]; uint8_t command_mem[COMMAND_MEM_SIZE];
uint32_t read_ptr; uint32_t read_ptr = 0;
uint32_t write_ptr; uint32_t write_ptr = 0;
uint32_t dealloc_ptr; uint32_t dealloc_ptr = 0;
SyncSemaphore sync_sems[SYNC_SEMAPHORES]; SyncSemaphore sync_sems[SYNC_SEMAPHORES];
Mutex *mutex; Mutex *mutex;
Semaphore *sync; Semaphore *sync;

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */
@ -38,7 +38,7 @@ class PHashTranslation : public Translation {
GDCLASS(PHashTranslation, Translation); GDCLASS(PHashTranslation, Translation);
//this translation uses a sort of modified perfect hash algorithm //this translation uses a sort of modified perfect hash algorithm
//it requieres hashing strings twice and then does a binary search, //it requires hashing strings twice and then does a binary search,
//so it's slower, but at the same time it has an extreemly high chance //so it's slower, but at the same time it has an extreemly high chance
//of catching untranslated strings //of catching untranslated strings

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */
@ -114,6 +114,11 @@ void Dictionary::erase(const Variant &p_key) {
_p->variant_map.erase(p_key); _p->variant_map.erase(p_key);
} }
bool Dictionary::erase_checked(const Variant &p_key) {
return _p->variant_map.erase(p_key);
}
bool Dictionary::operator==(const Dictionary &p_dictionary) const { bool Dictionary::operator==(const Dictionary &p_dictionary) const {
return _p == p_dictionary._p; return _p == p_dictionary._p;

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */
@ -64,6 +64,7 @@ public:
bool has_all(const Array &p_keys) const; bool has_all(const Array &p_keys) const;
void erase(const Variant &p_key); void erase(const Variant &p_key);
bool erase_checked(const Variant &p_key);
bool operator==(const Dictionary &p_dictionary) const; bool operator==(const Dictionary &p_dictionary) const;

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */
@ -150,7 +150,7 @@ class PoolVector {
} }
if (old_alloc->refcount.unref() == true) { if (old_alloc->refcount.unref() == true) {
//this should never happen but.. //this should never happen but..
#ifdef DEBUG_ENABLED #ifdef DEBUG_ENABLED
MemoryPool::alloc_mutex->lock(); MemoryPool::alloc_mutex->lock();

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */
@ -33,7 +33,7 @@
#include "typedefs.h" #include "typedefs.h"
/** /**
* Error macros. Unlike exceptions and asserts, these macros try to mantain consistency and stability * Error macros. Unlike exceptions and asserts, these macros try to maintain consistency and stability
* inside the code. It is recommended to always return processable data, so in case of an error, the * inside the code. It is recommended to always return processable data, so in case of an error, the
* engine can stay working well. * engine can stay working well.
* In most cases, bugs and/or invalid data are not fatal and should never allow a perfectly running application * In most cases, bugs and/or invalid data are not fatal and should never allow a perfectly running application

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */
@ -580,7 +580,7 @@ void register_global_constants() {
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_COLOR_ARRAY", Variant::POOL_COLOR_ARRAY); BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_COLOR_ARRAY", Variant::POOL_COLOR_ARRAY);
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_MAX", Variant::VARIANT_MAX); BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_MAX", Variant::VARIANT_MAX);
//comparation //comparison
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("OP_EQUAL", Variant::OP_EQUAL); BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("OP_EQUAL", Variant::OP_EQUAL);
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("OP_NOT_EQUAL", Variant::OP_NOT_EQUAL); BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("OP_NOT_EQUAL", Variant::OP_NOT_EQUAL);
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("OP_LESS", Variant::OP_LESS); BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("OP_LESS", Variant::OP_LESS);

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */
@ -1166,6 +1166,9 @@ PoolVector<uint8_t> Image::get_data() const {
void Image::create(int p_width, int p_height, bool p_use_mipmaps, Format p_format) { void Image::create(int p_width, int p_height, bool p_use_mipmaps, Format p_format) {
ERR_FAIL_INDEX(p_width - 1, MAX_WIDTH);
ERR_FAIL_INDEX(p_height - 1, MAX_HEIGHT);
int mm = 0; int mm = 0;
int size = _get_dst_image_size(p_width, p_height, p_format, mm, p_use_mipmaps ? -1 : 0); int size = _get_dst_image_size(p_width, p_height, p_format, mm, p_use_mipmaps ? -1 : 0);
data.resize(size); data.resize(size);
@ -1502,7 +1505,7 @@ Error Image::decompress() {
_image_decompress_pvrtc(this); _image_decompress_pvrtc(this);
else if (format == FORMAT_ETC && _image_decompress_etc1) else if (format == FORMAT_ETC && _image_decompress_etc1)
_image_decompress_etc1(this); _image_decompress_etc1(this);
else if (format >= FORMAT_ETC2_R11 && format <= FORMAT_ETC2_RGB8A1 && _image_decompress_etc1) else if (format >= FORMAT_ETC2_R11 && format <= FORMAT_ETC2_RGB8A1 && _image_decompress_etc2)
_image_decompress_etc2(this); _image_decompress_etc2(this);
else else
return ERR_UNAVAILABLE; return ERR_UNAVAILABLE;
@ -1633,7 +1636,8 @@ void Image::blit_rect(const Ref<Image> &p_src, const Rect2 &p_src_rect, const Po
if (clipped_src_rect.size.x <= 0 || clipped_src_rect.size.y <= 0) if (clipped_src_rect.size.x <= 0 || clipped_src_rect.size.y <= 0)
return; return;
Rect2i dest_rect = Rect2i(0, 0, width, height).clip(Rect2i(p_dest, clipped_src_rect.size)); Point2 src_underscan = Point2(MIN(0, p_src_rect.position.x), MIN(0, p_src_rect.position.y));
Rect2i dest_rect = Rect2i(0, 0, width, height).clip(Rect2i(p_dest - src_underscan, clipped_src_rect.size));
PoolVector<uint8_t>::Write wp = data.write(); PoolVector<uint8_t>::Write wp = data.write();
uint8_t *dst_data_ptr = wp.ptr(); uint8_t *dst_data_ptr = wp.ptr();
@ -1681,7 +1685,8 @@ void Image::blit_rect_mask(const Ref<Image> &p_src, const Ref<Image> &p_mask, co
if (clipped_src_rect.size.x <= 0 || clipped_src_rect.size.y <= 0) if (clipped_src_rect.size.x <= 0 || clipped_src_rect.size.y <= 0)
return; return;
Rect2i dest_rect = Rect2i(0, 0, width, height).clip(Rect2i(p_dest, clipped_src_rect.size)); Point2 src_underscan = Point2(MIN(0, p_src_rect.position.x), MIN(0, p_src_rect.position.y));
Rect2i dest_rect = Rect2i(0, 0, width, height).clip(Rect2i(p_dest - src_underscan, clipped_src_rect.size));
PoolVector<uint8_t>::Write wp = data.write(); PoolVector<uint8_t>::Write wp = data.write();
uint8_t *dst_data_ptr = wp.ptr(); uint8_t *dst_data_ptr = wp.ptr();
@ -1732,7 +1737,8 @@ void Image::blend_rect(const Ref<Image> &p_src, const Rect2 &p_src_rect, const P
if (clipped_src_rect.size.x <= 0 || clipped_src_rect.size.y <= 0) if (clipped_src_rect.size.x <= 0 || clipped_src_rect.size.y <= 0)
return; return;
Rect2i dest_rect = Rect2i(0, 0, width, height).clip(Rect2i(p_dest, clipped_src_rect.size)); Point2 src_underscan = Point2(MIN(0, p_src_rect.position.x), MIN(0, p_src_rect.position.y));
Rect2i dest_rect = Rect2i(0, 0, width, height).clip(Rect2i(p_dest - src_underscan, clipped_src_rect.size));
lock(); lock();
Ref<Image> img = p_src; Ref<Image> img = p_src;
@ -1780,7 +1786,8 @@ void Image::blend_rect_mask(const Ref<Image> &p_src, const Ref<Image> &p_mask, c
if (clipped_src_rect.size.x <= 0 || clipped_src_rect.size.y <= 0) if (clipped_src_rect.size.x <= 0 || clipped_src_rect.size.y <= 0)
return; return;
Rect2i dest_rect = Rect2i(0, 0, width, height).clip(Rect2i(p_dest, clipped_src_rect.size)); Point2 src_underscan = Point2(MIN(0, p_src_rect.position.x), MIN(0, p_src_rect.position.y));
Rect2i dest_rect = Rect2i(0, 0, width, height).clip(Rect2i(p_dest - src_underscan, clipped_src_rect.size));
lock(); lock();
Ref<Image> img = p_src; Ref<Image> img = p_src;
@ -2296,6 +2303,9 @@ void Image::_bind_methods() {
ADD_PROPERTY(PropertyInfo(Variant::DICTIONARY, "data", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE), "_set_data", "_get_data"); ADD_PROPERTY(PropertyInfo(Variant::DICTIONARY, "data", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE), "_set_data", "_get_data");
BIND_CONSTANT(MAX_WIDTH);
BIND_CONSTANT(MAX_HEIGHT);
BIND_ENUM_CONSTANT(FORMAT_L8); //luminance BIND_ENUM_CONSTANT(FORMAT_L8); //luminance
BIND_ENUM_CONSTANT(FORMAT_LA8); //luminance-alpha BIND_ENUM_CONSTANT(FORMAT_LA8); //luminance-alpha
BIND_ENUM_CONSTANT(FORMAT_R8); BIND_ENUM_CONSTANT(FORMAT_R8);

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */
@ -51,14 +51,14 @@ typedef Error (*SavePNGFunc)(const String &p_path, const Ref<Image> &p_img);
class Image : public Resource { class Image : public Resource {
GDCLASS(Image, Resource); GDCLASS(Image, Resource);
public:
static SavePNGFunc save_png_func;
enum { enum {
MAX_WIDTH = 16384, // force a limit somehow MAX_WIDTH = 16384, // force a limit somehow
MAX_HEIGHT = 16384 // force a limit somehow MAX_HEIGHT = 16384 // force a limit somehow
}; };
public:
static SavePNGFunc save_png_func;
enum Format { enum Format {
FORMAT_L8, //luminance FORMAT_L8, //luminance

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */
@ -291,7 +291,6 @@ uint8_t FileAccessCompressed::get_8() const {
} else { } else {
read_block--; read_block--;
at_end = true; at_end = true;
ret = 0;
} }
} }

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */
@ -83,7 +83,7 @@ int64_t FileAccessNetworkClient::get_64() {
void FileAccessNetworkClient::_thread_func() { void FileAccessNetworkClient::_thread_func() {
client->set_nodelay(true); client->set_no_delay(true);
while (!quit) { while (!quit) {
DEBUG_PRINT("SEM WAIT - " + itos(sem->get())); DEBUG_PRINT("SEM WAIT - " + itos(sem->get()));
@ -418,8 +418,6 @@ int FileAccessNetwork::get_buffer(uint8_t *p_dst, int p_length) const {
if (page != last_page) { if (page != last_page) {
buffer_mutex->lock(); buffer_mutex->lock();
if (pages[page].buffer.empty()) { if (pages[page].buffer.empty()) {
//fuck
waiting_on_page = page; waiting_on_page = page;
for (int j = 0; j < read_ahead; j++) { for (int j = 0; j < read_ahead; j++) {

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */
@ -88,7 +88,11 @@ void PackedData::add_path(const String &pkg_path, const String &path, uint64_t o
} }
} }
} }
cd->files.insert(path.get_file()); String filename = path.get_file();
// Don't add as a file if the path points to a directoryy
if (!filename.empty()) {
cd->files.insert(filename);
}
} }
} }

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */
@ -30,6 +30,7 @@
#include "http_client.h" #include "http_client.h"
#include "io/stream_peer_ssl.h" #include "io/stream_peer_ssl.h"
#include "version.h"
const char *HTTPClient::_methods[METHOD_MAX] = { const char *HTTPClient::_methods[METHOD_MAX] = {
"GET", "GET",
@ -121,16 +122,30 @@ Error HTTPClient::request_raw(Method p_method, const String &p_url, const Vector
request += "Host: " + conn_host + ":" + itos(conn_port) + "\r\n"; request += "Host: " + conn_host + ":" + itos(conn_port) + "\r\n";
} }
bool add_clen = p_body.size() > 0; bool add_clen = p_body.size() > 0;
bool add_uagent = true;
bool add_accept = true;
for (int i = 0; i < p_headers.size(); i++) { for (int i = 0; i < p_headers.size(); i++) {
request += p_headers[i] + "\r\n"; request += p_headers[i] + "\r\n";
if (add_clen && p_headers[i].find("Content-Length:") == 0) { if (add_clen && p_headers[i].findn("Content-Length:") == 0) {
add_clen = false; add_clen = false;
} }
if (add_uagent && p_headers[i].findn("User-Agent:") == 0) {
add_uagent = false;
}
if (add_accept && p_headers[i].findn("Accept:") == 0) {
add_accept = false;
}
} }
if (add_clen) { if (add_clen) {
request += "Content-Length: " + itos(p_body.size()) + "\r\n"; request += "Content-Length: " + itos(p_body.size()) + "\r\n";
// Should it add utf8 encoding? // Should it add utf8 encoding?
} }
if (add_uagent) {
request += "User-Agent: GodotEngine/" + String(VERSION_FULL_BUILD) + " (" + OS::get_singleton()->get_name() + ")\r\n";
}
if (add_accept) {
request += "Accept: */*\r\n";
}
request += "\r\n"; request += "\r\n";
CharString cs = request.utf8(); CharString cs = request.utf8();
@ -173,17 +188,31 @@ Error HTTPClient::request(Method p_method, const String &p_url, const Vector<Str
} else { } else {
request += "Host: " + conn_host + ":" + itos(conn_port) + "\r\n"; request += "Host: " + conn_host + ":" + itos(conn_port) + "\r\n";
} }
bool add_uagent = true;
bool add_accept = true;
bool add_clen = p_body.length() > 0; bool add_clen = p_body.length() > 0;
for (int i = 0; i < p_headers.size(); i++) { for (int i = 0; i < p_headers.size(); i++) {
request += p_headers[i] + "\r\n"; request += p_headers[i] + "\r\n";
if (add_clen && p_headers[i].find("Content-Length:") == 0) { if (add_clen && p_headers[i].findn("Content-Length:") == 0) {
add_clen = false; add_clen = false;
} }
if (add_uagent && p_headers[i].findn("User-Agent:") == 0) {
add_uagent = false;
}
if (add_accept && p_headers[i].findn("Accept:") == 0) {
add_accept = false;
}
} }
if (add_clen) { if (add_clen) {
request += "Content-Length: " + itos(p_body.utf8().length()) + "\r\n"; request += "Content-Length: " + itos(p_body.utf8().length()) + "\r\n";
// Should it add utf8 encoding? // Should it add utf8 encoding?
} }
if (add_uagent) {
request += "User-Agent: GodotEngine/" + String(VERSION_FULL_BUILD) + " (" + OS::get_singleton()->get_name() + ")\r\n";
}
if (add_accept) {
request += "Accept: */*\r\n";
}
request += "\r\n"; request += "\r\n";
request += p_body; request += p_body;
@ -298,7 +327,7 @@ Error HTTPClient::poll() {
case StreamPeerTCP::STATUS_CONNECTED: { case StreamPeerTCP::STATUS_CONNECTED: {
if (ssl) { if (ssl) {
Ref<StreamPeerSSL> ssl = StreamPeerSSL::create(); Ref<StreamPeerSSL> ssl = StreamPeerSSL::create();
Error err = ssl->connect_to_stream(tcp_connection, ssl_verify_host, ssl_verify_host ? conn_host : String()); Error err = ssl->connect_to_stream(tcp_connection, ssl_verify_host, conn_host);
if (err != OK) { if (err != OK) {
close(); close();
status = STATUS_SSL_HANDSHAKE_ERROR; status = STATUS_SSL_HANDSHAKE_ERROR;
@ -618,7 +647,27 @@ String HTTPClient::query_string_from_dict(const Dictionary &p_dict) {
String query = ""; String query = "";
Array keys = p_dict.keys(); Array keys = p_dict.keys();
for (int i = 0; i < keys.size(); ++i) { for (int i = 0; i < keys.size(); ++i) {
query += "&" + String(keys[i]).http_escape() + "=" + String(p_dict[keys[i]]).http_escape(); String encoded_key = String(keys[i]).http_escape();
Variant value = p_dict[keys[i]];
switch (value.get_type()) {
case Variant::ARRAY: {
// Repeat the key with every values
Array values = value;
for (int j = 0; j < values.size(); ++j) {
query += "&" + encoded_key + "=" + String(values[j]).http_escape();
}
break;
}
case Variant::NIL: {
// Add the key with no value
query += "&" + encoded_key;
break;
}
default: {
// Add the key-value pair
query += "&" + encoded_key + "=" + String(value).http_escape();
}
}
} }
query.erase(0, 1); query.erase(0, 1);
return query; return query;

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */
@ -37,7 +37,7 @@ bool ImageFormatLoader::recognize(const String &p_extension) const {
get_recognized_extensions(&extensions); get_recognized_extensions(&extensions);
for (List<String>::Element *E = extensions.front(); E; E = E->next()) { for (List<String>::Element *E = extensions.front(); E; E = E->next()) {
if (E->get().nocasecmp_to(p_extension.get_extension()) == 0) if (E->get().nocasecmp_to(p_extension) == 0)
return true; return true;
} }

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */
@ -117,7 +117,7 @@ IP_Address IP::resolve_hostname(const String &p_hostname, IP::Type p_type) {
resolver->mutex->lock(); resolver->mutex->lock();
String key = _IP_ResolverPrivate::get_cache_key(p_hostname, p_type); String key = _IP_ResolverPrivate::get_cache_key(p_hostname, p_type);
if (resolver->cache.has(key)) { if (resolver->cache.has(key) && resolver->cache[key].is_valid()) {
IP_Address res = resolver->cache[key]; IP_Address res = resolver->cache[key];
resolver->mutex->unlock(); resolver->mutex->unlock();
return res; return res;
@ -144,7 +144,7 @@ IP::ResolverID IP::resolve_hostname_queue_item(const String &p_hostname, IP::Typ
String key = _IP_ResolverPrivate::get_cache_key(p_hostname, p_type); String key = _IP_ResolverPrivate::get_cache_key(p_hostname, p_type);
resolver->queue[id].hostname = p_hostname; resolver->queue[id].hostname = p_hostname;
resolver->queue[id].type = p_type; resolver->queue[id].type = p_type;
if (resolver->cache.has(key)) { if (resolver->cache.has(key) && resolver->cache[key].is_valid()) {
resolver->queue[id].response = resolver->cache[key]; resolver->queue[id].response = resolver->cache[key];
resolver->queue[id].status = IP::RESOLVER_STATUS_DONE; resolver->queue[id].status = IP::RESOLVER_STATUS_DONE;
} else { } else {

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */
@ -211,7 +211,7 @@ IP_Address::IP_Address(const String &p_string) {
clear(); clear();
if (p_string == "*") { if (p_string == "*") {
// Wildcard (not a vaild IP) // Wildcard (not a valid IP)
wildcard = true; wildcard = true;
} else if (p_string.find(":") >= 0) { } else if (p_string.find(":") >= 0) {

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */
@ -32,8 +32,13 @@
#include "os/keyboard.h" #include "os/keyboard.h"
#include "print_string.h" #include "print_string.h"
#include "reference.h" #include "reference.h"
#include <limits.h>
#include <stdio.h> #include <stdio.h>
#define _S(a) ((int32_t)a)
#define ERR_FAIL_ADD_OF(a, b, err) ERR_FAIL_COND_V(_S(b) < 0 || _S(a) < 0 || _S(a) > INT_MAX - _S(b), err)
#define ERR_FAIL_MUL_OF(a, b, err) ERR_FAIL_COND_V(_S(a) < 0 || _S(b) <= 0 || _S(a) > INT_MAX / _S(b), err)
void EncodedObjectAsID::_bind_methods() { void EncodedObjectAsID::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_object_id", "id"), &EncodedObjectAsID::set_object_id); ClassDB::bind_method(D_METHOD("set_object_id", "id"), &EncodedObjectAsID::set_object_id);
ClassDB::bind_method(D_METHOD("get_object_id"), &EncodedObjectAsID::get_object_id); ClassDB::bind_method(D_METHOD("get_object_id"), &EncodedObjectAsID::get_object_id);
@ -60,23 +65,31 @@ EncodedObjectAsID::EncodedObjectAsID() {
static Error _decode_string(const uint8_t *&buf, int &len, int *r_len, String &r_string) { static Error _decode_string(const uint8_t *&buf, int &len, int *r_len, String &r_string) {
ERR_FAIL_COND_V(len < 4, ERR_INVALID_DATA); ERR_FAIL_COND_V(len < 4, ERR_INVALID_DATA);
uint32_t strlen = decode_uint32(buf); int32_t strlen = decode_uint32(buf);
buf += 4; int32_t pad = 0;
len -= 4;
ERR_FAIL_COND_V((int)strlen > len, ERR_FILE_EOF);
String str; // Handle padding
str.parse_utf8((const char *)buf, strlen);
r_string = str;
//handle padding
if (strlen % 4) { if (strlen % 4) {
strlen += 4 - strlen % 4; pad = 4 - strlen % 4;
} }
buf += 4;
len -= 4;
// Ensure buffer is big enough
ERR_FAIL_ADD_OF(strlen, pad, ERR_FILE_EOF);
ERR_FAIL_COND_V(strlen < 0 || strlen + pad > len, ERR_FILE_EOF);
String str;
ERR_FAIL_COND_V(str.parse_utf8((const char *)buf, strlen), ERR_INVALID_DATA);
r_string = str;
// Add padding
strlen += pad;
// Update buffer pos, left data count, and return size
buf += strlen; buf += strlen;
len -= strlen; len -= strlen;
if (r_len) { if (r_len) {
(*r_len) += 4 + strlen; (*r_len) += 4 + strlen;
} }
@ -119,14 +132,15 @@ Error decode_variant(Variant &r_variant, const uint8_t *p_buffer, int p_len, int
} break; } break;
case Variant::INT: { case Variant::INT: {
ERR_FAIL_COND_V(len < 4, ERR_INVALID_DATA);
if (type & ENCODE_FLAG_64) { if (type & ENCODE_FLAG_64) {
ERR_FAIL_COND_V(len < 8, ERR_INVALID_DATA);
int64_t val = decode_uint64(buf); int64_t val = decode_uint64(buf);
r_variant = val; r_variant = val;
if (r_len) if (r_len)
(*r_len) += 8; (*r_len) += 8;
} else { } else {
ERR_FAIL_COND_V(len < 4, ERR_INVALID_DATA);
int32_t val = decode_uint32(buf); int32_t val = decode_uint32(buf);
r_variant = val; r_variant = val;
if (r_len) if (r_len)
@ -136,14 +150,14 @@ Error decode_variant(Variant &r_variant, const uint8_t *p_buffer, int p_len, int
} break; } break;
case Variant::REAL: { case Variant::REAL: {
ERR_FAIL_COND_V(len < (int)4, ERR_INVALID_DATA);
if (type & ENCODE_FLAG_64) { if (type & ENCODE_FLAG_64) {
ERR_FAIL_COND_V(len < 8, ERR_INVALID_DATA);
double val = decode_double(buf); double val = decode_double(buf);
r_variant = val; r_variant = val;
if (r_len) if (r_len)
(*r_len) += 8; (*r_len) += 8;
} else { } else {
ERR_FAIL_COND_V(len < 4, ERR_INVALID_DATA);
float val = decode_float(buf); float val = decode_float(buf);
r_variant = val; r_variant = val;
if (r_len) if (r_len)
@ -164,7 +178,7 @@ Error decode_variant(Variant &r_variant, const uint8_t *p_buffer, int p_len, int
// math types // math types
case Variant::VECTOR2: { case Variant::VECTOR2: {
ERR_FAIL_COND_V(len < (int)4 * 2, ERR_INVALID_DATA); ERR_FAIL_COND_V(len < 4 * 2, ERR_INVALID_DATA);
Vector2 val; Vector2 val;
val.x = decode_float(&buf[0]); val.x = decode_float(&buf[0]);
val.y = decode_float(&buf[4]); val.y = decode_float(&buf[4]);
@ -176,7 +190,7 @@ Error decode_variant(Variant &r_variant, const uint8_t *p_buffer, int p_len, int
} break; // 5 } break; // 5
case Variant::RECT2: { case Variant::RECT2: {
ERR_FAIL_COND_V(len < (int)4 * 4, ERR_INVALID_DATA); ERR_FAIL_COND_V(len < 4 * 4, ERR_INVALID_DATA);
Rect2 val; Rect2 val;
val.position.x = decode_float(&buf[0]); val.position.x = decode_float(&buf[0]);
val.position.y = decode_float(&buf[4]); val.position.y = decode_float(&buf[4]);
@ -190,7 +204,7 @@ Error decode_variant(Variant &r_variant, const uint8_t *p_buffer, int p_len, int
} break; } break;
case Variant::VECTOR3: { case Variant::VECTOR3: {
ERR_FAIL_COND_V(len < (int)4 * 3, ERR_INVALID_DATA); ERR_FAIL_COND_V(len < 4 * 3, ERR_INVALID_DATA);
Vector3 val; Vector3 val;
val.x = decode_float(&buf[0]); val.x = decode_float(&buf[0]);
val.y = decode_float(&buf[4]); val.y = decode_float(&buf[4]);
@ -203,7 +217,7 @@ Error decode_variant(Variant &r_variant, const uint8_t *p_buffer, int p_len, int
} break; } break;
case Variant::TRANSFORM2D: { case Variant::TRANSFORM2D: {
ERR_FAIL_COND_V(len < (int)4 * 6, ERR_INVALID_DATA); ERR_FAIL_COND_V(len < 4 * 6, ERR_INVALID_DATA);
Transform2D val; Transform2D val;
for (int i = 0; i < 3; i++) { for (int i = 0; i < 3; i++) {
for (int j = 0; j < 2; j++) { for (int j = 0; j < 2; j++) {
@ -220,7 +234,7 @@ Error decode_variant(Variant &r_variant, const uint8_t *p_buffer, int p_len, int
} break; } break;
case Variant::PLANE: { case Variant::PLANE: {
ERR_FAIL_COND_V(len < (int)4 * 4, ERR_INVALID_DATA); ERR_FAIL_COND_V(len < 4 * 4, ERR_INVALID_DATA);
Plane val; Plane val;
val.normal.x = decode_float(&buf[0]); val.normal.x = decode_float(&buf[0]);
val.normal.y = decode_float(&buf[4]); val.normal.y = decode_float(&buf[4]);
@ -234,7 +248,7 @@ Error decode_variant(Variant &r_variant, const uint8_t *p_buffer, int p_len, int
} break; } break;
case Variant::QUAT: { case Variant::QUAT: {
ERR_FAIL_COND_V(len < (int)4 * 4, ERR_INVALID_DATA); ERR_FAIL_COND_V(len < 4 * 4, ERR_INVALID_DATA);
Quat val; Quat val;
val.x = decode_float(&buf[0]); val.x = decode_float(&buf[0]);
val.y = decode_float(&buf[4]); val.y = decode_float(&buf[4]);
@ -248,7 +262,7 @@ Error decode_variant(Variant &r_variant, const uint8_t *p_buffer, int p_len, int
} break; } break;
case Variant::AABB: { case Variant::AABB: {
ERR_FAIL_COND_V(len < (int)4 * 6, ERR_INVALID_DATA); ERR_FAIL_COND_V(len < 4 * 6, ERR_INVALID_DATA);
AABB val; AABB val;
val.position.x = decode_float(&buf[0]); val.position.x = decode_float(&buf[0]);
val.position.y = decode_float(&buf[4]); val.position.y = decode_float(&buf[4]);
@ -264,7 +278,7 @@ Error decode_variant(Variant &r_variant, const uint8_t *p_buffer, int p_len, int
} break; } break;
case Variant::BASIS: { case Variant::BASIS: {
ERR_FAIL_COND_V(len < (int)4 * 9, ERR_INVALID_DATA); ERR_FAIL_COND_V(len < 4 * 9, ERR_INVALID_DATA);
Basis val; Basis val;
for (int i = 0; i < 3; i++) { for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) { for (int j = 0; j < 3; j++) {
@ -281,7 +295,7 @@ Error decode_variant(Variant &r_variant, const uint8_t *p_buffer, int p_len, int
} break; } break;
case Variant::TRANSFORM: { case Variant::TRANSFORM: {
ERR_FAIL_COND_V(len < (int)4 * 12, ERR_INVALID_DATA); ERR_FAIL_COND_V(len < 4 * 12, ERR_INVALID_DATA);
Transform val; Transform val;
for (int i = 0; i < 3; i++) { for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) { for (int j = 0; j < 3; j++) {
@ -303,7 +317,7 @@ Error decode_variant(Variant &r_variant, const uint8_t *p_buffer, int p_len, int
// misc types // misc types
case Variant::COLOR: { case Variant::COLOR: {
ERR_FAIL_COND_V(len < (int)4 * 4, ERR_INVALID_DATA); ERR_FAIL_COND_V(len < 4 * 4, ERR_INVALID_DATA);
Color val; Color val;
val.r = decode_float(&buf[0]); val.r = decode_float(&buf[0]);
val.g = decode_float(&buf[4]); val.g = decode_float(&buf[4]);
@ -318,7 +332,7 @@ Error decode_variant(Variant &r_variant, const uint8_t *p_buffer, int p_len, int
case Variant::NODE_PATH: { case Variant::NODE_PATH: {
ERR_FAIL_COND_V(len < 4, ERR_INVALID_DATA); ERR_FAIL_COND_V(len < 4, ERR_INVALID_DATA);
uint32_t strlen = decode_uint32(buf); int32_t strlen = decode_uint32(buf);
if (strlen & 0x80000000) { if (strlen & 0x80000000) {
//new format //new format
@ -343,31 +357,15 @@ Error decode_variant(Variant &r_variant, const uint8_t *p_buffer, int p_len, int
for (uint32_t i = 0; i < total; i++) { for (uint32_t i = 0; i < total; i++) {
ERR_FAIL_COND_V((int)len < 4, ERR_INVALID_DATA);
strlen = decode_uint32(buf);
int pad = 0;
if (strlen % 4)
pad += 4 - strlen % 4;
buf += 4;
len -= 4;
ERR_FAIL_COND_V((int)strlen + pad > len, ERR_INVALID_DATA);
String str; String str;
str.parse_utf8((const char *)buf, strlen); Error err = _decode_string(buf, len, r_len, str);
if (err)
return err;
if (i < namecount) if (i < namecount)
names.push_back(str); names.push_back(str);
else else
subnames.push_back(str); subnames.push_back(str);
buf += strlen + pad;
len -= strlen + pad;
if (r_len)
(*r_len) += 4 + strlen + pad;
} }
r_variant = NodePath(names, subnames, flags & 1); r_variant = NodePath(names, subnames, flags & 1);
@ -375,17 +373,7 @@ Error decode_variant(Variant &r_variant, const uint8_t *p_buffer, int p_len, int
} else { } else {
//old format, just a string //old format, just a string
buf += 4; ERR_FAIL_V(ERR_INVALID_DATA);
len -= 4;
ERR_FAIL_COND_V((int)strlen > len, ERR_INVALID_DATA);
String str;
str.parse_utf8((const char *)buf, strlen);
r_variant = NodePath(str);
if (r_len)
(*r_len) += 4 + strlen;
} }
} break; } break;
@ -402,6 +390,7 @@ Error decode_variant(Variant &r_variant, const uint8_t *p_buffer, int p_len, int
if (type & ENCODE_FLAG_OBJECT_AS_ID) { if (type & ENCODE_FLAG_OBJECT_AS_ID) {
//this _is_ allowed //this _is_ allowed
ERR_FAIL_COND_V(len < 8, ERR_INVALID_DATA);
ObjectID val = decode_uint64(buf); ObjectID val = decode_uint64(buf);
if (r_len) if (r_len)
(*r_len) += 8; (*r_len) += 8;
@ -475,7 +464,7 @@ Error decode_variant(Variant &r_variant, const uint8_t *p_buffer, int p_len, int
case Variant::DICTIONARY: { case Variant::DICTIONARY: {
ERR_FAIL_COND_V(len < 4, ERR_INVALID_DATA); ERR_FAIL_COND_V(len < 4, ERR_INVALID_DATA);
uint32_t count = decode_uint32(buf); int32_t count = decode_uint32(buf);
// bool shared = count&0x80000000; // bool shared = count&0x80000000;
count &= 0x7FFFFFFF; count &= 0x7FFFFFFF;
@ -488,7 +477,7 @@ Error decode_variant(Variant &r_variant, const uint8_t *p_buffer, int p_len, int
Dictionary d; Dictionary d;
for (uint32_t i = 0; i < count; i++) { for (int i = 0; i < count; i++) {
Variant key, value; Variant key, value;
@ -520,7 +509,7 @@ Error decode_variant(Variant &r_variant, const uint8_t *p_buffer, int p_len, int
case Variant::ARRAY: { case Variant::ARRAY: {
ERR_FAIL_COND_V(len < 4, ERR_INVALID_DATA); ERR_FAIL_COND_V(len < 4, ERR_INVALID_DATA);
uint32_t count = decode_uint32(buf); int32_t count = decode_uint32(buf);
// bool shared = count&0x80000000; // bool shared = count&0x80000000;
count &= 0x7FFFFFFF; count &= 0x7FFFFFFF;
@ -533,7 +522,7 @@ Error decode_variant(Variant &r_variant, const uint8_t *p_buffer, int p_len, int
Array varr; Array varr;
for (uint32_t i = 0; i < count; i++) { for (int i = 0; i < count; i++) {
int used = 0; int used = 0;
Variant v; Variant v;
@ -555,17 +544,17 @@ Error decode_variant(Variant &r_variant, const uint8_t *p_buffer, int p_len, int
case Variant::POOL_BYTE_ARRAY: { case Variant::POOL_BYTE_ARRAY: {
ERR_FAIL_COND_V(len < 4, ERR_INVALID_DATA); ERR_FAIL_COND_V(len < 4, ERR_INVALID_DATA);
uint32_t count = decode_uint32(buf); int32_t count = decode_uint32(buf);
buf += 4; buf += 4;
len -= 4; len -= 4;
ERR_FAIL_COND_V((int)count > len, ERR_INVALID_DATA); ERR_FAIL_COND_V(count < 0 || count > len, ERR_INVALID_DATA);
PoolVector<uint8_t> data; PoolVector<uint8_t> data;
if (count) { if (count) {
data.resize(count); data.resize(count);
PoolVector<uint8_t>::Write w = data.write(); PoolVector<uint8_t>::Write w = data.write();
for (uint32_t i = 0; i < count; i++) { for (int32_t i = 0; i < count; i++) {
w[i] = buf[i]; w[i] = buf[i];
} }
@ -585,10 +574,11 @@ Error decode_variant(Variant &r_variant, const uint8_t *p_buffer, int p_len, int
case Variant::POOL_INT_ARRAY: { case Variant::POOL_INT_ARRAY: {
ERR_FAIL_COND_V(len < 4, ERR_INVALID_DATA); ERR_FAIL_COND_V(len < 4, ERR_INVALID_DATA);
uint32_t count = decode_uint32(buf); int32_t count = decode_uint32(buf);
buf += 4; buf += 4;
len -= 4; len -= 4;
ERR_FAIL_COND_V((int)count * 4 > len, ERR_INVALID_DATA); ERR_FAIL_MUL_OF(count, 4, ERR_INVALID_DATA);
ERR_FAIL_COND_V(count < 0 || count * 4 > len, ERR_INVALID_DATA);
PoolVector<int> data; PoolVector<int> data;
@ -596,7 +586,7 @@ Error decode_variant(Variant &r_variant, const uint8_t *p_buffer, int p_len, int
//const int*rbuf=(const int*)buf; //const int*rbuf=(const int*)buf;
data.resize(count); data.resize(count);
PoolVector<int>::Write w = data.write(); PoolVector<int>::Write w = data.write();
for (uint32_t i = 0; i < count; i++) { for (int32_t i = 0; i < count; i++) {
w[i] = decode_uint32(&buf[i * 4]); w[i] = decode_uint32(&buf[i * 4]);
} }
@ -612,10 +602,11 @@ Error decode_variant(Variant &r_variant, const uint8_t *p_buffer, int p_len, int
case Variant::POOL_REAL_ARRAY: { case Variant::POOL_REAL_ARRAY: {
ERR_FAIL_COND_V(len < 4, ERR_INVALID_DATA); ERR_FAIL_COND_V(len < 4, ERR_INVALID_DATA);
uint32_t count = decode_uint32(buf); int32_t count = decode_uint32(buf);
buf += 4; buf += 4;
len -= 4; len -= 4;
ERR_FAIL_COND_V((int)count * 4 > len, ERR_INVALID_DATA); ERR_FAIL_MUL_OF(count, 4, ERR_INVALID_DATA);
ERR_FAIL_COND_V(count < 0 || count * 4 > len, ERR_INVALID_DATA);
PoolVector<float> data; PoolVector<float> data;
@ -623,7 +614,7 @@ Error decode_variant(Variant &r_variant, const uint8_t *p_buffer, int p_len, int
//const float*rbuf=(const float*)buf; //const float*rbuf=(const float*)buf;
data.resize(count); data.resize(count);
PoolVector<float>::Write w = data.write(); PoolVector<float>::Write w = data.write();
for (uint32_t i = 0; i < count; i++) { for (int32_t i = 0; i < count; i++) {
w[i] = decode_float(&buf[i * 4]); w[i] = decode_float(&buf[i * 4]);
} }
@ -640,7 +631,7 @@ Error decode_variant(Variant &r_variant, const uint8_t *p_buffer, int p_len, int
case Variant::POOL_STRING_ARRAY: { case Variant::POOL_STRING_ARRAY: {
ERR_FAIL_COND_V(len < 4, ERR_INVALID_DATA); ERR_FAIL_COND_V(len < 4, ERR_INVALID_DATA);
uint32_t count = decode_uint32(buf); int32_t count = decode_uint32(buf);
PoolVector<String> strings; PoolVector<String> strings;
buf += 4; buf += 4;
@ -650,35 +641,14 @@ Error decode_variant(Variant &r_variant, const uint8_t *p_buffer, int p_len, int
(*r_len) += 4; (*r_len) += 4;
//printf("string count: %i\n",count); //printf("string count: %i\n",count);
for (int i = 0; i < (int)count; i++) { for (int32_t i = 0; i < count; i++) {
ERR_FAIL_COND_V(len < 4, ERR_INVALID_DATA);
uint32_t strlen = decode_uint32(buf);
buf += 4;
len -= 4;
ERR_FAIL_COND_V((int)strlen > len, ERR_INVALID_DATA);
//printf("loaded string: %s\n",(const char*)buf);
String str; String str;
str.parse_utf8((const char *)buf, strlen); Error err = _decode_string(buf, len, r_len, str);
if (err)
return err;
strings.push_back(str); strings.push_back(str);
buf += strlen;
len -= strlen;
if (r_len)
(*r_len) += 4 + strlen;
if (strlen % 4) {
int pad = 4 - (strlen % 4);
buf += pad;
len -= pad;
if (r_len) {
(*r_len) += pad;
}
}
} }
r_variant = strings; r_variant = strings;
@ -687,11 +657,12 @@ Error decode_variant(Variant &r_variant, const uint8_t *p_buffer, int p_len, int
case Variant::POOL_VECTOR2_ARRAY: { case Variant::POOL_VECTOR2_ARRAY: {
ERR_FAIL_COND_V(len < 4, ERR_INVALID_DATA); ERR_FAIL_COND_V(len < 4, ERR_INVALID_DATA);
uint32_t count = decode_uint32(buf); int32_t count = decode_uint32(buf);
buf += 4; buf += 4;
len -= 4; len -= 4;
ERR_FAIL_COND_V((int)count * 4 * 2 > len, ERR_INVALID_DATA); ERR_FAIL_MUL_OF(count, 4 * 2, ERR_INVALID_DATA);
ERR_FAIL_COND_V(count < 0 || count * 4 * 2 > len, ERR_INVALID_DATA);
PoolVector<Vector2> varray; PoolVector<Vector2> varray;
if (r_len) { if (r_len) {
@ -702,7 +673,7 @@ Error decode_variant(Variant &r_variant, const uint8_t *p_buffer, int p_len, int
varray.resize(count); varray.resize(count);
PoolVector<Vector2>::Write w = varray.write(); PoolVector<Vector2>::Write w = varray.write();
for (int i = 0; i < (int)count; i++) { for (int32_t i = 0; i < count; i++) {
w[i].x = decode_float(buf + i * 4 * 2 + 4 * 0); w[i].x = decode_float(buf + i * 4 * 2 + 4 * 0);
w[i].y = decode_float(buf + i * 4 * 2 + 4 * 1); w[i].y = decode_float(buf + i * 4 * 2 + 4 * 1);
@ -722,11 +693,13 @@ Error decode_variant(Variant &r_variant, const uint8_t *p_buffer, int p_len, int
case Variant::POOL_VECTOR3_ARRAY: { case Variant::POOL_VECTOR3_ARRAY: {
ERR_FAIL_COND_V(len < 4, ERR_INVALID_DATA); ERR_FAIL_COND_V(len < 4, ERR_INVALID_DATA);
uint32_t count = decode_uint32(buf); int32_t count = decode_uint32(buf);
buf += 4; buf += 4;
len -= 4; len -= 4;
ERR_FAIL_COND_V((int)count * 4 * 3 > len, ERR_INVALID_DATA); ERR_FAIL_MUL_OF(count, 4 * 3, ERR_INVALID_DATA);
ERR_FAIL_COND_V(count < 0 || count * 4 * 3 > len, ERR_INVALID_DATA);
PoolVector<Vector3> varray; PoolVector<Vector3> varray;
if (r_len) { if (r_len) {
@ -737,7 +710,7 @@ Error decode_variant(Variant &r_variant, const uint8_t *p_buffer, int p_len, int
varray.resize(count); varray.resize(count);
PoolVector<Vector3>::Write w = varray.write(); PoolVector<Vector3>::Write w = varray.write();
for (int i = 0; i < (int)count; i++) { for (int32_t i = 0; i < count; i++) {
w[i].x = decode_float(buf + i * 4 * 3 + 4 * 0); w[i].x = decode_float(buf + i * 4 * 3 + 4 * 0);
w[i].y = decode_float(buf + i * 4 * 3 + 4 * 1); w[i].y = decode_float(buf + i * 4 * 3 + 4 * 1);
@ -758,11 +731,13 @@ Error decode_variant(Variant &r_variant, const uint8_t *p_buffer, int p_len, int
case Variant::POOL_COLOR_ARRAY: { case Variant::POOL_COLOR_ARRAY: {
ERR_FAIL_COND_V(len < 4, ERR_INVALID_DATA); ERR_FAIL_COND_V(len < 4, ERR_INVALID_DATA);
uint32_t count = decode_uint32(buf); int32_t count = decode_uint32(buf);
buf += 4; buf += 4;
len -= 4; len -= 4;
ERR_FAIL_COND_V((int)count * 4 * 4 > len, ERR_INVALID_DATA); ERR_FAIL_MUL_OF(count, 4 * 4, ERR_INVALID_DATA);
ERR_FAIL_COND_V(count < 0 || count * 4 * 4 > len, ERR_INVALID_DATA);
PoolVector<Color> carray; PoolVector<Color> carray;
if (r_len) { if (r_len) {
@ -773,7 +748,7 @@ Error decode_variant(Variant &r_variant, const uint8_t *p_buffer, int p_len, int
carray.resize(count); carray.resize(count);
PoolVector<Color>::Write w = carray.write(); PoolVector<Color>::Write w = carray.write();
for (int i = 0; i < (int)count; i++) { for (int32_t i = 0; i < count; i++) {
w[i].r = decode_float(buf + i * 4 * 4 + 4 * 0); w[i].r = decode_float(buf + i * 4 * 4 + 4 * 0);
w[i].g = decode_float(buf + i * 4 * 4 + 4 * 1); w[i].g = decode_float(buf + i * 4 * 4 + 4 * 1);
@ -813,7 +788,7 @@ static void _encode_string(const String &p_string, uint8_t *&buf, int &r_len) {
while (r_len % 4) { while (r_len % 4) {
r_len++; //pad r_len++; //pad
if (buf) { if (buf) {
buf++; *(buf++) = 0;
} }
} }
} }
@ -1321,7 +1296,7 @@ Error encode_variant(const Variant &p_variant, uint8_t *r_buffer, int &r_len, bo
while (r_len % 4) { while (r_len % 4) {
r_len++; //pad r_len++; //pad
if (buf) if (buf)
buf++; *(buf++) = 0;
} }
} }

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */
@ -29,8 +29,8 @@
/*************************************************************************/ /*************************************************************************/
#include "pck_packer.h" #include "pck_packer.h"
#include "core/os/file_access.h" #include "core/os/file_access.h"
#include "version.h"
static uint64_t _align(uint64_t p_n, int p_alignment) { static uint64_t _align(uint64_t p_n, int p_alignment) {
@ -70,9 +70,9 @@ Error PCKPacker::pck_start(const String &p_file, int p_alignment) {
alignment = p_alignment; alignment = p_alignment;
file->store_32(0x43504447); // MAGIC file->store_32(0x43504447); // MAGIC
file->store_32(0); // # version file->store_32(1); // # version
file->store_32(0); // # major file->store_32(VERSION_MAJOR); // # major
file->store_32(0); // # minor file->store_32(VERSION_MINOR); // # minor
file->store_32(0); // # revision file->store_32(0); // # revision
for (int i = 0; i < 16; i++) { for (int i = 0; i < 16; i++) {
@ -162,7 +162,7 @@ Error PCKPacker::flush(bool p_verbose) {
src->close(); src->close();
memdelete(src); memdelete(src);
count += 1; count += 1;
if (p_verbose) { if (p_verbose && files.size() > 0) {
if (count % 100 == 0) { if (count % 100 == 0) {
printf("%i/%i (%.2f)\r", count, files.size(), float(count) / files.size() * 100); printf("%i/%i (%.2f)\r", count, files.size(), float(count) / files.size() * 100);
fflush(stdout); fflush(stdout);

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */
@ -1124,7 +1124,7 @@ Error ResourceFormatLoaderBinary::rename_dependencies(const String &p_path, cons
DirAccess *da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); DirAccess *da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
da->remove(p_path + ".depren"); da->remove(p_path + ".depren");
memdelete(da); memdelete(da);
//fuck it, use the old approach; //use the old approach
WARN_PRINT(("This file is old, so it can't refactor dependencies, opening and resaving: " + p_path).utf8().get_data()); WARN_PRINT(("This file is old, so it can't refactor dependencies, opening and resaving: " + p_path).utf8().get_data());

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

View File

@ -5,8 +5,8 @@
/* GODOT ENGINE */ /* GODOT ENGINE */
/* https://godotengine.org */ /* https://godotengine.org */
/*************************************************************************/ /*************************************************************************/
/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
/* */ /* */
/* Permission is hereby granted, free of charge, to any person obtaining */ /* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */ /* a copy of this software and associated documentation files (the */

Some files were not shown because too many files have changed in this diff Show More