1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 10:48:11 +00:00
serenity/Userland/Libraries
Rodrigo Tobar adc45635e9 LibPDF: Add initial image display support
After adding support for XObject Form rendering, the next was to display
XObject images. This commit adds this initial support,

Images come in many shapes and forms: encodings: color spaces, bits per
component, width, height, etc. This initial support is constrained to
the color spaces we currently support, to images that use 8 bits per
component, to images that do *not* use the JPXDecode filter, and that
are not Masks. There are surely other constraints that aren't considered
in this initial support, so expect breakage here and there.

In addition to supporting images, we also support applying an alpha mask
(SMask) on them. Additionally, a new rendering preference allows to skip
image loading and rendering altogether, instead showing an empty
rectangle as a placeholder (useful for when actual images are not
supported). Since RenderingPreferences is becoming a bit more complex,
we add a hash option that will allow us to keep track of different
preferences (e.g., in a HashMap).
2022-12-10 10:49:03 +01:00
..
LibArchive AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
LibAudio AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
LibC Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
LibCards Meta+Userland: Pass Gfx::IntPoint by value 2022-12-07 11:48:27 +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 Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
LibConfig AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
LibCore Everywhere: Use C++ concepts instead of requires clauses 2022-12-09 11:25:30 +00:00
LibCoredump Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
LibCpp Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
LibCrypt AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
LibCrypto Everywhere: Use C++ concepts instead of requires clauses 2022-12-09 11:25:30 +00:00
LibDebug Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
LibDesktop Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
LibDeviceTree AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
LibDiff Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
LibDNS Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
LibDSP Everywhere: Use C++ concepts instead of requires clauses 2022-12-09 11:25:30 +00:00
LibEDID Everywhere: Use C++ concepts instead of requires clauses 2022-12-09 11:25:30 +00:00
LibELF Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
LibFileSystemAccessClient AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
LibGemini Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
LibGfx LibGfx: Allow creating Bitmaps from ReadonlyBytes objects 2022-12-10 10:49:03 +01:00
LibGL LibGL: Generate GL_OUT_OF_MEMORY error in glBufferData when OOM 2022-12-07 11:46:37 +01:00
LibGPU Meta+Userland: Pass Gfx::IntSize by value 2022-12-07 11:48:27 +01:00
LibGUI LibGUI: Add OpacitySlider to ColorPicker dialog 2022-12-09 00:25:30 +01:00
LibHTTP Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
LibIDL Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
LibImageDecoderClient Everywhere: Mark dependencies of most targets as PRIVATE 2022-11-01 14:49:09 +00:00
LibIMAP Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
LibIPC Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
LibJS LibJS: Use ToPropertyKey AO for computed member expression value 2022-12-10 01:08:34 +00:00
LibKeyboard Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
LibLine Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
LibLocale Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
LibMain Everywhere: Explicitly link all binaries against the LibC target 2022-11-01 14:49:09 +00:00
LibMarkdown LibJS: Convert MarkupGenerator to the new String 2022-12-07 09:58:38 +00: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 LibPDF: Add initial image display support 2022-12-10 10:49:03 +01:00
LibProtocol AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
LibRegex Everywhere: Use C++ concepts instead of requires clauses 2022-12-09 11:25:30 +00:00
LibSanitizer LibC: Properly implement stack protectors 2022-11-01 14:49:09 +00:00
LibSoftGPU Meta+Userland: Pass Gfx::IntSize by value 2022-12-07 11:48:27 +01:00
LibSQL LibSQL+SQLServer+SQLStudio+sql: Give ID types a distinct name 2022-12-08 17:14:48 +01:00
LibSymbolication Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
LibSyntax AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
LibSystem Meta+Userland: Add ENABLE_USERSPACE_COVERAGE_COLLECTION CMake option 2022-05-02 01:46:18 +02:00
LibTest Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
LibTextCodec Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
LibThreading AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
LibTimeZone AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
LibTLS Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
LibUnicode Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
LibUSBDB AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
LibVideo Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
LibVT Meta+Userland: Pass Gfx::IntSize by value 2022-12-07 11:48:27 +01:00
LibWasm Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
LibWeb LibWeb: Implement Selection.collapse_to_end 2022-12-10 01:45:21 +01:00
LibWebSocket Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
LibWebView Browser+LibWebView+WebContent: Do not domain match on cookie updates 2022-12-08 17:14:48 +01:00
LibX86 Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
LibXML Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
CMakeLists.txt LibIDL+WrapperGenerator: Move IDL code into a library 2022-09-17 21:27:17 +02:00