Commit Graph

560 Commits

Author SHA1 Message Date
Přemysl Eric Janouch 2ff853b7e0
Improve looped animation behaviour 2023-06-24 14:36:24 +02:00
Přemysl Eric Janouch bb4d3acd12
Premultiply through Little CMS in animations 2023-06-24 14:36:24 +02:00
Přemysl Eric Janouch 074bd4d37f
Stop abusing Cairo user data, part 2
With the shift from cairo_surface_t, we've lost our ability
to directly render vector surfaces, but it doesn't matter.
2023-06-24 14:36:24 +02:00
Přemysl Eric Janouch add96b37a6
Stop abusing Cairo user data, part 1
This commit temporarily breaks multi-page images and animations.
2023-06-24 13:56:36 +02:00
Přemysl Eric Janouch c2e8b65d0f
Don't rebuild fiv-io.c several times 2023-06-23 16:48:32 +02:00
Přemysl Eric Janouch 4f57070e27
Fix 32-bit build warnings 2023-06-23 13:56:32 +02:00
Přemysl Eric Janouch 2dc4e9c13b
Make backspace go back in history
As on Windows.
2023-06-22 18:37:24 +02:00
Přemysl Eric Janouch a1f6ffd226
Make scripts capable of 32-bit Windows builds
Now binaries can be (cross-)built using GCC for 32- and 64-bit Windows.

Additional improvements:
 - Within MSYS2, try to install the required dependencies automatically.
 - Within MSYS2, fix passing libdir paths to pkg-config.
 - Prune documentation from extracted package files,
   addressing the incredible slowness of Windows filesystem operations.
 - Fix the script name in README.adoc instructions.
2023-06-22 18:33:31 +02:00
Přemysl Eric Janouch 1eee1831a5
Windows seems to be mostly working fine 2023-06-22 11:05:04 +02:00
Přemysl Eric Janouch 86622e0c31
Make cross-compilation scripts work from MSYS2
This is weird and runs very slowly.

Meson can also find libraries outside the subroot,
in particular the fast float plugin.
2023-06-22 04:06:38 +02:00
Přemysl Eric Janouch a4772ce319
Improve native MSYS2 build compatibility 2023-06-21 18:38:30 +02:00
Přemysl Eric Janouch 0318424540
Handle LibTIFF errors correctly 2023-06-13 13:49:30 +02:00
Přemysl Eric Janouch 8d5885bfdf
Prevent a possibility of GdkPixbuf crashes 2023-06-13 13:36:24 +02:00
Přemysl Eric Janouch 41b5ddc744
Fix thumbnailing with the GdkPixbuf loader 2023-06-13 13:21:03 +02:00
Přemysl Eric Janouch b308b5da18
Fix thumbnail extraction 2023-06-13 12:44:23 +02:00
Přemysl Eric Janouch 1577961aa2
Improve compatibility with older dependencies 2023-06-10 11:52:49 +02:00
Přemysl Eric Janouch 1fb42e689f
Declare minimum Meson version
Due to our meson.add_install_script() usage, which results in a warning,
followed by an error.
2023-06-10 11:52:49 +02:00
Přemysl Eric Janouch 8953e6beea
Update comments 2023-06-09 13:13:17 +02:00
Přemysl Eric Janouch 2e8bbf0e43
Improve LibRaw thumbnail choice
Make use of LibRaw 0.21.0's extended thumbnail API.
2023-06-09 12:47:41 +02:00
Přemysl Eric Janouch 07d4ea2dde
Optimize thumbnail extraction
Don't go over the same data twice.
2023-06-08 18:59:21 +02:00
Přemysl Eric Janouch a5b5e32c3b
Refactor fiv_thumbnail_extract() 2023-06-08 18:59:20 +02:00
Přemysl Eric Janouch 1e8fe1411b
benchmark-io: ignore GdkPixbuf errors
Measuring up against that library is no longer that interesting.
2023-06-08 18:59:20 +02:00
Přemysl Eric Janouch 274c5f6f66
benchmark-io: fix URI passing
g_filename_to_uri() doesn't support relative paths.
2023-06-08 18:59:20 +02:00
Přemysl Eric Janouch de377d3eae
Move the image load benchmark under tools 2023-06-08 18:59:20 +02:00
Přemysl Eric Janouch 34388b93ea
info: decode JPEGs from all CR2 IFDs 2023-06-08 18:59:19 +02:00
Přemysl Eric Janouch 7dda3bd1ed
Make it possible to switch off our TIFF/EP loader
Slightly repurpose the "enhance" toggle, which doesn't particularly
make sense to run on a thumbnail.
2023-06-08 12:17:43 +02:00
Přemysl Eric Janouch a3a5eb33cf
Unify non/enhanced JPEG loading code
And in so doing, add missing warning redirection to JPEG Quant Smooth,
as well as downscaling.

