Jeroen van Rijn
fdd24f787f
[image/tga] Writer for RGB(A) 8-bit images.
2022-04-18 23:28:34 +02:00
Jeroen van Rijn
bf712e9355
[QOI] Add support for RGB images (previously loader always output RGBA).
...
Also add QOI to CI test suite by roundtripping 8-bit RGB(A) through QOI and checking the hashes match.
2022-04-12 19:23:48 +02:00
Jeroen van Rijn
ab9457346d
[PNG] Remove debug printf.
2022-04-12 18:26:10 +02:00
Jeroen van Rijn
15b440c4f1
[image] Add QOI load/save.
...
Additionally:
- Firm up PNG loader with some additional checks.
- Add helper functions to `core:image` to expand grayscale to RGB(A), and so on.
TODO: Possibly replace PNG's post-processing steps with calls to the new helper functions.
2022-04-12 18:14:09 +02:00
gingerBill
17e36bd5e1
Utilize union #shared_nil to core:image Error
2022-03-24 12:06:18 +00:00
gingerBill
3d7d347192
Convert ODIN_OS and ODIN_ARCH to use enums rather than use strings
2022-01-20 19:56:05 +00:00
gingerBill
c85ac955f7
Simplify docs to hide the copyright
2022-01-17 19:00:47 +00:00
gingerBill
f0529535e0
ODIN_ENDIAN changed to an enum constant; ODIN_ENUM_STRING is the new string version of the old constant
2022-01-15 17:53:18 +00:00
Jeroen van Rijn
b4b53aeb71
png: Channel helper metadata.
2021-10-06 22:47:40 +02:00
Jeroen van Rijn
c4b4a841d6
png: Move metadata.
2021-10-06 22:43:33 +02:00
Jeroen van Rijn
263d63aa56
png: Add more OOM checks.
2021-10-06 22:09:32 +02:00
Jeroen van Rijn
8fcd1794a6
png: Add sane compile-time maximums for dimensions + chunk sizes.
2021-10-06 21:48:22 +02:00
Jeroen van Rijn
9b5ae95677
png + compress: Rearrange error unions.
2021-10-06 20:45:29 +02:00
Jeroen van Rijn
21c6d691d8
Add additional error checking to helpers.
2021-10-06 20:10:37 +02:00
Jeroen van Rijn
72fe1e88a3
Make sure to delete on the right allocator.
2021-09-19 12:19:01 +02:00
gingerBill
f57201bbd1
Remove unneeded semicolons from the core library
2021-08-31 22:32:53 +01:00
gingerBill
251da264ed
Remove unneeded semicolons from the core library
2021-08-31 22:21:13 +01:00
gingerBill
4035fec784
Add more uses of or_return
2021-08-15 18:13:56 +01:00
Jeroen van Rijn
d949d5a046
ZLIB: cleanup.
2021-06-27 16:48:12 +02:00
Jeroen van Rijn
064516bf0b
PNG: Inform inflate about expected output size for extra speed.
2021-06-27 13:57:12 +02:00
Jeroen van Rijn
eaf88bcc4d
PNG: Let PNG use the new compress I/O routines.
2021-06-27 13:51:52 +02:00
Jeroen van Rijn
342adb627d
All reads now skip stream if in memory.
2021-06-23 16:32:48 +02:00
Jeroen van Rijn
8663c64e47
Refactor ZLIB structs.
2021-06-23 16:32:47 +02:00
Jeroen van Rijn
ae0b8fce44
Move bytes utils back to EXR code for the time being.
...
Also, allow PNG example to be run directly from `core:image/png` directory.
2021-06-22 16:39:00 +02:00
Jeroen van Rijn
d5e2b387fa
PNG: Fix leak if you don't ask for metadata.
2021-06-21 22:47:54 +02:00
Jeroen van Rijn
1e8c12c2a3
Comment out tracy imports.
2021-06-21 21:41:56 +02:00
Jeroen van Rijn
352494cbb4
ZLIB: Start optimization.
2021-06-21 21:05:52 +02:00
Jeroen van Rijn
e036a321a0
Replace core:image's sidecar with explicit metadata_ptr and metadata_type.
...
To unpack, use:
```odin
v: ^png.Info;
if img.metadata_ptr != nil && img.metadata_type == png.Info {
v = (^png.Info)(img.metadata_ptr);
...
}
```
2021-06-21 16:32:42 +02:00
Jeroen van Rijn
55d09251d8
Change PNG's img.sidecar to ^Info, make img.depth an int.
...
For compatibility with the upcoming OpenEXR code, img.depth is now an int.
Like OpenEXR's code, it will now also return metadata as ^Info instead of Info.
The example was updated to retrieve the metadata this way.
It regrettably does not fix : #1018 . That seems to be a codegen issue in the test runner or elsewhere.
2021-06-20 18:27:23 +02:00
gingerBill
9f8a63cb43
More minor stylization changes (remove unneeded parentheses)
2021-06-14 11:34:31 +01:00
gingerBill
6f745677b4
Minor formatting changes
2021-06-14 11:30:00 +01:00
gingerBill
86649e6b44
Core library clean up: Make range expressions more consistent and replace uses of .. with ..=
2021-06-14 11:15:25 +01:00
Jeroen van Rijn
afb6ebd21e
Fix gray+alpha alpha extract.
2021-05-04 17:48:43 +02:00
Jeroen van Rijn
9a39ce6b75
Change General_Error.OK to nil
2021-05-03 15:38:43 +02:00
Jeroen van Rijn
59b3c472ca
Convert core:compress and core:image error checks to new union comparison.
...
No more need for `is_kind(err, Error_Value)`, just test err == Error_Value.
2021-05-03 15:08:34 +02:00
Jeroen van Rijn
448f834b28
Remove debug print in image helper.
2021-05-03 01:23:03 +02:00
Jeroen van Rijn
3160a6a12c
Don't need other path for grayscale output.
2021-05-02 21:11:06 +02:00
Jeroen van Rijn
7d534769d6
Add new PNG post processing options.
2021-05-02 20:38:30 +02:00
Jeroen van Rijn
433d742183
Fix Paeth for bit depth < 8.
2021-05-01 20:39:00 +02:00
Jeroen van Rijn
0659a11a1a
PNG: Fix tRNS handling.
2021-05-01 18:24:31 +02:00
Jeroen van Rijn
db1ef078ff
Fix a few more cases in which bKGD wasn't properly applied.
2021-05-01 16:05:13 +02:00
Jeroen van Rijn
a02bcd3bfd
PNG: Fix test for when premultiplication is needed.
2021-05-01 13:16:47 +02:00
gingerBill
5f617c56e1
Minor stylistic code changes to compress and image packages
2021-04-30 10:58:29 +01:00
Jeroen van Rijn
06f1eaa153
Use regular allocator from png+gzip's load_from_file.
...
I would've used `os.stream_from_handle`, but:
- Parts of it seem to be implemented for Windows only at the moment.
- PNG's `peek_data` using that stream didn't manage to rewind and thus tried to parse the data after the header as the header.
Two things must happen:
- The `os.stream_from_handle` implementation needs to be fixed.
- PNG and GZIP's parsers need to be able to handle streams that can't rewind or seek (backward).
Those fixes are on my TODO list but are exceed the scope of this patch.
2021-04-30 09:35:43 +02:00
Jeroen van Rijn
58e023e0cf
Add compress and image to core.
2021-04-30 00:21:52 +02:00