libwtk-sdl2  0.0.1
font_manager.hpp
1 #ifndef LIBWTK_SDL2_FONT_MANAGER_HPP
2 #define LIBWTK_SDL2_FONT_MANAGER_HPP
3 
4 #include <string>
5 #include <vector>
6 
7 #include <SDL2/SDL_render.h>
8 
9 #include "font.hpp"
10 #include "font_word_cache.hpp"
11 #include "geometry.hpp"
12 
14 {
15  font_manager(SDL_Renderer * renderer, std::vector<font> fonts);
16  font_manager(font_manager const &) = delete;
17  font_manager & operator=(font_manager const &) = delete;
18 
19  // font manager interface
20 
21  std::size_t load_font(font f);
22 
23  // forwarded interface
24 
25  std::tuple<vec, std::vector<copy_command>> text(std::string t, int max_line_width = -1, int font_idx = 0);
26  vec text_size(std::string t, int max_line_width = -1, int font_idx = 0);
27  int text_minimum_width(std::string t, int font_idx = 0);
28  unsigned int font_height(int font_idx = 0) const;
29  int font_line_skip(int font_idx = 0) const;
30 
31  private:
32 
33  SDL_Renderer * _renderer;
34  std::vector<font_word_cache> _font_word_caches;
35 
36 };
37 
38 #endif
39 
Definition: font.hpp:6
Definition: geometry.hpp:12
Definition: font_manager.hpp:13