carpy-breakout/pkg/config/sdl.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
}