package draw9import "sync"/* * Easy versions of the cache routines; may be substituted by fancier ones for other purposes */var lastfont struct { sync.Mutex name string sub *Subfont}func lookupsubfont(d *Display, name string) *Subfont { if d != nil && name == "*default*" { return d.DefaultSubfont } lastfont.Lock() defer lastfont.Unlock() if lastfont.name == name && d == lastfont.sub.Bits.Display { lastfont.sub.Ref++ return lastfont.sub } return nil}func installsubfont(name string, subfont *Subfont) { lastfont.Lock() defer lastfont.Unlock() lastfont.name = name lastfont.sub = subfont /* notice we don't free the old one; that's your business */}func uninstallsubfont(subfont *Subfont) { lastfont.Lock() defer lastfont.Unlock() if subfont == lastfont.sub { lastfont.name = "" lastfont.sub = nil }}
package draw9
import "sync"
/*
* Easy versions of the cache routines; may be substituted by fancier ones for other purposes
*/
var lastfont struct {
sync.Mutex
name string
sub *Subfont
}
func lookupsubfont(d *Display, name string) *Subfont {
if d != nil && name == "*default*" {
return d.DefaultSubfont
}
lastfont.Lock()
defer lastfont.Unlock()
if lastfont.name == name && d == lastfont.sub.Bits.Display {
lastfont.sub.Ref++
return lastfont.sub
}
return nil
}
func installsubfont(name string, subfont *Subfont) {
lastfont.Lock()
defer lastfont.Unlock()
lastfont.name = name
lastfont.sub = subfont /* notice we don't free the old one; that's your business */
}
func uninstallsubfont(subfont *Subfont) {
lastfont.Lock()
defer lastfont.Unlock()
if subfont == lastfont.sub {
lastfont.name = ""
lastfont.sub = nil
}
}