Perf
This commit is contained in:
@@ -13,8 +13,26 @@ import (
|
||||
var (
|
||||
basicFace = text.NewGoXFace(basicfont.Face7x13)
|
||||
basicFaceAscent = basicFace.Metrics().HAscent
|
||||
overlayImage *ebiten.Image
|
||||
overlaySize struct {
|
||||
width int
|
||||
height int
|
||||
}
|
||||
)
|
||||
|
||||
func getOverlayImage(width, height int) *ebiten.Image {
|
||||
if width <= 0 || height <= 0 {
|
||||
return nil
|
||||
}
|
||||
if overlayImage == nil || overlaySize.width != width || overlaySize.height != height {
|
||||
overlayImage = ebiten.NewImage(width, height)
|
||||
overlayImage.Fill(color.RGBA{R: 0, G: 0, B: 0, A: 180})
|
||||
overlaySize.width = width
|
||||
overlaySize.height = height
|
||||
}
|
||||
return overlayImage
|
||||
}
|
||||
|
||||
type MenuOption int
|
||||
|
||||
const (
|
||||
@@ -69,9 +87,9 @@ func (m *PauseMenu) Update() *MenuOption {
|
||||
|
||||
func (m *PauseMenu) Draw(screen *ebiten.Image, screenWidth, screenHeight int) {
|
||||
// Draw semi-transparent overlay
|
||||
overlay := ebiten.NewImage(screenWidth, screenHeight)
|
||||
overlay.Fill(color.RGBA{R: 0, G: 0, B: 0, A: 180})
|
||||
screen.DrawImage(overlay, nil)
|
||||
if overlay := getOverlayImage(screenWidth, screenHeight); overlay != nil {
|
||||
screen.DrawImage(overlay, nil)
|
||||
}
|
||||
|
||||
// Menu dimensions
|
||||
menuWidth := 400
|
||||
|
||||
Reference in New Issue
Block a user