ladybird/Userland/Libraries/LibGfx
Linus Groh e4bba2fab9 LibGfx: Keep alpha value of previous pixel for QOI_OP_RGB chunk
I accidentally skipped this part of the spec in the QOI decoder:

> The alpha value remains unchanged from the previous pixel.

This led to incorrect rendering of some images with transparency,
visible in form of a horizontal line of non-transparent pixels (that
shouldn't exist), e.g. for the following chunk sequence:

- QOI_OP_RGBA with alpha = 0
- QOI_OP_RGB
- QOI_OP_RUN

The QOI_OP_RGB should 'inherit' the alpha value of the previous
QOI_OP_RGBA chunk, instead of always setting it to 255.
I'm unsure why the encoder added the QOI_OP_RGB chunk to the specific
image where the bug was noticed in the first place - they effectively
both had fully transparent color values.
2021-12-22 01:12:51 +01:00
..
Filters AK+Everywhere: Stop including Vector.h from StringView.h 2021-11-10 21:58:58 +01:00
TrueTypeFont LibGfx: Handle malformed Platform ID during TTF parsing 2021-12-16 18:50:02 +01:00
AffineTransform.cpp Everywhere: Don't promote float to double where not needed 2021-07-08 10:11:00 +02:00
AffineTransform.h AK: Convert AK::Format formatting helpers to returning ErrorOr<void> 2021-11-17 00:21:13 +01:00
AntiAliasingPainter.cpp LibGfx: Implement cubic bezier curves by splitting them to subcurves 2021-09-18 02:12:38 +04:30
AntiAliasingPainter.h LibGfx: Implement cubic bezier curves by splitting them to subcurves 2021-09-18 02:12:38 +04:30
Bitmap.cpp LibGfx: Use Core::System::open() in Gfx::Bitmap :^) 2021-11-23 12:23:54 +01:00
Bitmap.h LibGfx: Add support for "The Quite OK Image Format" (QOI) 2021-12-21 13:27:27 +01:00
BitmapFont.cpp AK+Everywhere: Replace __builtin bit functions 2021-12-21 22:13:51 +01:00
BitmapFont.h LibGfx+FontEditor: Add helper to determine raw glyph presence 2021-11-30 10:51:51 +01:00
BMPLoader.cpp AK+Everywhere: Replace __builtin bit functions 2021-12-21 22:13:51 +01:00
BMPLoader.h LibGfx: Make ImageDecoderPlugin::frame() return ErrorOr<> 2021-11-21 20:22:48 +01:00
BMPWriter.cpp AK: Make ByteBuffer::try_* functions return ErrorOr<void> 2021-11-10 21:58:58 +01:00
BMPWriter.h LibGfx/BMPWriter: Add support for V3 & V4 DIB headers 2021-07-05 00:43:00 +02:00
CharacterBitmap.cpp AK: Rename adopt() to adopt_ref() 2021-04-23 16:46:57 +02:00
CharacterBitmap.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
ClassicStylePainter.cpp Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
ClassicStylePainter.h Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
ClassicWindowTheme.cpp Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
ClassicWindowTheme.h Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
CMakeLists.txt LibGfx: Add support for "The Quite OK Image Format" (QOI) 2021-12-21 13:27:27 +01:00
Color.cpp LibIPC+IPCCompiler+AK: Make IPC value decoders return ErrorOr<void> 2021-11-28 23:14:19 +01:00
Color.h LibIPC+IPCCompiler+AK: Make IPC value decoders return ErrorOr<void> 2021-11-28 23:14:19 +01:00
CursorParams.cpp Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
CursorParams.h Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
DDSLoader.cpp LibGfx: Make ImageDecoderPlugin::frame() return ErrorOr<> 2021-11-21 20:22:48 +01:00
DDSLoader.h LibGfx: Make ImageDecoderPlugin::frame() return ErrorOr<> 2021-11-21 20:22:48 +01:00
DisjointRectSet.cpp LibGfx: Unify Rect, Point, and Size 2021-05-02 22:48:06 +02:00
DisjointRectSet.h WindowServer: Add basic virtual desktop support 2021-07-03 12:27:23 +02:00
Emoji.cpp LibGfx: Use ErrorOr<T> for Bitmap::try_load_from_file() 2021-11-08 00:35:27 +01:00
Emoji.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
FillPathImplementation.h LibWeb: Use Gfx::AntiAliasingPainter to draw SVG paths 2021-09-18 02:12:38 +04:30
Font.h LibGfx+FontEditor: Consolidate BitmapFont width and height limits 2021-11-30 10:51:51 +01:00
FontDatabase.cpp Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
FontDatabase.h Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
FontStyleMapping.h LibGUI: Add missing headers 2021-10-06 23:52:40 +01:00
Forward.h LibGfx: Forward declare Gfx::FontMetrics as a struct 2021-09-24 19:03:46 +02:00
Gamma.h LibGfx: Remove ancient unused NO_FPU macros 2021-08-18 11:35:51 +02:00
GIFLoader.cpp LibGfx: Use StringView for header constants in the GIF decoder 2021-11-21 20:22:48 +01:00
GIFLoader.h LibGfx: Make ImageDecoderPlugin::frame() return ErrorOr<> 2021-11-21 20:22:48 +01:00
ICOLoader.cpp LibGfx: Make ImageDecoderPlugin::frame() return ErrorOr<> 2021-11-21 20:22:48 +01:00
ICOLoader.h LibGfx: Make ImageDecoderPlugin::frame() return ErrorOr<> 2021-11-21 20:22:48 +01:00
ImageDecoder.cpp LibGfx: Add support for "The Quite OK Image Format" (QOI) 2021-12-21 13:27:27 +01:00
ImageDecoder.h LibGfx: Make ImageDecoderPlugin::frame() return ErrorOr<> 2021-11-21 20:22:48 +01:00
JPGLoader.cpp LibGfx: Make ImageDecoderPlugin::frame() return ErrorOr<> 2021-11-21 20:22:48 +01:00
JPGLoader.h LibGfx: Make ImageDecoderPlugin::frame() return ErrorOr<> 2021-11-21 20:22:48 +01:00
Line.h LibGUI: Add missing headers 2021-10-06 23:52:40 +01:00
Matrix.h LibGfx: Implement copy-assign for Matrix 2021-10-10 21:03:27 +01:00
Matrix4x4.h Everywhere: Use AK/Math.h if applicable 2021-07-19 16:34:21 +04:30
Orientation.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Painter.cpp LibGfx: Load default font lazily 2021-11-29 23:17:05 +03:30
Painter.h LibGfx: Load default font lazily 2021-11-29 23:17:05 +03:30
Palette.cpp LibCore: Use ErrorOr<T> in Core::AnonymousBuffer 2021-11-08 00:35:27 +01:00
Palette.h LibGfx: Add 'IsDark' flag to SystemTheme and Palette 2021-10-31 18:39:13 +01:00
Path.cpp LibGfx: Implement cubic bezier curves by splitting them to subcurves 2021-09-18 02:12:38 +04:30
Path.h LibGfx: Implement cubic bezier curves by splitting them to subcurves 2021-09-18 02:12:38 +04:30
PBMLoader.cpp LibGfx: Make ImageDecoderPlugin::frame() return ErrorOr<> 2021-11-21 20:22:48 +01:00
PBMLoader.h LibGfx: Make ImageDecoderPlugin::frame() return ErrorOr<> 2021-11-21 20:22:48 +01:00
PGMLoader.cpp LibGfx: Make ImageDecoderPlugin::frame() return ErrorOr<> 2021-11-21 20:22:48 +01:00
PGMLoader.h LibGfx: Make ImageDecoderPlugin::frame() return ErrorOr<> 2021-11-21 20:22:48 +01:00
PNGLoader.cpp LibGfx: Use ErrorOr<void> more internally in PNGImageDecoderPlugin 2021-11-21 20:22:48 +01:00
PNGLoader.h LibGfx: Make ImageDecoderPlugin::frame() return ErrorOr<> 2021-11-21 20:22:48 +01:00
PNGWriter.cpp Everywhere: Make ByteBuffer::{create_*,copy}() OOM-safe 2021-09-06 01:53:26 +02:00
PNGWriter.h LibGfx: Store the size of the chunk from start in PNGWriter 2021-07-14 13:37:18 +02:00
Point.cpp LibIPC+IPCCompiler+AK: Make IPC value decoders return ErrorOr<void> 2021-11-28 23:14:19 +01:00
Point.h LibIPC+IPCCompiler+AK: Make IPC value decoders return ErrorOr<void> 2021-11-28 23:14:19 +01:00
PortableImageLoaderCommon.h LibGfx: Remove load_FORMAT() image codec wrappers 2021-11-11 11:32:22 +01:00
PPMLoader.cpp LibGfx: Make ImageDecoderPlugin::frame() return ErrorOr<> 2021-11-21 20:22:48 +01:00
PPMLoader.h LibGfx: Make ImageDecoderPlugin::frame() return ErrorOr<> 2021-11-21 20:22:48 +01:00
QOILoader.cpp LibGfx: Keep alpha value of previous pixel for QOI_OP_RGB chunk 2021-12-22 01:12:51 +01:00
QOILoader.h LibGfx: Add support for "The Quite OK Image Format" (QOI) 2021-12-21 13:27:27 +01:00
Rect.cpp LibIPC+IPCCompiler+AK: Make IPC value decoders return ErrorOr<void> 2021-11-28 23:14:19 +01:00
Rect.h LibIPC+IPCCompiler+AK: Make IPC value decoders return ErrorOr<void> 2021-11-28 23:14:19 +01:00
ShareableBitmap.cpp LibIPC+IPCCompiler+AK: Make IPC value decoders return ErrorOr<void> 2021-11-28 23:14:19 +01:00
ShareableBitmap.h LibIPC+IPCCompiler+AK: Make IPC value decoders return ErrorOr<void> 2021-11-28 23:14:19 +01:00
Size.cpp LibIPC+IPCCompiler+AK: Make IPC value decoders return ErrorOr<void> 2021-11-28 23:14:19 +01:00
Size.h LibIPC+IPCCompiler+AK: Make IPC value decoders return ErrorOr<void> 2021-11-28 23:14:19 +01:00
StandardCursor.h Cursors: Add new Magnifying glass cursor 2021-09-04 03:35:23 +02:00
Streamer.h Everywhere: Fix more Copyright header inconsistencies 2021-10-04 11:10:09 +01:00
StylePainter.cpp Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
StylePainter.h Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
SystemTheme.cpp LibCore: Use ErrorOr<T> in Core::AnonymousBuffer 2021-11-08 00:35:27 +01:00
SystemTheme.h LibGfx: Add FlagRole to GUI::Variant 2021-11-05 23:34:22 +01:00
TextAlignment.h Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
TextAttributes.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
TextDirection.cpp Everywhere: Fix a bunch of typos 2021-05-17 17:48:55 +01:00
TextDirection.h LibGUI: Add missing headers 2021-10-06 23:52:40 +01:00
TextElision.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
TextLayout.cpp LibGfx: Take the glyph spacing into account when building a line 2021-07-27 23:47:00 +02:00
TextLayout.h Userland: Move text wrapping/elision into the new TextLayout :^) 2021-07-26 21:14:39 +04:30
TextWrapping.h Userland: Move text wrapping/elision into the new TextLayout :^) 2021-07-26 21:14:39 +04:30
Triangle.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Triangle.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Typeface.cpp LibGfx: Use move to avoid unnecessary ref/unref of network device RefPtr 2021-09-16 17:17:13 +02:00
Typeface.h LibGfx: Mark Typeface::get_font() const, because it is const 2021-08-18 10:32:32 +02:00
Vector2.h AK: Convert AK::Format formatting helpers to returning ErrorOr<void> 2021-11-17 00:21:13 +01:00
Vector3.h AK: Convert AK::Format formatting helpers to returning ErrorOr<void> 2021-11-17 00:21:13 +01:00
Vector4.h AK: Convert AK::Format formatting helpers to returning ErrorOr<void> 2021-11-17 00:21:13 +01:00
WindowTheme.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
WindowTheme.h Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00