diff --git a/main.go b/main.go index 3bd0831..abf0916 100644 --- a/main.go +++ b/main.go @@ -62,11 +62,12 @@ func main() { imageLayer := NewImageLayer("/home/d/Dropbox/photos/Events/2025/Aurora/Photo Nov 11 2025, 9 52 03 PM.jpg") + sketch.AddColorLayer("background-black", rl.Black) + sketch.AddLayer("field", &FieldLayer{field: field, dirty: true}) contourLayer := NewContourLayer(&sketch, rng, field) - sketch.CreateLayer("field", &FieldLayer{field: field, dirty: true}) - sketch.CreateLayer("contours", contourLayer) - sketch.CreateLayer("sierpinski", sierpinskiLayer) - sketch.CreateLayer("aurora", imageLayer) + sketch.AddLayer("contours", contourLayer) + sketch.AddLayer("sierpinski", sierpinskiLayer) + sketch.AddLayer("aurora", imageLayer) ports := MakePorts() ports["sierpinskiArrowAngle"] = @@ -76,7 +77,6 @@ func main() { Bias: 60, } - ports["sierpinskiArrowDepth"] = Const { V: 6, diff --git a/sketch.go b/sketch.go index fe00d00..c4116c3 100644 --- a/sketch.go +++ b/sketch.go @@ -68,7 +68,7 @@ func NewSketch(sourceWidth, sourceHeight int32) Sketch { } } -func (s *Sketch) CreateLayer(name string, layer Layer) { +func (s *Sketch) AddLayer(name string, layer Layer) { texture := rl.LoadRenderTexture(s.sourceWidth, s.sourceHeight) config := NewLayerConfig() layerTools := @@ -82,6 +82,14 @@ func (s *Sketch) CreateLayer(name string, layer Layer) { s.layerTools[name] = &layerTools } +func (s *Sketch) AddColorLayer(name string, c rl.Color) { + colorLayer := &ColorLayer { + color: c, + dirty: true, + } + s.AddLayer(name, colorLayer) +} + func (s *Sketch) Draw(ctx *RenderCtx) { // render onto all layer textures for _, instance := range s.layerToolsOrdered { @@ -265,6 +273,22 @@ type Layer interface { IsDirty() bool } +type ColorLayer struct { + color rl.Color + dirty bool +} + +func (cl *ColorLayer) Update(ctx *RenderCtx) { + ; +} + +func (cl *ColorLayer) Draw(ctx *RenderCtx) { + rl.DrawRectangle(0, 0, ctx.SourceWidth, ctx.SourceHeight, cl.color) +} + +func (cl *ColorLayer) IsDirty() bool { + return cl.dirty +} type ImageLayer struct { texture rl.Texture2D @@ -293,7 +317,6 @@ func (il *ImageLayer) IsDirty() bool { return il.dirty } - type TestPattern struct{ dirty bool }