Commit Graph

29607 Commits

Author SHA1 Message Date
Rémi Verschelde 42d320beca
Merge pull request #40719 from akien-mga/scons-vulkan-system
SCons: Support linking system Vulkan loader while using vendored VMA
2020-07-26 13:43:34 +02:00
Rémi Verschelde 3b340985cc SCons: Support linking system Vulkan loader while using vendored VMA 2020-07-26 13:20:08 +02:00
Rémi Verschelde 9856c8fda4
Merge pull request #40434 from naithar/feature/ios-moltenVK
[iOS] Basic Vulkan/Metal Support
2020-07-26 11:18:01 +02:00
Yuri Roubinsky 44c90e66d0
Merge pull request #40715 from Chaosus/vs_fix_texture_uniform_node
Removes redundant code generation in VisualShaderNodeTextureUniform
2020-07-26 09:43:28 +03:00
Thakee Nathees 194c2aa7e2 GDScript: "Object" datatype changed from BUILTIN to NATIVE
Fix: #40656
2020-07-26 08:00:55 +05:30
Yuri Roubinsky 5dfef9d8bc Removes redundant code generation in VisualShaderNodeTextureUniform 2020-07-26 04:28:07 +03:00
Rémi Verschelde 4f5615e423
Merge pull request #40709 from Xrayez/move-tests
Move `tests` to the top-level directory
2020-07-25 23:55:02 +02:00
Andrii Doroshenko (Xrayez) 9f649efe5d Move `tests` to the top-level directory 2020-07-26 00:06:07 +03:00
Rémi Verschelde bf257adbf5 CI: Add iOS build on GitHub Actions 2020-07-25 21:55:49 +02:00
Sergey Minakov fe60815d66 iOS SCons: static Vulkan binary usage
Add VMA to iphone platform Use linkflag for iphone building to enforce static linking. Works fine with dynamic '.framework' library
Updated xcode project to use '.a' static library
2020-07-25 21:55:25 +02:00
Sergey Minakov 8e82ab4bf5 iOS Vulkan: copy icd to app 2020-07-25 21:55:23 +02:00
Sergey Minakov bfc005d462 iOS: Vulkan support
Implemented Vulkan Support.
Use DisplayServer for rendering and input handling
Use single view for rendering in both GLES2 (not supported yet) and Vulkan
Use @available checks where it's required (otherwise compiler would fail compilation)
Simulator checks
2020-07-25 21:55:20 +02:00
Sergey Minakov 8dc2b267f9 iOS Export: MoltenVK framework for Vulkan support 2020-07-25 21:55:18 +02:00
Sergey Minakov 66be375eb0 Modules: update modules to be built for iOS
Using 'available' checks to fix deprecation compilation errors
Additional checks for simulator
2020-07-25 21:55:15 +02:00
Sergey Minakov 33038be5ed iOS SCons: update iOS minimal version
iOS 11 for iOS device
iOS 13 for iOS Simulator
2020-07-25 21:55:13 +02:00
Sergey Minakov 7ee268c2c7 Core Variant: switch from 'real' to 'float' to allow building with NEED_LONG_INT 2020-07-25 21:55:10 +02:00
Sergey Minakov 8e9a07c401 Core Callable: fixed variant call caster
Use same call to VariantCaster in release build as used in VariantCasterAndValidate::call method
2020-07-25 21:55:08 +02:00
Sergey Minakov 6e0d4e21ff Thirdparty Vulkan: patch VMA to fix assets
Applies VMA master branch patch that removes incorrect asserts:
issue: https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/issues/102
patch: 39aeff7a43
2020-07-25 21:55:05 +02:00
Sergey Minakov 6e550e90bf GUI ScrollBar: possible fix for scrolling
Use of unmodified value returned by 'screen_is_touchscreen' to be used in determening if scroll bar should be scrolled
2020-07-25 21:54:56 +02:00
Meriipu 7f9bfee0ac GDScript: Clarified/fixed inaccuracies in the built-in function docs.
The input to smoothstep is not actually a weight, and the decscription
of smoothstep was pretty hard to understand and easy to misinterpret.

Clarified what it means to be approximately equal.

