code.witches.io/go/sdl2@v0.1.1/init.go (about) 1 package sdl 2 3 // #include <SDL2/SDL.h> 4 import "C" 5 import ( 6 "time" 7 8 "code.witches.io/go/sdl2/internal" 9 ) 10 11 type InitFlag uint32 12 13 const ( 14 InitTimer InitFlag = 0x00000001 15 InitAudio InitFlag = 0x00000010 16 InitVideo InitFlag = 0x00000020 17 InitJoystick InitFlag = 0x00000200 18 InitHaptic InitFlag = 0x00001000 19 InitGameController InitFlag = 0x00002000 20 InitEvents InitFlag = 0x00004000 21 InitNoParachute InitFlag = 0x00100000 22 InitEverything InitFlag = InitTimer | InitAudio | InitVideo | InitJoystick | InitHaptic | InitGameController | InitEvents 23 ) 24 25 var timeInit time.Time 26 27 func Init(flags InitFlag) error { 28 if C.SDL_Init(C.Uint32(flags)) != 0 { 29 return GetError() 30 } 31 ClearError() 32 timeInit = time.Now() 33 return nil 34 } 35 36 func InitSubSystem(flags InitFlag) error { 37 if C.SDL_InitSubSystem(C.Uint32(flags)) != 0 { 38 return GetError() 39 } 40 return nil 41 } 42 43 func Quit() { 44 close(quit) 45 internal.Cleanup.Wait() 46 47 C.SDL_Quit() 48 } 49 50 func QuitSubSystem(flags InitFlag) { 51 C.SDL_QuitSubSystem(C.Uint32(flags)) 52 }