mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-06-11 10:18:15 +09:00

CSS filters work similarly to canvas filters, so it makes sense to have Gfx::Filter that can be used by both libraries in an analogous way as Gfx::Color.
43 lines
689 B
C++
43 lines
689 B
C++
/*
|
|
* Copyright (c) 2024, Lucien Fiorini <lucienfiorini@gmail.com>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <AK/Variant.h>
|
|
#include <LibGfx/Color.h>
|
|
|
|
namespace Gfx {
|
|
|
|
struct BlurFilter {
|
|
float radius;
|
|
};
|
|
|
|
struct DropShadowFilter {
|
|
float offset_x;
|
|
float offset_y;
|
|
float radius;
|
|
Gfx::Color color;
|
|
};
|
|
|
|
struct HueRotateFilter {
|
|
float angle_degrees;
|
|
};
|
|
|
|
struct ColorFilter {
|
|
enum class Type {
|
|
Brightness,
|
|
Contrast,
|
|
Grayscale,
|
|
Invert,
|
|
Opacity,
|
|
Saturate,
|
|
Sepia
|
|
} type;
|
|
float amount;
|
|
};
|
|
|
|
using Filter = Variant<BlurFilter, DropShadowFilter, HueRotateFilter, ColorFilter>;
|
|
}
|