nearest_po2 does not do what the descriptions says it does. For one,
it returns the same power if the input is a power of 2. Second, it
returns 0 if the input is negative or 0, while the smallest possible
integral power of 2 actually is 1 (2^0 = 1). Due to the implementation
and how it is used in a lot of places, it does not seem wise to change
such a core function however, and I decided it is better to alter the
description of the built-in.

Added a few examples/clarifications/edge-cases.
2020-07-25 20:26:02 +02:00
Ignacio Etcheverry ced77b1e9b C#: Switch games to MSBuild Sdks and .NET Standard
Godot.NET.Sdk
-------------

Godot uses its own custom MSBuild Sdk for game
projects. This new Sdk adds its own functionality
on top of 'Microsoft.NET.Sdk'.

The new Sdk is resolved from the NuGet package.

All the default boilerplate was moved from game
projects to the Sdk. The default csproj for
game project can now be as simple as:

```
<Project Sdk="Godot.NET.Sdk/4.0.0-dev2">
  <PropertyGroup>
    <TargetFramework>netstandard2.1</TargetFramework>
  </PropertyGroup>
</Project>
```

Source files are included by automatically so
Godot no longer needs to keep the csproj in sync
when creating new source files.

Define constants
----------------

Godot defines a list of constants for conditional
compilation. When exporting games, this list also
included engine 'features' and platform 'bits'.
There were a few problems with that:

- The 'features' constants were only defined when
  exporting games. Not when building the game for
  running in the editor player.
- If the project was built externally by an IDE,
  the constants wouldn't be defined at all.

The new Sdk assigns default values to these
constants when not built from the Godot editor,
i.e.: when built from an IDE or from the command
line. The default define constants are determined
from the system MSBuild is running on.

However, it's not possible for MSBuild to
determine the set of supported engine features.
It's also not possible to determine if a project
is being built to run on a 32-bit or 64-bit
Godot executable.

As such the 'features' and 'bits' constants had
to be removed.
The benefit of checking those at compile time
was questionable, and they can still be checked
at runtime.

The new list of define constants includes:

- GODOT
- GODOT_<PLATFORM>
  Defaults to the platform MSBuild is running on.
- GODOT_<PC/MOBILE/WEB>
- TOOLS
  When building with the 'Debug' configuration
  (editor and editor player).
- GODOT_REAL_T_IS_DOUBLE
  Not defined by default unless $(GodotRealTIsDouble)
  is overriden to be 'true'.

.NET Standard
-------------

The target framework of game projects was changed
to 'netstandard2.1'.
2020-07-25 19:22:01 +02:00
Rémi Verschelde 6f292f906e
Merge pull request #38900 from bruvzg/docs_ignore_os_spec_def_vals
Docs: Ignore OS specific values (constants, project settings, properties)
2020-07-25 18:54:25 +02:00
Rémi Verschelde 58bde149cc
Merge pull request #40698 from vnen/gscript-allow-new-call
Allow "new()" to be called in non-static functions
2020-07-25 18:36:19 +02:00
Rémi Verschelde 325af10d01
Merge pull request #40696 from Xrayez/scons-tests
SCons: Add `tests` option to enable or disable unit tests
2020-07-25 18:11:45 +02:00
Andrii Doroshenko (Xrayez) f6465f46b4 SCons: Add `tests` option to enable or disable unit tests 2020-07-25 18:44:18 +03:00
Rémi Verschelde 5f75cec59e
Merge pull request #40640 from Xrayez/base-begins-with-local-err
Skip internal scripts for breakpoints without printing an error
2020-07-25 13:00:02 +02:00
Rémi Verschelde 46831b40e1
Merge pull request #40485 from Rubonnek/fix-nowarn-deferred-call
Show errors on Object.call_deferred
2020-07-25 12:37:20 +02:00
Rémi Verschelde be083d5d0d
Merge pull request #40668 from SecretPanda420/patch-1
Remove Travis CI and AppVeyor build badge
2020-07-25 10:35:06 +02:00
Wilson E. Alvarez 1cd02ef600
Show errors on Object.call_deferred 2020-07-24 21:47:01 -04:00
Rémi Verschelde 963d3a07bd
Merge pull request #40610 from amanj120/forward_port_bundle_pr_manifest
Write AndroidManifest.xml file for Gradle project
2020-07-24 23:35:29 +02:00
Rémi Verschelde 79ac3bd01d
Merge pull request #40660 from SkyLucilfer/TTRFix
Fix TTR misuse
2020-07-24 22:44:58 +02:00
PouleyKetchoupp a2dd966301 Fix virtual keyboard height regression
Disabling virtual keyboard focus adjustement caused get_keyboard_height
to always return 0 because it was calculated when the view is resized.

