summaryrefslogtreecommitdiff
path: root/loop/loop.go
blob: 8d64e1e5beddfd1f729de4a7bb9bac0c2d750cf4 (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
package loop

import (
	"github.com/Zyko0/go-sdl3/sdl"
	"ponger/ecs"
	"ponger/input"
	"ponger/render"
)

func New(game ecs.IsGameObject, window *sdl.Window, renderer *sdl.Renderer) func() error {
	now := sdl.Ticks()
	return func() error {
		next := sdl.Ticks()
		delta := next - now
		err := input.Poll(game, delta)
		if err != nil {
			return err
		}
		render.Render(game, renderer)
		err = renderer.Present()
		if err != nil {
			return err
		}
		now = next
		return nil
	}
}