Sylvie
b877c81c32
Use C++-style casts ( #1576 )
2024-12-09 21:56:54 -05:00
Sylvie
e0ee9dc3ad
Add reverse_1bit RGBGFX test ( #1555 )
...
Fixes a bug to always use 2bpp `_data` in `TileData`
2024-11-24 19:30:49 -05:00
Sylvie
90286ccbbc
Fix detection of tiles with too many colors ( #1546 )
2024-10-20 13:51:39 -04:00
Sylvie
9783671399
Simplify some C++ abstractions ( #1518 )
...
* Remove namespaces
* Prefer `bool operator==`, not `friend auto operator==`
* Prefer not to use `using`
* Use a `constexpr` function instead of a template for `flipTable`
2024-09-26 00:07:27 -04:00
Rangi42
9b3d19c3f2
Prefer snprintf to sprintf
...
This also simplifies advancing `ptr`
2024-09-15 00:01:09 -04:00
Eldred Habert
80d37f9988
Implement --input-tileset ( #1464 )
...
As discussed in https://github.com/gbdev/rgbds/issues/575#issuecomment-1991456862
2024-09-04 15:20:01 -04:00
Rangi42
26fcff831d
Run clang-format
2024-08-27 01:49:05 -04:00
Sylvie
356367bfd3
Allow mirroring only the X or Y axes ( #1468 )
2024-08-18 21:47:39 -04:00
ISSOtm
41046c287f
Use appropriate format specifier for number of palettes
2024-08-02 21:59:51 +02:00
Sylvie
ed5529d639
Fix generating a palette overriding a previous pal spec ( #1415 )
2024-06-25 18:27:01 +02:00
Sylvie
a234da42a6
Replace assert with assume for release build optimization ( #1390 )
2024-04-02 11:09:31 -04:00
ISSOtm
e5078aba3b
Clean up #includes
...
Remove unused headers, and avoid relying on transitive inclusions
`include-what-you-use` has been very useful for this!
2024-03-28 01:25:38 +01:00
Rangi42
dcb4e40388
Use QUOTEDSTRLEN macro instead of sizeof or strlen
2024-03-27 11:50:48 -04:00
Sylvie
a68bebf4a2
Use a Defer struct to close files and restore lexer state with RAII ( #1379 )
2024-03-27 10:42:53 -04:00
Sylvie
17444e825a
Reduce the header declarations ( #1342 )
...
- Since we have style rules to include foo.hpp at the top of its
corresponding foo.cpp, this takes any headers included by foo.hpp
as being also guaranteed for foo.cpp.
- Use C-style <foo.h> instead of <cfoo>, since the latter only
guarantees putting symbols in the `std` namespace, which we are
not using for C functions (e.g. `printf` not `std::printf`).
- Remove now-unused `__PRETTY_FUNCTION__` reporting
2024-03-09 14:55:39 -05:00
Sylvie
e74073e480
Run clang-format on everything ( #1332 )
2024-03-04 14:22:49 -05:00
Evie
6b67c82b94
Implement -c #none ( #1301 )
...
Also adds a test case for round-tripping `-r` with `-c #none`.
2024-03-03 18:45:33 -05:00
Rangi42
d812acff24
Check RGBGFX warning/error format strings with format_ macro
2024-03-02 23:17:54 -05:00
Sylvie
d71a161bc9
Phrase error messages as "Failed to", not "Could not" or "Couldn't" ( #1298 )
2024-02-18 14:52:31 +01:00
Rangi
b0f2f0ffd6
Allow fewer tRNS entries than PLTE colors ( #1284 )
2023-12-31 12:47:53 +01:00
ISSOtm
6b559e99b2
Revert "Switch to using std::filesystem ( #1235 )"
...
This reverts commit cf62ff772f .
Some functions used by this break on macOS before 10.15,
which we want to keep supporting.
2023-12-30 23:20:04 -05:00
Rangi
495d701022
Use RANGE macro to abbreviate begin/end pairs ( #1269 )
2023-12-11 14:10:20 -05:00
Rangi
232416b30d
Fix the hack for File::c_str to work ( #1242 )
2023-11-14 13:38:18 +01:00
Rangi
cf62ff772f
Switch to using std::filesystem ( #1235 )
...
Allows better platform-agnostic path manipulation.
Also, using `std::optional` rather than empty strings allows
correctly handling empty arguments (treating them as such,
instead of acting as they were never passed).
2023-11-13 18:10:09 +01:00
Rangi
1e70e703a7
Build everything as C++ ( #1176 )
2023-11-07 21:45:56 +01:00
Eldred Habert
968c6f7ab7
Compute height and width directly in tile units
...
Co-authored-by: Rangi <35663410+Rangi42@users.noreply.github.com >
2023-11-06 08:14:13 +01:00
ISSOtm
93285f8ea8
Fix use of input slice without dedup active
2023-11-06 08:14:13 +01:00
Rangi
f8af569680
Shorten license comments and consolidate an AUTHORS file ( #1217 )
2023-11-05 09:54:32 +01:00
Rangi
5a25c547ab
Allow rgbgfx to generate a palette from a spec, without an image ( #1192 )
2023-11-02 20:12:48 +01:00
Eldred Habert
2023d9ed99
Fix palmap option using wrong file name
2023-02-21 12:05:39 +01:00
ISSOtm
33a0857b8d
Properly detect tiles with more than 4 colours
...
Fixes #1127 , which was caused by a dumb logic error. Duh me.
2023-02-08 00:21:05 +01:00
ISSOtm
3e5cd8ce1a
Use a special name for stdin/stdout in diagnostics
2022-11-15 19:49:04 +01:00
ISSOtm
6902387991
Allow rgbgfx - for stdin and stdout
...
Closes #1087
2022-11-15 19:49:04 +01:00
ISSOtm
12ba057b4f
Check that colour slot is non-empty before checking for gray-ness
...
This is otherwise UB, and trips a GLIBCXX assertion (when enabled).
2022-10-11 21:39:32 +02:00
ISSOtm
d90a7e4302
Terminate RGBGFX when opening a file fails
...
`std::filebuf::open`'s result must be checked, though that's not obvious.
2022-10-04 13:58:05 +02:00
Eldred Habert
a1a919579c
Add support for GBC palette dumps to -c ( #1075 )
...
Fixes #1063
2022-09-30 17:09:28 -04:00
Rangi
fa13611bbf
Make comments more consistent
...
- Changes most `/* comments */` to `// comments`
- Changes `/**` block comments consistently to `/*`
- Adds consistent license comments to all files
Also renames `T_POP_SET` to `T_Z80_SET`
2022-08-30 07:51:32 +02:00
ISSOtm
b53c115ec2
Fix width and height being reported in wrong order
2022-07-10 12:14:24 +02:00
ISSOtm
87092208bc
Stop passing options.columnMajor explicitly everywhere
2022-07-02 17:04:17 +02:00
ISSOtm
3f70372308
Implement slicing input image
2022-07-02 17:04:17 +02:00
ISSOtm
9646f15b59
Add error message for nigh-impossible proto-palette overflow
2022-07-02 17:04:17 +02:00
ISSOtm
973fbb91bc
Improve error message when a tile has too many colors
2022-07-02 17:04:17 +02:00
ISSOtm
3f5983358c
Add proper error message for bad manual palettes
2022-07-02 17:04:17 +02:00
ISSOtm
7a7126f3b8
Implement bit flipping with a lookup table
...
Should improve performance.
This version is cooler, and also does not suffer from iteration limits
2022-07-02 17:04:17 +02:00
ISSOtm
b4dadd35b6
Use an iterator zip
...
Simplifies iterating over tiles and attributes at the same time
2022-07-02 17:04:17 +02:00
ISSOtm
832e0ec972
Report position in color errors
2022-07-02 17:04:17 +02:00
ISSOtm
a5ed0292b1
Reject colors with ambiguous alpha channel
2022-07-02 17:04:17 +02:00
ISSOtm
05e36767b0
Implement "palette map" output
2022-07-02 17:04:17 +02:00
ISSOtm
568fb5e4c8
Only report "fusing" different colors once per pair
2022-07-02 17:04:17 +02:00
ISSOtm
57ac07b03e
Correctly handle fully-transparent tiles when outputting unoptimized tilemap
2022-07-02 17:04:17 +02:00