ladybird/Userland/Libraries/LibCore
Aliaksandr Kalenik 79acb998e1 LibCore+LibWeb: Use Metal backend for Skia painter on macOS
If Metal context and IOSurface are available, Skia painter will use
Ganesh GPU backend on macOS, which is noticeably faster than the default
CPU backend.

Painting pipeline:
1. (WebContent) Allocate IOSurface for backing store
2. (WebContent) Allocate MTLTexture that wraps IOSurface
3. (WebContent) Paint into MTLTexture using Skia
4. (Browser) Wrap IOSurface into Gfx::Painter and use
   QPainter/CoreGraphics to blit backing store into viewport.

Things we should improve in the future:
1. Upload textures for images in advance instead of doing that before
   every repaint.
2. Teach AppKit client to read directly from IOSurface instead of
   copying.
2024-06-28 14:25:34 +02:00
..
Platform Everywhere: Use IOSurface as backing store on macOS 2024-06-24 13:09:08 +02:00
Account.cpp Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
Account.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
AnonymousBuffer.cpp
AnonymousBuffer.h
ArgsParser.cpp LibCore: Support Optional<StringView> as an argument to ArgsParser 2024-03-03 08:56:00 +01:00
ArgsParser.h LibCore: Make short_name optional for ArgsParser 2024-04-22 08:10:08 +02:00
CMakeLists.txt LibCore+LibWeb: Use Metal backend for Skia painter on macOS 2024-06-28 14:25:34 +02:00
Command.cpp Userland: Avoid some now-unneeded explicit conversions to Bytes 2024-04-04 11:23:21 +02:00
Command.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
ConfigFile.cpp Userland: Avoid some now-unneeded explicit conversions to Bytes 2024-04-04 11:23:21 +02:00
ConfigFile.h Everywhere: Use to_number<T> instead of to_{int,uint,float,double} 2023-12-23 20:41:07 +01:00
DateTime.cpp LibCore+LibJS+LibUnicode: Port retrieving time zone offsets to ICU 2024-06-26 10:14:02 +02:00
DateTime.h LibCore: Allow formatting a DateTime in GMT 2024-04-02 07:51:02 +02:00
Debounce.h LibCore: Stop obsessing about tiny OOMs in Core::Timer 2024-04-17 07:16:52 +02:00
DeferredInvocationContext.h Revert "LibCore: Add Core::deferred_invoke_if(F, Condition)" 2024-05-21 23:32:54 +02:00
Directory.cpp Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
Directory.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
DirectoryEntry.cpp LibCore: Add methods to convert DirectoryEntry types to names 2024-01-13 19:01:07 -07:00
DirectoryEntry.h LibCore: Add methods to convert DirectoryEntry types to names 2024-01-13 19:01:07 -07:00
DirIterator.cpp LibCore: Add new flag for DirIterator to not use fstatat 2024-01-13 19:01:07 -07:00
DirIterator.h LibCore: Add new flag for DirIterator to not use fstatat 2024-01-13 19:01:07 -07:00
ElapsedTimer.cpp RequestServer: Handle IPC requests on multiple threads concurrently 2024-05-20 08:03:35 +02:00
ElapsedTimer.h RequestServer: Handle IPC requests on multiple threads concurrently 2024-05-20 08:03:35 +02:00
Environment.cpp LibCore: Be more BSD-friendly in Core::Environment 2024-06-06 12:48:58 -06:00
Environment.h LibCore: Introduce Core::Environment wrapper 2024-02-27 08:33:48 +00:00
Event.cpp
Event.h LibCore+Ladybird: Don't store timer_id in Core::TimerEvent 2024-02-25 17:24:36 -07:00
EventLoop.cpp Revert "LibCore: Add Core::deferred_invoke_if(F, Condition)" 2024-05-21 23:32:54 +02:00
EventLoop.h Userland: Add ESCAPING annotations to a bunch of places 2024-05-22 21:55:34 -06:00
EventLoopImplementation.cpp
EventLoopImplementation.h LibCore+Ladybird: Don't force timer ids to be integer just to remap them 2024-02-25 17:24:36 -07:00
EventLoopImplementationUnix.cpp LibCore: Handle destroyed owner when unregistering timers and notifiers 2024-06-27 14:32:48 -06:00
EventLoopImplementationUnix.h LibCore: Use Core::System::pipe2 for creating the event loops waking FDs 2024-03-13 12:52:07 -04:00
EventReceiver.cpp LibCore: Ignore timer events after stop() has been called 2024-03-25 14:16:55 +01:00
EventReceiver.h LibCore: Remove unnecessary or invalid write after child remove 2024-03-22 16:32:39 -04:00
File.cpp
File.h
FilePermissionsMask.cpp
FilePermissionsMask.h
FileWatcher.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
FileWatcherLinux.cpp Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
FileWatcherMacOS.mm Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
FileWatcherUnimplemented.cpp Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
Forward.h Everywhere: Use IOSurface as backing store on macOS 2024-06-24 13:09:08 +02:00
GetPassword.cpp
GetPassword.h
Group.cpp Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
Group.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
IOSurface.cpp LibCore+LibWeb: Use Metal backend for Skia painter on macOS 2024-06-28 14:25:34 +02:00
IOSurface.h LibCore+LibWeb: Use Metal backend for Skia painter on macOS 2024-06-28 14:25:34 +02:00
LocalServer.cpp LibCore: Add initializer for LocalServer from already connected socket 2024-04-27 20:32:12 -04:00
LocalServer.h LibCore: Add initializer for LocalServer from already connected socket 2024-04-27 20:32:12 -04:00
LockFile.cpp
LockFile.h
MachPort.cpp LibCore: Make MachPort build on GNU Mach 2024-05-02 07:46:53 -06:00
MachPort.h LibCore: Add a wrapper for IOSurface 2024-06-24 13:09:08 +02:00
MappedFile.cpp
MappedFile.h
MetalContext.h LibCore+LibWeb: Use Metal backend for Skia painter on macOS 2024-06-28 14:25:34 +02:00
MetalContext.mm LibCore+LibWeb: Use Metal backend for Skia painter on macOS 2024-06-28 14:25:34 +02:00
MimeData.cpp LibGfx: Remove DDS image format support 2024-06-17 21:57:35 +02:00
MimeData.h AK+LibURL: Move AK::URL into a new URL library 2024-03-18 14:06:28 -04:00
NetworkJob.cpp Everywhere: Write dtors for types with incomplete members out-of-line 2024-06-16 07:19:56 -04:00
NetworkJob.h Everywhere: Write dtors for types with incomplete members out-of-line 2024-06-16 07:19:56 -04:00
NetworkResponse.h
Notifier.cpp LibCore: Allow listening for multiple conditions using a single Notifier 2024-02-03 16:43:13 -07:00
Notifier.h LibCore: Make Timers and Notifiers aware of threads 2024-05-20 08:03:35 +02:00
Process.cpp LibCore: Remove now-unused singleton process utilities 2024-06-06 11:27:03 -04:00
Process.h LibCore: Remove now-unused singleton process utilities 2024-06-06 11:27:03 -04:00
ProcessStatisticsReader.cpp Everywhere: Use east const in more places 2024-04-19 06:31:19 -04:00
ProcessStatisticsReader.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
Promise.h LibCore: Fix compilation of infallible Promise::when_resolved handlers 2024-01-01 10:11:45 +01:00
Proxy.h AK+LibURL: Move AK::URL into a new URL library 2024-03-18 14:06:28 -04:00
Resource.cpp LibCore: Add modified time to Resource 2024-04-02 07:51:02 +02:00
Resource.h LibCore: Add modified time to Resource 2024-04-02 07:51:02 +02:00
ResourceImplementation.cpp LibCore: Add modified time to Resource 2024-04-02 07:51:02 +02:00
ResourceImplementation.h LibCore: Add modified time to Resource 2024-04-02 07:51:02 +02:00
ResourceImplementationFile.cpp LibCore: Add modified time to Resource 2024-04-02 07:51:02 +02:00
ResourceImplementationFile.h
SecretString.cpp
SecretString.h
SessionManagement.cpp Meta: Remove empty LibSystem library and references 2024-06-04 07:45:42 +02:00
SessionManagement.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
SharedCircularQueue.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
Socket.cpp LibCore: Don't use designated initializers for struct cmsghdr 2024-05-01 06:33:00 +02:00
Socket.h LibCore: Let LocalSocket send and receive messages with SCM_RIGHTS 2024-04-19 16:38:55 -04:00
SocketAddress.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
SOCKSProxyClient.cpp Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
SOCKSProxyClient.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
StandardPaths.cpp LibCore: Get font directories from XDG_DATA_DIRS 2024-06-06 10:42:55 -06:00
StandardPaths.h LibCore: Add Music, Pictures and Videos user directory helpers 2024-02-05 16:30:52 +01:00
System.cpp LibCore: Only include BeepInstruction in System.cpp on Serenity 2024-06-06 12:51:14 -06:00
System.h LibCore: Null-check struct addrinfo to avoid freeaddrinfo(NULL) 2024-06-06 12:48:58 -06:00
SystemServerTakeover.cpp Everywhere: Use to_number<T> instead of to_{int,uint,float,double} 2023-12-23 20:41:07 +01:00
SystemServerTakeover.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
TCPServer.cpp AK+Lagom: Make it possible to build for iOS 2024-03-03 13:13:42 -07:00
TCPServer.h
ThreadedPromise.h
ThreadEventQueue.cpp LibCore: Fix some thread-related memory/object leaks 2024-06-26 05:47:16 +02:00
ThreadEventQueue.h
Timer.cpp LibCore: Stop obsessing about tiny OOMs in Core::Timer 2024-04-17 07:16:52 +02:00
Timer.h LibCore: Stop obsessing about tiny OOMs in Core::Timer 2024-04-17 07:16:52 +02:00
UDPServer.cpp
UDPServer.h
UmaskScope.h
Version.cpp LibCore: Add a small library with only ArgsParser for DynamicLoader 2024-05-14 15:42:42 -06:00
Version.h