Commit graph

25 commits

Author SHA1 Message Date
Sophie Herold
c2df5586c1 tiling: Don't completely empty buffer in animation
Previously, this would lead to flickering if the decoder was too slow.
Now, the last frame will be shown until a new one is available.

Closes #382
2024-07-17 14:01:37 +02:00
Sophie Herold
fe43bc3a4c metadata: Centralize many loose ends 2024-01-01 22:43:30 +01:00
Sophie Herold
139bd4ebb2 decoder/tiling: Make shared frame buffer a struct 2023-12-26 22:09:07 +01:00
Sophie Herold
6827a9c176 print: Use LpImage for preview 2023-12-26 21:51:39 +01:00
Sophie Herold
2648295a18 code: Reformat with group_imports=StdExternalCrate 2023-12-07 20:33:19 +01:00
Sophie Herold
057ca6a3d0 image/rendering: Use scale instead of scale-factor
`GdkSurface:scale` supports fractional scaling available as
"scale-monitor-framebuffer" on Mutter. Use this value everywhere
instead of the integer scale-factor

Closing #182
2023-12-06 23:39:09 +01:00
Sophie Herold
5b3ad7c257 code: Fix typos 2023-11-30 21:58:26 +01:00
Sophie Herold
b56d650086 code: Reformat with new rules 2023-11-29 21:16:11 +01:00
Sophie Herold
55811a2bb7 image: Use macro for object properties 2023-11-29 18:52:31 +01:00
Sophie Herold
65e7789863 decoder: Fix animations with variable frame length
Before, the length of the first frame was used for all frames.

Part-of: <https://gitlab.gnome.org/GNOME/loupe/-/merge_requests/300>
2023-10-31 00:31:25 +00:00
Sophie Herold
55551ae6a2 general: Update copyright notices
Part-of: <https://gitlab.gnome.org/GNOME/loupe/-/merge_requests/258>
2023-07-18 17:48:43 +00:00
Sophie Herold
06d688e79e src: Format let-else statements 2023-07-07 19:22:51 +00:00
FineFindus
bc9aff5068 refactor: Use is_some_and 2023-06-26 11:59:17 +00:00
Sophie Herold
1b2dde79b6 decoder: Use glycin for image loading expect SVG
This gives us sandboxed image decoding and others the
option to extend Loupe with other image formats.
2023-06-07 20:21:28 +00:00
Sophie Herold
2f9fad47a1 src: Update or add auto generated license headers
Closes #55

Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/169>
2023-04-19 20:02:01 +02:00
Sophie Herold
e5d5841e5d tiling: Store tiling for each layer and fix bugs
Tilings now have a flexible origin and are stored with the
tile layer. This allows to make the first tile centered
in the viewport, allowing for faster getting a complete
viewport.

This also fixes some rendering bugs caused by forgetting
tiles the were still needed. But not all of them.

Fixes #83, #94
Issue #82

Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/179>
2023-04-19 02:16:37 +02:00
Sophie Herold
ae5ca76176 printing: Add printing support
Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/165>
2023-04-18 23:52:53 +00:00
Sophie Herold
8669b870af image: Fix textures and bg color not reloading
The reload procedure for changed image files is triggered
but the old data has to be deleted to be re-generated.

Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/176>
2023-04-18 21:03:02 +00:00
Sophie Herold
7bf9baa581 image: Ensure contrast for transparent images
Determine if the image is transparent and has low
contrast with default background color. If so,
use a different background color.

Closes #31

Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/151>
2023-04-02 23:08:51 +00:00
Sophie Herold
e5fc4bc85c image: Add high DPI support
Always interpret the scaling percentag in physical pixels.
This makes 100% show the image 1:1 in screen pixels.

Closes #37
2023-04-02 15:22:12 +00:00
Sophie Herold
67207bb215 image: Use mipmaps for zoom-out and NN for zoom-in
Before we always used "linear" filtering. This gave
a harsh image with moire patterns when zooming out
and washed out images when zooming in.

Closes #68, #71

Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/125>
2023-03-25 15:32:31 +00:00
Sophie Herold
f33c4bd470 decoder: Support animated formats (GIF, WEBP, APNG)
Closes #27
2023-03-18 20:23:08 +00:00
Sophie Herold
42d558d22f propertiesView: Use image dimensions from decoder
This also shows the units for SVG dimensions if not pixels.

Issue #43

Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/136>
2023-03-14 02:31:07 +00:00
Sophie Herold
5217d39cd3 tiling: Revert using append_scaled_texture
It slows down zoom and pan and has no use yet.
2023-03-08 03:00:26 +00:00
Sophie Herold
f80ec7db56 decoder: Use image-rs, libheif-rs, librsvg
This adds proper support for a lot of image formats including SVGs.
It will be the basis for many features to come. The technical core
is an asynchronous renderer that can arrange textures in smaller tiles
which might be generated on demand.

Closes #34, #40, #41, #49

Basis for fixing the following issues #7, #27, #36, #43, #68, #71
2023-03-04 21:48:51 -05:00