Commit graph

393 commits

Author SHA1 Message Date
Rémi Verschelde
1426cd3b3a
One Copyright Update to rule them all
As many open source projects have started doing it, we're removing the
current year from the copyright notice, so that we don't need to bump
it every year.

It seems like only the first year of publication is technically
relevant for copyright notices, and even that seems to be something
that many companies stopped listing altogether (in a version controlled
codebase, the commits are a much better source of date of publication
than a hardcoded copyright statement).

We also now list Godot Engine contributors first as we're collectively
the current maintainers of the project, and we clarify that the
"exclusive" copyright of the co-founders covers the timespan before
opensourcing (their further contributions are included as part of Godot
Engine contributors).

Also fixed "cf." Frenchism - it's meant as "refer to / see".

Backported from #70885.
2023-01-10 15:26:54 +01:00
Rémi Verschelde
e771804e78
Fix some Clang -Wunused-but-set-variable warnings 2022-12-21 12:15:52 +01:00
alex-pahdo
cbc8ccbe20 Add more info to WAV import errors
Print mismatched header contents and file size, which can provide more clues to users when debugging.

(cherry picked from commit f5d256b118)
2022-12-04 20:19:50 +08:00
Mark Riedesel
c15bb8147e
Handle closed splines in Collada importer
(cherry picked from commit 8f7ab02bc6)
2022-11-30 15:34:26 +01:00
Rémi Verschelde
0dccbcd7ce
Merge pull request #61878 from bruvzg/backport_locale_select
[3.x] Backport locale selection improvements.
2022-08-05 23:45:17 +02:00
Rémi Verschelde
818f1eed31 Code quality: Fix header guards consistency
Adds `header_guards.sh` bash script, used in CI to validate future
changes. Can be run locally to fix invalid header guards.
2022-07-25 14:53:37 +02:00
bruvzg
a8eb779ac3
Backport locale selection improvements. 2022-07-04 11:49:20 +03:00
Shatur95
5ccc941a4c [3.x] Remove hardcoded names in generated objects 2022-07-03 00:58:13 +02:00
Rémi Verschelde
bed3d2cbd5
Merge pull request #61169 from DeeJayLSP/wav_ieee_3.x 2022-07-02 22:03:14 +02:00
Hugo Locurcio
f702828c37
Print messages when textures are detected as used in 3D/normal map
This detection automatically changes some import options, so it's
important that users are aware of this.
2022-06-13 20:13:30 +02:00
Rémi Verschelde
80b82e4e66 i18n: Misc fixes translation strings
Adds some translator comments to solve some questions raised on Weblate.
2022-06-08 12:56:42 +02:00
Douglas Leão
f4228045f7 [3.x] ResourceImporterWAV: Add support for 64-bit IEEE float 2022-05-18 19:55:06 -03:00
Haoyu Qiu
5d150559a3 Make more import preset name translatable 2022-04-27 13:50:59 +08:00
Nicholas Huelin
6c778a19d1 Hide "Normal Map" import option when using lossless compression on Texture
This pull request resolves an issue where images being imported with lossless compression allowed you to select a normal map, but the normal map only applies if you're using VRAM compression. Thereby making it redundant to appear when using lossless compression. This pull request hides the normal map option when lossless compression is selected.

Resolves: #59435
(cherry picked from commit 01ca9d3eec)
2022-03-29 00:07:45 +02:00
Rémi Verschelde
113102aa51 ResourceImporterWAV: Allow configuring loop mode on import
The new `edit/loop_mode` import options lets user choose to either:
- Detect loop points from the WAV (default, same behavior as before)
- Set the loop mode and loop points manually like in AudioStreamSample

Fixes #46164.

