libdraw: redo default font construction to be hidpi-safe
If $font is not set, the default font is constructed from font data linked into every libdraw binary. That process was different from the usual openfont code, and so it was not hidpi-aware, resulting in very tiny fonts out of the box on hidpi systems, until users set $font. Fix this by using openfont to construct the default font, by recognizing the name *default* when looking for font and subfont file contents. Then all the hidpi scaling applies automatically. As a side effect, the concept of a 'default subfont' is gone, as are display->defaultsubfont, getdefont, and memgetdefont.
This commit is contained in:
parent
3ebbb99ce3
commit
16d0081989
20 changed files with 374 additions and 587 deletions
|
|
@ -1,6 +1,6 @@
|
|||
.TH GRAPHICS 3
|
||||
.SH NAME
|
||||
Display, Point, Rectangle, Cursor, initdraw, geninitdraw, drawerror, initdisplay, closedisplay, getdefont, getwindow, gengetwindow, flushimage, bufimage, lockdisplay, unlockdisplay, cursorswitch, cursorset, openfont, buildfont, freefont, Pfmt, Rfmt, strtochan, chantostr, chantodepth \- interactive graphics
|
||||
Display, Point, Rectangle, Cursor, initdraw, geninitdraw, drawerror, initdisplay, closedisplay, getwindow, gengetwindow, flushimage, bufimage, lockdisplay, unlockdisplay, cursorswitch, cursorset, openfont, buildfont, freefont, Pfmt, Rfmt, strtochan, chantostr, chantodepth \- interactive graphics
|
||||
.SH SYNOPSIS
|
||||
.nf
|
||||
.PP
|
||||
|
|
@ -38,9 +38,6 @@ Display* initdisplay(char *devdir, char *win, void(*errfun)(Display*, char*))
|
|||
void closedisplay(Display *d)
|
||||
.PP
|
||||
.B
|
||||
Font* getdefont(Display *d)
|
||||
.PP
|
||||
.B
|
||||
int flushimage(Display *d, int vis)
|
||||
.PP
|
||||
.B
|
||||
|
|
@ -398,11 +395,7 @@ names the directory, default
|
|||
in which the files associated with the window reside.
|
||||
.I Closedisplay
|
||||
disconnects the display and frees the associated data structures.
|
||||
.I Getdefont
|
||||
builds a
|
||||
.B Font
|
||||
structure from in-core data describing a default font.
|
||||
None of these routines is needed by most programs, since
|
||||
Neither of these routines is needed by most programs, since
|
||||
.I initdraw
|
||||
calls them as needed.
|
||||
.PP
|
||||
|
|
|
|||
|
|
@ -152,7 +152,6 @@ Memsubfont* allocmemsubfont(char *name, int n, int height,
|
|||
Memsubfont* openmemsubfont(char *name)
|
||||
void freememsubfont(Memsubfont *f)
|
||||
Point memsubfontwidth(Memsubfont *f, char *s)
|
||||
Memsubfont* getmemdefont(void)
|
||||
Point memimagestring(Memimage *dst, Point p, Memimage *color,
|
||||
Point cp, Memsubfont *f, char *cs, Drawop op)
|
||||
.PP
|
||||
|
|
@ -354,7 +353,6 @@ Similarly,
|
|||
.IR openmemsubfont ,
|
||||
.IR freememsubfont ,
|
||||
.IR memsubfontwidth ,
|
||||
.IR getmemdefont ,
|
||||
and
|
||||
.I memimagestring
|
||||
are the
|
||||
|
|
@ -364,7 +362,6 @@ analogues of
|
|||
.IR openfont ,
|
||||
.IR freesubfont ,
|
||||
.IR strsubfontwidth ,
|
||||
.IR getdefont ,
|
||||
and
|
||||
.B string
|
||||
(see
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue