Commit Graph

14598 Commits

Author SHA1 Message Date
Michael Drake
7d5c449389 GTK: Simplify opaque bitmap handling.
Avoid creating new bitmaps and copying in set_opaque by always
using an RGBA format.
2022-03-29 17:32:40 +01:00
Michael Drake
8e56cc3b1a Bitmap: Implement test_opaque in core instead of in every frontend. 2022-03-29 15:25:33 +01:00
Michael Drake
cfbd16cf7e Bitmap: Try to squash -Wtautological-constant-out-of-range-compare 2022-03-28 16:52:29 +01:00
Michael Drake
231c96cf8d GTK: Bitmap: Converted bool not needed any more. 2022-03-28 16:42:09 +01:00
Michael Drake
fce59865c5 GTK: Drop bitmap format logging that's duplicated in the core. 2022-03-28 16:29:14 +01:00
Michael Drake
01ce05ae65 Bitmap: Log the bitmap format that gets set. 2022-03-28 16:28:47 +01:00
Michael Drake
414cb1a851 GTK: Get the core to handle premultipled alpha bitmap format. 2022-03-28 16:08:00 +01:00
Michael Drake
feeda29c27 WebP: Optimisation: If it's opaque avoid any PMA conversions. 2022-03-28 16:06:02 +01:00
Michael Drake
4307230331 PNG: Allow support for premultiplied alpha.
LibPNG doesn't support premultiplied alpha, so now that the core
supports it, we can't just say that the decoded PNG is in the
core bitmap format.

So we now say it's in the core pixel layout, and if it's opaque
we say it has the same premultipled alpha setting as core bitmaps
because the conversion is costly and makes no difference.

