Skip to content

Commit 26d2074

Browse files
authored
fix(score): use mem too high & (aifalse): style adjust (FloatTech#1026)
1 parent 419f67f commit 26d2074

File tree

2 files changed

+46
-37
lines changed

2 files changed

+46
-37
lines changed

plugin/aifalse/main.go

Lines changed: 35 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import (
2020
"github.com/FloatTech/floatbox/web"
2121
"github.com/FloatTech/gg"
2222
"github.com/FloatTech/imgfactory"
23-
"github.com/FloatTech/rendercard"
2423
ctrl "github.com/FloatTech/zbpctrl"
2524
"github.com/FloatTech/zbputils/control"
2625
"github.com/FloatTech/zbputils/ctxext"
@@ -237,14 +236,17 @@ func drawstatus(m *ctrl.Control[*zero.Ctx], uid int64, botname string, botrunsta
237236
defer wg.Done()
238237
titlecard := gg.NewContext(cardw, titlecardh)
239238
bwg.Wait()
240-
titlecard.DrawImage(blurback, -70, -70)
241239

242240
titlecard.DrawRoundedRectangle(1, 1, float64(titlecard.W()-1*2), float64(titlecardh-1*2), 16)
241+
titlecard.ClipPreserve()
242+
titlecard.DrawImage(blurback, -70, -70)
243+
titlecard.SetColor(colorswitch(140))
244+
titlecard.FillPreserve()
245+
243246
titlecard.SetLineWidth(3)
244247
titlecard.SetColor(colorswitch(100))
245-
titlecard.StrokePreserve()
246-
titlecard.SetColor(colorswitch(140))
247-
titlecard.Fill()
248+
titlecard.ResetClip()
249+
titlecard.Stroke()
248250

249251
titlecard.DrawImage(avatarf.Circle(0).Image(), (titlecardh-avatarf.H())/2, (titlecardh-avatarf.H())/2)
250252

@@ -288,20 +290,23 @@ func drawstatus(m *ctrl.Control[*zero.Ctx], uid int64, botname string, botrunsta
288290
fw, _ = titlecard.MeasureString(bs)
289291

290292
titlecard.DrawStringAnchored(bs, float64(titlecardh)+fw/2, float64(titlecardh)*(0.5+0.75/2), 0.5, 0.5)
291-
titleimg = rendercard.Fillet(titlecard.Image(), 16)
293+
titleimg = titlecard.Image()
292294
}()
293295
go func() {
294296
defer wg.Done()
295297
basiccard := gg.NewContext(cardw, basiccardh)
296298
bwg.Wait()
297-
basiccard.DrawImage(blurback, -70, -70-titlecardh-40)
298299

299300
basiccard.DrawRoundedRectangle(1, 1, float64(basiccard.W()-1*2), float64(basiccardh-1*2), 16)
301+
basiccard.ClipPreserve()
302+
basiccard.DrawImage(blurback, -70, -70-titlecardh-40)
303+
basiccard.SetColor(colorswitch(140))
304+
basiccard.FillPreserve()
305+
300306
basiccard.SetLineWidth(3)
301307
basiccard.SetColor(colorswitch(100))
302-
basiccard.StrokePreserve()
303-
basiccard.SetColor(colorswitch(140))
304-
basiccard.Fill()
308+
basiccard.ResetClip()
309+
basiccard.Stroke()
305310

306311
bslen := len(basicstate)
307312
for i, v := range basicstate {
@@ -361,20 +366,23 @@ func drawstatus(m *ctrl.Control[*zero.Ctx], uid int64, botname string, botrunsta
361366
basiccard.DrawStringAnchored(s, (float64(basiccard.W())-200*float64(bslen))/float64(bslen+1)+200/2+offset, 20+200+15+fw+15+basiccard.FontHeight()/2+float64(k)*textoffsety, 0.5, 0.5)
362367
}
363368
}
364-
basicimg = rendercard.Fillet(basiccard.Image(), 16)
369+
basicimg = basiccard.Image()
365370
}()
366371
go func() {
367372
defer wg.Done()
368373
diskcard := gg.NewContext(cardw, diskcardh)
369374
bwg.Wait()
370-
diskcard.DrawImage(blurback, -70, -70-titlecardh-40-basiccardh-40)
371375

372376
diskcard.DrawRoundedRectangle(1, 1, float64(diskcard.W()-1*2), float64(diskcardh-1*2), 16)
377+
diskcard.ClipPreserve()
378+
diskcard.DrawImage(blurback, -70, -70-titlecardh-40-basiccardh-40)
379+
diskcard.SetColor(colorswitch(140))
380+
diskcard.FillPreserve()
381+
373382
diskcard.SetLineWidth(3)
374383
diskcard.SetColor(colorswitch(100))
375-
diskcard.StrokePreserve()
376-
diskcard.SetColor(colorswitch(140))
377-
diskcard.Fill()
384+
diskcard.ResetClip()
385+
diskcard.Stroke()
378386

379387
err = diskcard.ParseFontFace(fontbyte, 32)
380388
if err != nil {
@@ -427,6 +435,7 @@ func drawstatus(m *ctrl.Control[*zero.Ctx], uid int64, botname string, botrunsta
427435
}
428436

429437
diskcard.DrawRoundedRectangle(40, 40+(float64(diskcardh-40*2)-50*float64(dslen))/float64(dslen-1)+offset, float64(diskcard.W())-40-100, 50, 12)
438+
diskcard.ClipPreserve()
430439
diskcard.Fill()
431440

432441
colors := darkcolor
@@ -445,6 +454,7 @@ func drawstatus(m *ctrl.Control[*zero.Ctx], uid int64, botname string, botrunsta
445454

446455
diskcard.DrawRoundedRectangle(40, 40+(float64(diskcardh-40*2)-50*float64(dslen))/float64(dslen-1)+offset, (float64(diskcard.W())-40-100)*v.precent*0.01, 50, 12)
447456
diskcard.Fill()
457+
diskcard.ResetClip()
448458

449459
diskcard.SetColor(fontcolorswitch())
450460

@@ -456,20 +466,23 @@ func drawstatus(m *ctrl.Control[*zero.Ctx], uid int64, botname string, botrunsta
456466
diskcard.DrawStringAnchored(strconv.FormatFloat(v.precent, 'f', 0, 64)+"%", float64(diskcard.W())-100/2, 40+(float64(diskcardh-40*2)-50*float64(dslen))/float64(dslen-1)+50/2+offset, 0.5, 0.5)
457467
}
458468
}
459-
diskimg = rendercard.Fillet(diskcard.Image(), 16)
469+
diskimg = diskcard.Image()
460470
}()
461471
go func() {
462472
defer wg.Done()
463473
moreinfocard := gg.NewContext(cardw, moreinfocardh)
464474
bwg.Wait()
465-
moreinfocard.DrawImage(blurback, -70, -70-titlecardh-40-basiccardh-40-diskcardh-40)
466475

467476
moreinfocard.DrawRoundedRectangle(1, 1, float64(moreinfocard.W()-1*2), float64(moreinfocard.H()-1*2), 16)
477+
moreinfocard.ClipPreserve()
478+
moreinfocard.DrawImage(blurback, -70, -70-titlecardh-40-basiccardh-40-diskcardh-40)
479+
moreinfocard.SetColor(colorswitch(140))
480+
moreinfocard.FillPreserve()
481+
468482
moreinfocard.SetLineWidth(3)
469483
moreinfocard.SetColor(colorswitch(100))
470-
moreinfocard.StrokePreserve()
471-
moreinfocard.SetColor(colorswitch(140))
472-
moreinfocard.Fill()
484+
moreinfocard.ResetClip()
485+
moreinfocard.Stroke()
473486

474487
err = moreinfocard.ParseFontFace(fontbyte, 32)
475488
if err != nil {
@@ -488,7 +501,7 @@ func drawstatus(m *ctrl.Control[*zero.Ctx], uid int64, botname string, botrunsta
488501
moreinfocard.DrawStringAnchored(v.name, 20+fw/2, 30+(float64(moreinfocardh-30*2)-moreinfocard.FontHeight()*float64(milen))/float64(milen-1)+moreinfocard.FontHeight()/2+offset, 0.5, 0.5)
489502
moreinfocard.DrawStringAnchored(v.text[0], float64(moreinfocard.W())-20-fw1/2, 30+(float64(moreinfocardh-30*2)-moreinfocard.FontHeight()*float64(milen))/float64(milen-1)+moreinfocard.FontHeight()/2+offset, 0.5, 0.5)
490503
}
491-
moreinfoimg = rendercard.Fillet(moreinfocard.Image(), 16)
504+
moreinfoimg = moreinfocard.Image()
492505
}()
493506
go func() {
494507
defer wg.Done()
@@ -668,7 +681,7 @@ func diskstate() (stateinfo []*status, err error) {
668681
func moreinfo(m *ctrl.Control[*zero.Ctx]) (stateinfo []*status, err error) {
669682
var mems runtime.MemStats
670683
runtime.ReadMemStats(&mems)
671-
fmtmem := storagefmt(float64(mems.Sys))
684+
fmtmem := storagefmt(float64(mems.Alloc))
672685

673686
hostinfo, err := host.Info()
674687
if err != nil {

plugin/score/draw.go

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,6 @@ func drawScore17b2(a *scdata) (img image.Image, err error) {
286286
if err != nil {
287287
return
288288
}
289-
290289
back, err := gg.LoadImage(a.picfile)
291290
if err != nil {
292291
return
@@ -295,30 +294,27 @@ func drawScore17b2(a *scdata) (img image.Image, err error) {
295294
bx, by := float64(back.Bounds().Dx()), float64(back.Bounds().Dy())
296295

297296
sc := 1280 / bx
298-
299-
colors := gg.TakeColor(back, 3)
297+
var colors []color.RGBA
300298

301299
canvas := gg.NewContext(1280, 1280*int(by)/int(bx))
302-
303300
cw, ch := float64(canvas.W()), float64(canvas.H())
304301

305302
sch := ch * 6 / 10
306303

307304
var blurback, scbackimg, backshadowimg, avatarimg, avatarbackimg, avatarshadowimg, whitetext, blacktext image.Image
308-
var wg sync.WaitGroup
309-
wg.Add(8)
305+
wg := &sync.WaitGroup{}
306+
wg.Add(7)
307+
scback := gg.NewContext(canvas.W(), canvas.H())
310308

309+
scback.ScaleAbout(sc, sc, cw/2, ch/2)
310+
scback.DrawImageAnchored(back, canvas.W()/2, canvas.H()/2, 0.5, 0.5)
311+
scback.Identity()
312+
313+
colors = gg.TakeColor(scback.Image(), 3)
311314
go func() {
312315
defer wg.Done()
313-
scback := gg.NewContext(canvas.W(), canvas.H())
314-
scback.ScaleAbout(sc, sc, cw/2, ch/2)
315-
scback.DrawImageAnchored(back, canvas.W()/2, canvas.H()/2, 0.5, 0.5)
316-
scback.Identity()
317-
318-
go func() {
319-
defer wg.Done()
320-
blurback = imaging.Blur(scback.Image(), 20)
321-
}()
316+
317+
blurback = imaging.Blur(scback.Image(), 20)
322318

323319
scbackimg = rendercard.Fillet(scback.Image(), 12)
324320
}()

0 commit comments

Comments
 (0)