-
-
Notifications
You must be signed in to change notification settings - Fork 172
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rewrite RGBGFX in C++ #981
Commits on Jun 12, 2022
-
Reimplement basic RGBGFX features in C++
Currently missing from the old version: - `-f` ("fixing" the input image to be indexed) - `-m` (the code for detecting mirrored tiles is missing, but all of the "plumbing" is otherwise there) - `-C` - `-d` - `-x` (though I need to check the exact functionality the old one has) - Also the man page is still a draft and needs to be fleshed out More planned features are not implemented yet either: - Explicit palette spec - Better error messages, also error "images" - Better 8x16 support, as well as other "dedup unit" sizes - Support for arbitrary number of palettes & colors per palette - Other output formats (for example, a "full" palette map for "streaming" use cases like gb-open-world) - Quantization? Some things may also be bugged: - Transparency support - Tile offsets (not exposed yet) - Tile counts per bank (not exposed yet) ...and performance remains to be checked. We need to set up some tests, honestly.
Configuration menu - View commit details
-
Copy full SHA for ea69624 - Browse repository at this point
Copy the full SHA ea69624View commit details -
Be consistent with what we settled on in code
Configuration menu - View commit details
-
Copy full SHA for 723e52c - Browse repository at this point
Copy the full SHA 723e52cView commit details -
Fix duplicated CGB color calculation in pal sorting
And also the inverted alpha channel condition causing the wrong colors to be treated as transparent
Configuration menu - View commit details
-
Copy full SHA for 8b36aa5 - Browse repository at this point
Copy the full SHA 8b36aa5View commit details -
Configuration menu - View commit details
-
Copy full SHA for f96cff0 - Browse repository at this point
Copy the full SHA f96cff0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8d6fdda - Browse repository at this point
Copy the full SHA 8d6fddaView commit details -
Configuration menu - View commit details
-
Copy full SHA for 4e46e6b - Browse repository at this point
Copy the full SHA 4e46e6bView commit details -
Force version.c to be compiled as C++ (bodge, will need a proper fix for `version.c`) Remove user-defined `ProtoPalette` assignment operator (same as default, anyway)
Configuration menu - View commit details
-
Copy full SHA for 32aee3d - Browse repository at this point
Copy the full SHA 32aee3dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9bab36e - Browse repository at this point
Copy the full SHA 9bab36eView commit details -
Tag
AssignedProtos
iterator as forwardThat's what it actually is, oops (Required for `minmax_element`)
Configuration menu - View commit details
-
Copy full SHA for d999b68 - Browse repository at this point
Copy the full SHA d999b68View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5cf048b - Browse repository at this point
Copy the full SHA 5cf048bView commit details -
Fix unchecked narrowing conversion of tile IDs
The conversion is OK because of the tile amount cap
Configuration menu - View commit details
-
Copy full SHA for da92a5e - Browse repository at this point
Copy the full SHA da92a5eView commit details -
Print file paths in a platform-independent way
Conversion may be unspecified, but Windows better do the right thing (or else.)
Configuration menu - View commit details
-
Copy full SHA for f2735f2 - Browse repository at this point
Copy the full SHA f2735f2View commit details -
Configuration menu - View commit details
-
Copy full SHA for c97e5fb - Browse repository at this point
Copy the full SHA c97e5fbView commit details -
Configuration menu - View commit details
-
Copy full SHA for c8a0ccb - Browse repository at this point
Copy the full SHA c8a0ccbView commit details -
Configuration menu - View commit details
-
Copy full SHA for 38b928d - Browse repository at this point
Copy the full SHA 38b928dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 65b5af1 - Browse repository at this point
Copy the full SHA 65b5af1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 03308bc - Browse repository at this point
Copy the full SHA 03308bcView commit details -
Skip initializing the PNG pixel array
We are about to set all of the pixels anyway
Configuration menu - View commit details
-
Copy full SHA for 7c2df08 - Browse repository at this point
Copy the full SHA 7c2df08View commit details -
Correctly handle "multiple" overlap between proto-palettes
As explained by the comment
Configuration menu - View commit details
-
Copy full SHA for 75353ce - Browse repository at this point
Copy the full SHA 75353ceView commit details -
Configuration menu - View commit details
-
Copy full SHA for 372751d - Browse repository at this point
Copy the full SHA 372751dView commit details -
Configuration menu - View commit details
-
Copy full SHA for d737fd8 - Browse repository at this point
Copy the full SHA d737fd8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 28ce49b - Browse repository at this point
Copy the full SHA 28ce49bView commit details -
Optimize
AssignedProtos::empty()
to stop earlyAlso allow counting an `AssignedProtos`'s number of proto-palettes
Configuration menu - View commit details
-
Copy full SHA for 7e4cc10 - Browse repository at this point
Copy the full SHA 7e4cc10View commit details -
Configuration menu - View commit details
-
Copy full SHA for 484e9e7 - Browse repository at this point
Copy the full SHA 484e9e7View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7d51d9e - Browse repository at this point
Copy the full SHA 7d51d9eView commit details -
Describe current options, and add some TODOs for functionality to be implemented
Configuration menu - View commit details
-
Copy full SHA for dc58c88 - Browse repository at this point
Copy the full SHA dc58c88View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0ae984a - Browse repository at this point
Copy the full SHA 0ae984aView commit details -
Configuration menu - View commit details
-
Copy full SHA for f405dfc - Browse repository at this point
Copy the full SHA f405dfcView commit details -
Revamp number parsing and remove <charconv>
Support all intended formats and allow partial parsing <charconv> is not available in GCC 7
Configuration menu - View commit details
-
Copy full SHA for 18c76d7 - Browse repository at this point
Copy the full SHA 18c76d7View commit details -
Explicitly specify queue template param
GCC 7 fails to deduce the contained type
Configuration menu - View commit details
-
Copy full SHA for 4241243 - Browse repository at this point
Copy the full SHA 4241243View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7ff7be5 - Browse repository at this point
Copy the full SHA 7ff7be5View commit details -
Configuration menu - View commit details
-
Copy full SHA for e16dcfe - Browse repository at this point
Copy the full SHA e16dcfeView commit details -
Use
cinttypes
instead ofinttypes.h
Fixes build on some compilers for some reason I fail to understand
Configuration menu - View commit details
-
Copy full SHA for 672829d - Browse repository at this point
Copy the full SHA 672829dView commit details -
Fix Windows-breaking use of
struct
vsclass
MSVC's (broken) ABI breaks otherwise. What the f@!$#ck, Microsoft? (Thank you based Clang for warning, by the way.)
Configuration menu - View commit details
-
Copy full SHA for 44c97de - Browse repository at this point
Copy the full SHA 44c97deView commit details -
Configuration menu - View commit details
-
Copy full SHA for 15a0236 - Browse repository at this point
Copy the full SHA 15a0236View commit details -
Though none of the code involved has been tested in any capacity yet, lol
Configuration menu - View commit details
-
Copy full SHA for 2d8a022 - Browse repository at this point
Copy the full SHA 2d8a022View commit details -
Configuration menu - View commit details
-
Copy full SHA for f4b0c21 - Browse repository at this point
Copy the full SHA f4b0c21View commit details -
Configuration menu - View commit details
-
Copy full SHA for dfe8f6d - Browse repository at this point
Copy the full SHA dfe8f6dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9ada975 - Browse repository at this point
Copy the full SHA 9ada975View commit details -
Configuration menu - View commit details
-
Copy full SHA for 69ae8bc - Browse repository at this point
Copy the full SHA 69ae8bcView commit details -
Configuration menu - View commit details
-
Copy full SHA for 04c3296 - Browse repository at this point
Copy the full SHA 04c3296View commit details -
Configuration menu - View commit details
-
Copy full SHA for c676843 - Browse repository at this point
Copy the full SHA c676843View commit details -
Configuration menu - View commit details
-
Copy full SHA for a2a1ae8 - Browse repository at this point
Copy the full SHA a2a1ae8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3b6ef78 - Browse repository at this point
Copy the full SHA 3b6ef78View commit details -
Clean up palette packing a bit
Rename a poorly-named attribute, and add a bunch of debug logging
Configuration menu - View commit details
-
Copy full SHA for eb35b3f - Browse repository at this point
Copy the full SHA eb35b3fView commit details -
Correct "is this palette empty?" function
This notably caused decantation to delete non-empty palettes, which crashes
Configuration menu - View commit details
-
Copy full SHA for 0e97539 - Browse repository at this point
Copy the full SHA 0e97539View commit details -
Configuration menu - View commit details
-
Copy full SHA for fca8a7c - Browse repository at this point
Copy the full SHA fca8a7cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 8e1ae7d - Browse repository at this point
Copy the full SHA 8e1ae7dView commit details -
Configuration menu - View commit details
-
Copy full SHA for d80fc31 - Browse repository at this point
Copy the full SHA d80fc31View commit details -
Implement transparency handling
Though none of this has been tested so far...
Configuration menu - View commit details
-
Copy full SHA for 39fc7bb - Browse repository at this point
Copy the full SHA 39fc7bbView commit details -
Configuration menu - View commit details
-
Copy full SHA for 093defe - Browse repository at this point
Copy the full SHA 093defeView commit details -
Co-Authored-By: Rangi <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 3e33d99 - Browse repository at this point
Copy the full SHA 3e33d99View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4e5ba9e - Browse repository at this point
Copy the full SHA 4e5ba9eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 11c1a3b - Browse repository at this point
Copy the full SHA 11c1a3bView commit details -
Ensure that the color count is properly used, and that transparency is not counted as a color when packing palettes
Configuration menu - View commit details
-
Copy full SHA for 9c16d72 - Browse repository at this point
Copy the full SHA 9c16d72View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4b06b4f - Browse repository at this point
Copy the full SHA 4b06b4fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 02d20dc - Browse repository at this point
Copy the full SHA 02d20dcView commit details -
More consistent with its "main" function's name
Configuration menu - View commit details
-
Copy full SHA for 3cccf57 - Browse repository at this point
Copy the full SHA 3cccf57View commit details -
Implement "at-files" for RGBGFX
Useful for persisting flags outside of the build system
Configuration menu - View commit details
-
Copy full SHA for 22393a2 - Browse repository at this point
Copy the full SHA 22393a2View commit details -
Configuration menu - View commit details
-
Copy full SHA for 939e290 - Browse repository at this point
Copy the full SHA 939e290View commit details -
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.
Configuration menu - View commit details
-
Copy full SHA for 0ba49ec - Browse repository at this point
Copy the full SHA 0ba49ecView commit details -
Configuration menu - View commit details
-
Copy full SHA for 4893f73 - Browse repository at this point
Copy the full SHA 4893f73View commit details -
Configuration menu - View commit details
-
Copy full SHA for d0b6949 - Browse repository at this point
Copy the full SHA d0b6949View commit details -
Handle processing errors appropriately
Alter the return status accordingly, and print the error counts on exit
Configuration menu - View commit details
-
Copy full SHA for ef57cad - Browse repository at this point
Copy the full SHA ef57cadView commit details -
Configuration menu - View commit details
-
Copy full SHA for 3fb2bc0 - Browse repository at this point
Copy the full SHA 3fb2bc0View commit details -
Configuration menu - View commit details
-
Copy full SHA for c2a0f75 - Browse repository at this point
Copy the full SHA c2a0f75View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1c7ef91 - Browse repository at this point
Copy the full SHA 1c7ef91View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6f3fe36 - Browse repository at this point
Copy the full SHA 6f3fe36View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4e0aba4 - Browse repository at this point
Copy the full SHA 4e0aba4View commit details -
Configuration menu - View commit details
-
Copy full SHA for ed8d5b8 - Browse repository at this point
Copy the full SHA ed8d5b8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 780581a - Browse repository at this point
Copy the full SHA 780581aView commit details -
Remove placeholder palette output format from -p
This is now described in its own section
Configuration menu - View commit details
-
Copy full SHA for 5dea29f - Browse repository at this point
Copy the full SHA 5dea29fView commit details -
Assert that row size is not null
Silences some static analysis warning
Configuration menu - View commit details
-
Copy full SHA for af7591c - Browse repository at this point
Copy the full SHA af7591cView commit details -
Remove negative values in parseNumber checking
Including removal of a dead & useless check. By the way, fuck integer promotion.
Configuration menu - View commit details
-
Copy full SHA for a1f39bd - Browse repository at this point
Copy the full SHA a1f39bdView commit details -
Configuration menu - View commit details
-
Copy full SHA for aacac11 - Browse repository at this point
Copy the full SHA aacac11View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7066255 - Browse repository at this point
Copy the full SHA 7066255View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5b87ef3 - Browse repository at this point
Copy the full SHA 5b87ef3View commit details -
Remove incorrect check for reversed image width
That check was when the image width was in tiles, and another check right below is the correct equivalent for the new pixel-unit argument
Configuration menu - View commit details
-
Copy full SHA for 5c6d40d - Browse repository at this point
Copy the full SHA 5c6d40dView commit details -
Move randtilegen to test/gfx subdir
It's tool-specific, so categorize it where it belongs
Configuration menu - View commit details
-
Copy full SHA for 4a9d647 - Browse repository at this point
Copy the full SHA 4a9d647View commit details -
Make randtilegen report the file names it fails to open
Which of the two is erroring out can be inferred from the file name, anyway.
Configuration menu - View commit details
-
Copy full SHA for b00ed27 - Browse repository at this point
Copy the full SHA b00ed27View commit details -
Avoid initializing the PNG row
It gets overwritten right after, and uncovers an error in the interlaced read
Configuration menu - View commit details
-
Copy full SHA for 44b9373 - Browse repository at this point
Copy the full SHA 44b9373View commit details -
Either we let libpng handle the transform, or we don't. But make up your mind!
Configuration menu - View commit details
-
Copy full SHA for 6287396 - Browse repository at this point
Copy the full SHA 6287396View commit details -
Report when an input "tile" contains too many colors
Which otherwise trips a later assertion in debug mode (phew!) and crashes in release mode (oops)
Configuration menu - View commit details
-
Copy full SHA for 080f31f - Browse repository at this point
Copy the full SHA 080f31fView commit details -
Co-Authored-By: ISSOtm <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 204668f - Browse repository at this point
Copy the full SHA 204668fView commit details -
Avoid sorting proto-palettes breaking mappings
The sorting was performed without updating the mappings, which broke the world. We can instead sort the IDs as they are inserted into the packing queue, which should also be faster than moving the actual proto-pal objects around.
Configuration menu - View commit details
-
Copy full SHA for c23d27e - Browse repository at this point
Copy the full SHA c23d27eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 829df4b - Browse repository at this point
Copy the full SHA 829df4bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 95d0285 - Browse repository at this point
Copy the full SHA 95d0285View commit details -
Some disjoint sets were mistakenly reported not as such For example, {0} was considered to include {1}.
Configuration menu - View commit details
-
Copy full SHA for 6fa68d1 - Browse repository at this point
Copy the full SHA 6fa68d1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1f14be1 - Browse repository at this point
Copy the full SHA 1f14be1View commit details -
Fix alpha channel checking in RGBGFX test driver
Compare CGB colors only, including ignoring RGB components if alpha says the color is transparent
Configuration menu - View commit details
-
Copy full SHA for 05e2ca6 - Browse repository at this point
Copy the full SHA 05e2ca6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8688a65 - Browse repository at this point
Copy the full SHA 8688a65View commit details -
Fix grayscale sorting not setting palette size
A black+white palette would turn into white+transparent, removing black pixels from the palette (the third slot would be empty, and the 4th slot be set directly)
Configuration menu - View commit details
-
Copy full SHA for d77bab0 - Browse repository at this point
Copy the full SHA d77bab0View commit details -
Configuration menu - View commit details
-
Copy full SHA for b86ca10 - Browse repository at this point
Copy the full SHA b86ca10View commit details -
Configuration menu - View commit details
-
Copy full SHA for d25d124 - Browse repository at this point
Copy the full SHA d25d124View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3f55fcf - Browse repository at this point
Copy the full SHA 3f55fcfView commit details -
Configuration menu - View commit details
-
Copy full SHA for 76a2ffb - Browse repository at this point
Copy the full SHA 76a2ffbView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2b5e26c - Browse repository at this point
Copy the full SHA 2b5e26cView commit details -
Configuration menu - View commit details
-
Copy full SHA for cd950d6 - Browse repository at this point
Copy the full SHA cd950d6View commit details -
Ignore
-b
and-N
when reversing without tilemapThese offsets should only be applied to a tile ID read as input... but this ain't one!
Configuration menu - View commit details
-
Copy full SHA for 501dbfc - Browse repository at this point
Copy the full SHA 501dbfcView commit details -
Allow testing RGBGFX with specific images as input
No such tests yet, but the infrastructure will be there.
Configuration menu - View commit details
-
Copy full SHA for 2f76bdb - Browse repository at this point
Copy the full SHA 2f76bdbView commit details -
Add corrupted PNGs to check error handling
This is not intended to test libpng as much as checking that we behave correctly if libpng gives us an error
Configuration menu - View commit details
-
Copy full SHA for c827328 - Browse repository at this point
Copy the full SHA c827328View commit details -
Configuration menu - View commit details
-
Copy full SHA for da3b6f3 - Browse repository at this point
Copy the full SHA da3b6f3View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0c33716 - Browse repository at this point
Copy the full SHA 0c33716View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6846238 - Browse repository at this point
Copy the full SHA 6846238View commit details -
Configuration menu - View commit details
-
Copy full SHA for 157c29e - Browse repository at this point
Copy the full SHA 157c29eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1fb4654 - Browse repository at this point
Copy the full SHA 1fb4654View commit details -
Simplifies iterating over tiles and attributes at the same time
Configuration menu - View commit details
-
Copy full SHA for 2f77a15 - Browse repository at this point
Copy the full SHA 2f77a15View commit details -
Implement bit flipping with a lookup table
Should improve performance. This version is cooler, and also does not suffer from iteration limits
Configuration menu - View commit details
-
Copy full SHA for 311a355 - Browse repository at this point
Copy the full SHA 311a355View commit details -
Configuration menu - View commit details
-
Copy full SHA for d60b754 - Browse repository at this point
Copy the full SHA d60b754View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0e64812 - Browse repository at this point
Copy the full SHA 0e64812View commit details -
Configuration menu - View commit details
-
Copy full SHA for 400eacf - Browse repository at this point
Copy the full SHA 400eacfView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9573b54 - Browse repository at this point
Copy the full SHA 9573b54View commit details -
Configuration menu - View commit details
-
Copy full SHA for 00345f1 - Browse repository at this point
Copy the full SHA 00345f1View commit details -
Configuration menu - View commit details
-
Copy full SHA for bdfb864 - Browse repository at this point
Copy the full SHA bdfb864View commit details -
Configuration menu - View commit details
-
Copy full SHA for afba692 - Browse repository at this point
Copy the full SHA afba692View commit details
Commits on Jul 2, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 82cbe52 - Browse repository at this point
Copy the full SHA 82cbe52View commit details -
As it turns out, it is really difficult to implement, and can be dealt with later.
Configuration menu - View commit details
-
Copy full SHA for 630c744 - Browse repository at this point
Copy the full SHA 630c744View commit details -
Configuration menu - View commit details
-
Copy full SHA for 577c3b3 - Browse repository at this point
Copy the full SHA 577c3b3View commit details