1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 14:28:12 +00:00
serenity/Userland/Libraries
Liav A 57e19a7e56 LibGfx: Re-structure the whole initialization pattern for image decoders
When trying to figure out the correct implementation, we now have a very
strong distinction on plugins that are well suited for sniffing, and
plugins that need a MIME type to be chosen.

Instead of having multiple calls to non-static virtual sniff methods for
each Image decoding plugin, we have 2 static methods for each
implementation:
1. The sniff method, which in contrast to the old method, gets a
    ReadonlyBytes parameter and ensures we can figure out the result
    with zero heap allocations for most implementations.
2. The create method, which just creates a new instance so we don't
    expose the constructor to everyone anymore.

In addition to that, we have a new virtual method called initialize,
which has a per-implementation initialization pattern to actually ensure
each implementation can construct a decoder object, and then have a
correct context being applied to it for the actual decoding.
2023-01-20 15:13:31 +00:00
..
LibArchive LibCore: Return EBADF on unsupported stream operations 2023-01-19 11:41:56 +01:00
LibAudio LibAudio: Skip MP3 frames if not enough historic data is available 2023-01-19 11:42:32 +01:00
LibC LibC: Remove the stub iconv header 2023-01-19 11:51:58 +01:00
LibCards LibCards+Games: Make CardGame::add_stack() fallible 2023-01-06 16:03:50 +01:00
LibChess Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
LibCodeComprehension Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
LibCompress Userland: Add missing Math.h and IntegralMath.h header includes 2023-01-19 11:29:48 +00:00
LibConfig LibConfig+LibCore+ConfigServer: Support u32 configuration entries 2022-12-23 23:26:21 +01:00
LibCore LibCore: Add MIME type string for TGA files 2023-01-20 15:13:31 +00:00
LibCoredump AK+Everywhere: Rename JsonObject::get() to ::get_deprecated() 2023-01-17 19:52:52 -05:00
LibCpp AK+Everywhere: Rename FlyString to DeprecatedFlyString 2023-01-09 23:00:24 +00:00
LibCrypt AK: Stop using DeprecatedString in Base64 encoding 2022-12-20 10:34:19 +01:00
LibCrypto LibCrypto: Define *BigInteger::to_base to convert big integers to String 2023-01-15 01:00:20 +00:00
LibDebug LibDebug: Identify embedded resources with a preceding dot 2023-01-19 11:29:29 +01:00
LibDesktop AK+Everywhere: Rename JsonObject::get() to ::get_deprecated() 2023-01-17 19:52:52 -05:00
LibDeviceTree AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
LibDiff LibDiff: Make Diff::generate_only_additions take text as StringView 2022-12-20 10:58:54 +01:00
LibDNS AK: Define our own concept of "trivially serializable" 2023-01-15 23:06:31 -05:00
LibDSP Everywhere: Use C++ concepts instead of requires clauses 2022-12-09 11:25:30 +00:00
LibEDID LibEDID: Propagate errors using TRY 2023-01-02 11:04:38 -05:00
LibELF Everywhere: Remove unused includes of AK/Memory.h 2023-01-02 20:27:20 -05:00
LibFileSystemAccessClient LibFileSystemAccessClient: Add functions returning FSAC::File 2023-01-07 10:53:43 +00:00
LibGemini LibGemini: Disallow cases forbidden in the spec 2023-01-14 12:28:02 +01:00
LibGfx LibGfx: Re-structure the whole initialization pattern for image decoders 2023-01-20 15:13:31 +00:00
LibGL LibGL: Implement GL_BLEND_DST and GL_BLEND_SRC 2023-01-03 19:49:31 -05:00
LibGLSL LibGLSL: Fill LinkedShaders with dummy IR code 2022-12-17 22:39:09 -07:00
LibGPU Userland: Add missing Math.h and IntegralMath.h header includes 2023-01-19 11:29:48 +00:00
LibGUI LibGfx: Re-structure the whole initialization pattern for image decoders 2023-01-20 15:13:31 +00:00
LibHTTP LibCompress: Rename Compress::Zlib to Compress::ZlibDecompressor 2023-01-03 10:01:09 +00:00
LibIDL LibIDL: Use Core::Stream to read imports 2022-12-14 15:19:35 +00:00
LibImageDecoderClient LibGfx: Re-work the abstractions of sending image for decoding over IPC 2023-01-20 15:13:31 +00:00
LibIMAP Everywhere: Remove unused includes of AK/Format.h 2023-01-02 20:27:20 -05:00
LibIPC LibIPC: Decode messages using Core::Stream internally 2023-01-15 23:06:31 -05:00
LibJS LibJS: Return OptionalNone in fallible functions in the Intl namespace 2023-01-19 23:13:44 +00:00
LibKeyboard AK+Everywhere: Rename JsonObject::get() to ::get_deprecated() 2023-01-17 19:52:52 -05:00
LibLine LibLine: Do a whole bunch of internal error propagation 2023-01-16 21:04:48 +00:00
LibLocale LibLocale: Remove now-unused [LanguageID,LocaleID]::to_deprecated_string 2023-01-19 20:57:30 +00:00
LibMain Everywhere: Explicitly link all binaries against the LibC target 2022-11-01 14:49:09 +00:00
LibManual Help+LibManual: Open sibling page for subsections 2023-01-02 06:15:13 -07:00
LibMarkdown Everywhere: Remove unused includes of AK/Format.h 2023-01-02 20:27:20 -05:00
LibPartition Everywhere: Mark dependencies of most targets as PRIVATE 2022-11-01 14:49:09 +00:00
LibPCIDB AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
LibPDF LibGfx: Re-structure the whole initialization pattern for image decoders 2023-01-20 15:13:31 +00:00
LibProtocol LibProtocol: Remove Request::stream_into(OutputStream&) 2023-01-17 23:55:34 +01:00
LibRegex AK+Everywhere: Rename FlyString to DeprecatedFlyString 2023-01-09 23:00:24 +00:00
LibSanitizer LibC: Properly implement stack protectors 2022-11-01 14:49:09 +00:00
LibSoftGPU LibSoftGPU: Remove workaround for i686 depth comparison 2023-01-09 12:55:41 +01:00
LibSQL LibSQL: Don't do fchmod on OpenBSD 2023-01-14 16:32:14 +01:00
LibSymbolication AK+Everywhere: Rename JsonObject::get() to ::get_deprecated() 2023-01-17 19:52:52 -05:00
LibSyntax LibSyntax: Add common_language_extension() function 2022-12-19 14:13:50 -05:00
LibSystem Meta+Userland: Add ENABLE_USERSPACE_COVERAGE_COLLECTION CMake option 2022-05-02 01:46:18 +02:00
LibTest AK+Everywhere: Rename JsonObject::get() to ::get_deprecated() 2023-01-17 19:52:52 -05:00
LibTextCodec Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
LibThreading Everywhere: Remove unused includes of AK/Format.h 2023-01-02 20:27:20 -05:00
LibTimeZone AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
LibTLS LibCrypto+Everywhere: Rename *BigInteger::to_base to to_base_deprecated 2023-01-15 01:00:20 +00:00
LibUnicode AK+LibUnicode: Provide Unicode-aware caseless String matching 2023-01-18 14:43:40 +00:00
LibUSBDB AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
LibVideo Everywhere: Fully qualify IsLvalueReference in TRY() macros 2023-01-15 00:56:31 +00:00
LibVirtGPU LibVirtGPU: Port to Core::Stream 2023-01-16 17:05:41 +00:00
LibVT Everywhere: Use ElapsedTimer::elapsed_time() for comparisons 2023-01-07 14:51:04 +01:00
LibWasm Everywhere: Move AK/Debug.h include to using files or remove 2023-01-02 20:27:20 -05:00
LibWeb LibWeb: Convert the Location object to IDL 2023-01-18 17:36:39 -05:00
LibWebSocket AK: Stop using DeprecatedString in Base64 encoding 2022-12-20 10:34:19 +01:00
LibWebView AK+Everywhere: Rename JsonObject::get() to ::get_deprecated() 2023-01-17 19:52:52 -05:00
LibX86 LibX86: Remove i686 support 2022-12-28 11:53:41 +01:00
LibXML LibXML+LibWeb: Avoid implicit cast from StringView{}->DeprecatedString 2023-01-08 12:15:46 +01:00
CMakeLists.txt LibVirtGPU: Add a new GPU device that talks to our VirtIO-GPU driver 2022-12-26 09:39:20 +01:00