44 lines
1.1 KiB
Go
44 lines
1.1 KiB
Go
package config
|
|
|
|
import (
|
|
"log"
|
|
|
|
"github.com/veandco/go-sdl2/sdl"
|
|
)
|
|
|
|
const (
|
|
SDL_INIT_FLAGS uint32 = sdl.INIT_TIMER | sdl.INIT_AUDIO | sdl.INIT_VIDEO | sdl.INIT_EVENTS | sdl.INIT_JOYSTICK | sdl.INIT_HAPTIC | sdl.INIT_GAMECONTROLLER // ignore sensor subsystem
|
|
|
|
SDL_WINDOW_FLAGS uint32 = sdl.WINDOW_SHOWN | sdl.WINDOW_RESIZABLE | sdl.WINDOW_OPENGL
|
|
SDL_FULLSCREEN_WINDOW_FLAGS uint32 = SDL_WINDOW_FLAGS | sdl.WINDOW_FULLSCREEN_DESKTOP
|
|
SDL_WINDOW_WIDTH int32 = 800
|
|
SDL_WINDOW_HEIGHT int32 = 600
|
|
)
|
|
|
|
func SdlSettings() error {
|
|
var err error
|
|
|
|
// Smooth
|
|
err = sdl.GLSetAttribute(sdl.GL_MULTISAMPLEBUFFERS, 1)
|
|
if err != nil {
|
|
log.Printf("error setting GL_MULTISAMPLEBUFFERS: %v", err)
|
|
return err
|
|
}
|
|
err = sdl.GLSetAttribute(sdl.GL_MULTISAMPLESAMPLES, 4)
|
|
if err != nil {
|
|
log.Printf("error setting GL_MULTISAMPLESAMPLES: %v", err)
|
|
return err
|
|
}
|
|
|
|
// Disable the Linux compositor flicker.
|
|
// https://github.com/mosra/magnum/issues/184#issuecomment-425952900
|
|
sdl.SetHint(sdl.HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR, "0")
|
|
|
|
sdl.DisableScreenSaver()
|
|
|
|
// Capture the mouse for movement
|
|
sdl.SetRelativeMouseMode(true)
|
|
|
|
return nil
|
|
}
|