forked from dmitmel/CCUpdaterUI
-
Notifications
You must be signed in to change notification settings - Fork 0
/
circle.go
41 lines (35 loc) · 1.37 KB
/
circle.go
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
package design
import (
"github.com/20kdc/CCUpdaterUI/frenyard"
"github.com/20kdc/CCUpdaterUI/frenyard/integration"
)
var circleTexReductionsMask []frenyard.Texture
var circleTexReductionsRaw []frenyard.Texture
func deSetupCircle() {
circleTexReductionsMask = make([]frenyard.Texture, 7)
circleTexReductionsRaw = make([]frenyard.Texture, 7)
img := integration.CreateHardcodedPNGImage(circle192B64)
for k := range circleTexReductionsMask {
circleTexReductionsMask[k] = integration.GoImageToTexture(img, []integration.ColourTransform{
integration.ColourTransformBlueToStencil,
})
circleTexReductionsRaw[k] = integration.GoImageToTexture(img, []integration.ColourTransform{})
if k != len(circleTexReductionsMask) - 1 {
img = integration.ScaleImageToHalfSize(img)
}
}
}
func deGetCircleTextureIndex(size int32) int {
for k, v := range circleTexReductionsMask {
if v.Size().X <= size {
return k
}
}
return len(circleTexReductionsMask) - 1
}
func deEncodeCircleCmd(textureSet []frenyard.Texture, position frenyard.Vec2i, size int32, baseCmd frenyard.DrawRectCommand) frenyard.DrawRectCommand {
baseCmd.Tex = textureSet[deGetCircleTextureIndex(size)]
baseCmd.TexSprite = frenyard.Area2iOfSize(baseCmd.Tex.Size())
baseCmd.Target = frenyard.Area2iFromVecs(position, frenyard.Vec2i{}).Align(frenyard.Vec2i{X: size, Y: size}, frenyard.Alignment2i{})
return baseCmd
}