blob: 70b29da4fdde03b73bffb218b7689b2ccce0a153 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
package drw // import "hhvn.uk/hbspbar/drw"
import (
"os"
"image/color"
"hhvn.uk/hbspbar/config"
"hhvn.uk/hbspbar/common"
"github.com/jezek/xgb"
"github.com/jezek/xgb/xproto"
"github.com/jezek/xgbutil"
"github.com/jezek/xgbutil/xgraphics"
"github.com/BurntSushi/freetype-go/freetype"
"github.com/BurntSushi/freetype-go/freetype/truetype"
)
var InitErr error
var X *xgb.Conn
var XU *xgbutil.XUtil
var Screen *xproto.ScreenInfo
var font *truetype.Font
var ft *freetype.Context
func init() {
var err error
X, err = xgb.NewConn()
if err != nil {
InitErr = err
return
}
XU, err = xgbutil.NewConnXgb(X)
if err != nil {
InitErr = err
return
}
setup := xproto.Setup(X)
Screen = setup.DefaultScreen(X)
read, err := os.Open(config.Font)
if err != nil {
InitErr = common.Perror("os.Open", err)
return
}
font, err = xgraphics.ParseFont(read)
if err != nil {
InitErr = common.Perror("xgraphics.ParseFont", err)
return
}
ft = freetype.NewContext()
ft.SetDPI(72)
ft.SetFont(font)
ft.SetFontSize(config.FontSize)
}
func int2rgb(argb uint32) (color.RGBA) {
return color.RGBA{
B: uint8( argb & 0x000000ff),
G: uint8((argb & 0x0000ff00) >> 8),
R: uint8((argb & 0x00ff0000) >> 16),
A: uint8((argb & 0xff000000) >> 24) }
}
|