(cherry picked from commit b389ce5ccd)
2022-03-28 23:46:29 +02:00
Haoyu Qiu
2c3646b37b Add missing i18n to various strings
(cherry picked from commit 25d93200c8)
2022-03-10 19:01:52 +01:00
Jason Knight
177041b968 Allow disabling the alpha trim on texture atlas creation.
Default to true
2022-02-19 14:01:30 -06:00
Ricardo Buring
742c54d0a7 Fix import hints breaking node paths in animations 2022-01-19 16:42:38 +01:00
Rémi Verschelde
a627cdafc5
Update copyright statements to 2022
Happy new year to the wonderful Godot community!
2022-01-13 15:54:13 +01:00
Maverick Liberty
e6cee71097
ResourceImporterScene: Add error when "default" is not defined to create clips
(cherry picked from commit 4b9e12b8c0)
2021-12-10 11:08:13 +01:00
Giwayume
88c1411051 Fix edge case where 1px cut off from right of image
Backward loop should remain -1
2021-11-23 11:03:00 -05:00
Giwayume
0093bda767 Fix texture atlas generation when source sprite is larger than generated atlas 2021-11-18 10:02:24 -05:00
Marcel Admiraal
4d3690eba5 Remove unimplemented methods 2021-11-18 12:47:36 +00:00
Brian Semrau
930d28e6cb
Prevent obj importer from printing misleading error
(cherry picked from commit bd0d15c5be)
2021-11-15 16:10:00 +01:00
Chained Lupine
44a532e99e
Fix crash in ResourceImporterTexture::_save_stex if webp disabled
Fixes #51535.

(cherry picked from commit 79d4edfca7)
2021-11-02 09:28:46 +01:00
Omar El Sheikh
203295f17d Added Mesh Compression Import Options
Fleshed out the "Optimize Mesh" options found in the mesh import UI
Gave a checkbox to every vertex attribute that can be compressed

Surfaced option to enable/disable Octahedral compression for
normal/tangent vectors

Also surfaces the vertex position compression option which previously
inaccessible because the defaults did not compress vertex positions

Supports all current importers (obj, fbx, collada, gltf)
2021-11-01 12:54:28 -04:00
Rémi Verschelde
1b65550ec7
clang-format: Various fixes to comments alignment from clang-format 13
All reviewed manually and occasionally rewritten to avoid bad auto formatting.
2021-10-28 14:50:32 +02:00
Rémi Verschelde
42d385b312
clang-format: Disable alignment of operands, too unreliable
Sets `AlignOperands` to `DontAlign`.

`clang-format` developers seem to mostly care about space-based indentation and
every other version of clang-format breaks the bad mismatch of tabs and spaces
that it seems to use for operand alignment. So it's better without, so that it
respects our two-tabs `ContinuationIndentWidth`.
2021-10-28 13:23:38 +02:00
Rémi Verschelde
5fb9a2a54d
Merge pull request #52652 from boruok/optional-crop-for-texture-atlas-importer 2021-10-05 19:21:49 +02:00
lawnjelly
192ec963ae Create 'rendering/misc' project settings section
To prevent the project settings `rendering` section getting out of hand, this PR moves some of the smaller new settings into a `misc` category.
2021-10-05 11:47:03 +01:00
dankan1890
6f6102f22c
Fixed TextureAtlas import wrong images size.
Fix #42057

(cherry picked from commit 395ab3441d)
2021-09-21 17:14:58 +02:00
Alexandr Xenofontov
9913af974f added optional cropping for texture atlas importer 2021-09-14 21:23:59 +09:00
Saracen
6482ba8807 Fix to parsing some Collada with extra vertex semantics referenced only in the vertices section. 2021-08-19 08:45:52 +01:00
Cory Petkovsek
fb609b22e4 Add Anisotropic Filtering option for TextureArrays 2021-08-12 23:56:03 +08:00
Rémi Verschelde
9735f2803c
Merge pull request #46800 from The-O-King/normal_compression
[3.x] Implement Octahedral Map Normal/Tangent Attribute Compression
2021-07-30 17:34:47 +02:00
Omar El Sheikh
d274284069 Octahedral Normal/Tangent Compression
Implement Octahedral Compression for normal/tangent vectors
*Oct32 for uncompressed vectors
*Oct16 for compressed vectors

Reduces vertex size for each attribute by
*Uncompressed: 12 bytes, vec4<float32> -> vec2<unorm16>
*Compressed: 2 bytes, vec4<unorm8> -> vec2<unorm8>

Binormal sign is encoded in the y coordinate of the encoded tangent

Added conversion functions to go from octahedral mapping to cartesian
for normal and tangent vectors

sprite_3d and soft_body meshes write to their vertex buffer memory
directly and need to convert their normals and tangents to the new oct
format before writing

Created a new mesh flag to specify whether a mesh is using octahedral
compression or not
Updated documentation to discuss new flag/defaults

