infinipaint/src/DrawingProgram/Layers/SerializedBlendMode.hpp

73 lines
2.1 KiB
C++
Raw Normal View History

2025-12-25 19:37:41 +03:00
#pragma once
#include <include/core/SkBlendMode.h>
#include <nlohmann/json.hpp>
enum class SerializedBlendMode : uint8_t {
CLEAR = 0,
SRC,
DST,
SRC_OVER,
DST_OVER,
SRC_IN,
DST_IN,
SRC_OUT,
DST_OUT,
SRC_A_TOP,
DST_A_TOP,
XOR,
PLUS,
MODULATE,
SCREEN,
OVERLAY,
DARKEN,
LIGHTEN,
COLOR_DODGE,
COLOR_BURN,
HARD_LIGHT,
SOFT_LIGHT,
DIFFERENCE,
EXCLUSION,
MULTIPLY,
HUE,
SATURATION,
COLOR,
LUMINOSITY,
LAST_MODE
};
NLOHMANN_JSON_SERIALIZE_ENUM(SerializedBlendMode, {
{SerializedBlendMode::CLEAR, "Clear"},
{SerializedBlendMode::SRC, "Src"},
{SerializedBlendMode::DST, "Dst"},
{SerializedBlendMode::SRC_OVER, "Src Over"},
{SerializedBlendMode::DST_OVER, "Dst Over"},
{SerializedBlendMode::SRC_IN, "Src In"},
{SerializedBlendMode::DST_IN, "Dst In"},
{SerializedBlendMode::SRC_OUT, "Src Out"},
{SerializedBlendMode::DST_OUT, "Dst Out"},
{SerializedBlendMode::SRC_A_TOP, "Src A Top"},
{SerializedBlendMode::DST_A_TOP, "Dst A Top"},
{SerializedBlendMode::XOR, "XOR"},
{SerializedBlendMode::PLUS, "Plus"},
{SerializedBlendMode::MODULATE, "Modulate"},
{SerializedBlendMode::SCREEN, "Screen"},
{SerializedBlendMode::OVERLAY, "Overlay"},
{SerializedBlendMode::DARKEN, "Darken"},
{SerializedBlendMode::LIGHTEN, "Lighten"},
{SerializedBlendMode::COLOR_DODGE, "Color Dodge"},
{SerializedBlendMode::COLOR_BURN, "Color Burn"},
{SerializedBlendMode::HARD_LIGHT, "Hard Light"},
{SerializedBlendMode::SOFT_LIGHT, "Soft Light"},
{SerializedBlendMode::DIFFERENCE, "Difference"},
{SerializedBlendMode::EXCLUSION, "Exclusion"},
{SerializedBlendMode::MULTIPLY, "Multiply"},
{SerializedBlendMode::HUE, "Hue"},
{SerializedBlendMode::SATURATION, "Saturation"},
{SerializedBlendMode::COLOR, "Color"},
{SerializedBlendMode::LUMINOSITY, "Luminosity"}
})
SkBlendMode serialized_blend_mode_to_sk_blend_mode(SerializedBlendMode serializedBlendMode);
const std::vector<std::string>& get_blend_mode_name_list();