In order to fix it, a PopupWindow is now created on top of the main view
and is set for focus adjustments so the keyboard size can be calculated
based on this popup without affecting the main view.
2020-07-24 19:54:06 +02:00
George Marques 2b9d9bc364
Remove multilevel calls
In general they are more confusing to users because they expect
inheritance to fully override parent methods. This behavior can be
enabled by script writers using a simple super() call.
2020-07-24 14:13:58 -03:00
Aman Jain e53067c42e Write an AndroidManifest.xml file to be merged with app module's manifest. 2020-07-24 12:53:27 -04:00
George Marques e6b44b93c3
GDScript: Allow "new()" to be called in non-static functions 2020-07-24 13:45:23 -03:00
Secret Panda 9838f2ff93
Remove Travis CI and AppVeyor build badge
Travis CI and AppVeyor are phased out in 431930bd09 hence there is no point in keeping a badge of it in `README.md`
2020-07-24 22:11:57 +05:30
Rémi Verschelde b7dc08fcf6
Merge pull request #40663 from bruvzg/fix-macos-arm64-build
[macOS] Fix build for ARM64.
2020-07-24 17:27:35 +02:00
bruvzg 09f301029a
[macOS / ARM64] Remove "-msse2" flag from ARM64 release export template build. Add ARM64 breakpoint inline assembly to "doctest". 2020-07-24 17:54:34 +03:00
Rémi Verschelde 5287124b72
Merge pull request #40661 from RevoluPowered/fix_argument_edit_doctest_pr
Fix godot not starting
2020-07-24 16:03:05 +02:00
Gordon MacPherson a55b10a053 fix crash on shutdown 2020-07-24 14:48:14 +01:00
Gordon MacPherson 2bdbdc4702 Fix arguments always being found and returned some items back to normal 2020-07-24 14:16:02 +01:00
SkyJJ 280d4e2965 Fix TTR misuse 2020-07-24 15:15:23 +02:00
Rémi Verschelde 3f1fc5af7a
Merge pull request #40148 from RevoluPowered/unit-test-revamp
Added doctest unit test framework
2020-07-24 14:55:22 +02:00
Marcel Admiraal 236857c92a Ensure Bullet HeightMapShape3D data width and depth are at least 2. 2020-07-24 13:40:26 +01:00
RevoluPowered 579342810f t Add unit testing to Godot using DocTest and added to GitHub Actions CI
Implements exit codes into the engine so tests can return their statuses.
Ideally we don't do this, and we use FIXUP logic to 'begin' and 'end' the engine execution for tests specifically.

Since realistically we're initialising the engine here we don't want to do that, since String should not require an engine startup to test a single header.

This lowers the complexity of running the unit tests and even for
physics should be possible to implement such a fix.
2020-07-24 13:05:33 +01:00
Rémi Verschelde 27d1209282
Merge pull request #38088 from YeldhamDev/name_tooltips_tweaks
Small naming and tooltip tweaks
2020-07-24 13:57:13 +02:00
Rémi Verschelde 513b39882a
Merge pull request #40436 from DanielZTing/master
Evenly distribute stretched Nodes in BoxContainer
2020-07-24 13:47:18 +02:00
Rémi Verschelde 93b50a62e3
Merge pull request #40652 from akien-mga/ci-more-cache-key
CI: Fix cache key and include base branch
2020-07-24 09:32:48 +02:00
Rémi Verschelde 2cf5ad9ea9 CI: Fix cache key and include base branch
The base branch is hardcoded as an env variable as I couldn't find a simple
way to just get either `3.2` or `master`. But it's easy to change when we
branch off from `master` to a new stable branch, which doesn't happen often.

(There's `{{github.base_ref}}` but it's probably more verbose like
`ref/heads/master`, and only valid for PRs.)
2020-07-24 08:28:43 +02:00
Rémi Verschelde 422a2da8c7
Merge pull request #40648 from RevoluPowered/github_actions_cache_fixes
GitHub actions cache fixes
2020-07-24 07:30:26 +02:00