1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2026-01-17 06:31:00 +00:00
serenity/Userland/Libraries/LibGfx
Timothy Flynn 9b483625e6 LibIPC+Everywhere: Change IPC decoders to construct values in-place
Currently, the generated IPC decoders will default-construct the type to
be decoded, then pass that value by reference to the concrete decoder.
This, of course, requires that the type is default-constructible. This
was an issue for decoding Variants, which had to require the first type
in the Variant list is Empty, to ensure it is default constructible.

Further, this made it possible for values to become uninitialized in
user-defined decoders.

This patch makes the decoder interface such that the concrete decoders
themselves contruct the decoded type upon return from the decoder. To do
so, the default decoders in IPC::Decoder had to be moved to the IPC
namespace scope, as these decoders are now specializations instead of
overloaded methods (C++ requires specializations to be in a namespace
scope).
2022-12-26 09:36:16 +01:00
..
Filters LibGfx: Preseve original alpha when applying tint filter 2022-11-27 20:35:22 +01:00
Font LibGfx/OpenType: Read "glyf" table header using a C++ struct 2022-12-21 08:44:22 +01:00
AffineTransform.cpp Meta+Userland: Pass Gfx::IntSize by value 2022-12-07 11:48:27 +01:00
AffineTransform.h Meta+Userland: Pass Gfx::IntSize by value 2022-12-07 11:48:27 +01:00
AntiAliasingPainter.cpp LibGfx: Add int overloads for (AntiAliasing)Painter float methods 2022-12-08 12:46:03 +00:00
AntiAliasingPainter.h LibGfx: Add int overloads for (AntiAliasing)Painter float methods 2022-12-08 12:46:03 +00:00
Bitmap.cpp LibGfx: Preserve scale on Bitmap crop 2022-12-23 12:16:46 +00:00
Bitmap.h LibGfx: Split VERIFY statements in various Bitmap class methods 2022-12-19 11:05:44 +00:00
BitmapMixer.cpp LibGfx: Add BitmapMixer 2022-01-04 21:41:14 +02:00
BitmapMixer.h LibGfx: Add BitmapMixer 2022-01-04 21:41:14 +02:00
BMPLoader.cpp LibGfx: BMPLoader: Propagate errors properly 2022-12-23 16:48:30 -05:00
BMPLoader.h LibGfx: Support BMP favicons with less than 32 bpp 2022-12-20 10:26:55 +01:00
BMPWriter.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
BMPWriter.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
CharacterBitmap.h Libraries: Make CharacterBitmap instances at compile-time 2022-03-04 17:41:08 +01:00
ClassicStylePainter.cpp LibGUI+LibGfx: Let Desktop::the() set widget effects 2022-08-09 12:08:21 +02:00
ClassicStylePainter.h LibGUI+LibGfx: Let Desktop::the() set widget effects 2022-08-09 12:08:21 +02:00
ClassicWindowTheme.cpp LibGfx+LibGUI+WindowServer+Apps+Demos: Replace ToolWindows 2022-08-25 13:28:50 +02:00
ClassicWindowTheme.h LibGfx+LibGUI+WindowServer+Apps+Demos: Replace ToolWindows 2022-08-25 13:28:50 +02:00
CMakeLists.txt LibGfx: Rename TTF/TrueType to OpenType 2022-12-21 08:44:22 +01:00
Color.cpp LibIPC+Everywhere: Change IPC decoders to construct values in-place 2022-12-26 09:36:16 +01:00
Color.h LibIPC+Everywhere: Change IPC decoders to construct values in-place 2022-12-26 09:36:16 +01:00
CursorParams.cpp Meta+Userland: Pass Gfx::IntPoint by value 2022-12-07 11:48:27 +01:00
CursorParams.h Meta+Userland: Pass Gfx::IntPoint by value 2022-12-07 11:48:27 +01:00
DDSLoader.cpp LibGfx: DDSLoader: Propagate errors properly 2022-12-23 16:48:30 -05:00
DDSLoader.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
DisjointRectSet.h LibGfx+Everywhere: Make DisjointRectSet work for non-int Rects 2022-10-27 13:06:33 +02:00
FillPathImplementation.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
Forward.h LibGfx+Everywhere: Make DisjointRectSet work for non-int Rects 2022-10-27 13:06:33 +02:00
Gamma.h LibGfx: Remove a workaround for clang before 11 2022-10-04 23:35:07 +01:00
GIFLoader.cpp LibGfx: GIFLoader: Propagate more errors 2022-12-23 16:48:30 -05:00
GIFLoader.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
ICOLoader.cpp LibGfx: Support BMP favicons with less than 32 bpp 2022-12-20 10:26:55 +01:00
ICOLoader.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
ImageDecoder.cpp Libraries: Use default constructors/destructors in LibGfx 2022-03-17 17:23:49 +00:00
ImageDecoder.h Libraries: Use default constructors/destructors in LibGfx 2022-03-17 17:23:49 +00:00
JPGLoader.cpp LibGfx: JPGLoader: Centralize error handling in read_be_word 2022-12-23 16:48:30 -05:00
JPGLoader.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
Line.h Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
Matrix.h Everywhere: Run clang-format 2022-12-03 23:52:23 +00:00
Matrix3x3.h LibGfx: Add Matrix3x3 2021-12-30 14:24:29 +01:00
Matrix4x4.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
Orientation.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Painter.cpp LibGfx: Add Painter::fill_pixels() 2022-12-25 15:35:31 +01:00
Painter.h LibGfx: Add Painter::fill_pixels() 2022-12-25 15:35:31 +01:00
Palette.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
Palette.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
Path.cpp Meta+Userland: Pass Gfx::FloatPoint by value 2022-12-07 11:48:27 +01:00
Path.h Meta+Userland: Pass Gfx::FloatPoint by value 2022-12-07 11:48:27 +01:00
PBMLoader.cpp LibGfx: Use common class template for PBM/PGM/PPM image loaders 2022-03-13 22:35:20 +01:00
PBMLoader.h Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
PGMLoader.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
PGMLoader.h Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
PNGLoader.cpp Everywhere: Run clang-format 2022-12-03 23:52:23 +00:00
PNGLoader.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
PNGShared.h Libraries: Add missing includes, add namespace qualifiers 2022-09-18 13:27:24 -04:00
PNGWriter.cpp Everywhere: Use C++ concepts instead of requires clauses 2022-12-09 11:25:30 +00:00
PNGWriter.h LibGfx: Propagate errors that occur internally in PNGWriter 2022-12-08 13:01:11 +00:00
Point.cpp LibIPC+Everywhere: Change IPC decoders to construct values in-place 2022-12-26 09:36:16 +01:00
Point.h LibIPC+Everywhere: Change IPC decoders to construct values in-place 2022-12-26 09:36:16 +01:00
PortableImageLoaderCommon.h Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
PortableImageMapLoader.h Everywhere: Split Error::from_string_literal and Error::from_string_view 2022-07-12 23:11:35 +02:00
PPMLoader.cpp LibGfx: Use common class template for PBM/PGM/PPM image loaders 2022-03-13 22:35:20 +01:00
PPMLoader.h Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
QOILoader.cpp Everywhere: Split Error::from_string_literal and Error::from_string_view 2022-07-12 23:11:35 +02:00
QOILoader.h LibGfx: Add support for "The Quite OK Image Format" (QOI) 2021-12-21 13:27:27 +01:00
QOIWriter.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
QOIWriter.h LibGfx: Add a QOI image format encoder 2022-04-13 15:21:27 +01:00
Quad.h LibGfx: Add Gfx::Quad<T> to represent arbitrary quadrilaterals 2022-04-07 17:06:02 +02:00
Rect.cpp LibIPC+Everywhere: Change IPC decoders to construct values in-place 2022-12-26 09:36:16 +01:00
Rect.h LibIPC+Everywhere: Change IPC decoders to construct values in-place 2022-12-26 09:36:16 +01:00
ShareableBitmap.cpp LibIPC+Everywhere: Change IPC decoders to construct values in-place 2022-12-26 09:36:16 +01:00
ShareableBitmap.h LibIPC+Everywhere: Change IPC decoders to construct values in-place 2022-12-26 09:36:16 +01:00
Size.cpp LibIPC+Everywhere: Change IPC decoders to construct values in-place 2022-12-26 09:36:16 +01:00
Size.h LibIPC+Everywhere: Change IPC decoders to construct values in-place 2022-12-26 09:36:16 +01:00
StandardCursor.h Base+WindowServer+LibGfx: Add new DragCopy Cursor 2022-08-31 17:29:44 +01:00
Streamer.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
StylePainter.cpp LibGUI+LibGfx: Let Desktop::the() set widget effects 2022-08-09 12:08:21 +02:00
StylePainter.h LibGUI+LibGfx: Let Desktop::the() set widget effects 2022-08-09 12:08:21 +02:00
SystemTheme.cpp LibGfx+Userland: Make Gfx::SystemTheme propagate errors 2022-12-14 18:25:28 +00:00
SystemTheme.h LibGfx+Userland: Make Gfx::SystemTheme propagate errors 2022-12-14 18:25:28 +00:00
TextAlignment.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
TextAttributes.h LibGfx: Expand TextAttributes with more information about underlining 2022-01-23 15:48:27 +03:30
TextDirection.cpp Everywhere: Fix a bunch of typos 2021-05-17 17:48:55 +01:00
TextDirection.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
TextElision.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
TextLayout.cpp Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
TextLayout.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
TextWrapping.h Userland: Move text wrapping/elision into the new TextLayout :^) 2021-07-26 21:14:39 +04:30
Triangle.cpp Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
Triangle.h Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
Vector2.h Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
Vector3.h Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
Vector4.h Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
VectorN.h LibGL: Implement glLightModel integer normalization 2022-12-20 10:42:31 +01:00
WindowTheme.cpp Libraries: Use default constructors/destructors in LibGfx 2022-03-17 17:23:49 +00:00
WindowTheme.h LibGfx+LibGUI+WindowServer+Apps+Demos: Replace ToolWindows 2022-08-25 13:28:50 +02:00