Created shader flags to specify whether octahedral or cartesian vectors
are being used

Updated importers to use octahedral representation as the default format
for importing meshes

Updated ShaderGLES2 to support 64 bit version codes as we hit the limit
of the 32-bit integer that was previously used as a bitset to store
enabled/disabled flags
2021-07-30 10:29:09 -04:00
Hugo Locurcio
af3f83407f
Expose an ImportOrder enum in ResourceImporter
This avoids using magic numbers in code.

(cherry picked from commit 7f83977f37)
2021-07-26 13:26:58 +02:00
Marcel Admiraal
7e03bd1671 Remove duplicate WARN_PRINTS macro 2021-06-18 12:57:59 +01:00
K. S. Ernest (iFire) Lee
37fdd656c0
ERR_FAIL_NULL check file access
Null in ResourceImporterTexture::_save_stex

(cherry picked from commit b74bc42a43)
2021-06-17 12:47:55 +02:00
Rémi Verschelde
c45ce768b1
Merge pull request #47854 from mortarroad/3.x-lossless-webp
[3.x] Implement lossless WebP encoding
2021-06-11 19:35:47 +02:00
Morris Tabor
5de08ef1d6 Implement lossless WebP encoding 2021-06-11 18:48:04 +02:00
Rémi Verschelde
6580166f39
Merge pull request #48693 from Calinou/editor-import-invert-green-channel-3.x
Add "Normal Map Invert Y" import option for normal maps
2021-06-05 13:36:26 +02:00
Hugo Locurcio
dbf75931d0
Add "Normal Map Invert Y" import option for normal maps
This can be used to invert a normal map's Y direction.

The existing Invert import option that inverts all RGB channels
is kept for compatibility with existing projects.
2021-06-04 18:10:34 +02:00
K. S. Ernest (iFire) Lee
6ec9468e75 Backport gltf2 module from master. 2021-05-31 13:18:06 -07:00
Lyuma
a330b6829f gltf: Fix mesh nodes which are also bones for 3.x
Fix issue when two skeletons end up directly parented.
Prevent animating TRS for skinned Mesh node.
Fix animating weights on meshes with targets but no weights.
2021-05-28 03:50:54 -07:00
Lyuma
a0b8c24d92
Fix incorrect skin deduplication when using named binds
(cherry picked from commit 60f620411e)
2021-05-21 13:41:27 +02:00
Lyuma
ec6a3a0d0c
gltf: Fail gracefully when a mesh instance fails.
(cherry picked from commit 5a9eee6b1a)
2021-05-21 13:41:27 +02:00
K. S. Ernest (iFire) Lee
d5b6cb4639
When one invalid image fails, it should only fail that single image.
Move to a more graceful degradation 3d asset import model.

(cherry picked from commit a81f4dd5a7)
2021-05-21 13:41:27 +02:00
Hugo Locurcio
20f79287cd
Print a warning when importing a repeating NPOT texture in a GLES2 project
Repeating NPOT textures are not guaranteed to be displayed correctly
in GLES2, since the specification does not mandate support for it.

The warning is also displayed in GLES3 projects that are configured
to allow falling back to GLES2.
2021-05-20 20:38:47 +02:00
Pedro J. Estébanez
817ffc01e1
Make all file access 64-bit (uint64_t)
This changes the types of a big number of variables.

General rules:
- Using `uint64_t` in general. We also considered `int64_t` but eventually
  settled on keeping it unsigned, which is also closer to what one would expect
  with `size_t`/`off_t`.
- We only keep `int64_t` for `seek_end` (takes a negative offset from the end)
  and for the `Variant` bindings, since `Variant::INT` is `int64_t`. This means
  we only need to guard against passing negative values in `core_bind.cpp`.
- Using `uint32_t` integers for concepts not needing such a huge range, like
  pages, blocks, etc.

In addition:
- Improve usage of integer types in some related places; namely, `DirAccess`,
  core binds.

Note:
- On Windows, `_ftelli64` reports invalid values when using 32-bit MinGW with
  version < 8.0. This was an upstream bug fixed in 8.0. It breaks support for
  big files on 32-bit Windows builds made with that toolchain. We might add a
  workaround.

Fixes #44363.
Fixes godotengine/godot-proposals#400.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2021-05-16 17:52:31 +02:00