1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 13:28:11 +00:00
serenity/Userland/Libraries
Jelle Raaijmakers db0616c67a LibSoftGPU: Generalize pixel buffers and standardize on BGRA8888
Between the OpenGL client and server, a lot of data type and color
conversion needs to happen. We are performing these conversions both in
`LibSoftGPU` and `LibGL`, which is not ideal. Additionally, some
concepts like the color, depth and stencil buffers should share their
logic but have separate implementations.

This is the first step towards generalizing our `LibSoftGPU` frame
buffer: a generalized `Typed3DBuffer` is introduced for arbitrary 3D
value storage and retrieval, and `Typed2DBuffer` wraps around it to
provide in an easy-to-use 2D pixel buffer. The color, depth and stencil
buffers are replaced by `Typed2DBuffer` and are now managed by the new
`FrameBuffer` class.

The `Image` class now uses multiple `Typed3DBuffer`s for layers and
mipmap levels. Additionally, the textures are now always stored as
BGRA8888, only converting between formats when reading or writing
pixels.

Ideally this refactor should have no functional changes, but some
graphical glitches in Grim Fandango seem to be fixed and most OpenGL
ports get an FPS boost on my machine. :^)
2022-02-22 23:48:59 +00:00
..
LibArchive LibArchive: Use designated initializers 2022-02-18 23:54:14 +02:00
LibAudio LibAudio: Simplify empty Audio::Buffer state to be truly empty 2022-02-20 19:04:59 +00:00
LibC LibC: Do not write value when scanf assignment value is suppressed 2022-02-20 00:13:08 +03:30
LibCards AK: Convert AK::Format formatting helpers to returning ErrorOr<void> 2021-11-17 00:21:13 +01:00
LibChess Everywhere: Fix -Winconsistent-missing-override warnings from Clang 2021-12-11 13:14:15 -08:00
LibCompress Userland: Remove a bunch of unnecessary Vector imports 2022-01-28 23:40:25 +01:00
LibConfig LibConfig: Rename pledge_domains(String) => pledge_domain(String) 2022-02-11 18:06:39 +01:00
LibCore Core: Remove non-existent classes from Forward.h 2022-02-18 23:31:28 +00:00
LibCoredump LibCoredump: Respect coredump's LD_LIBRARY_PATH when searching libraries 2022-02-14 11:42:19 +01:00
LibCpp LibCpp: Add SemanticSyntaxHighlighter 2022-02-09 00:51:31 +01:00
LibCrypt LibCrypt: Link the SHA2 hash implementation into LibCrypt privately 2022-01-08 18:56:29 +01:00
LibCrypto LibCrypto: Add curve x25519 2022-02-18 12:34:23 +02:00
LibDebug LibDebug+LibCoredump: Replace remaining reinterpret_casts and C casts 2022-01-28 22:51:27 +00:00
LibDesktop LibCore+Everywhere: Return ErrorOr from ConfigFile factory methods 2022-02-16 19:49:41 -05:00
LibDeviceTree Libraries: Add LibDeviceTree for manipulating OpenFirmware Device Trees 2021-10-21 19:20:03 -07:00
LibDiff LibDiff: Flush leftover hunks at the end 2022-02-09 00:51:31 +01:00
LibDl LibC+LibDl: Declare functions taking no arguments as taking void 2022-01-08 19:22:00 +01:00
LibDSP Everywhere: Use my new serenityos.org e-mail :^) 2022-01-14 11:54:09 +01:00
LibEDID LibEDID: Exclude DMT::MonitorTiming::name() from the Kernel 2022-02-16 22:21:37 +01:00
LibELF Kernel+LibELF+LibVT: Remove unused AK::String header includes 2022-02-16 22:21:37 +01:00
LibFileSystemAccessClient FileSystemAccessClient: Remove old API returning file descriptors :^) 2022-01-20 10:39:12 +01:00
LibGemini LibCore+Userland: Remove Core::TCPSocket :^) 2022-02-06 17:28:17 +00:00
LibGfx LibGfx: Fix JPG decoding bug on rare grayscale images 2022-02-19 21:27:34 +01:00
LibGL LibSoftGPU: Generalize pixel buffers and standardize on BGRA8888 2022-02-22 23:48:59 +00:00
LibGUI LibGUI: Add 'remove_all_actions' method to 'Menu' 2022-02-21 16:31:56 +01:00
LibHTTP LibHTTP: Make reason phrase of HTTP response's status line optional 2022-02-12 02:56:17 +03:30
LibImageDecoderClient LibCore+LibIPC+Everywhere: Return Stream::LocalSocket from LocalServer 2022-01-15 13:29:48 +03:30
LibIMAP Userland: Convert TLS::TLSv12 to a Core::Stream::Socket 2022-02-06 13:10:10 +01:00
LibIPC LibIPC: Always shutdown() the Connection if reached EOF 2022-02-15 12:27:21 +01:00
LibJS LibJS: Print the expected and received value on expect.toEqual() failure 2022-02-23 03:17:12 +03:30
LibKeyboard Kernel: Stop using LibKeyboard's CharacterMap in HIDManagement 2022-01-21 18:25:44 +01:00
LibLine LibCore+Everywhere: Return ErrorOr from ConfigFile factory methods 2022-02-16 19:49:41 -05:00
LibM LibM: Count fractions when exponent < -1 with mantissa == 0 2022-01-02 12:44:31 +03:30
LibMain LibMain: Invoke tzset in LibMain so all apps can have time zone info 2022-01-28 15:13:35 +00:00
LibMarkdown LibMarkdown: Add terminal color formatting 2022-02-17 19:54:47 +01:00
LibPCIDB LibCore+AK: Move MappedFile from AK to LibCore 2021-11-23 11:33:36 +01:00
LibPDF LibPDF: Make Filter::decode() return ErrorOr 2022-01-24 22:36:09 +01:00
LibProtocol LibProtocol: Close the stream notifier unconditionally on EOF 2022-02-18 13:19:26 +01:00
LibPthread LibPthread: Add PTHREAD_CANCELED 2022-02-12 12:16:59 +01:00
LibRegex LibRegex: Make codegen+optimisation for alternatives much faster 2022-02-20 11:53:59 +01:00
LibSanitizer AK+Kernel+LibSanitizer: Store "ubsan-is-deadly" flag as Atomic<bool> 2022-02-03 16:11:26 +01:00
LibSoftGPU LibSoftGPU: Generalize pixel buffers and standardize on BGRA8888 2022-02-22 23:48:59 +00:00
LibSQL LibSQL: Convert binary SQL operations to be fallible 2022-02-13 21:30:38 +00:00
LibSymbolication LibCore+AK: Move MappedFile from AK to LibCore 2021-11-23 11:33:36 +01:00
LibSyntax LibCpp: Add SemanticSyntaxHighlighter 2022-02-09 00:51:31 +01:00
LibSystem LibCore+LibSystem: Move syscall wrappers from LibSystem to LibCore 2021-11-23 11:33:36 +01:00
LibTest LibTest+Spreadsheet: Add some basic spreadsheet runtime behaviour tests 2022-02-23 03:17:12 +03:30
LibTextCodec LibTextCodec: Add x-user-defined decoder 2022-02-12 12:53:28 +01:00
LibThreading LibCore: Allow event loops on other threads to wake up 2022-02-13 23:06:53 +01:00
LibTimeZone LibTimeZone: Parse and generate time zone coordinate data 2022-02-03 16:11:15 +01:00
LibTLS LibTLS: Add Elliptic Curve Diffie-Hellman Ephemeral (ECDHE) support 2022-02-18 15:41:41 +03:30
LibUnicode LibUnicode: Use BCP 47 data to filter valid calendar names 2022-02-16 07:23:07 -05:00
LibUSBDB LibCore+AK: Move MappedFile from AK to LibCore 2021-11-23 11:33:36 +01:00
LibVideo AK: Move integral log2 and exp to IntegerMath.h 2022-02-06 17:52:33 +00:00
LibVT LibVT: Properly populate context menu with open actions 2022-02-17 11:56:38 +01:00
LibWasm LibWasm: Fix validation of if-else blocks 2022-02-16 22:48:32 +03:30
LibWeb LibWeb: Support CSSStyleDeclaration.cssFloat 2022-02-21 22:27:56 +01:00
LibWebSocket LibWebSocket: Don't try to send empty payload inside of frame 2022-02-12 11:12:43 +01:00
LibX86 Everywhere: Fix spelling mistakes 2022-01-07 15:44:42 +01:00
CMakeLists.txt LibEDID: Add a library to parse EDID blobs 2022-01-23 22:45:21 +00:00