annotate nuklear_ui/font_mac.m @ 1971:80920c21bb52

Add an event log soft flush and call it twice per frame in between hard flushes to netplay latency when there are insufficient hardware updates to flush packets in the middle of a frame
author Michael Pavone <pavone@retrodev.com>
date Fri, 08 May 2020 11:40:30 -0700
parents 18ffa9caa00c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1537
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1 #import <AppKit/AppKit.h>
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
2 #include <stddef.h>
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
3 #include "../paths.h"
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
4 #include "../util.h"
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
5 #include "sfnt.h"
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
6
1560
18ffa9caa00c Added code to fallback to Yosemite or pre-Yosemite system font in case current system font can't be found or is in an unusable format. San Francisco font used on current OS X versions is in a .otf file whih presumably means it has CFF outlines that stb_truetype can't use.
Michael Pavone <pavone@retrodev.com>
parents: 1559
diff changeset
7 static sfnt_table *find_font_in_dir(char *path, char *prefix, const char *ps_name)
1537
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
8 {
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
9 size_t num_entries;
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
10 dir_entry *entries = get_dir_list(path, &num_entries);
1559
098c11aaf8f0 Fix silly bug in handling of Mac Roman font names. Make Mac font search more exhaustive if the faster prefix check fails. Added a bunch of debug printfs in case those aren't sufficient to get things working on other machines
Michael Pavone <pavone@retrodev.com>
parents: 1537
diff changeset
11 size_t prefix_len = prefix ? strlen(prefix) : 0;
1537
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
12 sfnt_table *selected = NULL;
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
13 for (size_t i = 0; i < num_entries && !selected; i++)
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
14 {
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
15 char *ext = path_extension(entries[i].name);
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
16 if (!ext || (strcasecmp(ext, "ttf") && strcasecmp(ext, "ttc") && strcasecmp(ext, "dfont"))) {
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
17 //not a truetype font, ignore
1559
098c11aaf8f0 Fix silly bug in handling of Mac Roman font names. Make Mac font search more exhaustive if the faster prefix check fails. Added a bunch of debug printfs in case those aren't sufficient to get things working on other machines
Michael Pavone <pavone@retrodev.com>
parents: 1537
diff changeset
18 printf("Skipping %s because of its extension\n", entries[i].name);
1537
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
19 free(ext);
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
20 continue;
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
21 }
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
22 free(ext);
1559
098c11aaf8f0 Fix silly bug in handling of Mac Roman font names. Make Mac font search more exhaustive if the faster prefix check fails. Added a bunch of debug printfs in case those aren't sufficient to get things working on other machines
Michael Pavone <pavone@retrodev.com>
parents: 1537
diff changeset
23 if (!prefix || !strncasecmp(entries[i].name, prefix, prefix_len)) {
1537
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
24 char *full_path = path_append(path, entries[i].name);
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
25 FILE *f = fopen(full_path, "rb");
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
26 if (f)
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
27 {
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
28 long font_size = file_size(f);
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
29 uint8_t *blob = malloc(font_size);
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
30 if (font_size == fread(blob, 1, font_size, f))
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
31 {
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
32 sfnt_container *sfnt = load_sfnt(blob, font_size);
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
33 if (sfnt) {
1559
098c11aaf8f0 Fix silly bug in handling of Mac Roman font names. Make Mac font search more exhaustive if the faster prefix check fails. Added a bunch of debug printfs in case those aren't sufficient to get things working on other machines
Michael Pavone <pavone@retrodev.com>
parents: 1537
diff changeset
34 printf("Examining font file %s\n", entries[i].name);
1537
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
35 for (uint8_t j = 0; j < sfnt->num_fonts && !selected; j++)
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
36 {
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
37 char *cur_ps = sfnt_name(sfnt->tables + j, SFNT_POSTSCRIPT);
1559
098c11aaf8f0 Fix silly bug in handling of Mac Roman font names. Make Mac font search more exhaustive if the faster prefix check fails. Added a bunch of debug printfs in case those aren't sufficient to get things working on other machines
Michael Pavone <pavone@retrodev.com>
parents: 1537
diff changeset
38 printf("\t%s\n", cur_ps);
1537
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
39 if (!strcmp(cur_ps, ps_name)) {
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
40 selected = sfnt->tables + j;
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
41 }
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
42 free(cur_ps);
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
43 }
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
44 } else {
1559
098c11aaf8f0 Fix silly bug in handling of Mac Roman font names. Make Mac font search more exhaustive if the faster prefix check fails. Added a bunch of debug printfs in case those aren't sufficient to get things working on other machines
Michael Pavone <pavone@retrodev.com>
parents: 1537
diff changeset
45 printf("Failed to load %s as sfnt containern\n", entries[i].name);
1537
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
46 free(blob);
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
47 }
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
48 } else {
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
49 free(blob);
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
50 }
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
51 fclose(f);
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
52 }
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
53 free(full_path);
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
54 }
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
55 }
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
56 return selected;
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
57 }
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
58
1560
18ffa9caa00c Added code to fallback to Yosemite or pre-Yosemite system font in case current system font can't be found or is in an unusable format. San Francisco font used on current OS X versions is in a .otf file whih presumably means it has CFF outlines that stb_truetype can't use.
Michael Pavone <pavone@retrodev.com>
parents: 1559
diff changeset
59 static sfnt_table *find_font_by_ps_name(const char*ps_name, uint8_t exhaustive)
1537
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
60 {
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
61 const unsigned char *prefix_start = (const unsigned char *)ps_name;
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
62 while(*prefix_start && (
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
63 *prefix_start < '0' ||
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
64 (*prefix_start > 'z' && *prefix_start <= 0x80) ||
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
65 (*prefix_start > 'Z' && *prefix_start < 'a') ||
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
66 (*prefix_start > '9' && *prefix_start < 'A')
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
67 ))
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
68 {
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
69 prefix_start++;
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
70 }
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
71 if (!*prefix_start) {
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
72 //Didn't find a suitable starting character, just start from the beginning
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
73 prefix_start = (const unsigned char *)ps_name;
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
74 }
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
75 const unsigned char *prefix_end = (const unsigned char *)prefix_start + 1;
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
76 while (*prefix_end && *prefix_end >= 'a')
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
77 {
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
78 prefix_end++;
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
79 }
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
80 char *prefix = malloc(prefix_end - prefix_start + 1);
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
81 memcpy(prefix, prefix_start, prefix_end - prefix_start);
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
82 prefix[prefix_end-prefix_start] = 0;
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
83 //check /Library/Fonts first
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
84 sfnt_table *selected = find_font_in_dir("/Library/Fonts", (char *)prefix, ps_name);
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
85 if (!selected) {
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
86 selected = find_font_in_dir("/System/Library/Fonts", (char *)prefix, ps_name);
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
87 }
1560
18ffa9caa00c Added code to fallback to Yosemite or pre-Yosemite system font in case current system font can't be found or is in an unusable format. San Francisco font used on current OS X versions is in a .otf file whih presumably means it has CFF outlines that stb_truetype can't use.
Michael Pavone <pavone@retrodev.com>
parents: 1559
diff changeset
88 if (exhaustive) {
18ffa9caa00c Added code to fallback to Yosemite or pre-Yosemite system font in case current system font can't be found or is in an unusable format. San Francisco font used on current OS X versions is in a .otf file whih presumably means it has CFF outlines that stb_truetype can't use.
Michael Pavone <pavone@retrodev.com>
parents: 1559
diff changeset
89 if (!selected) {
18ffa9caa00c Added code to fallback to Yosemite or pre-Yosemite system font in case current system font can't be found or is in an unusable format. San Francisco font used on current OS X versions is in a .otf file whih presumably means it has CFF outlines that stb_truetype can't use.
Michael Pavone <pavone@retrodev.com>
parents: 1559
diff changeset
90 puts("Check using prefix failed, exhaustively checking fonts");
18ffa9caa00c Added code to fallback to Yosemite or pre-Yosemite system font in case current system font can't be found or is in an unusable format. San Francisco font used on current OS X versions is in a .otf file whih presumably means it has CFF outlines that stb_truetype can't use.
Michael Pavone <pavone@retrodev.com>
parents: 1559
diff changeset
91 selected = find_font_in_dir("/Library/Fonts", NULL, ps_name);
18ffa9caa00c Added code to fallback to Yosemite or pre-Yosemite system font in case current system font can't be found or is in an unusable format. San Francisco font used on current OS X versions is in a .otf file whih presumably means it has CFF outlines that stb_truetype can't use.
Michael Pavone <pavone@retrodev.com>
parents: 1559
diff changeset
92 }
18ffa9caa00c Added code to fallback to Yosemite or pre-Yosemite system font in case current system font can't be found or is in an unusable format. San Francisco font used on current OS X versions is in a .otf file whih presumably means it has CFF outlines that stb_truetype can't use.
Michael Pavone <pavone@retrodev.com>
parents: 1559
diff changeset
93 if (!selected) {
18ffa9caa00c Added code to fallback to Yosemite or pre-Yosemite system font in case current system font can't be found or is in an unusable format. San Francisco font used on current OS X versions is in a .otf file whih presumably means it has CFF outlines that stb_truetype can't use.
Michael Pavone <pavone@retrodev.com>
parents: 1559
diff changeset
94 selected = find_font_in_dir("/System/Library/Fonts", NULL, ps_name);
18ffa9caa00c Added code to fallback to Yosemite or pre-Yosemite system font in case current system font can't be found or is in an unusable format. San Francisco font used on current OS X versions is in a .otf file whih presumably means it has CFF outlines that stb_truetype can't use.
Michael Pavone <pavone@retrodev.com>
parents: 1559
diff changeset
95 }
18ffa9caa00c Added code to fallback to Yosemite or pre-Yosemite system font in case current system font can't be found or is in an unusable format. San Francisco font used on current OS X versions is in a .otf file whih presumably means it has CFF outlines that stb_truetype can't use.
Michael Pavone <pavone@retrodev.com>
parents: 1559
diff changeset
96 }
18ffa9caa00c Added code to fallback to Yosemite or pre-Yosemite system font in case current system font can't be found or is in an unusable format. San Francisco font used on current OS X versions is in a .otf file whih presumably means it has CFF outlines that stb_truetype can't use.
Michael Pavone <pavone@retrodev.com>
parents: 1559
diff changeset
97 free(prefix);
18ffa9caa00c Added code to fallback to Yosemite or pre-Yosemite system font in case current system font can't be found or is in an unusable format. San Francisco font used on current OS X versions is in a .otf file whih presumably means it has CFF outlines that stb_truetype can't use.
Michael Pavone <pavone@retrodev.com>
parents: 1559
diff changeset
98 return selected;
18ffa9caa00c Added code to fallback to Yosemite or pre-Yosemite system font in case current system font can't be found or is in an unusable format. San Francisco font used on current OS X versions is in a .otf file whih presumably means it has CFF outlines that stb_truetype can't use.
Michael Pavone <pavone@retrodev.com>
parents: 1559
diff changeset
99 }
18ffa9caa00c Added code to fallback to Yosemite or pre-Yosemite system font in case current system font can't be found or is in an unusable format. San Francisco font used on current OS X versions is in a .otf file whih presumably means it has CFF outlines that stb_truetype can't use.
Michael Pavone <pavone@retrodev.com>
parents: 1559
diff changeset
100
18ffa9caa00c Added code to fallback to Yosemite or pre-Yosemite system font in case current system font can't be found or is in an unusable format. San Francisco font used on current OS X versions is in a .otf file whih presumably means it has CFF outlines that stb_truetype can't use.
Michael Pavone <pavone@retrodev.com>
parents: 1559
diff changeset
101 uint8_t *default_font(uint32_t *size_out)
18ffa9caa00c Added code to fallback to Yosemite or pre-Yosemite system font in case current system font can't be found or is in an unusable format. San Francisco font used on current OS X versions is in a .otf file whih presumably means it has CFF outlines that stb_truetype can't use.
Michael Pavone <pavone@retrodev.com>
parents: 1559
diff changeset
102 {
18ffa9caa00c Added code to fallback to Yosemite or pre-Yosemite system font in case current system font can't be found or is in an unusable format. San Francisco font used on current OS X versions is in a .otf file whih presumably means it has CFF outlines that stb_truetype can't use.
Michael Pavone <pavone@retrodev.com>
parents: 1559
diff changeset
103 NSFont *sys = [NSFont systemFontOfSize:0];
18ffa9caa00c Added code to fallback to Yosemite or pre-Yosemite system font in case current system font can't be found or is in an unusable format. San Francisco font used on current OS X versions is in a .otf file whih presumably means it has CFF outlines that stb_truetype can't use.
Michael Pavone <pavone@retrodev.com>
parents: 1559
diff changeset
104 NSString *name = [sys fontName];
18ffa9caa00c Added code to fallback to Yosemite or pre-Yosemite system font in case current system font can't be found or is in an unusable format. San Francisco font used on current OS X versions is in a .otf file whih presumably means it has CFF outlines that stb_truetype can't use.
Michael Pavone <pavone@retrodev.com>
parents: 1559
diff changeset
105 sfnt_table *selected = find_font_by_ps_name([name UTF8String], 1);
1537
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
106 if (!selected) {
1560
18ffa9caa00c Added code to fallback to Yosemite or pre-Yosemite system font in case current system font can't be found or is in an unusable format. San Francisco font used on current OS X versions is in a .otf file whih presumably means it has CFF outlines that stb_truetype can't use.
Michael Pavone <pavone@retrodev.com>
parents: 1559
diff changeset
107 selected = find_font_by_ps_name(".HelveticaNeueDeskInterface-Regular", 0);
1559
098c11aaf8f0 Fix silly bug in handling of Mac Roman font names. Make Mac font search more exhaustive if the faster prefix check fails. Added a bunch of debug printfs in case those aren't sufficient to get things working on other machines
Michael Pavone <pavone@retrodev.com>
parents: 1537
diff changeset
108 }
098c11aaf8f0 Fix silly bug in handling of Mac Roman font names. Make Mac font search more exhaustive if the faster prefix check fails. Added a bunch of debug printfs in case those aren't sufficient to get things working on other machines
Michael Pavone <pavone@retrodev.com>
parents: 1537
diff changeset
109 if (!selected) {
1560
18ffa9caa00c Added code to fallback to Yosemite or pre-Yosemite system font in case current system font can't be found or is in an unusable format. San Francisco font used on current OS X versions is in a .otf file whih presumably means it has CFF outlines that stb_truetype can't use.
Michael Pavone <pavone@retrodev.com>
parents: 1559
diff changeset
110 selected = find_font_by_ps_name(".LucidaGrandeUI", 0);
1559
098c11aaf8f0 Fix silly bug in handling of Mac Roman font names. Make Mac font search more exhaustive if the faster prefix check fails. Added a bunch of debug printfs in case those aren't sufficient to get things working on other machines
Michael Pavone <pavone@retrodev.com>
parents: 1537
diff changeset
111 }
1560
18ffa9caa00c Added code to fallback to Yosemite or pre-Yosemite system font in case current system font can't be found or is in an unusable format. San Francisco font used on current OS X versions is in a .otf file whih presumably means it has CFF outlines that stb_truetype can't use.
Michael Pavone <pavone@retrodev.com>
parents: 1559
diff changeset
112
1559
098c11aaf8f0 Fix silly bug in handling of Mac Roman font names. Make Mac font search more exhaustive if the faster prefix check fails. Added a bunch of debug printfs in case those aren't sufficient to get things working on other machines
Michael Pavone <pavone@retrodev.com>
parents: 1537
diff changeset
113 if (!selected) {
1560
18ffa9caa00c Added code to fallback to Yosemite or pre-Yosemite system font in case current system font can't be found or is in an unusable format. San Francisco font used on current OS X versions is in a .otf file whih presumably means it has CFF outlines that stb_truetype can't use.
Michael Pavone <pavone@retrodev.com>
parents: 1559
diff changeset
114 fatal_error("Failed to find system font %s\n", [name UTF8String]);
1537
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
115 }
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
116 return sfnt_flatten(selected, size_out);
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
117 }
b4914d92308b Added OSX implementation of default_font
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
118