Files
Renderive/Core/base/Style.h
T
2026-08-02 03:43:39 +08:00

51 lines
912 B
C++

#pragma once
#include "Color.h"
#include <cstdint>
namespace renderive {
enum class Line_Style : std::uint8_t {
None,
Solid,
Dash,
Dot
};
enum class Line_Cap : std::uint8_t {
Butt,
Square,
Round
};
enum class Line_Join : std::uint8_t {
Miter,
Bevel,
Round
};
struct Pen {
Color color = Color::white();
double width = 1.0;
Line_Style style = Line_Style::Solid;
Line_Cap cap = Line_Cap::Butt;
Line_Join join = Line_Join::Miter;
[[nodiscard]] bool enabled() const {
return style != Line_Style::None && width > 0.0 && color.a != 0;
}
};
enum class Brush_Style : std::uint8_t {
None,
Solid
};
struct Brush {
Color color = Color::transparent();
Brush_Style style = Brush_Style::None;
[[nodiscard]] bool enabled() const {
return style != Brush_Style::None && color.a != 0;
}
};
} // namespace renderive