mirror of
https://github.com/make-42/xyosc
synced 2024-11-22 17:20:09 +01:00
feat: various fixes
This commit is contained in:
parent
30694431e6
commit
63d987ff10
@ -14,35 +14,35 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type ConfigS struct {
|
type ConfigS struct {
|
||||||
FPSCounter bool
|
FPSCounter bool
|
||||||
ShowMPRIS bool
|
ShowMPRIS bool
|
||||||
TargetFPS int32
|
TargetFPS int32
|
||||||
WindowWidth int32
|
WindowWidth int32
|
||||||
WindowHeight int32
|
WindowHeight int32
|
||||||
WindowOpacity float32
|
CaptureDeviceIndex int
|
||||||
CaptureDeviceIndex int
|
SampleRate uint32
|
||||||
SampleRate uint32
|
RingBufferSize uint32
|
||||||
RingBufferSize uint32
|
ReadBufferSize uint32
|
||||||
ReadBufferSize uint32
|
Gain float32
|
||||||
Gain float32
|
LineOpacity uint8
|
||||||
LineOpacity uint8
|
LineThickness float32
|
||||||
LineThickness float32
|
LineInvSqrtOpacityControl bool
|
||||||
}
|
}
|
||||||
|
|
||||||
var DefaultConfig = ConfigS{
|
var DefaultConfig = ConfigS{
|
||||||
FPSCounter: false,
|
FPSCounter: false,
|
||||||
ShowMPRIS: true,
|
ShowMPRIS: true,
|
||||||
TargetFPS: 60,
|
TargetFPS: 240,
|
||||||
WindowWidth: 1080,
|
WindowWidth: 1300,
|
||||||
WindowHeight: 1080,
|
WindowHeight: 1300,
|
||||||
WindowOpacity: 0.8,
|
CaptureDeviceIndex: 0,
|
||||||
CaptureDeviceIndex: 0,
|
SampleRate: 96000,
|
||||||
SampleRate: 48000,
|
RingBufferSize: 9600,
|
||||||
RingBufferSize: 4800,
|
ReadBufferSize: 9600,
|
||||||
ReadBufferSize: 4800,
|
Gain: 1,
|
||||||
Gain: 1,
|
LineOpacity: 100,
|
||||||
LineOpacity: 50,
|
LineThickness: 3,
|
||||||
LineThickness: 2,
|
LineInvSqrtOpacityControl: false,
|
||||||
}
|
}
|
||||||
|
|
||||||
var Config ConfigS
|
var Config ConfigS
|
||||||
|
BIN
icons/assets/icon-16-32.xcf
Normal file
BIN
icons/assets/icon-16-32.xcf
Normal file
Binary file not shown.
BIN
icons/assets/icon-16.png
Normal file
BIN
icons/assets/icon-16.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 864 B |
BIN
icons/assets/icon-32.png
Normal file
BIN
icons/assets/icon-32.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 953 B |
BIN
icons/assets/icon-48.png
Normal file
BIN
icons/assets/icon-48.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.0 KiB |
BIN
icons/assets/icon-48.xcf
Normal file
BIN
icons/assets/icon-48.xcf
Normal file
Binary file not shown.
35
icons/icons.go
Normal file
35
icons/icons.go
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
package icons
|
||||||
|
|
||||||
|
import (
|
||||||
|
"embed"
|
||||||
|
"image"
|
||||||
|
_ "image/png"
|
||||||
|
"xyosc/utils"
|
||||||
|
)
|
||||||
|
|
||||||
|
//go:embed assets/icon-48.png
|
||||||
|
//go:embed assets/icon-16.png
|
||||||
|
//go:embed assets/icon-32.png
|
||||||
|
var fs embed.FS
|
||||||
|
|
||||||
|
var WindowIcon48 image.Image
|
||||||
|
var WindowIcon32 image.Image
|
||||||
|
var WindowIcon16 image.Image
|
||||||
|
|
||||||
|
func Init() {
|
||||||
|
f48, err := fs.Open("assets/icon-48.png")
|
||||||
|
utils.CheckError(err)
|
||||||
|
defer f48.Close()
|
||||||
|
WindowIcon48, _, err = image.Decode(f48)
|
||||||
|
utils.CheckError(err)
|
||||||
|
f32, err := fs.Open("assets/icon-32.png")
|
||||||
|
utils.CheckError(err)
|
||||||
|
defer f32.Close()
|
||||||
|
WindowIcon32, _, err = image.Decode(f32)
|
||||||
|
utils.CheckError(err)
|
||||||
|
f16, err := fs.Open("assets/icon-16.png")
|
||||||
|
utils.CheckError(err)
|
||||||
|
defer f16.Close()
|
||||||
|
WindowIcon16, _, err = image.Decode(f16)
|
||||||
|
utils.CheckError(err)
|
||||||
|
}
|
19
main.go
19
main.go
@ -2,10 +2,14 @@ package main
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/binary"
|
"encoding/binary"
|
||||||
|
"image"
|
||||||
|
"image/color"
|
||||||
"log"
|
"log"
|
||||||
"xyosc/audio"
|
"xyosc/audio"
|
||||||
"xyosc/config"
|
"xyosc/config"
|
||||||
|
"xyosc/fastsqrt"
|
||||||
"xyosc/fonts"
|
"xyosc/fonts"
|
||||||
|
"xyosc/icons"
|
||||||
"xyosc/media"
|
"xyosc/media"
|
||||||
|
|
||||||
"fmt"
|
"fmt"
|
||||||
@ -38,9 +42,15 @@ func (g *Game) Draw(screen *ebiten.Image) {
|
|||||||
fAY := -float32(AY) * config.Config.Gain * float32(scale)
|
fAY := -float32(AY) * config.Config.Gain * float32(scale)
|
||||||
fBX := float32(BX) * config.Config.Gain * float32(scale)
|
fBX := float32(BX) * config.Config.Gain * float32(scale)
|
||||||
fBY := -float32(BY) * config.Config.Gain * float32(scale)
|
fBY := -float32(BY) * config.Config.Gain * float32(scale)
|
||||||
//inv := fastsqrt.FastInvSqrt32((fBX-fAX)*(fBX-fAX) + (fBY-fBY)*(fBY-fBY))
|
if config.Config.LineInvSqrtOpacityControl {
|
||||||
//colorAdjusted := color.RGBA{config.AccentColor.R, config.AccentColor.G, config.AccentColor.B, uint8(255 * inv * config.Config.LineOpacity)}
|
|
||||||
vector.StrokeLine(screen, float32(config.Config.WindowWidth/2)+fAX, float32(config.Config.WindowWidth/2)+fAY, float32(config.Config.WindowWidth/2)+fBX, float32(config.Config.WindowWidth/2)+fBY, config.Config.LineThickness, config.AccentColor, true)
|
inv := fastsqrt.FastInvSqrt32((fBX-fAX)*(fBX-fAX) + (fBY-fBY)*(fBY-fBY))
|
||||||
|
colorAdjusted := color.RGBA{config.AccentColor.R, config.AccentColor.G, config.AccentColor.B, uint8(float32(config.Config.LineOpacity) * inv)}
|
||||||
|
vector.StrokeLine(screen, float32(config.Config.WindowWidth/2)+fAX, float32(config.Config.WindowWidth/2)+fAY, float32(config.Config.WindowWidth/2)+fBX, float32(config.Config.WindowWidth/2)+fBY, config.Config.LineThickness, colorAdjusted, true)
|
||||||
|
} else {
|
||||||
|
vector.StrokeLine(screen, float32(config.Config.WindowWidth/2)+fAX, float32(config.Config.WindowWidth/2)+fAY, float32(config.Config.WindowWidth/2)+fBX, float32(config.Config.WindowWidth/2)+fBY, config.Config.LineThickness, config.AccentColor, true)
|
||||||
|
|
||||||
|
}
|
||||||
AX = BX
|
AX = BX
|
||||||
AY = BY
|
AY = BY
|
||||||
}
|
}
|
||||||
@ -84,10 +94,13 @@ func main() {
|
|||||||
config.Init()
|
config.Init()
|
||||||
audio.Init()
|
audio.Init()
|
||||||
fonts.Init()
|
fonts.Init()
|
||||||
|
icons.Init()
|
||||||
go audio.Start()
|
go audio.Start()
|
||||||
go media.Start()
|
go media.Start()
|
||||||
|
ebiten.SetWindowIcon([]image.Image{icons.WindowIcon48, icons.WindowIcon32, icons.WindowIcon16})
|
||||||
ebiten.SetWindowSize(int(config.Config.WindowWidth), int(config.Config.WindowHeight))
|
ebiten.SetWindowSize(int(config.Config.WindowWidth), int(config.Config.WindowHeight))
|
||||||
ebiten.SetWindowTitle("xyosc")
|
ebiten.SetWindowTitle("xyosc")
|
||||||
|
ebiten.SetWindowMousePassthrough(true)
|
||||||
ebiten.SetTPS(int(config.Config.TargetFPS))
|
ebiten.SetTPS(int(config.Config.TargetFPS))
|
||||||
ebiten.SetWindowDecorated(false)
|
ebiten.SetWindowDecorated(false)
|
||||||
screenW, screenH := ebiten.Monitor().Size()
|
screenW, screenH := ebiten.Monitor().Size()
|
||||||
|
Loading…
Reference in New Issue
Block a user