We still heavily depend on libjpeg-turbo.
2023-06-08 09:47:55 +02:00
Přemysl Eric Janouch ee202ca28b
Fix enhancement of CMYK JPEGs
The conversion to RGB was done twice.
2023-06-07 21:57:51 +02:00
Přemysl Eric Janouch 04db6ed6a1
Slightly clean up colour management
SVGs are now semi-managed.
2023-06-06 18:08:47 +02:00
Přemysl Eric Janouch d6e79cf976
With newer Little CMS, colour manage ARGB surfaces 2023-06-06 13:01:38 +02:00
Přemysl Eric Janouch 6cc4ca1f44
Use Little CMS's alpha premultiplication feature
And do a little cleanup.
2023-06-06 12:20:03 +02:00
Přemysl Eric Janouch 1c25cb411f
Fix the remaining case in file renames monitoring 2023-06-06 08:31:29 +02:00
Přemysl Eric Janouch 399c4bdf69
info: decode WebP dimensions 2023-06-05 21:04:24 +02:00
Přemysl Eric Janouch a9b34ca3f2
Unite most info tools into just one binary
Turn this into more of an fq alternative, when used with jq.

Also don't say that TIFF files are Exif.
2023-06-05 18:11:37 +02:00
Přemysl Eric Janouch bd92ad73ec
rawinfo: add output dimensions and PAR 2023-06-05 15:42:38 +02:00
Přemysl Eric Janouch b3bc481172
rawinfo: descend into JPEG thumbnails 2023-06-05 15:42:38 +02:00
Přemysl Eric Janouch a3745df84b
Fix monitoring of file renames 2023-06-05 15:42:38 +02:00
Přemysl Eric Janouch cc59e537da
Update meson invocation to avoid warnings 2023-06-04 17:15:37 +02:00
Přemysl Eric Janouch 338ae69121
Add support for the Little CMS fast float plugin
On a sample of JPEGs, it improved loading speed from ~0.26s to ~0.15s.

Unfortunately, it isn't normally installed.
2023-06-04 16:16:52 +02:00
Přemysl Eric Janouch 1c61fcc5bc
Move git submodules to a subdirectory 2023-06-04 12:57:47 +02:00
Přemysl Eric Janouch dd1d6647dc
Shuffle code around 2023-06-04 12:10:36 +02:00
Přemysl Eric Janouch abf4f1a792
Convert to strictly non-unique GtkApplication
It's not pretty, but it works.
2023-06-04 12:10:36 +02:00
Přemysl Eric Janouch 6a7c86a41b
Remove a macOS rendering bug workaround
Most important Cairo bugs seem to have been fixed recently.
2023-06-04 12:10:35 +02:00
Přemysl Eric Janouch 6277a32fe6
Avoid invisible browser entries 2023-06-04 10:36:42 +02:00
Přemysl Eric Janouch 8f0576d6bc
Update runtime dependencies 2023-06-03 21:36:45 +02:00
Přemysl Eric Janouch f56c40cf00
Update sidebar entries on change automatically
This makes it more consistent.
2023-06-02 07:44:42 +02:00
Přemysl Eric Janouch 28a1237d62
Slightly optimize file monitoring event handling 2023-06-01 20:58:16 +02:00
Přemysl Eric Janouch 4c8df56193
Distinguish removed files more prettily
It's still somewhat bad, but at least no longer ridiculous.
2023-06-01 19:11:20 +02:00
Přemysl Eric Janouch 200485246b
Process some GFileMonitor events
So far, it's rather crude.
2023-05-31 18:39:14 +02:00
Přemysl Eric Janouch 2caebb7d19
Fix crash when right-clicking removed files 2023-05-31 14:46:06 +02:00