ladybird/Libraries/LibGfx
Andreas Kling 4f684bb4c9 LibGfx: Don't create AnonymousBuffer for each bitmap in BitmapSequence
When decoding a BitmapSequence received over IPC, we were creating an
AnonymousBuffer for each bitmap and then making a Gfx::Bitmap wrapper
around it.

This was unnecessarily using up one file descriptor per bitmap, and also
wasting a lot of memory for small bitmaps since we always allocated at
least one VM page.

This patch changes the BitmapSequence decoder to use malloc memory
instead, saving file descriptors and using less memory overall.
2025-10-24 08:52:53 +02:00
..
Font LibGfx: Add fast_is<T> optimization for Typeface and TypefaceSkia 2025-09-22 15:00:50 +02:00
ImageFormats LibGfx: Correctly determine when to invert CMYK 2025-10-15 21:50:16 +02:00
AffineTransform.cpp LibGfx: Implement AffineTransform::to_matrix() 2025-10-10 15:37:45 +02:00
AffineTransform.h LibGfx: Implement AffineTransform::to_matrix() 2025-10-10 15:37:45 +02:00
Bitmap.cpp LibGfx: Don't create AnonymousBuffer for each bitmap in BitmapSequence 2025-10-24 08:52:53 +02:00
Bitmap.h LibGfx: Don't create AnonymousBuffer for each bitmap in BitmapSequence 2025-10-24 08:52:53 +02:00
BitmapSequence.cpp LibGfx: Don't create AnonymousBuffer for each bitmap in BitmapSequence 2025-10-24 08:52:53 +02:00
BitmapSequence.h LibGfx+ImageDecoder: Use RefPtr<Bitmap> instead of optional 2025-03-22 17:49:38 +01:00
BoundingBox.h Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
CMakeLists.txt LibGfx: Use PkgConfig to find libdrm 2025-10-22 13:54:54 +02:00
CMYKBitmap.cpp LibGfx: Use NonnullRefPtr<Bitmap> for frame descriptors 2025-06-25 22:54:48 +12:00
CMYKBitmap.h LibGfx: Use NonnullRefPtr<Bitmap> for frame descriptors 2025-06-25 22:54:48 +12:00
Color.cpp LibWeb: Support the display-p3-linear color space in color functions 2025-10-15 18:40:48 +02:00
Color.h LibWeb: Support the display-p3-linear color space in color functions 2025-10-15 18:40:48 +02:00
Color.swift Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
ColorSpace.cpp LibGfx: Fix ICC v2 profiles with table-based L* curves 2025-06-16 11:31:42 +02:00
ColorSpace.h LibGfx: Allow ImageDecoders to expose their color space through CICP 2025-02-12 12:03:30 -05:00
CompositingAndBlendingOperator.h LibGfx: Reorder CompositingAndBlendingOperator values 2025-08-06 15:21:03 +02:00
Cursor.cpp LibGfx: Add ImageCursor type and Cursor variant 2025-02-28 13:50:13 +01:00
Cursor.h LibGfx+LibWeb+UI: Add OpenHand cursor for CSS grab property 2025-09-13 14:27:18 +02:00
Filter.cpp LibWeb: Implement <feComposite> SVG filter 2025-09-30 22:33:12 +01:00
Filter.h LibWeb: Implement <feComposite> SVG filter 2025-09-30 22:33:12 +01:00
FilterImpl.h LibGfx+LibWeb: Turn Gfx::Filter into a SkImageFilter wrapper 2025-06-01 23:22:10 +02:00
FontCascadeList.cpp LibWeb: Don't add range data for FontCascadeList with no Unicode ranges 2025-07-15 10:06:10 +02:00
FontCascadeList.h LibGfx: Let FontCascadeList quickly reject out-of-range code points 2025-07-14 19:05:25 +02:00
Forward.h LibGfx+LibWeb: Add Path::glyph_run() and use in canvas 2025-04-21 09:51:16 +02:00
FourCC.h Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
GradientPainting.cpp LibGfx+LibWeb: Delete unused PaintStyle::paint() implementations 2025-08-01 04:39:50 -04:00
Gradients.h LibGfx+LibWeb: Delete unused PaintStyle::paint() implementations 2025-08-01 04:39:50 -04:00
ImmutableBitmap.cpp LibGfx+LibWeb: Convert bitmap alpha type when creating ImmutableBitmaps 2025-03-22 17:49:38 +01:00
ImmutableBitmap.h LibWeb+WebContent: Move display list rasterization off the main thread 2025-03-31 15:58:15 +01:00
InterpolationColorSpace.h LibWeb: Implement the color-interpolation property for SVG gradients 2025-08-17 10:51:05 +02:00
Line.h Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
LineStyle.h Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
Matrix.h LibWeb: Don't emit Push{Pop}StackingContext without visible effect 2025-09-23 19:05:01 +02:00
Matrix3x3.h LibGfx+LibMedia+LibWeb: Use new Matrix subscript operator 2025-07-28 09:15:23 +02:00
Matrix4x4.h LibWeb: Reduce inaccuracies when creating rotation matrices 2025-08-11 17:10:04 +01:00
MetalContext.h Everywhere: Run clang-format 2024-12-28 05:39:32 -08:00
MetalContext.mm LibWeb: Allow construction of PaintingSurface directly from IOSurface 2024-12-03 23:35:45 +01:00
Orientation.h Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
Painter.cpp Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
Painter.h LibGfx: Add a method to reset a Painter to its initial state 2025-10-23 18:52:36 +02:00
PainterSkia.cpp LibGfx: Add a method to reset a Painter to its initial state 2025-10-23 18:52:36 +02:00
PainterSkia.h LibGfx: Add a method to reset a Painter to its initial state 2025-10-23 18:52:36 +02:00
PaintingSurface.cpp LibGfx+LibWeb: Only compile dma-buf-related code on Linux 2025-08-21 14:42:41 +02:00
PaintingSurface.h LibGfx+LibWeb: Only compile dma-buf-related code on Linux 2025-08-21 14:42:41 +02:00
PaintStyle.h LibWeb: Implement support for drawing with CanvasPattern 2025-10-23 13:20:03 +01:00
Palette.cpp LibGfx: Clean up #include directives 2024-11-20 21:13:23 +01:00
Palette.h Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
Path.cpp Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
Path.h LibWeb+LibGfx: Remove Path::close_all_subpaths() 2025-09-25 21:42:52 +02:00
PathSkia.cpp LibGfx+LibWeb: Don't display Glyphs that are not on the path 2025-10-08 03:34:53 +01:00
PathSkia.h LibWeb+LibGfx: Remove Path::close_all_subpaths() 2025-09-25 21:42:52 +02:00
Point.cpp Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
Point.h Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
Quad.h LibGfx: Implement even-odd method for Quad::contains() and add tests 2024-12-15 23:27:42 +01:00
Rect.cpp LibGfx: Clean up #include directives 2024-11-20 21:13:23 +01:00
Rect.h LibWeb+LibGfx: Make IntersectionObserver checks edge-inclusive 2025-02-16 18:09:08 +01:00
ScalingMode.h Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
ShapeFeature.h LibWeb: Cache results of harfbuzz text shaping 2025-09-21 13:22:38 +02:00
ShareableBitmap.cpp Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
ShareableBitmap.h LibGfx: Clean up #include directives 2024-11-20 21:13:23 +01:00
Size.cpp Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
Size.h Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
SkiaBackendContext.cpp LibGfx: Save VulkanContext in SkiaBackendContext 2025-08-19 00:30:22 +02:00
SkiaBackendContext.h LibGfx: Save VulkanContext in SkiaBackendContext 2025-08-19 00:30:22 +02:00
SkiaUtils.cpp LibGfx+LibWeb: Turn Gfx::Filter into a SkImageFilter wrapper 2025-06-01 23:22:10 +02:00
SkiaUtils.h LibWeb: Implement support for drawing with CanvasPattern 2025-10-23 13:20:03 +01:00
SystemTheme.cpp LibGfx: Clean up #include directives 2024-11-20 21:13:23 +01:00
SystemTheme.h LibGfx: Clean up #include directives 2024-11-20 21:13:23 +01:00
TextAlignment.h Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
TextAttributes.h Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
TextLayout.cpp LibGfx: Free the harfbuzz buffer when measuring text width 2025-10-03 09:22:22 +02:00
TextLayout.h LibGfx+LibWeb: Implement GlyphRun::bounding_rect() 2025-09-23 17:55:32 +02:00
TIFFGenerator.py Meta: Sort all python imports 2025-06-09 11:25:14 -04:00
Triangle.cpp Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
Triangle.h Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
Vector2.h Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
Vector3.h Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
Vector4.h Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
VectorGraphic.cpp LibGfx: Let Painter care about TinyVG transforms 2024-12-14 23:29:43 +01:00
VectorGraphic.h LibGfx: Let Painter care about TinyVG transforms 2024-12-14 23:29:43 +01:00
VectorN.h Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
VulkanContext.cpp LibGfx+LibWeb: Only compile dma-buf-related code on Linux 2025-08-21 14:42:41 +02:00
VulkanContext.h LibGfx: Enable Vulkan shared images and WebGL on FreeBSD 2025-10-22 13:54:54 +02:00
WindingRule.h Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00