summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibGfx
AgeCommit message (Collapse)Author
2021-11-13LibGfx: Remove all load_FORMAT_from_memory() decoder wrappersAndreas Kling
There are no more clients of these APIs, now that everyone has been made to use ImageDecoderPlugin objects instead.
2021-11-11LibGfx: Include Vector.h in PNGLoader.cppTimothy Flynn
This was being transitively included from Deflate.h on SerenityOS builds but not on Lagom builds.
2021-11-11LibGfx: Remove now-unused load_gif_from_memory()Andreas Kling
2021-11-11LibGfx: Use ImageDecoder in Bitmap::try_load_from_fd_and_close()Andreas Kling
Before this patch, both Bitmap and ImageDecoder had logic for guessing which image codec to use for a chunk of data. Bitmap now defers to ImageDecoder so that we only have to do this in one place. There's room for improvement in the ImageDecoder heuristic, but that's outside the scope of this change.
2021-11-11LibGfx: Remove load_FORMAT() image codec wrappersAndreas Kling
We had a bunch of old unused wrapper functions for each image codec that would load a supported image with a given path. Nobody actually used them, so let's just get rid of load_png(), load_gif(), etc.
2021-11-11Everywhere: Pass AK::ReadonlyBytes by valueAndreas Kling
2021-11-11Everywhere: Pass AK::StringView by valueAndreas Kling
2021-11-10AK: Make ByteBuffer::try_* functions return ErrorOr<void>Andreas Kling
Same as Vector, ByteBuffer now also signals allocation failure by returning an ENOMEM Error instead of a bool, allowing us to use the TRY() and MUST() patterns.
2021-11-10AK+Everywhere: Stop including Vector.h from StringView.hAndreas Kling
Preparation for using Error.h from Vector.h. This required moving some things out of line.
2021-11-08LibCore: Use ErrorOr<T> for Core::File::open()Andreas Kling
2021-11-08AK: Use ErrorOr<T> for MappedFile factoriesAndreas Kling
Replace Result<T, E> with ErrorOr<T> and propagate the error to callers.
2021-11-08LibGfx: Use ErrorOr<T> for try_create_from_serialized_byte_buffer()Andreas Kling
2021-11-08LibGfx: Use ErrorOr<T> for Bitmap::try_create()Andreas Kling
Another one that was used in a fajillion places.
2021-11-08LibGfx: Use ErrorOr<T> for Bitmap::try_load_from_file()Andreas Kling
This was used in a lot of places, so this patch makes liberal use of ErrorOr<T>::release_value_but_fixme_should_propagate_errors().
2021-11-08LibGfx: Convert Gfx::Bitmap to east const styleAndreas Kling
2021-11-08LibGfx: Deduplicate code in Bitmap::try_load_from_file()Andreas Kling
This can share logic with try_load_from_fd_and_close(), we just need to open the file first. :^)
2021-11-08LibGfx: Use ErrorOr<T> for Bitmap infrastructure used by ShareableBitmapAndreas Kling
This also allows us to get rid of the ShareableBitmap(Bitmap) constructor which was easy to misuse. Everyone now uses Bitmap's to_shareable_bitmap() helper instead.
2021-11-08LibGfx: Use ErrorOr<T> for Bitmap::cropped()Andreas Kling
2021-11-08LibGfx: Use ErrorOr<T> for Bitmap::scaled()Andreas Kling
2021-11-08LibGfx: Use ErrorOr<T> for Bitmap::flipped()Andreas Kling
2021-11-08LibGfx: Use ErrorOr<T> for Bitmap::rotated()Andreas Kling
2021-11-08LibGfx: Use ErrorOr<T> for Bitmap::clone()Andreas Kling
2021-11-08LibGfx: Use ErrorOr<T> for Bitmap::try_create_shareable()Andreas Kling
2021-11-08LibGfx: Use ErrorOr<T> for Bitmap::try_create_wrapper()Andreas Kling
2021-11-08LibGfx: Use ErrorOr<T> for Bitmap::try_create_with_anonymous_buffer()Andreas Kling
2021-11-08AK: Bring AK::Error into the global namespaceAndreas Kling
2021-11-08LibGfx: Use ErrorOr<T> for Gfx::Bitmap::allocate_backing_store()Andreas Kling
2021-11-08LibCore: Use ErrorOr<T> in Core::AnonymousBufferAndreas Kling
2021-11-05LibGfx: Add FlagRole to GUI::VariantSam Atkins
2021-11-05LibGfx: Use `read_bool_entry()` to read theme flagsSam Atkins
I didn't notice this function existed the first time around. Oops!
2021-10-31LibGfx: Add 'IsDark' flag to SystemTheme and PaletteSam Atkins
This explicitly states whether a given theme is a dark theme, so that applications not using the system palette colors can still attempt to match the overall theme.
2021-10-28LibGfx: Add to_string() functions for MetricRole and PathRoleSam Atkins
2021-10-28LibGfx+WindowServer: Move shadow-painting code to StylePainterSam Atkins
Specifically, this is to make it accessible to ThemeEditor, but there's nothing about it that is especially window-specific.
2021-10-28LibGfx: Make style painters use east const and virtual specifiersSam Atkins
2021-10-24LibGfx: Make Color::from_string() case-insensitiveSam Atkins
This function implements CSS color syntax, which is case-insensitive in HTML contexts. Making it insensitive here means not having to remember to do it in every user, (many of the HTML elements do not do this,) and means they don't have to produce a lowercase copy of the input string before passing it.
2021-10-24LibGfx: Make Color use east-constSam Atkins
2021-10-23LibGfx+LibWeb: Move "transparent" keyword into Color::from_string()Sam Atkins
It seemed odd to have this one color handled separately, when `Color::from_string()` implements all other CSS colors.
2021-10-22LibGfx: Restrict cleared area to GIF framebufferBen Wiederhake
Found by OSS Fuzz, long-standing issue https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=34824 The discovered testcase attempts to clear the framebuffer of size 1056x32 from the previous image, which has size 16416x32.
2021-10-10LibGfx: Implement copy-assign for MatrixBen Wiederhake
This used to generate a warning about using a deprecated copy-assign, default-generated by the compiler, and deprecated because we hand- implement the copy-constructor. This warning is correct, since the default-generated copy-assign may or may not be as efficient as memcpy. This patch gets rid of the warning, and has either no performance impact or a slightly positive one. If this turns out to be wrong, we should probably also fix the copy-constructor.
2021-10-08Libraries: Fix -Wunreachable-code warnings from clangNico Weber
2021-10-06LibGUI: Add missing headersBen Wiederhake
2021-10-04Everywhere: Fix more Copyright header inconsistenciesTim Schumacher
2021-10-02LibGFX: Draw the ends of lines with non-standard thicknessGal Horowitz
Lines are drawn using squares the size of the thickness, so if the length of the line was not a multiple of the thickness, the end of the line was not drawn correctly.
2021-10-01Libraries: Fix typosNico Weber
2021-09-24LibGfx: Forward declare Gfx::FontMetrics as a structAndreas Kling
2021-09-24LibGfx: Remove debug spam about not having some font installedAndreas Kling
2021-09-24LibGfx: Add a simple Gfx::FontMetrics and Gfx::Font::metrics(code_point)Andreas Kling
This is used to get a handy set of glyph metrics.
2021-09-24LibGfx: Make BitmapFont::variant() report a complete typefacethankyouverycool
2021-09-24LibGfx: Get weight from tables for TrueTypeFontsthankyouverycool
First, try to find detailed weight metrics in the OS/2 table; barring that, fall back to the font header table.
2021-09-24LibGfx: Support italic BitmapFontsthankyouverycool
BitmapFont header now contains a slope byte. Slope is used to indicate slant style and is mapped in LibGfx/FontStyleMapping.h