summaryrefslogtreecommitdiff
path: root/render/init.go
blob: 595aed33f09026b3d37f8edc3f4c6260d50e756b (plain)
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
}