Find a file
Pedro J. Estébanez 18fbdbb456 Reimplement Mutex with C++'s <mutex>
Main:
- It's now implemented thanks to `<mutex>`. No more platform-specific implementations.
- `BinaryMutex` (non-recursive) is added, as an alternative for special cases.
- Doesn't need allocation/deallocation anymore. It can live in the stack and be part of other classes.
- Because of that, it's methods are now `const` and the inner mutex is `mutable` so it can be easily used in `const` contexts.
- A no-op implementation is provided if `NO_THREADS` is defined. No more need to add `#ifdef NO_THREADS` just for this.
- `MutexLock` now takes a reference. At this point the cases of null `Mutex`es are rare. If you ever need that, just don't use `MutexLock`.
- Thread-safe utilities are therefore simpler now.

Misc.:
- `ScopedMutexLock` is dropped and replaced by `MutexLock`, because they were pretty much the same.
- Every case of lock, do-something, unlock is replaced by `MutexLock` (complex cases where it's not straightfoward are kept as as explicit lock and unlock).
- `ShaderRD` contained an `std::mutex`, which has been replaced by `Mutex`.
2020-02-26 20:40:10 +01:00
.github Delete ISSUE_TEMPLATE.md 2019-09-04 15:29:49 -03:00
core Reimplement Mutex with C++'s <mutex> 2020-02-26 20:40:10 +01:00
doc Merge pull request #36536 from Chaosus/vs_int 2020-02-26 10:11:24 +01:00
drivers Reimplement Mutex with C++'s <mutex> 2020-02-26 20:40:10 +01:00
editor Reimplement Mutex with C++'s <mutex> 2020-02-26 20:40:10 +01:00
main Merge pull request #36551 from AndreaCatania/navigation_destruction_flush 2020-02-26 10:09:43 +01:00
misc SCons: Bump required C++ standard to C++17 2020-02-22 20:00:21 +01:00
modules Reimplement Mutex with C++'s <mutex> 2020-02-26 20:40:10 +01:00
platform Reimplement Mutex with C++'s <mutex> 2020-02-26 20:40:10 +01:00
scene Reimplement Mutex with C++'s <mutex> 2020-02-26 20:40:10 +01:00
servers Reimplement Mutex with C++'s <mutex> 2020-02-26 20:40:10 +01:00
thirdparty glslang: Remove unused revision.template 2020-02-19 05:41:47 -03:00
.appveyor.yml Update .appveyor.yml. 2020-02-19 07:04:34 +01:00
.clang-format clang-format: Set standard for ObjC++ 2019-02-09 12:20:24 +01:00
.editorconfig Include SConstruct in .editorconfig 2019-05-26 18:49:55 +02:00
.gitattributes Git: Explicitly list binary files as such to avoid EOL change 2019-05-25 10:43:48 +02:00
.gitignore Added support to allow to compile Godot from the same directory while using different versions of python 2020-01-01 11:52:11 +01:00
.mailmap Update AUTHORS and DONORS list 2020-01-27 12:20:18 +01:00
.travis.yml Travis: Use Python 3.8 alias instead of specific version 2020-02-25 10:30:51 +01:00
AUTHORS.md Update AUTHORS and DONORS list 2020-01-27 12:20:18 +01:00
CHANGELOG.md Changelog: Mention 3.2 changes to TileMap features 2020-02-05 15:10:58 +01:00
CODE_OF_CONDUCT.md Add a link to the code of conduct in the repository 2019-12-22 18:05:24 +01:00
compat.py fixed building using scons with python3 2018-05-28 18:41:16 +01:00
CONTRIBUTING.md Improve CONTRIBUTING.md and update it to follow recent changes 2020-02-01 09:57:32 +01:00
COPYRIGHT.txt Remove incomplete battery status/power API 2020-02-14 13:43:32 +01:00
DONORS.md Update AUTHORS and DONORS list 2020-01-27 12:20:18 +01:00
gles_builders.py Remove obsolete GLES3 backend 2020-02-13 10:36:44 +01:00
icon.png Optimize images losslessly using oxipng -o6 --strip all --zopfli 2018-06-28 19:17:41 +02:00
icon.svg Use new Godot icon consistently everywhere 2017-05-17 19:53:59 +02:00
LICENSE.txt Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
logo.png Optimize images losslessly using oxipng -o6 --strip all --zopfli 2018-06-28 19:17:41 +02:00
logo.svg Use new Godot icon consistently everywhere 2017-05-17 19:53:59 +02:00
LOGO_LICENSE.md Improve documentation of thirdparty code snippets 2017-05-07 11:42:37 +02:00
methods.py SCons: Re-allow upcoming GCC 8.4, fixes C++17 copy elision 2020-02-26 09:06:39 +01:00
platform_methods.py Fixed short circuiting on non-Windows platforms 2018-07-30 23:55:15 +02:00
README.md Added LGTM Alert Badge 2020-02-06 23:29:54 +05:30
SConstruct SCons: Re-allow upcoming GCC 8.4, fixes C++17 copy elision 2020-02-26 09:06:39 +01:00
version.py Bump version to 4.0-dev 2020-01-29 13:37:17 +01:00

Godot Engine logo

Godot Engine

Homepage: https://godotengine.org

2D and 3D cross-platform game engine

Godot Engine is a feature-packed, cross-platform game engine to create 2D and 3D games from a unified interface. It provides a comprehensive set of common tools, so that users can focus on making games without having to reinvent the wheel. Games can be exported in one click to a number of platforms, including the major desktop platforms (Linux, Mac OSX, Windows) as well as mobile (Android, iOS) and web-based (HTML5) platforms.

Free, open source and community-driven

Godot is completely free and open source under the very permissive MIT license. No strings attached, no royalties, nothing. The users' games are theirs, down to the last line of engine code. Godot's development is fully independent and community-driven, empowering users to help shape their engine to match their expectations. It is supported by the Software Freedom Conservancy not-for-profit.

Before being open sourced in February 2014, Godot had been developed by Juan Linietsky and Ariel Manzur (both still maintaining the project) for several years as an in-house engine, used to publish several work-for-hire titles.

Screenshot of a 3D scene in Godot Engine

Getting the engine

Binary downloads

Official binaries for the Godot editor and the export templates can be found on the homepage.

Compiling from source

See the official docs for compilation instructions for every supported platform.

Community and contributing

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.

To get in touch with the developers, the best way is to join the #godotengine IRC channel on Freenode.

To get started contributing to the project, see the contributing guide.

Documentation and demos

The official documentation is hosted on ReadTheDocs. It is maintained by the Godot community in its own GitHub repository.

The class reference is also accessible from within the engine.

The official demos are maintained in their own GitHub repository as well.

There are also a number of other learning resources provided by the community, such as text and video tutorials, demos, etc. Consult the community channels for more info.

Travis Build Status AppVeyor Build Status Code Triagers Badge Translate on Weblate Total alerts on LGTM