Fixed issues in Windows build

This commit is contained in:
Yousef Khadadeh 2026-01-08 19:44:42 +03:00
parent 1d360d26e1
commit 77c3a4af26
4 changed files with 64 additions and 63 deletions

View file

@ -6,6 +6,7 @@
#include <unordered_map>
#include <cereal/archives/portable_binary.hpp>
#include <cereal/cereal.hpp>
#include <array>
#include "ByteStream.hpp"
#include "NetLibrary.hpp"

View file

@ -16,7 +16,7 @@ class DrawingProgramLayerManager;
struct DrawingProgramLayerListItemMetaInfo {
std::string name;
float alpha = 1.0f;
SerializedBlendMode blendMode = SerializedBlendMode::SRC_OVER;
SerializedBlendMode blendMode = SerializedBlendMode::BLEND_SRC_OVER;
bool operator==(const DrawingProgramLayerListItemMetaInfo&) const = default;
};
@ -80,7 +80,7 @@ class DrawingProgramLayerListItem {
struct DisplayData {
float alpha = 1.0f;
bool visible = true;
SerializedBlendMode blendMode = SerializedBlendMode::SRC_OVER;
SerializedBlendMode blendMode = SerializedBlendMode::BLEND_SRC_OVER;
template <typename Archive> void serialize(Archive& a) {
a(alpha, visible, blendMode);
}

View file

@ -9,8 +9,8 @@ SkBlendMode serialized_blend_mode_to_sk_blend_mode(SerializedBlendMode serialize
const std::vector<SerializedBlendMode>& get_blend_mode_useful_list() {
static std::vector<SerializedBlendMode> blendModeList;
if(blendModeList.empty()) {
std::unordered_set<SerializedBlendMode> exclusionList = {SerializedBlendMode::CLEAR, SerializedBlendMode::SRC, SerializedBlendMode::DST};
for(uint8_t i = 0; i < static_cast<uint8_t>(SerializedBlendMode::LAST_MODE); i++) {
std::unordered_set<SerializedBlendMode> exclusionList = {SerializedBlendMode::BLEND_CLEAR, SerializedBlendMode::BLEND_SRC, SerializedBlendMode::BLEND_DST};
for(uint8_t i = 0; i < static_cast<uint8_t>(SerializedBlendMode::BLEND_LAST_MODE); i++) {
if(!exclusionList.contains(static_cast<SerializedBlendMode>(i)))
blendModeList.emplace_back(static_cast<SerializedBlendMode>(i));
}

View file

@ -3,69 +3,69 @@
#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,
BLEND_CLEAR = 0,
BLEND_SRC,
BLEND_DST,
BLEND_SRC_OVER,
BLEND_DST_OVER,
BLEND_SRC_IN,
BLEND_DST_IN,
BLEND_SRC_OUT,
BLEND_DST_OUT,
BLEND_SRC_A_TOP,
BLEND_DST_A_TOP,
BLEND_XOR,
BLEND_PLUS,
BLEND_MODULATE,
BLEND_SCREEN,
BLEND_OVERLAY,
BLEND_DARKEN,
BLEND_LIGHTEN,
BLEND_COLOR_DODGE,
BLEND_COLOR_BURN,
BLEND_HARD_LIGHT,
BLEND_SOFT_LIGHT,
BLEND_DIFFERENCE,
BLEND_EXCLUSION,
BLEND_MULTIPLY,
BLEND_HUE,
BLEND_SATURATION,
BLEND_COLOR,
BLEND_LUMINOSITY,
LAST_MODE
BLEND_LAST_MODE
};
NLOHMANN_JSON_SERIALIZE_ENUM(SerializedBlendMode, {
{SerializedBlendMode::CLEAR, "Clear"},
{SerializedBlendMode::SRC, "Source"},
{SerializedBlendMode::DST, "Destination"},
{SerializedBlendMode::SRC_OVER, "Source Over"},
{SerializedBlendMode::DST_OVER, "Destination Over"},
{SerializedBlendMode::SRC_IN, "Source In"},
{SerializedBlendMode::DST_IN, "Destination In"},
{SerializedBlendMode::SRC_OUT, "Source Out"},
{SerializedBlendMode::DST_OUT, "Destination Out"},
{SerializedBlendMode::SRC_A_TOP, "Source Alpha Top"},
{SerializedBlendMode::DST_A_TOP, "Destination Alpha 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"}
{SerializedBlendMode::BLEND_CLEAR, "Clear"},
{SerializedBlendMode::BLEND_SRC, "Source"},
{SerializedBlendMode::BLEND_DST, "Destination"},
{SerializedBlendMode::BLEND_SRC_OVER, "Source Over"},
{SerializedBlendMode::BLEND_DST_OVER, "Destination Over"},
{SerializedBlendMode::BLEND_SRC_IN, "Source In"},
{SerializedBlendMode::BLEND_DST_IN, "Destination In"},
{SerializedBlendMode::BLEND_SRC_OUT, "Source Out"},
{SerializedBlendMode::BLEND_DST_OUT, "Destination Out"},
{SerializedBlendMode::BLEND_SRC_A_TOP, "Source Alpha Top"},
{SerializedBlendMode::BLEND_DST_A_TOP, "Destination Alpha Top"},
{SerializedBlendMode::BLEND_XOR, "XOR"},
{SerializedBlendMode::BLEND_PLUS, "Plus"},
{SerializedBlendMode::BLEND_MODULATE, "Modulate"},
{SerializedBlendMode::BLEND_SCREEN, "Screen"},
{SerializedBlendMode::BLEND_OVERLAY, "Overlay"},
{SerializedBlendMode::BLEND_DARKEN, "Darken"},
{SerializedBlendMode::BLEND_LIGHTEN, "Lighten"},
{SerializedBlendMode::BLEND_COLOR_DODGE, "Color Dodge"},
{SerializedBlendMode::BLEND_COLOR_BURN, "Color Burn"},
{SerializedBlendMode::BLEND_HARD_LIGHT, "Hard Light"},
{SerializedBlendMode::BLEND_SOFT_LIGHT, "Soft Light"},
{SerializedBlendMode::BLEND_DIFFERENCE, "Difference"},
{SerializedBlendMode::BLEND_EXCLUSION, "Exclusion"},
{SerializedBlendMode::BLEND_MULTIPLY, "Multiply"},
{SerializedBlendMode::BLEND_HUE, "Hue"},
{SerializedBlendMode::BLEND_SATURATION, "Saturation"},
{SerializedBlendMode::BLEND_COLOR, "Color"},
{SerializedBlendMode::BLEND_LUMINOSITY, "Luminosity"}
})
SkBlendMode serialized_blend_mode_to_sk_blend_mode(SerializedBlendMode serializedBlendMode);