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.
This commit is contained in:
Rémi Verschelde 2023-10-10 10:48:39 +02:00
parent b931a6e5ce
commit dff6752ac8
No known key found for this signature in database
GPG Key ID: C3336907360768E1
10 changed files with 243 additions and 224 deletions

View File

@ -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`). - 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. - 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.** - 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. - **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: validations:
required: true required: true

View File

@ -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 ## Table of contents
- [Reporting bugs](#reporting-bugs) - [Reporting bugs](#reporting-bugs)
- [Proposing features or improvements](#proposing-features-or-improvements) - [Proposing features or improvements](#proposing-features-or-improvements)
- [Contributing pull requests](#contributing-pull-requests) - [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) - [Communicating with developers](#communicating-with-developers)
## Reporting bugs ## Reporting bugs
@ -13,16 +19,26 @@
Report bugs [here](https://github.com/godotengine/godot/issues/new?assignees=&labels=&template=bug_report.yml). 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. 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 ## Proposing features or improvements
**Since August 2019, the main issue tracker no longer accepts feature proposals.** **The main issue tracker is for bug reports and does not accept 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 :)
See [this article](https://godotengine.org/article/introducing-godot-proposals-repository) Instead, head to the [Godot Proposals repository](https://github.com/godotengine/godot-proposals)
for detailed rationale on this change. and follow the instructions in the README file and issue template.
## Contributing pull requests ## 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 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.
[This blog post](https://godotengine.org/article/will-your-contribution-be-merged-heres-how-tell) You can refer to the [Pull request review process](https://docs.godotengine.org/en/latest/contributing/workflow/pr_review_guidelines.html)
outlines the process used by core developers when assessing PRs. We strongly for insights into the intended lifecycle of pull requests. This should help you
recommend that you have a look at it to know what's important to take into ensure that your pull request fulfills the requirements.
account for a PR to be considered for merging.
In addition to the following tips, also take a look at the 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) [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) 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) 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 ### 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 This is to ensure the documentation coverage doesn't decrease as contributions
are merged. 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. using your compiled binary, then fill in the descriptions.
Follow the style guide described in the 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 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 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 ### 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) 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. 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 You can contribute to Godot translations on [Hosted Weblate](https://hosted.weblate.org/projects/godot-engine/),
issues, it's better to open 3 different PRs that each address a different issue an open source and web-based translation platform.
than one big PR with three commits.
When updating your fork with upstream changes, please use ``git pull --rebase`` Please refer to our [editor and documentation localization guidelines](https://docs.godotengine.org/en/latest/contributing/documentation/editor_and_docs_localization.html)
to avoid creating "merge commits". Those commits unnecessarily pollute the git for an overview of the translation resources and what they correspond to.
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.
## Communicating with developers ## 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 - [Godot Contributors Chat](https://chat.godotengine.org): You will
find most core developers there, so it's the go-to platform for direct chat 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 about Godot Engine development. Browse the [Directory](https://chat.godotengine.org/directory/channels)
to get some early feedback before writing up a detailed proposal in a GitHub for an overview of public channels focusing on various engine areas which you
issue. might be interested in.
- [Bug tracker](https://github.com/godotengine/godot/issues): If there is an - [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 - existing issue about a topic you want to discuss, you can participate directly.
many developers watch the repository and will get a notification. You can If not, you can open a new issue. Please mind the guidelines outlined above
also create a new issue - please keep in mind to create issues only to for bug reporting.
discuss quite specific points about the development, and not general user
feedback or support requests.
- [Feature proposals](https://github.com/godotengine/godot-proposals/issues): - [Feature proposals](https://github.com/godotengine/godot-proposals/issues):
To propose a new feature, we have a dedicated issue tracker for that. Don't 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 hesitate to start by talking about your idea on the Godot Contributors Chat

View File

@ -383,7 +383,7 @@ License: Expat
Files: ./thirdparty/noise/FastNoiseLite.h Files: ./thirdparty/noise/FastNoiseLite.h
Comment: FastNoise Lite Comment: FastNoise Lite
Copyright: 2020, Jordan Peck and contributors Copyright: 2020, Jordan Peck and contributors
License: MIT License: Expat
Files: ./thirdparty/misc/pcg.cpp Files: ./thirdparty/misc/pcg.cpp
./thirdparty/misc/pcg.h ./thirdparty/misc/pcg.h
@ -428,7 +428,7 @@ License: BSD-2-clause
Files: ./thirdparty/msdfgen/ Files: ./thirdparty/msdfgen/
Comment: Multi-channel signed distance field generator Comment: Multi-channel signed distance field generator
Copyright: 2016-2022, Viktor Chlumsky Copyright: 2016-2022, Viktor Chlumsky
License: MIT License: Expat
Files: ./thirdparty/nvapi/nvapi_minimal.h Files: ./thirdparty/nvapi/nvapi_minimal.h
Comment: Stripped down version of "nvapi.h" from the NVIDIA NVAPI SDK Comment: Stripped down version of "nvapi.h" from the NVIDIA NVAPI SDK

View File

@ -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) <https://creativecommons.org/licenses/by/4.0/>.

5
LOGO_LICENSE.txt Normal file
View File

@ -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/

View File

@ -10,11 +10,11 @@
**[Godot Engine](https://godotengine.org) is a feature-packed, cross-platform **[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 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 comprehensive set of [common tools](https://godotengine.org/features), so that
without having to reinvent the wheel. Games can be exported with one click to a users can focus on making games without having to reinvent the wheel. Games can
number of platforms, including the major desktop platforms (Linux, macOS, be exported with one click to a number of platforms, including the major desktop
Windows), mobile platforms (Android, iOS), as well as Web-based platforms platforms (Linux, macOS, Windows), mobile platforms (Android, iOS), as well as
and [consoles](https://docs.godotengine.org/en/latest/tutorials/platform/consoles.html). Web-based platforms and [consoles](https://docs.godotengine.org/en/latest/tutorials/platform/consoles.html).
## Free, open source and community-driven ## 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 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 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 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. not-for-profit.
Before being open sourced in [February 2014](https://github.com/godotengine/godot/commit/0b806ee0fc9097fa7bda7ac0109191c9c5e0a1ac), 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 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 [Ariel Manzur](https://github.com/punto-) (both still maintaining the project)
years as an in-house engine, used to publish several work-for-hire titles. 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) ![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 ### Binary downloads
Official binaries for the Godot editor and the export templates can be found 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 ### 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). [Godot Contributors Chat](https://chat.godotengine.org).
To get started contributing to the project, see the [contributing guide](CONTRIBUTING.md). To get started contributing to the project, see the [contributing guide](CONTRIBUTING.md).
This document also includes guidelines for reporting bugs.
## Documentation and demos ## Documentation and demos

196
thirdparty/README.md vendored
View File

@ -95,7 +95,7 @@ Files extracted from upstream source:
- Upstream: https://github.com/AngusJohnson/Clipper2 - Upstream: https://github.com/AngusJohnson/Clipper2
- Version: 1.2.2 (756c5079aacab5837e812a143c59dc48a09f22e7, 2023) - Version: 1.2.2 (756c5079aacab5837e812a143c59dc48a09f22e7, 2023)
- License: Boost Software License 1.0 - License: BSL 1.0
Files extracted from upstream source: Files extracted from upstream source:
@ -111,7 +111,8 @@ Files extracted from upstream source:
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 Changes related to BC6H packing and unpacking made upstream in
https://github.com/elasota/cvtt/commit/2e4b6b2747aec11f4cc6dd09ef43fa8ce769f6e2 https://github.com/elasota/cvtt/commit/2e4b6b2747aec11f4cc6dd09ef43fa8ce769f6e2
@ -139,7 +140,7 @@ Files extracted from upstream source:
Files extracted from upstream: 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` - 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 The `modules/raycast/godot_update_embree.py` script can be used to pull the
@ -153,26 +154,26 @@ commits.
## enet ## enet
- Upstream: http://enet.bespin.org - Upstream: https://github.com/lsalzman/enet
- Version: git (ea4607a90dbfbcf4da2669ea998585253d8e70b1, 2023) - Version: git (ea4607a90dbfbcf4da2669ea998585253d8e70b1, 2023)
- License: MIT - License: MIT
Files extracted from upstream source: Files extracted from upstream source:
- all .c files in the main directory (except unix.c win32.c) - All `.c` files in the main directory (except `unix.c` and `win32.c`)
- the include/enet/ folder as enet/ (except unix.h win32.h) - The `include/enet/` folder as `enet/` (except `unix.h` and `win32.h`)
- LICENSE file - `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. 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 Apply the patches in the `patches/` folder when syncing on newer upstream
commits. commits.
Three files (godot.cpp, enet/godot.h, enet/godot_ext.h) have been added to provide Three files (`godot.cpp`, `enet/godot.h`, `enet/godot_ext.h`) have been added to
enet socket implementation using Godot classes. provide ENet socket implementation using Godot classes.
It is still possible to build against a system wide ENet but doing so It is still possible to build against a system wide ENet but doing so will limit
will limit its functionality to IPv4 only. its functionality to IPv4 only.
## etcpak ## etcpak
@ -253,8 +254,12 @@ Files extracted from upstream source:
* Upstream: https://fonts.google.com/specimen/Open+Sans * Upstream: https://fonts.google.com/specimen/Open+Sans
* Version: 1.10 (downloaded from Google Fonts in February 2021) * Version: 1.10 (downloaded from Google Fonts in February 2021)
* License: Apache 2.0 * 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 ## freetype
@ -315,7 +320,7 @@ Files extracted from upstream source:
- Run `cmake . && make` and copy generated `include/glslang/build_info.h` - Run `cmake . && make` and copy generated `include/glslang/build_info.h`
to `glslang/build_info.h` to `glslang/build_info.h`
- `LICENSE.txt` - `LICENSE.txt`
- Unnecessary files like `CMakeLists.txt`, `*.m4` and `updateGrammar` removed. - Unnecessary files like `CMakeLists.txt`, `*.m4` and `updateGrammar` removed
## graphite ## graphite
@ -326,8 +331,8 @@ Files extracted from upstream source:
Files extracted from upstream source: Files extracted from upstream source:
- the `include` folder - The `include` folder
- the `src` folder (minus `CMakeLists.txt` and `files.mk`) - The `src` folder (minus `CMakeLists.txt` and `files.mk`)
- `COPYING` - `COPYING`
@ -340,9 +345,9 @@ Files extracted from upstream source:
Files extracted from upstream source: Files extracted from upstream source:
- `AUTHORS`, `COPYING`, `THANKS` - `AUTHORS`, `COPYING`, `THANKS`
- from the `src` folder, recursively - From the `src` folder, recursively:
- all the `*.c`, `*.cc`, `*.h`, `*.hh` files - All the `.c`, `.cc`, `.h`, `.hh` files
- _except_ `main.cc`, `harfbuzz*.cc`, `failing-alloc.c`, `test*.cc`, `hb-wasm*.*` - Except `main.cc`, `harfbuzz*.cc`, `failing-alloc.c`, `test*.cc`, `hb-wasm*.*`
## icu4c ## icu4c
@ -353,22 +358,24 @@ Files extracted from upstream source:
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 - `scriptset.*`, `ucln_in.*`, `uspoof.cpp"` and `uspoof_impl.cpp` from the `i18n` folder
- `uspoof.h` from the `i18n/unicode` folder - `uspoof.h` from the `i18n/unicode` folder
- `LICENSE` - `LICENSE`
Files generated from upstream source: 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 https://github.com/unicode-org/icu/blob/master/docs/userguide/icu_data/buildtool.md
for instructions). 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). 1. Download and extract both `icu4c-{version}-src.tgz` and `icu4c-{version}-data.zip`
- Step 2: Build ICU with default options - `./runConfigureICU {PLATFORM} && make`. (replace `data` subfolder from the main source archive)
- 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`. 2. Build ICU with default options: `./runConfigureICU {PLATFORM} && make`
- Step 4: Delete `data/out` folder and rebuild data - `cd data && rm -rf ./out && make`. 3. Reconfigure ICU with custom data config:
- Step 5: Copy `source/data/out/icudt73l.dat` to the `{GODOT_SOURCE}/thirdparty/icu4c/icudt73l.dat`. `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 ## jpeg-compressor
@ -422,8 +429,8 @@ Files extracted from upstream source:
Files extracted from upstream source: Files extracted from upstream source:
- all .c and .h files of the main directory, except from - All `.c` and `.h` files of the main directory, except from `example.c` and
`example.c` and `pngtest.c` `pngtest.c`
- `arm/`, `intel/` and `powerpc/` folders - `arm/`, `intel/` and `powerpc/` folders
- `scripts/pnglibconf.h.prebuilt` as `pnglibconf.h` - `scripts/pnglibconf.h.prebuilt` as `pnglibconf.h`
- `LICENSE` - `LICENSE`
@ -437,9 +444,9 @@ Files extracted from upstream source:
Files extracted from upstream source: Files extracted from upstream source:
- all .c, .h in lib/, except arm/ and c64x/ folders - All `.c` and `.h` files in `lib/`, except `arm/` and `c64x/` folders
- all .h files in include/theora/ as theora/ - All `.h` files in `include/theora/` as `theora/`
- COPYING and LICENSE - `COPYING` and `LICENSE`
## libvorbis ## libvorbis
@ -463,10 +470,11 @@ Files extracted from upstream source:
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` - `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 ## 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: 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 `.h` from `include/mbedtls/` to `thirdparty/mbedtls/include/mbedtls/`
- All `*.c` and `*.h` from `library/` to `thirdparty/mbedtls/library/` except those starting with `psa_*`. except `config_psa.h` and `psa_util.h`
- The `LICENSE` file. - All `.c` and `.h` from `library/` to `thirdparty/mbedtls/library/` except
- Applied the patch in `patches/windows-arm64-hardclock.diff`. those starting with `psa_*`
Applied the patch in `aesni-no-arm-intrinsics.patch` to fix MSVC ARM build. - 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` - Added 2 files `godot_core_mbedtls_platform.c` and `godot_core_mbedtls_config.h`
providing configuration for light bundling with core. 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. - Added the file `godot_module_mbedtls_config.h` to customize the build
configuration when bundling the full library
## meshoptimizer ## meshoptimizer
@ -495,13 +506,13 @@ File extracted from upstream release tarball:
Files extracted from upstream repository: Files extracted from upstream repository:
- All files in `src/`. - All files in `src/`
- `LICENSE.md`. - `LICENSE.md`
An [experimental upstream feature](https://github.com/zeux/meshoptimizer/tree/simplify-attr), 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 has been backported. On top of that, it was modified to report only distance
instead of a combination of distance and attribute errors. Patches for both changes can be error metrics instead of a combination of distance and attribute errors. Patches
found in the `patches` directory. for both changes can be found in the `patches` directory.
## minimp3 ## minimp3
@ -571,10 +582,6 @@ Collection of single-file libraries used in Godot components.
* Upstream: https://github.com/ariya/FastLZ * Upstream: https://github.com/ariya/FastLZ
* Version: 0.5.0 (4f20f54d46f5a6dd4fae4def134933369b7602d2, 2020) * Version: 0.5.0 (4f20f54d46f5a6dd4fae4def134933369b7602d2, 2020)
* License: MIT * License: MIT
- `hq2x.{cpp,h}`
* Upstream: https://github.com/brunexgeek/hqx
* Version: TBD, file structure differs
* License: Apache 2.0
- `ifaddrs-android.{cc,h}` - `ifaddrs-android.{cc,h}`
* Upstream: https://chromium.googlesource.com/external/webrtc/stable/talk/+/master/base/ifaddrs-android.h * Upstream: https://chromium.googlesource.com/external/webrtc/stable/talk/+/master/base/ifaddrs-android.h
* Version: git (5976650443d68ccfadf1dea24999ee459dd2819d, 2013) * 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/ * Upstream: https://archive.blender.org/wiki/index.php/Dev:Shading/Tangent_Space_Normal_Maps/
* Version: 1.0 (2011) * Version: 1.0 (2011)
* License: zlib * License: zlib
- `FastNoiseLite.h}`
* Upstream: https://github.com/Auburn/FastNoiseLite
* Version: git (6be3d6bf7fb408de341285f9ee8a29b67fd953f1, 2022) + custom changes
* License: MIT
- `ok_color.h` - `ok_color.h`
* Upstream: https://github.com/bottosson/bottosson.github.io/blob/master/misc/ok_color.h * Upstream: https://github.com/bottosson/bottosson.github.io/blob/master/misc/ok_color.h
* Version: git (d69831edb90ffdcd08b7e64da3c5405acd48ad2c, 2022) * Version: git (d69831edb90ffdcd08b7e64da3c5405acd48ad2c, 2022)
@ -605,7 +608,7 @@ Collection of single-file libraries used in Godot components.
* Version: git (7bdffb428b2b19ad1c43aa44c714dcc104177e84, 2021) * Version: git (7bdffb428b2b19ad1c43aa44c714dcc104177e84, 2021)
* Modifications: Change from STL to Godot types (see provided patch). * Modifications: Change from STL to Godot types (see provided patch).
* License: MIT * License: MIT
- `r128.h` - `r128.{c,h}`
* Upstream: https://github.com/fahickman/r128 * Upstream: https://github.com/fahickman/r128
* Version: 1.4.4 (cf2e88fc3e7d7dfe99189686f914874cd0bda15e, 2020) * Version: 1.4.4 (cf2e88fc3e7d7dfe99189686f914874cd0bda15e, 2020)
* License: Public Domain or Unlicense * License: Public Domain or Unlicense
@ -614,7 +617,7 @@ Collection of single-file libraries used in Godot components.
* Version: git (2f625846a775501fb69456567409a8b12f10ea25, 2012) * Version: git (2f625846a775501fb69456567409a8b12f10ea25, 2012)
* License: BSD-3-Clause * License: BSD-3-Clause
* Modifications: use `const char*` instead of `char*` for input string * Modifications: use `const char*` instead of `char*` for input string
- `smolv.h` - `smolv.{cpp,h}`
* Upstream: https://github.com/aras-p/smol-v * Upstream: https://github.com/aras-p/smol-v
* Version: git (4b52c165c13763051a18e80ffbc2ee436314ceb2, 2020) * Version: git (4b52c165c13763051a18e80ffbc2ee436314ceb2, 2020)
* License: Public Domain or MIT * License: Public Domain or MIT
@ -637,17 +640,33 @@ Collection of single-file libraries used in Godot components.
Files extracted from the upstream source: Files extracted from the upstream source:
- `msdfgen.h` - `msdfgen.h`
- Files in `core/` folder. - Files in `core/` folder
- `LICENSE.txt` - `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 ## nvapi
- Upstream: http://download.nvidia.com/XFree86/nvapi-open-source-sdk - Upstream: http://download.nvidia.com/XFree86/nvapi-open-source-sdk
- Version: R525 - Version: R525
- License: MIT - 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 ## openxr
@ -658,20 +677,21 @@ Files extracted from the upstream source:
Files extracted from upstream source: Files extracted from upstream source:
- include/ - `include/`
- src/common/ - `src/common/`
- src/loader/ - `src/loader/`
- src/*.{c,h} - `src/*.{c,h}`
- src/external/jsoncpp/include/ - `src/external/jsoncpp/include/`
- src/external/jsoncpp/src/lib_json/ - `src/external/jsoncpp/src/lib_json/`
- LICENSE and COPYING.adoc - `LICENSE` and `COPYING.adoc`
Exclude: Exclude:
- src/external/android-jni-wrappers and src/external/jnipp (not used yet) - `src/external/android-jni-wrappers` and `src/external/jnipp` (not used yet)
- All CMake stuff: cmake/, CMakeLists.txt and *.cmake - All CMake stuff: `cmake/`, `CMakeLists.txt` and `*.cmake`
- All Gradle stuff: *gradle*, AndroidManifest.xml - All Gradle stuff: `*gradle*`, `AndroidManifest.xml`
- All following files (and their .license files): *.{def,expsym,in,json,map,pom,rc,txt} - All following files (and their `.license` files):
`*.{def,expsym,in,json,map,pom,rc,txt}`
- All dotfiles - All dotfiles
@ -683,12 +703,12 @@ Exclude:
Files extracted from upstream source: Files extracted from upstream source:
- Files listed in the file NON-AUTOTOOLS-BUILD steps 1-4 - Files listed in the file `NON-AUTOTOOLS-BUILD` steps 1-4
- All .h files in src/ apart from pcre2posix.h - All `.h` files in `src/` apart from `pcre2posix.h`
- src/pcre2_jit_match.c - `src/pcre2_jit_match.c`
- src/pcre2_jit_misc.c - `src/pcre2_jit_misc.c`
- src/sljit/ - `src/sljit/`
- AUTHORS and LICENCE - `AUTHORS` and `LICENCE`
A sljit patch from upstream was backported to fix macOS < 11.0 compilation A sljit patch from upstream was backported to fix macOS < 11.0 compilation
in 10.40, it can be found in the `patches` folder. 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: Files extracted from upstream source:
- `Recast/` folder without `CMakeLists.txt` - `Recast/` folder without `CMakeLists.txt`
- License.txt - `License.txt`
## rvo2 ## rvo2
@ -722,8 +742,8 @@ For 3D in `rvo2_3d` folder
Files extracted from upstream source: Files extracted from upstream source:
- All .cpp and .h files in the `src/` folder except for Export.h and RVO.h - All `.cpp` and `.h` files in the `src/` folder except for `Export.h` and `RVO.h`
- LICENSE - `LICENSE`
Important: Nearly all files have Godot-made changes and renames Important: Nearly all files have Godot-made changes and renames
to make the 2D and 3D rvo libraries compatible with each other to make the 2D and 3D rvo libraries compatible with each other
@ -760,7 +780,7 @@ folder.
Files extracted from upstream source: Files extracted from upstream source:
- all .cpp, .h and .inl files - All `.cpp`, `.h` and `.inl` files
Important: Some files have Godot-made changes. Important: Some files have Godot-made changes.
They are marked with `// -- GODOT start --` and `// -- GODOT end --` 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 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: 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 Vulkan SDK components to the matching tag (see "vulkan")
- Update glslang (see "glslang"). - Update glslang (see "glslang")
- Update spirv-reflect (see "spirv-reflect"). - Update spirv-reflect (see "spirv-reflect")
Files extracted from upstream source: 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: File extracted from upstream release tarball:
- Run `cmake .` to generate `config.h` and `wslayver.h`. - Run `cmake .` to generate `config.h` and `wslayver.h`
Contents might need tweaking for Godot, review diff. Contents might need tweaking for Godot, review diff
- All `*.c` and `*.h` files from `lib/` - All `.c` and `.h` files from `lib/`
- All `*.h` in `lib/includes/wslay/` as `wslay/` - All `.h` in `lib/includes/wslay/` as `wslay/`
- `wslay/wslay.h` has a small Godot addition to fix MSVC build. - `wslay/wslay.h` has a small Godot addition to fix MSVC build
See `patches/msvcfix.diff` See `patches/msvcfix.diff`
- `COPYING` - `COPYING`
@ -890,7 +910,7 @@ Files extracted from upstream source:
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` - `LICENSE`

View File

@ -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.