On the other hand if it is not opaque we now admit that it is
not premultipled alpha so it gets converted if needed.
2022-03-28 16:05:47 +01:00
Michael Drake
c93ed6d63a Bitmap: Add support for premultiplied alpha conversion. 2022-03-28 16:05:47 +01:00
Michael Drake
035106032b GTK: Search: Squash implicit declaration of malloc. 2022-03-28 11:47:46 +01:00
Michael Drake
acc07fcf85 GTK: Scaffolding: Squash implicit declaration of malloc, free. 2022-03-28 11:47:03 +01:00
Michael Drake
5b96635c73 GTK: Misc: Squash strcmp and strdup implicit declaration warnings. 2022-03-28 11:45:17 +01:00
Michael Drake
ad7544a6df GTK: Set bitmap format to match Cairo format.
Cairo format is native endian 0xAARRGGBB.
2022-03-28 11:11:03 +01:00
Michael Drake
6ecf0c2c6a Desktop: Browser window: Squash theme install start warning. 2022-03-28 11:06:16 +01:00
Michael Drake
8ad21395be About: Chart: Squash implicit declaration of strndup. 2022-03-28 11:06:16 +01:00
Michael Drake
d0da09a7ca Image: JPEG: Decode to client bitmap format where possible. 2022-03-27 13:25:37 +01:00
Michael Drake
bbfc0ca353 Image: JPEG: Warn if not using libjpeg-turbo.
Replaces RISC OS warning with a more general and relevant one.
2022-03-27 11:03:43 +01:00
Michael Drake
d33af42911 Image: WebP: Decode to client bitmap format where possible. 2022-03-27 10:50:29 +01:00
Michael Drake
41995c3999 Image: WebP: Correct output buffer size for rowstride. 2022-03-27 10:41:27 +01:00
Michael Drake
fba7a349c0 Image: Sprite: Avoid multiple bitmap format conversions. 2022-03-27 10:17:48 +01:00
Michael Drake
694a3b4c98 Image: RSVG: Just use bitmap to client for conversion. 2022-03-27 09:58:21 +01:00
Michael Drake
b0e7de8bff Image: PNG: Decode to client bitmap format. 2022-03-27 09:58:21 +01:00
Michael Drake
cde6a10ef4 Image: GIF: Decode directly to client bitmap format. 2022-03-27 09:58:21 +01:00
Michael Drake
c69bc8ba9c Bitmap: Colour layout converter doesn't need to be exposed. 2022-03-27 09:58:21 +01:00
Michael Drake
05a0a6997e Treeview: Use bitmap layout for bitmap generation. 2022-03-27 09:58:21 +01:00
Michael Drake
aeead57677 Bitmap: Convert pixel_to_colour to layout-aware function. 2022-03-27 09:58:21 +01:00
Michael Drake
d00c049d02 Bitmap: Move bitmap pixel to colour macro to bitmap header. 2022-03-27 09:58:21 +01:00
Michael Drake
1bbb499f88 Image: WebP: Call bitmap format conversion after decode.
Currently a no-op, because we decode to the default format
and no front end requests anything but the default format.
2022-03-27 09:58:21 +01:00
Michael Drake
df6ff85305 Image: RSVG: Call bitmap format conversion after decode.
Currently a no-op, because we decode to the default format
and no front end requests anything but the default format.
2022-03-27 09:58:21 +01:00
Michael Drake
052acc752c Image: PNG: Call bitmap format conversion after decode.
Currently a no-op, because we decode to the default format
and no front end requests anything but the default format.
2022-03-26 15:45:00 +00:00
Michael Drake
7bf6a88c9c Image: Sprite: Call bitmap format conversion after decode.
Currently a no-op, because we decode to the default format
and no front end requests anything but the default format.
2022-03-26 15:45:00 +00:00
Michael Drake
2f0fbbcaa0 Image: JPEG: Call bitmap format conversion after decode.
Currently a no-op, because we decode to the default format
and no front end requests anything but the default format.
2022-03-26 15:45:00 +00:00
Michael Drake
c7dce05437 Image: ICO: Abstract image decode into helper. 2022-03-26 15:45:00 +00:00
Michael Drake
60b12cd9fe Image: ICO: Call bitmap format conversion after decode.
Currently a no-op, because we decode to the default format
and no front end requests anything but the default format.
2022-03-26 15:45:00 +00:00
Michael Drake
e7a355bf8d Image: GIF: Call bitmap format conversion before/after decode.
Currently a no-op, because we decode to the default format
and no front end requests anything but the default format.
2022-03-26 15:45:00 +00:00
Michael Drake
27a89439a2 Image: BMP: Call bitmap format conversion after decode.
Currently a no-op, because we decode to the default format
and no front end requests anything but the default format.
2022-03-26 15:45:00 +00:00
Michael Drake
976f54bf48 Bitmap: Initialise layout for default pixel format. 2022-03-26 15:45:00 +00:00
Michael Drake
f27db5f80b Bitmap: Add format conversion routines. 2022-03-26 15:45:00 +00:00
Michael Drake
e9d1a1fa9d Include: Bitmap: Add API for setting core bitmap format. 2022-03-26 15:45:00 +00:00
Michael Drake
6011da798f Include: Bitmap: Document bitmap pixel alignment requirement. 2022-03-26 14:13:56 +00:00
Michael Drake
725d1c9911 Treeview: Change bitmap generation to per-pixel channel indexing.
This will be needed when the core bitmap layout is client controlled.
2022-03-25 20:18:13 +00:00
Michael Drake
7f6a00ad2b RISC OS: Include core bitmap header from RO bitmap header.
Squash warnings about enum declared inside parameter list.
2022-03-24 22:19:22 +00:00
Michael Drake
9892eefd0a RISC OS: Squash unused variable warning. 2022-03-24 22:17:48 +00:00
Michael Drake
002c3c1a7c Bitmap API: Clean up creation flags. 2022-03-24 18:09:28 +00:00
Michael Drake
c2d72d1e93 Include: Bitmap: Remove unused save callback. 2022-03-24 15:29:27 +00:00
Michael Drake
eca8c260a8 BeOS: Drop bitmap save callback entry; core doesn't use it. 2022-03-24 15:29:08 +00:00
Michael Drake
b0e61d1f32 Windows: Drop bitmap save callback entry; core doesn't use it. 2022-03-24 15:28:49 +00:00
Michael Drake
e104fd798b RISC OS: Drop bitmap save callback entry; core doesn't use it. 2022-03-24 15:28:36 +00:00
Michael Drake
8e57f2a2f5 Monkey: Drop bitmap save callback entry; core doesn't use it. 2022-03-24 15:28:22 +00:00