From dff6752ac856bab2e39b182b3c9728a723184443 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Tue, 10 Oct 2023 10:48:39 +0200 Subject: [PATCH] Cleanup various repository documentation files - Reformat logo license as a plain text file. - Fix outdated links or references to SFC or Visual Script. - Tweak contents of `CONTRIBUTING.md` to highlight contributor docs more prominently, and make it easier to parse. - Tweak formatting and contents in `thirdparty/README.md` for consistency. --- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- CONTRIBUTING.md | 206 ++++++++++-------- COPYRIGHT.txt | 4 +- LOGO_LICENSE.md | 5 - LOGO_LICENSE.txt | 5 + README.md | 20 +- thirdparty/README.md | 198 +++++++++-------- thirdparty/cvtt/etc_notes.txt | 27 --- .../{ => patches}/clipper-exceptions.patch | 0 .../noise/{FastNoise-LICENSE => LICENSE} | 0 10 files changed, 243 insertions(+), 224 deletions(-) delete mode 100644 LOGO_LICENSE.md create mode 100644 LOGO_LICENSE.txt delete mode 100644 thirdparty/cvtt/etc_notes.txt rename thirdparty/misc/{ => patches}/clipper-exceptions.patch (100%) rename thirdparty/noise/{FastNoise-LICENSE => LICENSE} (100%) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 0ce3f68abec..449d2159f1d 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -59,7 +59,7 @@ body: - A small Godot project which reproduces the issue, with no unnecessary files included. Be sure to not include the `.godot` folder in the archive (but keep `project.godot`). - Required, unless the reproduction steps are trivial and don't require any project files to be followed. In this case, write "N/A" in the field. - Drag and drop a ZIP archive to upload it. **Do not select another field until the project is done uploading.** - - **Note for C# users:** If your issue is *not* Mono-specific, please upload a minimal reproduction project written in GDScript or VisualScript. This will make it easier for contributors to reproduce the issue locally as not everyone has a Mono setup available. + - **Note for C# users:** If your issue is *not* C#-specific, please upload a minimal reproduction project written in GDScript. This will make it easier for contributors to reproduce the issue locally as not everyone has a .NET setup available. - **If you've been asked by a maintainer to upload a minimal reproduction project, you *must* do so within 7 days.** Otherwise, your bug report will be closed as it'll be considered too difficult to diagnose. validations: required: true diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 30934dcf9b4..4c76101ebc8 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,11 +1,17 @@ -# How to contribute efficiently +# Contributors guidelines + +This document summarizes the most important points for people interested in +contributing to Godot, especially via bug reports or pull requests. + +The Godot documentation has a dedicated [Contributing section](https://docs.godotengine.org/en/latest/contributing/ways_to_contribute.html) +which details these points and more, and is a recommended read. ## Table of contents - [Reporting bugs](#reporting-bugs) - [Proposing features or improvements](#proposing-features-or-improvements) - [Contributing pull requests](#contributing-pull-requests) -- [Contributing to Godot's translation](#contributing-to-godots-translation) +- [Contributing to Godot translations](#contributing-to-godot-translations) - [Communicating with developers](#communicating-with-developers) ## Reporting bugs @@ -13,16 +19,26 @@ Report bugs [here](https://github.com/godotengine/godot/issues/new?assignees=&labels=&template=bug_report.yml). Please follow the instructions in the template when you do. +Notably, please include a Minimal Reproduction Project (MRP), which is a small +Godot project which reproduces the issue, with no unnecessary files included. +Be sure to not include the `.godot` folder in the archive to save space. + +Make sure that the bug you are experiencing is reproducible in the latest Godot +releases. You can find an overview of all Godot releases [on the website](https://godotengine.org/download/archive/) +to confirm whether your current version is the latest one. It's worth testing +against both the latest stable release and the latest dev snapshot for the next +Godot release. + +If you run into a bug which wasn't present in an earlier Godot version (what we +call a _regression_), please mention it and clarify which versions you tested +(both the one(s) working and the one(s) exhibiting the bug). + ## Proposing features or improvements -**Since August 2019, the main issue tracker no longer accepts feature proposals.** -Instead, head to the [Godot Proposals repository](https://github.com/godotengine/godot-proposals) -and follow the instructions in the README file. High-quality feature proposals -are more likely to be well-received by the maintainers and community, so do -your best :) +**The main issue tracker is for bug reports and does not accept feature proposals.** -See [this article](https://godotengine.org/article/introducing-godot-proposals-repository) -for detailed rationale on this change. +Instead, head to the [Godot Proposals repository](https://github.com/godotengine/godot-proposals) +and follow the instructions in the README file and issue template. ## Contributing pull requests @@ -39,10 +55,9 @@ 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 what would be the best fix. -[This blog post](https://godotengine.org/article/will-your-contribution-be-merged-heres-how-tell) -outlines the process used by core developers when assessing PRs. We strongly -recommend that you have a look at it to know what's important to take into -account for a PR to be considered for merging. +You can refer to the [Pull request review process](https://docs.godotengine.org/en/latest/contributing/workflow/pr_review_guidelines.html) +for insights into the intended lifecycle of pull requests. This should help you +ensure that your pull request fulfills the requirements. In addition to the following tips, also take a look at the [Engine development guide](https://docs.godotengine.org/en/latest/contributing/development/index.html) @@ -50,7 +65,79 @@ for an introduction to developing on Godot. The [Contributing docs](https://docs.godotengine.org/en/latest/contributing/ways_to_contribute.html) also have important information on the [PR workflow](https://docs.godotengine.org/en/latest/contributing/workflow/pr_workflow.html) -and the [code style](https://docs.godotengine.org/en/latest/contributing/development/code_style_guidelines.html) we use. +(with a helpful guide for Git usage), and our [Code style guidelines](https://docs.godotengine.org/en/latest/contributing/development/code_style_guidelines.html) +which all contributions need to follow. + +### Be mindful of your commits + +Try to make simple PRs that handle one specific topic. Just like for reporting +issues, it's better to open 3 different PRs that each address a different issue +than one big PR with three commits. This makes it easier to review, approve, and +merge the changes independently. + +When updating your fork with upstream changes, please use ``git pull --rebase`` +to avoid creating "merge commits". Those commits unnecessarily pollute the git +history when coming from PRs. + +Also try to make commits that bring the engine from one stable state to another +stable state, i.e. if your first commit has a bug that you fixed in the second +commit, try to merge them together before making your pull request. This +includes fixing build issues or typos, adding documentation, etc. + +See our [PR workflow](https://docs.godotengine.org/en/latest/contributing/workflow/pr_workflow.html) +documentation for tips on using Git, amending commits and rebasing branches. + +This [Git style guide](https://github.com/agis-/git-style-guide) also has some +good practices to have in mind. + +### Format your commit messages with readability in mind + +The way you format your commit messages is quite important to ensure that the +commit history and changelog will be easy to read and understand. A Git commit +message is formatted as a short title (first line) and an extended description +(everything after the first line and an empty separation line). + +The short title is the most important part, as it is what will appear in the +changelog or in the GitHub interface unless you click the "expand" button. +Try to keep that first line under 72 characters, but you can go slightly above +if necessary to keep the sentence clear. + +It should be written in English, starting with a capital letter, and usually +with a verb in imperative form. A typical bugfix would start with "Fix", while +the addition of a new feature would start with "Add". A prefix can be added to +specify the engine area affected by the commit. Some examples: + +- Add C# iOS support +- Show doc tooltips when hovering properties in the theme editor +- Fix GLES3 instanced rendering color and custom data defaults +- Core: Fix `Object::has_method()` for script static methods + +If your commit fixes a reported issue, please include it in the _description_ +of the commit (not in the title) using one of the +[GitHub closing keywords](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue) +such as "Fixes #1234". This will cause the issue to be closed automatically if +the PR is merged. + +Here's an example of a well-formatted commit message (note how the extended +description is also manually wrapped at 80 chars for readability): + +```text +Prevent French fries carbonization by fixing heat regulation + +When using the French fries frying module, Godot would not regulate the heat +and thus bring the oil bath to supercritical liquid conditions, thus causing +unwanted side effects in the physics engine. + +By fixing the regulation system via an added binding to the internal feature, +this commit now ensures that Godot will not go past the ebullition temperature +of cooking oil under normal atmospheric conditions. + +Fixes #1340. +``` + +**Note:** When using the GitHub online editor or its drag-and-drop +feature, *please* edit the commit title to something meaningful. Commits named +"Update my_file.cpp" won't be accepted. ### Document your changes @@ -59,14 +146,14 @@ scripting APIs, you **must** update the class reference to document those. This is to ensure the documentation coverage doesn't decrease as contributions are merged. -[Update documentation XML files](https://docs.godotengine.org/en/latest/contributing/documentation/updating_the_class_reference.html#updating-class-reference-when-working-on-the-engine) +[Update documentation XML files](https://docs.godotengine.org/en/latest/contributing/documentation/updating_the_class_reference.html) using your compiled binary, then fill in the descriptions. Follow the style guide described in the -[Writing guidelines](https://docs.godotengine.org/en/latest/contributing/documentation/docs_writing_guidelines.html). +[Documentation writing guidelines](https://docs.godotengine.org/en/latest/contributing/documentation/docs_writing_guidelines.html). If your pull request modifies parts of the code in a non-obvious way, make sure to add comments in the code as well. This helps other people understand the -change without having to look at `git blame`. +change without having to dive into the Git history. ### Write unit tests @@ -91,74 +178,13 @@ existing tests as well. See [Unit testing](https://docs.godotengine.org/en/latest/contributing/development/core_and_modules/unit_testing.html) for information on writing tests in Godot's C++ codebase. -### Be nice to the Git history +## Contributing to Godot translations -Try to make simple PRs that handle one specific topic. Just like for reporting -issues, it's better to open 3 different PRs that each address a different issue -than one big PR with three commits. +You can contribute to Godot translations on [Hosted Weblate](https://hosted.weblate.org/projects/godot-engine/), +an open source and web-based translation platform. -When updating your fork with upstream changes, please use ``git pull --rebase`` -to avoid creating "merge commits". Those commits unnecessarily pollute the git -history when coming from PRs. - -Also try to make commits that bring the engine from one stable state to another -stable state, i.e. if your first commit has a bug that you fixed in the second -commit, try to merge them together before making your pull request (see ``git -rebase -i`` and relevant help about rebasing or amending commits on the -Internet). - -This [Git style guide](https://github.com/agis-/git-style-guide) has some -good practices to have in mind. - -See our [PR workflow](https://docs.godotengine.org/en/latest/contributing/workflow/pr_workflow.html) -documentation for tips on using Git, amending commits and rebasing branches. - -### Format your commit messages with readability in mind - -The way you format your commit messages is quite important to ensure that the -commit history and changelog will be easy to read and understand. A Git commit -message is formatted as a short title (first line) and an extended description -(everything after the first line and an empty separation line). - -The short title is the most important part, as it is what will appear in the -`shortlog` changelog (one line per commit, so no description shown) or in the -GitHub interface unless you click the "expand" button. As the name says, try to -keep that first line under 72 characters. It should describe what the commit -does globally, while details would go in the description. Typically, if you -can't keep the title short because you have too much stuff to mention, it means -you should probably split your changes in several commits :) - -Here's an example of a well-formatted commit message (note how the extended -description is also manually wrapped at 80 chars for readability): - -```text -Prevent French fries carbonization by fixing heat regulation - -When using the French fries frying module, Godot would not regulate the heat -and thus bring the oil bath to supercritical liquid conditions, thus causing -unwanted side effects in the physics engine. - -By fixing the regulation system via an added binding to the internal feature, -this commit now ensures that Godot will not go past the ebullition temperature -of cooking oil under normal atmospheric conditions. - -Fixes #1789, long live the Realm! -``` - -**Note:** When using the GitHub online editor or its drag-and-drop -feature, *please* edit the commit title to something meaningful. Commits named -"Update my_file.cpp" won't be accepted. - -## Contributing to Godot's translation - -You can contribute to Godot's translation from the [Hosted -Weblate](https://hosted.weblate.org/projects/godot-engine/godot), an open -source and web-based translation platform. Please refer to the [translation -readme](editor/translations/README.md) for more information. - -You can also help translate [Godot's -documentation](https://hosted.weblate.org/projects/godot-engine/godot-docs/) -on Weblate. +Please refer to our [editor and documentation localization guidelines](https://docs.godotengine.org/en/latest/contributing/documentation/editor_and_docs_localization.html) +for an overview of the translation resources and what they correspond to. ## Communicating with developers @@ -171,15 +197,13 @@ or a bug you want to fix), the following channels can be used: - [Godot Contributors Chat](https://chat.godotengine.org): You will find most core developers there, so it's the go-to platform for direct chat - about Godot Engine development. Feel free to start discussing something there - to get some early feedback before writing up a detailed proposal in a GitHub - issue. + about Godot Engine development. Browse the [Directory](https://chat.godotengine.org/directory/channels) + for an overview of public channels focusing on various engine areas which you + might be interested in. - [Bug tracker](https://github.com/godotengine/godot/issues): If there is an - existing issue about a topic you want to discuss, just add a comment to it - - many developers watch the repository and will get a notification. You can - also create a new issue - please keep in mind to create issues only to - discuss quite specific points about the development, and not general user - feedback or support requests. + existing issue about a topic you want to discuss, you can participate directly. + If not, you can open a new issue. Please mind the guidelines outlined above + for bug reporting. - [Feature proposals](https://github.com/godotengine/godot-proposals/issues): To propose a new feature, we have a dedicated issue tracker for that. Don't hesitate to start by talking about your idea on the Godot Contributors Chat diff --git a/COPYRIGHT.txt b/COPYRIGHT.txt index 5d0c41698f8..fe046863fcd 100644 --- a/COPYRIGHT.txt +++ b/COPYRIGHT.txt @@ -383,7 +383,7 @@ License: Expat Files: ./thirdparty/noise/FastNoiseLite.h Comment: FastNoise Lite Copyright: 2020, Jordan Peck and contributors -License: MIT +License: Expat Files: ./thirdparty/misc/pcg.cpp ./thirdparty/misc/pcg.h @@ -428,7 +428,7 @@ License: BSD-2-clause Files: ./thirdparty/msdfgen/ Comment: Multi-channel signed distance field generator Copyright: 2016-2022, Viktor Chlumsky -License: MIT +License: Expat Files: ./thirdparty/nvapi/nvapi_minimal.h Comment: Stripped down version of "nvapi.h" from the NVIDIA NVAPI SDK diff --git a/LOGO_LICENSE.md b/LOGO_LICENSE.md deleted file mode 100644 index 52ee37fb2f3..00000000000 --- a/LOGO_LICENSE.md +++ /dev/null @@ -1,5 +0,0 @@ -Godot Engine Logo -Copyright (c) 2017 Andrea CalabrĂ³ - -This work is licensed under a Creative Commons Attribution 4.0 International -License (CC-BY-4.0 International) . diff --git a/LOGO_LICENSE.txt b/LOGO_LICENSE.txt new file mode 100644 index 00000000000..9d7c7f00c58 --- /dev/null +++ b/LOGO_LICENSE.txt @@ -0,0 +1,5 @@ +Godot Engine Logo +Copyright (c) 2017 Andrea CalabrĂ³ + +This work is licensed under the Creative Commons Attribution 4.0 International +license (CC BY 4.0 International): https://creativecommons.org/licenses/by/4.0/ diff --git a/README.md b/README.md index e1cdae2f0ee..46a9b2362c1 100644 --- a/README.md +++ b/README.md @@ -10,11 +10,11 @@ **[Godot Engine](https://godotengine.org) 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](https://godotengine.org/features), so that users can focus on making games -without having to reinvent the wheel. Games can be exported with one click to a -number of platforms, including the major desktop platforms (Linux, macOS, -Windows), mobile platforms (Android, iOS), as well as Web-based platforms -and [consoles](https://docs.godotengine.org/en/latest/tutorials/platform/consoles.html). +comprehensive set of [common tools](https://godotengine.org/features), so that +users can focus on making games without having to reinvent the wheel. Games can +be exported with one click to a number of platforms, including the major desktop +platforms (Linux, macOS, Windows), mobile platforms (Android, iOS), as well as +Web-based platforms and [consoles](https://docs.godotengine.org/en/latest/tutorials/platform/consoles.html). ## Free, open source and community-driven @@ -22,13 +22,14 @@ 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](https://sfconservancy.org/) +expectations. It is supported by the [Godot Foundation](https://godot.foundation/) not-for-profit. Before being open sourced in [February 2014](https://github.com/godotengine/godot/commit/0b806ee0fc9097fa7bda7ac0109191c9c5e0a1ac), Godot had been developed by [Juan Linietsky](https://github.com/reduz) and -[Ariel Manzur](https://github.com/punto-) (both still maintaining the project) for several -years as an in-house engine, used to publish several work-for-hire titles. +[Ariel Manzur](https://github.com/punto-) (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 the Godot Engine editor](https://raw.githubusercontent.com/godotengine/godot-design/master/screenshots/editor_tps_demo_1920x1080.jpg) @@ -37,7 +38,7 @@ years as an in-house engine, used to publish several work-for-hire titles. ### Binary downloads Official binaries for the Godot editor and the export templates can be found -[on the homepage](https://godotengine.org/download). +[on the Godot website](https://godotengine.org/download). ### Compiling from source @@ -53,6 +54,7 @@ The best way to get in touch with the core engine developers is to join the [Godot Contributors Chat](https://chat.godotengine.org). To get started contributing to the project, see the [contributing guide](CONTRIBUTING.md). +This document also includes guidelines for reporting bugs. ## Documentation and demos diff --git a/thirdparty/README.md b/thirdparty/README.md index 7b2b20ec843..8a0f36a3842 100644 --- a/thirdparty/README.md +++ b/thirdparty/README.md @@ -94,8 +94,8 @@ Files extracted from upstream source: ## clipper2 - Upstream: https://github.com/AngusJohnson/Clipper2 -- Version: 1.2.2 (756c5079aacab5837e812a143c59dc48a09f22e7, 2023) -- License: Boost Software License 1.0 +- Version: 1.2.2 (756c5079aacab5837e812a143c59dc48a09f22e7, 2023) +- License: BSL 1.0 Files extracted from upstream source: @@ -111,7 +111,8 @@ Files extracted from upstream source: Files extracted from upstream source: -- all .cpp, .h, and .txt files except the folders MakeTables and etc2packer. +- All `.cpp` and `.h` files except the folders `MakeTables` and `etc2packer` +- `LICENSE.txt` Changes related to BC6H packing and unpacking made upstream in https://github.com/elasota/cvtt/commit/2e4b6b2747aec11f4cc6dd09ef43fa8ce769f6e2 @@ -139,7 +140,7 @@ Files extracted from upstream source: Files extracted from upstream: -- All cpp files listed in `modules/raycast/godot_update_embree.py` +- All `.cpp` files listed in `modules/raycast/godot_update_embree.py` - All header files in the directories listed in `modules/raycast/godot_update_embree.py` The `modules/raycast/godot_update_embree.py` script can be used to pull the @@ -153,26 +154,26 @@ commits. ## enet -- Upstream: http://enet.bespin.org +- Upstream: https://github.com/lsalzman/enet - Version: git (ea4607a90dbfbcf4da2669ea998585253d8e70b1, 2023) - License: MIT Files extracted from upstream source: -- all .c files in the main directory (except unix.c win32.c) -- the include/enet/ folder as enet/ (except unix.h win32.h) -- LICENSE file +- All `.c` files in the main directory (except `unix.c` and `win32.c`) +- The `include/enet/` folder as `enet/` (except `unix.h` and `win32.h`) +- `LICENSE` file -Important: enet.h, host.c, protocol.c have been slightly modified +Important: `enet.h`, `host.c`, `protocol.c` have been slightly modified to be usable by Godot's socket implementation and allow IPv6 and DTLS. Apply the patches in the `patches/` folder when syncing on newer upstream commits. -Three files (godot.cpp, enet/godot.h, enet/godot_ext.h) have been added to provide -enet socket implementation using Godot classes. +Three files (`godot.cpp`, `enet/godot.h`, `enet/godot_ext.h`) have been added to +provide ENet socket implementation using Godot classes. -It is still possible to build against a system wide ENet but doing so -will limit its functionality to IPv4 only. +It is still possible to build against a system wide ENet but doing so will limit +its functionality to IPv4 only. ## etcpak @@ -253,8 +254,12 @@ Files extracted from upstream source: * Upstream: https://fonts.google.com/specimen/Open+Sans * Version: 1.10 (downloaded from Google Fonts in February 2021) * License: Apache 2.0 -- All fonts are converted from the unhinted `.ttf` sources using `https://github.com/google/woff2` tool. -- Comment: Use UI font variant if available, because it has tight vertical metrics and good for UI. + +All fonts are converted from the unhinted `.ttf` sources using the +`https://github.com/google/woff2` tool. + +Use UI font variant if available, because it has tight vertical metrics and good +for UI. ## freetype @@ -315,7 +320,7 @@ Files extracted from upstream source: - Run `cmake . && make` and copy generated `include/glslang/build_info.h` to `glslang/build_info.h` - `LICENSE.txt` -- Unnecessary files like `CMakeLists.txt`, `*.m4` and `updateGrammar` removed. +- Unnecessary files like `CMakeLists.txt`, `*.m4` and `updateGrammar` removed ## graphite @@ -326,8 +331,8 @@ Files extracted from upstream source: Files extracted from upstream source: -- the `include` folder -- the `src` folder (minus `CMakeLists.txt` and `files.mk`) +- The `include` folder +- The `src` folder (minus `CMakeLists.txt` and `files.mk`) - `COPYING` @@ -340,9 +345,9 @@ Files extracted from upstream source: Files extracted from upstream source: - `AUTHORS`, `COPYING`, `THANKS` -- from the `src` folder, recursively - - all the `*.c`, `*.cc`, `*.h`, `*.hh` files - - _except_ `main.cc`, `harfbuzz*.cc`, `failing-alloc.c`, `test*.cc`, `hb-wasm*.*` +- From the `src` folder, recursively: + - All the `.c`, `.cc`, `.h`, `.hh` files + - Except `main.cc`, `harfbuzz*.cc`, `failing-alloc.c`, `test*.cc`, `hb-wasm*.*` ## icu4c @@ -353,22 +358,24 @@ Files extracted from upstream source: Files extracted from upstream source: -- the `common` folder +- The `common` folder - `scriptset.*`, `ucln_in.*`, `uspoof.cpp"` and `uspoof_impl.cpp` from the `i18n` folder - `uspoof.h` from the `i18n/unicode` folder - `LICENSE` Files generated from upstream source: -- the `icudt73l.dat` built with the provided `godot_data.json` config file (see +- The `icudt73l.dat` built with the provided `godot_data.json` config file (see https://github.com/unicode-org/icu/blob/master/docs/userguide/icu_data/buildtool.md for instructions). -- Step 1: Download and extract both `icu4c-{version}-src.tgz` and `icu4c-{version}-data.zip` (replace `data` subfolder from the main source archive). -- Step 2: Build ICU with default options - `./runConfigureICU {PLATFORM} && make`. -- Step 3: Reconfigure ICU with custom data config - `ICU_DATA_FILTER_FILE={GODOT_SOURCE}/thirdparty/icu4c/godot_data.json ./runConfigureICU {PLATFORM} --with-data-packaging=common`. -- Step 4: Delete `data/out` folder and rebuild data - `cd data && rm -rf ./out && make`. -- Step 5: Copy `source/data/out/icudt73l.dat` to the `{GODOT_SOURCE}/thirdparty/icu4c/icudt73l.dat`. +1. Download and extract both `icu4c-{version}-src.tgz` and `icu4c-{version}-data.zip` + (replace `data` subfolder from the main source archive) +2. Build ICU with default options: `./runConfigureICU {PLATFORM} && make` +3. Reconfigure ICU with custom data config: + `ICU_DATA_FILTER_FILE={GODOT_SOURCE}/thirdparty/icu4c/godot_data.json ./runConfigureICU {PLATFORM} --with-data-packaging=common` +4. Delete `data/out` folder and rebuild data: `cd data && rm -rf ./out && make` +5. Copy `source/data/out/icudt73l.dat` to the `{GODOT_SOURCE}/thirdparty/icu4c/icudt73l.dat` ## jpeg-compressor @@ -422,8 +429,8 @@ Files extracted from upstream source: Files extracted from upstream source: -- all .c and .h files of the main directory, except from - `example.c` and `pngtest.c` +- All `.c` and `.h` files of the main directory, except from `example.c` and + `pngtest.c` - `arm/`, `intel/` and `powerpc/` folders - `scripts/pnglibconf.h.prebuilt` as `pnglibconf.h` - `LICENSE` @@ -437,9 +444,9 @@ Files extracted from upstream source: Files extracted from upstream source: -- all .c, .h in lib/, except arm/ and c64x/ folders -- all .h files in include/theora/ as theora/ -- COPYING and LICENSE +- All `.c` and `.h` files in `lib/`, except `arm/` and `c64x/` folders +- All `.h` files in `include/theora/` as `theora/` +- `COPYING` and `LICENSE` ## libvorbis @@ -463,10 +470,11 @@ Files extracted from upstream source: Files extracted from upstream source: -- `src/` and `sharpyuv/` except from: `.am`, `.rc` and `.in` files +- `src/` and `sharpyuv/` except from `.am`, `.rc` and `.in` files - `AUTHORS`, `COPYING`, `PATENTS` -Patch `godot-node-debug-fix.patch` workarounds shadowing of godot's Node class in the MSVC debugger. +Patch `godot-node-debug-fix.patch` workarounds shadowing of Godot's Node class +in the MSVC debugger. ## mbedtls @@ -477,14 +485,17 @@ Patch `godot-node-debug-fix.patch` workarounds shadowing of godot's Node class i File extracted from upstream release tarball: -- All `*.h` from `include/mbedtls/` to `thirdparty/mbedtls/include/mbedtls/` except `config_psa.h` and `psa_util.h`. -- All `*.c` and `*.h` from `library/` to `thirdparty/mbedtls/library/` except those starting with `psa_*`. -- The `LICENSE` file. -- Applied the patch in `patches/windows-arm64-hardclock.diff`. - Applied the patch in `aesni-no-arm-intrinsics.patch` to fix MSVC ARM build. +- All `.h` from `include/mbedtls/` to `thirdparty/mbedtls/include/mbedtls/` + except `config_psa.h` and `psa_util.h` +- All `.c` and `.h` from `library/` to `thirdparty/mbedtls/library/` except + those starting with `psa_*` +- The `LICENSE` file +- Applied the patch in `patches/windows-arm64-hardclock.diff` + Applied the patch in `aesni-no-arm-intrinsics.patch` to fix MSVC ARM build - Added 2 files `godot_core_mbedtls_platform.c` and `godot_core_mbedtls_config.h` - providing configuration for light bundling with core. -- Added the file `godot_module_mbedtls_config.h` to customize the build configuration when bundling the full library. + providing configuration for light bundling with core +- Added the file `godot_module_mbedtls_config.h` to customize the build + configuration when bundling the full library ## meshoptimizer @@ -495,13 +506,13 @@ File extracted from upstream release tarball: Files extracted from upstream repository: -- All files in `src/`. -- `LICENSE.md`. +- All files in `src/` +- `LICENSE.md` An [experimental upstream feature](https://github.com/zeux/meshoptimizer/tree/simplify-attr), -has been backported. On top of that, it was modified to report only distance error metrics -instead of a combination of distance and attribute errors. Patches for both changes can be -found in the `patches` directory. +has been backported. On top of that, it was modified to report only distance +error metrics instead of a combination of distance and attribute errors. Patches +for both changes can be found in the `patches` directory. ## minimp3 @@ -571,10 +582,6 @@ Collection of single-file libraries used in Godot components. * Upstream: https://github.com/ariya/FastLZ * Version: 0.5.0 (4f20f54d46f5a6dd4fae4def134933369b7602d2, 2020) * License: MIT -- `hq2x.{cpp,h}` - * Upstream: https://github.com/brunexgeek/hqx - * Version: TBD, file structure differs - * License: Apache 2.0 - `ifaddrs-android.{cc,h}` * Upstream: https://chromium.googlesource.com/external/webrtc/stable/talk/+/master/base/ifaddrs-android.h * Version: git (5976650443d68ccfadf1dea24999ee459dd2819d, 2013) @@ -583,10 +590,6 @@ Collection of single-file libraries used in Godot components. * Upstream: https://archive.blender.org/wiki/index.php/Dev:Shading/Tangent_Space_Normal_Maps/ * Version: 1.0 (2011) * License: zlib -- `FastNoiseLite.h}` - * Upstream: https://github.com/Auburn/FastNoiseLite - * Version: git (6be3d6bf7fb408de341285f9ee8a29b67fd953f1, 2022) + custom changes - * License: MIT - `ok_color.h` * Upstream: https://github.com/bottosson/bottosson.github.io/blob/master/misc/ok_color.h * Version: git (d69831edb90ffdcd08b7e64da3c5405acd48ad2c, 2022) @@ -605,7 +608,7 @@ Collection of single-file libraries used in Godot components. * Version: git (7bdffb428b2b19ad1c43aa44c714dcc104177e84, 2021) * Modifications: Change from STL to Godot types (see provided patch). * License: MIT -- `r128.h` +- `r128.{c,h}` * Upstream: https://github.com/fahickman/r128 * Version: 1.4.4 (cf2e88fc3e7d7dfe99189686f914874cd0bda15e, 2020) * License: Public Domain or Unlicense @@ -614,7 +617,7 @@ Collection of single-file libraries used in Godot components. * Version: git (2f625846a775501fb69456567409a8b12f10ea25, 2012) * License: BSD-3-Clause * Modifications: use `const char*` instead of `char*` for input string -- `smolv.h` +- `smolv.{cpp,h}` * Upstream: https://github.com/aras-p/smol-v * Version: git (4b52c165c13763051a18e80ffbc2ee436314ceb2, 2020) * License: Public Domain or MIT @@ -637,17 +640,33 @@ Collection of single-file libraries used in Godot components. Files extracted from the upstream source: - `msdfgen.h` -- Files in `core/` folder. +- Files in `core/` folder - `LICENSE.txt` +## noise + +- Upstream: https://github.com/Auburn/FastNoiseLite +- Version: git (6be3d6bf7fb408de341285f9ee8a29b67fd953f1, 2022) +- License: MIT + +Files extracted from the upstream source: + +- `FastNoiseLite.h` +- `LICENSE` + +Some custom changes were made to fix compiler warnings, and can be re-applied +with the provided patch. + + ## nvapi - Upstream: http://download.nvidia.com/XFree86/nvapi-open-source-sdk - Version: R525 - License: MIT -- `nvapi_minimal.h` was created by using `nvapi.h` from upstream and removing unnecessary code. +- `nvapi_minimal.h` was created by using `nvapi.h` from upstream and removing + unnecessary code. ## openxr @@ -658,20 +677,21 @@ Files extracted from the upstream source: Files extracted from upstream source: -- include/ -- src/common/ -- src/loader/ -- src/*.{c,h} -- src/external/jsoncpp/include/ -- src/external/jsoncpp/src/lib_json/ -- LICENSE and COPYING.adoc +- `include/` +- `src/common/` +- `src/loader/` +- `src/*.{c,h}` +- `src/external/jsoncpp/include/` +- `src/external/jsoncpp/src/lib_json/` +- `LICENSE` and `COPYING.adoc` Exclude: -- src/external/android-jni-wrappers and src/external/jnipp (not used yet) -- All CMake stuff: cmake/, CMakeLists.txt and *.cmake -- All Gradle stuff: *gradle*, AndroidManifest.xml -- All following files (and their .license files): *.{def,expsym,in,json,map,pom,rc,txt} +- `src/external/android-jni-wrappers` and `src/external/jnipp` (not used yet) +- All CMake stuff: `cmake/`, `CMakeLists.txt` and `*.cmake` +- All Gradle stuff: `*gradle*`, `AndroidManifest.xml` +- All following files (and their `.license` files): + `*.{def,expsym,in,json,map,pom,rc,txt}` - All dotfiles @@ -683,12 +703,12 @@ Exclude: Files extracted from upstream source: -- Files listed in the file NON-AUTOTOOLS-BUILD steps 1-4 -- All .h files in src/ apart from pcre2posix.h -- src/pcre2_jit_match.c -- src/pcre2_jit_misc.c -- src/sljit/ -- AUTHORS and LICENCE +- Files listed in the file `NON-AUTOTOOLS-BUILD` steps 1-4 +- All `.h` files in `src/` apart from `pcre2posix.h` +- `src/pcre2_jit_match.c` +- `src/pcre2_jit_misc.c` +- `src/sljit/` +- `AUTHORS` and `LICENCE` A sljit patch from upstream was backported to fix macOS < 11.0 compilation in 10.40, it can be found in the `patches` folder. @@ -703,7 +723,7 @@ in 10.40, it can be found in the `patches` folder. Files extracted from upstream source: - `Recast/` folder without `CMakeLists.txt` -- License.txt +- `License.txt` ## rvo2 @@ -722,8 +742,8 @@ For 3D in `rvo2_3d` folder Files extracted from upstream source: -- All .cpp and .h files in the `src/` folder except for Export.h and RVO.h -- LICENSE +- All `.cpp` and `.h` files in the `src/` folder except for `Export.h` and `RVO.h` +- `LICENSE` Important: Nearly all files have Godot-made changes and renames to make the 2D and 3D rvo libraries compatible with each other @@ -760,7 +780,7 @@ folder. Files extracted from upstream source: -- all .cpp, .h and .inl files +- All `.cpp`, `.h` and `.inl` files Important: Some files have Godot-made changes. They are marked with `// -- GODOT start --` and `// -- GODOT end --` @@ -819,9 +839,9 @@ folder. Unless there is a specific reason to package a more recent version, please stick to tagged releases. All Vulkan libraries and headers should be kept in sync so: -- Update Vulkan SDK components to the matching tag (see "vulkan"). -- Update glslang (see "glslang"). -- Update spirv-reflect (see "spirv-reflect"). +- Update Vulkan SDK components to the matching tag (see "vulkan") +- Update glslang (see "glslang") +- Update spirv-reflect (see "spirv-reflect") Files extracted from upstream source: @@ -861,11 +881,11 @@ Patches in the `patches` directory should be re-applied after updates. File extracted from upstream release tarball: -- Run `cmake .` to generate `config.h` and `wslayver.h`. - Contents might need tweaking for Godot, review diff. -- All `*.c` and `*.h` files from `lib/` -- All `*.h` in `lib/includes/wslay/` as `wslay/` -- `wslay/wslay.h` has a small Godot addition to fix MSVC build. +- Run `cmake .` to generate `config.h` and `wslayver.h` + Contents might need tweaking for Godot, review diff +- All `.c` and `.h` files from `lib/` +- All `.h` in `lib/includes/wslay/` as `wslay/` +- `wslay/wslay.h` has a small Godot addition to fix MSVC build See `patches/msvcfix.diff` - `COPYING` @@ -890,7 +910,7 @@ Files extracted from upstream source: Files extracted from upstream source: -- All `*.c` and `*.h` files, minus `infback.c` +- All `.c` and `.h` files, minus `infback.c` - `LICENSE` diff --git a/thirdparty/cvtt/etc_notes.txt b/thirdparty/cvtt/etc_notes.txt deleted file mode 100644 index bb041a8435f..00000000000 --- a/thirdparty/cvtt/etc_notes.txt +++ /dev/null @@ -1,27 +0,0 @@ -The ETC1 compressor uses modified cluster fit: - -Assume that there exists an ideal base color and set of selectors for a given table. -For a given table and set of selectors, the ideal base color can be determined by subtracting the offsets from each pixel and averaging them. -Doing that is equivalent to subtracting the average offset from the average color. -Because positive and negative selectors of the same magnitude cancel out, the search space of possible average offsets is reduced: 57 unique offsets for the first table and 81 for the others. -Most of the offsets result in the same color as another average offset due to quantization of the base color, so those can be de-duplicated. -So: -- Start with a high-precision average color. -- Apply precomputed luma offsets to it. -- Quantize and de-duplicate the base colors. -- Find the ideal selectors for each base color. - -Differential mode is solved by just finding the best legal combination from those attempts. - -There are several scenarios where this is not ideal: -- Clamping behavior can sometimes be leveraged for a more accurate block. -- Differentials can sometimes be moved slightly closer to become legal. -- This only works when MSE is the error metric (i.e. not normal maps) -- This only works when pixel weights are of equal importance (i.e. not using weight by alpha or edge deblocking) - -T and H mode just work by generating clustering assignments by computing a chrominance line and splitting the block in half by the chrominance midpoint and using those to determine the averages. - -Planar mode is just solved algebraically. - -If you want to emulate etc2comp's default settings, add the flag ETC_UseFakeBT709 to use its modified Rec. 709 error coefficients. -Doing that will significantly slow down encoding because it requires much more complicated quantization math. \ No newline at end of file diff --git a/thirdparty/misc/clipper-exceptions.patch b/thirdparty/misc/patches/clipper-exceptions.patch similarity index 100% rename from thirdparty/misc/clipper-exceptions.patch rename to thirdparty/misc/patches/clipper-exceptions.patch diff --git a/thirdparty/noise/FastNoise-LICENSE b/thirdparty/noise/LICENSE similarity index 100% rename from thirdparty/noise/FastNoise-LICENSE rename to thirdparty/noise/LICENSE