summaryrefslogtreecommitdiff
path: root/render/render.go
blob: 83fc2d0cf2c3d702d4a5d70a0da457f6c51c790d (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
package render

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

type Renders interface {
	Render(renderer *sdl.Renderer)
}

func Render(root any, renderer *sdl.Renderer) {
	if r, ok := root.(Renders); ok {
		r.Render(renderer)
	}
	if g, ok := root.(*ecs.GameObject); ok {
		for _, c := range g.Children {
			if c == nil {
				continue
			}
			Render(c, renderer)
		}
	}
}