2 #include "common/common.hpp"
3 #include "util/uuid.hpp"
17 enum Flags { F_SMALL = (1 << 0) };
19 Marker(
const Coordf &p,
const Color &co,
uint8_t f = 0) : x(p.x), y(p.y), r(co.r), g(co.g), b(co.b), flags(f)
22 } __attribute__((packed));
24 enum class MarkerDomain { CHECK, SEARCH, N_DOMAINS };
31 enum class Size { DEFAULT, SMALL };
32 Size size = Size::DEFAULT;
33 MarkerRef(
const Coordf &pos,
const Color &co,
const UUID &s = UUID()) : position(pos), sheet(s), color(co)
39 friend class MarkerRenderer;
42 Markers(
class CanvasGL &c);
44 std::deque<MarkerRef> &get_domain(MarkerDomain dom);
45 void set_domain_visible(MarkerDomain dom,
bool vis);
49 std::array<std::deque<MarkerRef>,
static_cast<int>(MarkerDomain::N_DOMAINS)> domains;
50 std::array<bool, static_cast<int>(MarkerDomain::N_DOMAINS)> domains_visible;
54 class MarkerRenderer {
55 friend class CanvasGL;
58 MarkerRenderer(
const class CanvasGL &c, Markers &ma);
66 std::vector<Marker> markers;
77 GLuint border_color_loc;