ebiten: add SetWindowColorMode

Closes #3387
This commit is contained in:
Hajime Hoshi
2026-02-28 19:06:50 +09:00
parent 0e6c3375c2
commit 1629157ad6
9 changed files with 231 additions and 9 deletions
+22
View File
@@ -49,6 +49,7 @@ var (
flagGraphicsLibrary = flag.String("graphicslibrary", "", "graphics library (e.g. opengl)")
flagRunnableOnUnfocused = flag.Bool("runnableonunfocused", true, "whether the app is runnable even on unfocused")
flagColorSpace = flag.String("colorspace", "", "color space ('', 'srgb', or 'display-p3')")
flagColorMode = flag.String("colormode", "", "window color mode ('', 'light', or 'dark')")
)
func init() {
@@ -252,6 +253,19 @@ func (g *game) Update() error {
ctx.Button("Reset").On(func() {
ebiten.SetWindowIcon(nil)
})
ctx.Text("Window Color Mode")
mode := ebiten.WindowolorMode()
ctx.Button(colorModeString(mode)).On(func() {
switch mode {
case ebiten.ColorModeLight:
ebiten.SetWindowColorMode(ebiten.ColorModeDark)
case ebiten.ColorModeDark:
ebiten.SetWindowColorMode(ebiten.ColorModeUnknown)
case ebiten.ColorModeUnknown:
ebiten.SetWindowColorMode(ebiten.ColorModeLight)
}
})
})
ctx.Header("Settings (Rendering)", true, func() {
ctx.SetGridLayout([]int{-2, -1}, nil)
@@ -567,6 +581,14 @@ func main() {
case "display-p3":
op.ColorSpace = ebiten.ColorSpaceDisplayP3
}
switch *flagColorMode {
case "light":
ebiten.SetWindowColorMode(ebiten.ColorModeLight)
case "dark":
ebiten.SetWindowColorMode(ebiten.ColorModeDark)
default:
ebiten.SetWindowColorMode(ebiten.ColorModeUnknown)
}
op.InitUnfocused = !*flagInitFocused
op.ScreenTransparent = *flagTransparent
op.X11ClassName = "Window-Size"