Unravel Engine C++ Reference
Loading...
Searching...
No Matches
font.h
Go to the documentation of this file.
1#pragma once
2#include <engine/engine_export.h>
3
4#include <graphics/graphics.h>
5
10
11namespace unravel
12{
13
14void init_fonts();
15void deinit_fonts();
16
18{
20 ~base_font();
21
22 auto get_info() const -> const gfx::font_info&;
23 auto get_line_height() const -> float;
24 auto is_valid() const -> bool;
25
26 gfx::font_handle handle{gfx::invalid_handle};
27};
28
30{
31};
32
34{
36 font(const char* path,
37 uint32_t typeface_index,
38 uint32_t pixel_ize,
39 uint32_t font_type = FONT_TYPE_DISTANCE,
40 uint16_t glyph_width_padding = 8,
41 uint16_t glyph_height_padding = 8);
42 ~font();
43
44 auto get_scaled_font(uint32_t pixel_size) const -> std::shared_ptr<scaled_font>;
45
46 static auto default_thin() -> asset_handle<font>&;
48 static auto default_light() -> asset_handle<font>&;
49 static auto default_medium() -> asset_handle<font>&;
50 static auto default_regular() -> asset_handle<font>&;
51 static auto default_semi_bold() -> asset_handle<font>&;
52 static auto default_bold() -> asset_handle<font>&;
53 static auto default_heavy() -> asset_handle<font>&;
54 static auto default_black() -> asset_handle<font>&;
55
56 gfx::true_type_handle ttf_handle{gfx::invalid_handle};
57};
58
59
61{
62 gfx::text_buffer_handle handle{gfx::invalid_handle};
63};
64
66{
69
70 void destroy_buffers();
71 auto get_buffer(uint32_t type, gfx::buffer_type::Enum btype, bool create_new = true) -> text_buffer&
72 {
73 if(create_new)
74 {
75 auto buf = manager.create_text_buffer(type, btype);
76 buffers.push_back({buf});
77 }
78 return buffers.back();
79 }
80
81 std::vector<text_buffer> buffers;
83};
84
91
92} // namespace unravel
manifold_type type
auto create_text_buffer(uint32_t type, buffer_type::Enum btype) -> text_buffer_handle
#define FONT_TYPE_DISTANCE
void init_fonts()
Definition font.cpp:813
void deinit_fonts()
Definition font.cpp:818
Represents a handle to an asset, providing access and management functions.
gfx::font_handle handle
Definition font.h:26
auto get_line_height() const -> float
Definition font.cpp:839
auto is_valid() const -> bool
Definition font.cpp:845
auto get_info() const -> const gfx::font_info &
Definition font.cpp:834
static auto default_light() -> asset_handle< font > &
Definition font.cpp:867
static auto default_heavy() -> asset_handle< font > &
Definition font.cpp:892
static auto default_extra_light() -> asset_handle< font > &
Definition font.cpp:862
static auto default_regular() -> asset_handle< font > &
Definition font.cpp:877
static auto default_bold() -> asset_handle< font > &
Definition font.cpp:887
gfx::true_type_handle ttf_handle
Definition font.h:56
static auto default_semi_bold() -> asset_handle< font > &
Definition font.cpp:882
auto get_scaled_font(uint32_t pixel_size) const -> std::shared_ptr< scaled_font >
Definition font.cpp:850
static auto default_thin() -> asset_handle< font > &
Definition font.cpp:857
static auto default_black() -> asset_handle< font > &
Definition font.cpp:897
static auto default_medium() -> asset_handle< font > &
Definition font.cpp:872
std::vector< text_buffer > buffers
Definition font.h:81
auto get_buffer(uint32_t type, gfx::buffer_type::Enum btype, bool create_new=true) -> text_buffer &
Definition font.h:71
gfx::text_buffer_manager manager
Definition font.h:82
gfx::text_buffer_handle handle
Definition font.h:62
gfx::text_metrics metrics
Definition font.h:89