find-font.h 903 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #pragma once
  2. #include <ft2build.h>
  3. #include FT_FREETYPE_H
  4. #include FT_SFNT_NAMES_H
  5. #include FT_TRUETYPE_IDS_H
  6. #include <util/dstr.h>
  7. #include <util/darray.h>
  8. #include <util/c99defs.h>
  9. struct font_path_info {
  10. char *face_and_style;
  11. uint32_t full_len;
  12. uint32_t face_len;
  13. bool is_bitmap;
  14. uint32_t num_sizes;
  15. int *sizes;
  16. bool bold;
  17. bool italic;
  18. char *path;
  19. FT_Long index;
  20. };
  21. static inline void font_path_info_free(struct font_path_info *info)
  22. {
  23. bfree(info->sizes);
  24. bfree(info->face_and_style);
  25. bfree(info->path);
  26. }
  27. extern void build_font_path_info(FT_Face face, FT_Long idx, const char *path);
  28. extern char *sfnt_name_to_utf8(FT_SfntName *sfnt_name);
  29. extern bool load_cached_os_font_list(void);
  30. extern void load_os_font_list(void);
  31. extern void free_os_font_list(void);
  32. extern const char *get_font_path(const char *family, uint16_t size, const char *style, uint32_t flags, FT_Long *idx);