39 lines
562 B
Go
39 lines
562 B
Go
package main
|
|
|
|
import (
|
|
"github.com/gen2brain/raylib-go/raylib"
|
|
)
|
|
|
|
type Sketch 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
|
|
}
|