add new environment variables with the EBITENGINE_ suffix

Updates #2111
Updates #2190
This commit is contained in:
Hajime Hoshi 2022-07-09 14:52:05 +09:00
parent 926dd5677e
commit 204fb5935b
4 changed files with 37 additions and 15 deletions

10
doc.go
View File

@ -56,16 +56,16 @@
//
// Environment variables
//
// `EBITEN_SCREENSHOT_KEY` environment variable specifies the key
// `EBITENGINE_SCREENSHOT_KEY` environment variable specifies the key
// to take a screenshot. For example, if you run your game with
// `EBITEN_SCREENSHOT_KEY=q`, you can take a game screen's screenshot
// `EBITENGINE_SCREENSHOT_KEY=q`, you can take a game screen's screenshot
// by pressing Q key. This works only on desktops.
//
// `EBITEN_INTERNAL_IMAGES_KEY` environment variable specifies the key
// `EBITENGINE_INTERNAL_IMAGES_KEY` environment variable specifies the key
// to dump all the internal images. This is valid only when the build tag
// 'ebitendebug' is specified. This works only on desktops.
//
// `EBITEN_GRAPHICS_LIBRARY` environment variable specifies the graphics library.
// `EBITENGINE_GRAPHICS_LIBRARY` environment variable specifies the graphics library.
// If the specified graphics library is not available, RunGame returns an error.
// This can take one of the following value:
//
@ -74,7 +74,7 @@
// "directx": DirectX. This works only on Windows.
// "metal": Metal. This works only on macOS or iOS.
//
// `EBITEN_DIRECTX` environment variable specifies various parameters for DirectX.
// `EBITENGINE_DIRECTX` environment variable specifies various parameters for DirectX.
// You can specify multiple values separated by a comma. The default value is empty (i.e. no parameters).
//
// "warp": Use WARP (i.e. software rendering).

View File

@ -98,16 +98,27 @@ type imageDumper struct {
err error
}
func envScreenshotKey() string {
if env := os.Getenv("EBITENGINE_SCREENSHOT_KEY"); env != "" {
return env
}
// For backward compatibility, read the EBITEN_ version.
return os.Getenv("EBITEN_SCREENSHOT_KEY")
}
func envInternalImagesKey() string {
if env := os.Getenv("EBITENGINE_INTERNAL_IMAGES_KEY"); env != "" {
return env
}
// For backward compatibility, read the EBITEN_ version.
return os.Getenv("EBITEN_INTERNAL_IMAGES_KEY")
}
func (i *imageDumper) update() error {
if i.err != nil {
return i.err
}
const (
envScreenshotKey = "EBITEN_SCREENSHOT_KEY"
envInternalImagesKey = "EBITEN_INTERNAL_IMAGES_KEY"
)
if err := i.g.Update(); err != nil {
return err
}
@ -116,14 +127,14 @@ func (i *imageDumper) update() error {
if i.keyState == nil {
i.keyState = map[Key]int{}
if keyname := os.Getenv(envScreenshotKey); keyname != "" {
if keyname := envScreenshotKey(); keyname != "" {
if key, ok := keyNameToKeyCode(keyname); ok {
i.hasScreenshotKey = true
i.screenshotKey = key
}
}
if keyname := os.Getenv(envInternalImagesKey); keyname != "" {
if keyname := envInternalImagesKey(); keyname != "" {
if isDebug {
if key, ok := keyNameToKeyCode(keyname); ok {
i.hasDumpInternalImagesKey = true

View File

@ -152,7 +152,12 @@ func (g *Graphics) initialize() (ferr error) {
useWARP bool
useDebugLayer bool
)
for _, t := range strings.Split(os.Getenv("EBITEN_DIRECTX"), ",") {
env := os.Getenv("EBITENGINE_DIRECTX")
if env == "" {
// For backward compatibility, read the EBITEN_ version.
env = os.Getenv("EBITEN_DIRECTX")
}
for _, t := range strings.Split(env, ",") {
switch strings.TrimSpace(t) {
case "warp":
// TODO: Is WARP available on Xbox?

View File

@ -29,9 +29,15 @@ type graphicsDriverCreator interface {
}
func newGraphicsDriver(creator graphicsDriverCreator) (graphicsdriver.Graphics, error) {
const envName = "EBITEN_GRAPHICS_LIBRARY"
envName := "EBITENGINE_GRAPHICS_LIBRARY"
env := os.Getenv(envName)
if env == "" {
// For backward compatibility, read the EBITEN_ version.
envName = "EBITEN_GRAPHICS_LIBRARY"
env = os.Getenv(envName)
}
switch env := os.Getenv(envName); env {
switch env {
case "", "auto":
g, err := creator.newAuto()
if err != nil {