1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-10-13 17:02:06 +00:00
serenity/Userland/Libraries
Aliaksandr Kalenik 063e66cae9 LibWeb: Introduce RecordingPainter to serialize painting commands
This modification introduces a new layer to the painting process. The
stacking context traversal no longer immediately calls the
Gfx::Painter methods. Instead, it writes serialized painting commands
into newly introduced RecordingPainter. Created list of commands is
executed later to produce resulting bitmap.

Producing painting command list will make it easier to add new
optimizations:
- It's simpler to check if the painting result is not visible in the
  viewport at the command level rather than during stacking context
  traversal.
- Run painting in a separate thread. The painting thread can process
  serialized painting commands, while the main thread can work on the
  next paintable tree and safely invalidate the previous one.
- As we consider GPU-accelerated painting support, it would be easier
  to back each painting command rather than constructing an alternative
  for the entire Gfx::Painter API.
2023-10-18 10:58:42 +02:00
..
LibArchive LibArchive: Ensure tar extended header length is within expected range 2023-10-03 15:39:20 +02:00
LibAudio LibAudio: Use mapped files for audio playback 2023-09-27 03:22:56 +02:00
LibC AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
LibCards GamesSettings+LibCards: Make 'Red' the default card back 2023-10-15 07:25:20 +02:00
LibChess Userland: Prefer _string over _short_string 2023-08-08 07:37:21 +02:00
LibCMake LibSyntax+Userland: Make LibSyntax not depend on LibGUI 2023-08-29 07:57:39 -04:00
LibCodeComprehension AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
LibCompress LibCompress: Avoid buffer overrun when building canonical Huffman code 2023-10-10 13:24:05 +02:00
LibConfig Userland: Convert config listener callbacks to use StringView 2023-06-27 15:37:00 +01:00
LibCore LibCore: Add Resource for platform agnostic application resource loading 2023-10-17 11:02:01 -06:00
LibCoredump LibCore: Make MappedFile OwnPtr-based 2023-09-27 03:22:56 +02:00
LibCpp AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
LibCrypt Everywhere: Resolve conflicts with LibC and libc++ 2023-06-27 12:40:38 +02:00
LibCrypto LibCrypto: Add Chacha20Poly1305 2023-09-26 13:22:04 +03:30
LibDebug AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
LibDesktop Userland: Make GUI::Window construction non-fallible 2023-09-17 16:47:28 -06:00
LibDeviceTree Everywhere: Remove unused DeprecatedString includes 2023-04-09 22:00:54 +02:00
LibDiff LibDiff: Fix wrong index used when prepending context lines 2023-09-11 12:10:50 +01:00
LibDNS AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
LibDSP Userland: Prefer _string over _short_string 2023-08-08 07:37:21 +02:00
LibEDID LibC+Kernel: Move GPU-related API methods to a LibC header file 2023-09-15 11:05:25 -06:00
LibELF LibELF: Handle TLSDESC relocations in .rela.plt for GNU ld 2023-10-14 19:16:22 +02:00
LibFileSystem LibFileSystem: Replace PATH_MAX usage with heap allocation 2023-09-06 07:14:35 -06:00
LibFileSystemAccessClient AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
LibGemini AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
LibGfx LibGfx: Fix crash during rasterizing glyphs containing only one point 2023-10-18 01:16:21 +02:00
LibGL LibGL: Optimize appends in gl_vertex 2023-10-15 12:14:07 +02:00
LibGLSL LibGLSL: Add tests for GLSL parser 2023-08-18 15:29:48 +02:00
LibGPU LibGL+Lib*GPU: Set model view and projection matrices separately 2023-10-15 12:14:07 +02:00
LibGUI LibGUI: Fix FileSystemModel/FileManager after aeee98b 2023-10-15 21:34:15 +03:30
LibHTTP AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
LibIDL LibIDL: Fix bug where Type::is_json doesn't look at parent interface 2023-08-23 12:11:21 +01:00
LibImageDecoderClient Userland: Return empty if ImageDecoder client receives an invalid frame 2023-10-03 08:33:53 +02:00
LibIMAP LibIMAP: Stop parsing immediately on error 2023-10-13 11:12:18 -06:00
LibIPC Userland: Rename Core::Object to Core::EventReceiver 2023-08-06 20:39:51 +02:00
LibJS AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
LibKeyboard Everywhere: Remove needless trailing semi-colons after functions 2023-07-08 10:32:56 +01:00
LibLine LibLine: Refresh the line after case-change operations 2023-08-07 22:51:49 +03:30
LibLocale LibLocale: Remove compact currency patterns 2023-09-04 18:22:28 +02:00
LibMain
LibManual Userland: Prefer _string over _short_string 2023-08-08 07:37:21 +02:00
LibMarkdown Userland: Fix absolute paths in man page links 2023-09-06 15:02:44 +01:00
LibPartition Everywhere: Remove needless trailing semi-colons after functions 2023-07-08 10:32:56 +01:00
LibPCIDB LibCore: Make MappedFile OwnPtr-based 2023-09-27 03:22:56 +02:00
LibPDF LibPDF: Implement CFF built-in Standard and Expert encodings 2023-10-17 10:21:38 +02:00
LibProtocol Ladybird: Add WebSocket server for use by Lagom networking 2023-08-03 09:55:20 +02:00
LibRegex LibRegex: Don't add the Repeat instruction size to its jump target 2023-09-15 18:07:23 +03:30
LibSanitizer LibSanitizer: Add _abort variants of UBSan handlers 2023-08-13 05:14:07 +02:00
LibSoftGPU LibSoftGPU: Optimize GPU::Vertex lists 2023-10-15 12:14:07 +02:00
LibSQL AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
LibSymbolication LibCore: Make MappedFile OwnPtr-based 2023-09-27 03:22:56 +02:00
LibSyntax LibSyntax+Userland: Make LibSyntax not depend on LibGUI 2023-08-29 07:57:39 -04:00
LibSystem Everywhere: Resolve conflicts with LibC and libc++ 2023-06-27 12:40:38 +02:00
LibTest LibTest: Remove the redefinition of VERIFY family of macros 2023-10-17 18:41:19 -04:00
LibTextCodec LibTextCodec: Add "get output encoding" from the Encoding specification 2023-06-19 06:12:26 +02:00
LibThreading LibThreading: Make Thread keep itself alive while its action is running 2023-08-07 10:40:34 -06:00
LibTimeZone LibTimeZone+Userland: Include Link entries when returning all time zones 2023-10-05 17:01:02 +02:00
LibTLS AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
LibUnicode LibWeb: Implement text-transform: capitalize 2023-10-03 09:47:17 -04:00
LibUSBDB LibCore: Make MappedFile OwnPtr-based 2023-09-27 03:22:56 +02:00
LibVideo LibVideo/VP9: Ensure color space is not set to reserved value 2023-10-11 14:35:47 -04:00
LibVirtGPU LibGL+Lib*GPU: Set model view and projection matrices separately 2023-10-15 12:14:07 +02:00
LibVT LibVT: Clear the href ID by setting it to None instead of "" 2023-10-17 11:02:48 -06:00
LibWasm LibWasm: Make sure to place imported functions before the module's 2023-09-26 07:47:20 +03:30
LibWeb LibWeb: Introduce RecordingPainter to serialize painting commands 2023-10-18 10:58:42 +02:00
LibWebSocket LibWebSocket: Adds capability for receiving fragmented messages 2023-09-09 10:59:59 -06:00
LibWebView LibWebView+LibPublicSuffix: Merge LibPublicSuffix into LibWebView 2023-10-16 09:06:02 -04:00
LibX86 LibX86: Remove i686 support 2022-12-28 11:53:41 +01:00
LibXML LibXML: Set parents for text and comment nodes 2023-08-18 08:58:51 +03:30
CMakeLists.txt LibWebView+LibPublicSuffix: Merge LibPublicSuffix into LibWebView 2023-10-16 09:06:02 -04:00