| #include <u.h> |
| #include <libc.h> |
| #include <draw.h> |
| |
| /* |
| * Easy versions of the cache routines; may be substituted by fancier ones for other purposes |
| */ |
| |
| static char *lastname; |
| Subfont *lastsubfont; |
| |
| Subfont* |
| lookupsubfont(Display *d, char *name) |
| { |
| if(d && strcmp(name, "*default*") == 0) |
| return d->defaultsubfont; |
| if(lastname && strcmp(name, lastname)==0) |
| if(d==lastsubfont->bits->display){ |
| lastsubfont->ref++; |
| return lastsubfont; |
| } |
| return 0; |
| } |
| |
| void |
| installsubfont(char *name, Subfont *subfont) |
| { |
| free(lastname); |
| lastname = strdup(name); |
| lastsubfont = subfont; /* notice we don't free the old one; that's your business */ |
| } |
| |
| void |
| uninstallsubfont(Subfont *subfont) |
| { |
| if(subfont == lastsubfont){ |
| lastname = 0; |
| lastsubfont = 0; |
| } |
| } |