HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
font.hpp
1// Copyright Take Vos 2019-2021.
2// Distributed under the Boost Software License, Version 1.0.
3// (See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt)
4
5#pragma once
6
7#include "glyph_metrics.hpp"
8#include "font_glyph_ids.hpp"
9#include "gstring.hpp"
10#include "font_description.hpp"
11#include "../graphic_path.hpp"
12#include "../resource_view.hpp"
13#include "../exception.hpp"
14#include "../required.hpp"
15#include "../URL.hpp"
16#include <span>
17#include <vector>
18#include <map>
19
20namespace tt {
21
26class font {
27public:
28 font() = default;
29 virtual ~font() = default;
30 font(font const &) = delete;
31 font &operator=(font const &) = delete;
32 font(font &&) = delete;
33 font &operator=(font &&) = delete;
34
38
42 [[nodiscard]] virtual tt::glyph_id find_glyph(char32_t c) const noexcept = 0;
43
47 [[nodiscard]] font_glyph_ids find_glyph(grapheme g) const noexcept;
48
56 virtual std::optional<tt::glyph_id> loadGlyph(tt::glyph_id glyph_id, graphic_path &path) const noexcept = 0;
57
66 virtual bool loadglyph_metrics(
68 glyph_metrics &metrics,
69 tt::glyph_id lookahead_glyph_id = tt::glyph_id{})
70 const noexcept = 0;
71};
72
73}
A path is a vector graphics object.
Definition graphic_path.hpp:29
Definition tagged_id.hpp:18
Definition font.hpp:26
font_description description
The description is filled with information parsed from the font.
Definition font.hpp:37
virtual bool loadglyph_metrics(tt::glyph_id glyph_id, glyph_metrics &metrics, tt::glyph_id lookahead_glyph_id=tt::glyph_id{}) const noexcept=0
font_glyph_ids find_glyph(grapheme g) const noexcept
Get the glyphs for a grapheme.
virtual tt::glyph_id find_glyph(char32_t c) const noexcept=0
Get the glyph for a code-point.
virtual std::optional< tt::glyph_id > loadGlyph(tt::glyph_id glyph_id, graphic_path &path) const noexcept=0
Definition font_description.hpp:16
Definition font_glyph_ids.hpp:78
Definition glyph_metrics.hpp:18
Definition grapheme.hpp:21