package main import ( "github.com/gen2brain/raylib-go/raylib" ) type Sketch struct { layers []Layer } func (s *Sketch) Draw(ctx *RenderCtx) { for _, layer := range s.layers { layer.Draw(ctx) } } type Layer interface { Draw(ctx *RenderCtx) } /** Ports **/ type Ports map[string]Signal func MakePorts() Ports { return make(Ports) } /** * materialize current value for all ports **/ func (p Ports) Eval(t float64) map[string]float64 { out := make(map[string]float64, len(p)) for name, sig := range p { out[name] = sig.Eval(t) } return out } /** RenderCtx **/ type RenderCtx struct { Width int32 Height int32 Time float64 Ports map[string]float64 Cam rl.Camera2D }