diff options
Diffstat (limited to 'drw/drw.go')
| -rw-r--r-- | drw/drw.go | 21 |
1 files changed, 10 insertions, 11 deletions
@@ -3,6 +3,7 @@ package drw // import "hhvn.uk/hbspbar/drw" import ( "image" "image/draw" + "image/color" "hhvn.uk/hbspbar/config" @@ -11,7 +12,7 @@ import ( "github.com/BurntSushi/freetype-go/freetype" ) -func DrawText(i *image.RGBA, x int, col uint32, text string) (int, error) { +func DrawText(i *image.RGBA, x int, col color.Color, text string) (int, error) { ft := freetype.NewContext() ft.SetDPI(72) ft.SetFont(font) @@ -19,7 +20,7 @@ func DrawText(i *image.RGBA, x int, col uint32, text string) (int, error) { ft.SetClip(i.Bounds()) ft.SetDst(i) - src := image.NewUniform(int2rgb(col)) + src := image.NewUniform(col) ft.SetSrc(src) pt := freetype.Pt(x, config.FontYPad+ @@ -34,16 +35,14 @@ func TextWidth(text string) (int) { return w } -func DrawRect(i *image.RGBA, x, y, w, h int, c uint32, fill bool) { - col := int2rgb(c) - +func DrawRect(i *image.RGBA, x, y, w, h int, c color.Color, fill bool) { var ix, iy int for ix = x; ix < x + w; ix++ { for iy = y; iy < y + h; iy++ { if fill || ix == x || ix == x + w - 1 || iy == y || iy == y + h - 1 { - i.Set(ix, iy, col) + i.Set(ix, iy, c) } } } @@ -54,7 +53,7 @@ func AddImg(dst *image.RGBA, x, w int, src *image.RGBA) { draw.Draw(dst, r, src, image.Pt(0,0), draw.Src) } -func Blend3(a, b, c uint32, percent int) uint32 { +func Blend3(a, b, c color.Color, percent int) color.Color { if percent <= 50 { return Blend(a, b, percent * 2) } else { @@ -63,10 +62,10 @@ func Blend3(a, b, c uint32, percent int) uint32 { } // Conversion hell, I know -func Blend(a, b uint32, percent int) uint32 { - ac, _ := col.MakeColor(int2rgb(a)) - bc, _ := col.MakeColor(int2rgb(b)) +func Blend(a, b color.Color, percent int) color.Color { + ac, _ := col.MakeColor(a) + bc, _ := col.MakeColor(b) - return rgb2int(ac.BlendHcl(bc, float64(percent) / 100).Clamped()) + return color.Color(ac.BlendHcl(bc, float64(percent) / 100).Clamped()) } |