ISSOtm
7927dfd2e3
Remove negative values in parseNumber checking
...
Including removal of a dead & useless check.
By the way, fuck integer promotion.
2022-07-02 17:04:17 +02:00
ISSOtm
b1aec91912
Assert that row size is not null
...
Silences some static analysis warning
2022-07-02 17:04:17 +02:00
ISSOtm
02d957278d
Document output formats
2022-07-02 17:04:17 +02:00
ISSOtm
6feb1fb73a
Retire -f
2022-07-02 17:04:17 +02:00
ISSOtm
913c3dd711
Accept both colons and semicolons in inline pal spec
2022-07-02 17:04:17 +02:00
ISSOtm
32242e0ff2
Switch from colon separators to semicolon
...
As documented, oops
2022-07-02 17:04:17 +02:00
ISSOtm
91071009a8
Implement some external palette specs
...
PSP, ACT, and ACO are complete
2022-07-02 17:04:17 +02:00
ISSOtm
1da884db15
Handle processing errors appropriately
...
Alter the return status accordingly, and print the error counts on exit
2022-07-02 17:04:17 +02:00
ISSOtm
ef473de75a
Explicitly error out if no input image is given
2022-07-02 17:04:17 +02:00
ISSOtm
6b0cab32a6
Implement inline palette spec parsing
2022-07-02 17:04:17 +02:00
ISSOtm
cc27169ecd
Implement preliminary version of "reverse" feature
...
Not hooked to all RGBGFX flags yet, but good enough for most use cases
(and as a base for future development, should I need to `reset --hard`.)
TODOs marked appropriately.
2022-07-02 17:04:17 +02:00
ISSOtm
75f8b16f33
Implement "at-files" for RGBGFX
...
Useful for persisting flags outside of the build system
2022-07-02 17:04:17 +02:00
ISSOtm
188027bccc
Rename convert to process
...
More consistent with its "main" function's name
2022-07-02 17:04:17 +02:00
ISSOtm
7311fc9ef8
Fix transparency handling
...
Ensure that the color count is properly used, and that
transparency is not counted as a color when packing palettes
2022-07-02 17:04:17 +02:00
ISSOtm
6ed220b4c1
Make some style corrections
...
Co-Authored-By: Rangi <remy.oukaour+rangi42@gmail.com >
2022-07-02 17:04:17 +02:00
ISSOtm
e49fb457ea
Factor out row bitplanes extraction into a common function
2022-07-02 17:04:17 +02:00
ISSOtm
3c9d5b05d6
Implement transparency handling
...
Though none of this has been tested so far...
2022-07-02 17:04:17 +02:00
ISSOtm
e86eb9337a
Check the range of the CLI-specified palette size
2022-07-02 17:04:17 +02:00
ISSOtm
b0f8e04fb7
Do not do anything if option parsing goes wrong
2022-07-02 17:04:17 +02:00
ISSOtm
493b94919f
Fix -TAP being non-functional
2022-07-02 17:04:17 +02:00
ISSOtm
71e22f3bfe
Correct "is this palette empty?" function
...
This notably caused decantation to delete non-empty palettes, which crashes
2022-07-02 17:04:17 +02:00
ISSOtm
ac02382632
Clean up palette packing a bit
...
Rename a poorly-named attribute, and add a bunch of debug logging
2022-07-02 17:04:17 +02:00
ISSOtm
943d631701
Implement max palette count
2022-07-02 17:04:17 +02:00
ISSOtm
76bb950be5
Parse bank capacities
2022-07-02 17:04:17 +02:00
ISSOtm
f29c5d81ec
Provide a per-option sane default when number parsing fails
2022-07-02 17:04:17 +02:00
ISSOtm
2307981878
Parse base tile IDs
2022-07-02 17:04:17 +02:00
ISSOtm
6bab2ea5c8
Add different verbosity levels
...
And also some ASCII art, perhaps?
2022-07-02 17:04:17 +02:00
ISSOtm
35e57a55c9
Handle base tile IDs in "optimized" output
2022-07-02 17:04:17 +02:00
ISSOtm
779c8c9368
Implement -m
...
Though none of the code involved has been tested in any capacity yet, lol
2022-07-02 17:04:17 +02:00
ISSOtm
3b1808cc8f
Fix Windows-breaking use of struct vs class
...
MSVC's (broken) ABI breaks otherwise.
What the f@!$#ck, Microsoft?
(Thank you based Clang for warning, by the way.)
2022-07-02 17:04:17 +02:00
ISSOtm
71cb2854e8
Use cinttypes instead of inttypes.h
...
Fixes build on some compilers for some reason I fail to understand
2022-07-02 17:04:17 +02:00
ISSOtm
2099a25ee0
Avoid using transform_reduce
...
Not available in libstdc++ 7, apparently
2022-07-02 17:04:17 +02:00
ISSOtm
c82cce6d95
Explicitly specify queue template param
...
GCC 7 fails to deduce the contained type
2022-07-02 17:04:17 +02:00
ISSOtm
97965c9766
Revamp number parsing and remove <charconv>
...
Support all intended formats and allow partial parsing
<charconv> is not available in GCC 7
2022-07-02 17:04:17 +02:00
ISSOtm
5efc49cb12
Change UseTab to ForIndentation
...
This fixes many whitespace issues
2022-07-02 17:04:17 +02:00
ISSOtm
c4361b965c
Remove <filesystem>
...
Should fix compilation with GCC before 9
2022-07-02 17:04:17 +02:00
ISSOtm
20442c8a43
Add compatibility hack for unused colors in indexed PNGs
2022-07-02 17:04:17 +02:00
ISSOtm
b95c26c886
Fully implement decanting step
2022-07-02 17:04:17 +02:00
ISSOtm
a96aa1725f
Optimize AssignedProtos::empty() to stop early
...
Also allow counting an `AssignedProtos`'s number of proto-palettes
2022-07-02 17:04:17 +02:00
ISSOtm
3d79f76e41
Avoid calling skipEmpty() for AssignedProtos::end()
2022-07-02 17:04:17 +02:00
ISSOtm
fdfedc45a6
Allow computing the combined weight of any proto-palette set
2022-07-02 17:04:17 +02:00
ISSOtm
c98d92a4c4
Implement -C
2022-07-02 17:04:17 +02:00
ISSOtm
d438838db4
Correctly handle "multiple" overlap between proto-palettes
...
As explained by the comment
2022-07-02 17:04:17 +02:00
ISSOtm
d675523e49
Skip initializing the PNG pixel array
...
We are about to set all of the pixels anyway
2022-07-02 17:04:17 +02:00
ISSOtm
ad07c9deb9
Implement (stub) handling for all options
2022-07-02 17:04:17 +02:00
ISSOtm
e8d8ae4c78
Print all configuration on verbose startup
2022-07-02 17:04:17 +02:00
ISSOtm
2fb1eb9136
Print file paths in a platform-independent way
...
Conversion may be unspecified, but Windows better do the right thing (or else.)
2022-07-02 17:04:17 +02:00
ISSOtm
bde380f38b
Fix unchecked narrowing conversion of tile IDs
...
The conversion is OK because of the tile amount cap
2022-07-02 17:04:17 +02:00
ISSOtm
3bd6078537
Tag AssignedProtos iterator as forward
...
That's what it actually is, oops
(Required for `minmax_element`)
2022-07-02 17:04:17 +02:00
ISSOtm
5409d0d15a
Add missing header for strcasecmp
2022-07-02 17:04:17 +02:00