1
0
Fork 0
mirror of https://github.com/LadybirdBrowser/ladybird.git synced 2025-06-09 17:44:56 +09:00
ladybird/Userland/Libraries
Jelle Raaijmakers 5339b54b5d LibGfx: Improve glyph rendering speed for vector fonts
The glyph bitmap is a grayscale image that is multiplied with the
requested color provided to `Gfx::Painter::draw_glyph()` to get the
final glyph bitmap that can be blitted.

Using `Gfx::Color::multiply()` is unnecessary however: by simply taking
the destination color and copying over the glyph bitmap's alpha value,
we can prevent four multiplications and divisions per pixel.

In an artifical benchmark I wrote, this improved glyph rendering
performance by ~9%.
2023-06-01 06:18:57 +02:00
..
LibArchive
LibAudio LibAudio: Load WAV metadata 2023-05-31 16:23:07 +02:00
LibC LibC: Ensure that struct group::gr_mem pointers are aligned 2023-05-28 05:05:09 -06:00
LibCards LibGfx+Everywhere: Change Gfx::Rect to be endpoint exclusive 2023-05-23 12:35:42 +02:00
LibChess AK: Add the Input word to input-only buffered streams 2023-05-09 11:18:46 +02:00
LibCMake
LibCodeComprehension LibCodeComprehension: Remove unused #include <DeprecatedFile.h> 2023-05-21 07:52:41 +02:00
LibCompress LibCompress: Move two shared LZMA magic numbers into a common place 2023-05-19 23:40:33 +02:00
LibConfig LibCore: Big first step towards pluggable Core::EventLoop 2023-04-25 14:48:40 +02:00
LibCore LibCore: Add wrapper for fstatat() 2023-05-28 05:51:27 -06:00
LibCoredump LibCoredump: Avoid unnecessary conversion to DeprecatedString 2023-05-27 17:30:55 +02:00
LibCpp LibCpp: Support for parsing c-style fixed arrays (arr[2]) 2023-04-26 09:40:25 +01:00
LibCrypt
LibCrypto LibCrypto: Add workaround for false -Warray-bounds warning 2023-05-28 05:05:09 -06:00
LibDebug LibDebug: Prefer File::read_until_eof over DeprecatedFile 2023-05-19 23:31:20 +02:00
LibDesktop Everywhere: Use MonotonicTime instead of Duration 2023-05-24 23:18:07 +02:00
LibDeviceTree
LibDiff
LibDNS
LibDSP Piano: Allow per-track controls (again) 2023-05-05 01:32:09 +02:00
LibEDID
LibELF test-fuzz: Add all the missing fuzzers 2023-05-23 06:11:33 +02:00
LibFileSystem Userland: Allow our access check to pass flags to faccessat syscall 2023-05-13 17:59:37 -06:00
LibFileSystemAccessClient FileSystemAccessServer: Don't transmit unused data 2023-05-29 13:17:22 +02:00
LibGemini AK+Everywhere: Change URL::path() to serialize_path() 2023-04-15 06:37:04 +02:00
LibGfx LibGfx: Improve glyph rendering speed for vector fonts 2023-06-01 06:18:57 +02:00
LibGL LibGL: Implement support for the GL_RGB5_A1 internal image format 2023-05-04 16:11:28 +02:00
LibGLSL
LibGPU
LibGUI LibGUI: Allow FilteringProxyModel to optionally sort results by score 2023-05-29 10:47:48 -06:00
LibHTTP AK+Everywhere: Change URL::path() to serialize_path() 2023-04-15 06:37:04 +02:00
LibIDL LibIDL: Avoid unnecessary HashMap copy 2023-05-19 22:33:57 +02:00
LibImageDecoderClient
LibIMAP
LibIPC AK: Introduce UnixDateTime 2023-05-24 23:18:07 +02:00
LibJS LibJS: Align MathObject::atan closer to spec 2023-05-30 06:16:20 +02:00
LibKeyboard LibKeyboard: Read keymap through File, not DeprecatedFile 2023-05-12 19:46:54 +01:00
LibLine LibLine: Unify history reading, prefer File over DeprecatedFile 2023-05-27 07:16:01 +02:00
LibLocale LibTimeZone+Userland: Change timezone functions to use UnixDateTime 2023-05-24 23:18:07 +02:00
LibMain
LibManual LibManual: Allow querying on a help URL 2023-05-08 21:03:19 -06:00
LibMarkdown LibMarkdown+LibSyntax: Add a Markdown syntax highlighter 2023-05-05 17:08:40 +01:00
LibPartition
LibPCIDB
LibPDF LibPDF: Avoid unnecessary HashMap copy, mark other copies 2023-05-19 22:33:57 +02:00
LibProtocol WebSocket: Avoid unnecessary IPC::Dictionary wrapper 2023-05-21 07:53:45 +02:00
LibRegex LibRegex: Avoid calling GenericLexer::consume() past EOF 2023-04-14 12:33:54 +02:00
LibSanitizer
LibSoftGPU LibGfx+Everywhere: Change Gfx::Rect to be endpoint exclusive 2023-05-23 12:35:42 +02:00
LibSQL LibSQL: Free heap storage when deleting rows 2023-05-25 06:19:16 -07:00
LibSymbolication LibSymbolication: Use Core::File instead of Core::DeprecatedFile 2023-04-27 07:27:14 +02:00
LibSyntax LibMarkdown+LibSyntax: Add a Markdown syntax highlighter 2023-05-05 17:08:40 +01:00
LibSystem
LibTest LibTest: Use the 16 standard ANSI colors in status output 2023-05-28 06:31:59 -07:00
LibTextCodec LibTextCodec: Change UTF-8's decoder to replace invalid code points 2023-05-12 05:47:36 +02:00
LibThreading LibThreading: Do not crash when detaching from an already-exited thread 2023-05-24 16:45:25 +02:00
LibTimeZone LibTimeZone+Userland: Change timezone functions to use UnixDateTime 2023-05-24 23:18:07 +02:00
LibTLS LibTLS: Avoid unnecessary HashMap copies, improve const-correctness 2023-05-19 22:33:57 +02:00
LibUnicode
LibUSBDB
LibVideo LibVideo/PlaybackManager: Return duration zero when an error occurs 2023-05-31 13:08:48 +02:00
LibVirtGPU
LibVT LibGfx+Everywhere: Change Gfx::Rect to be endpoint exclusive 2023-05-23 12:35:42 +02:00
LibWasm LibWasm: Create AK::StackInfo once per AbstractMachine 2023-05-28 13:20:56 +02:00
LibWeb LibWeb: Make solve_replaced_size_constraint() into FormattingContext 2023-05-31 11:38:05 +02:00
LibWebSocket AK+Everywhere: Change URL::path() to serialize_path() 2023-04-15 06:37:04 +02:00
LibWebView LibWebView: Don't re-create WebContent proceses when repeatedly crashing 2023-05-27 20:09:50 +02:00
LibX86
LibXML LibXML: Notify the listener about the root node as well 2023-05-05 01:33:49 +02:00
CMakeLists.txt