1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
package render
import (
"context"
"github.com/Zyko0/go-sdl3/sdl"
"github.com/spf13/pflag"
)
var (
vsync = pflag.Int("vsync", 1, "vsync value (0 disabled, 1 every, 2 double, -1 adaptive)")
)
func Init() (*sdl.Window, *sdl.Renderer, context.CancelFunc, error) {
if err := sdl.Init(sdl.INIT_VIDEO); err != nil {
return nil, nil, nil, err
}
window, renderer, err := sdl.CreateWindowAndRenderer("ponger", 500, 500, 0)
if err != nil {
return nil, nil, nil, err
}
err = window.SetRelativeMouseMode(true)
if err != nil {
return nil, nil, nil, err
}
renderer.SetVSync(int32(*vsync))
return window, renderer, func() {
window.Destroy()
renderer.Destroy()
}, nil
}
|