summaryrefslogtreecommitdiff
path: root/internal/render/renderer.go
diff options
context:
space:
mode:
authorBenjamin Chausse <benjamin@chausse.xyz>2024-07-12 10:37:24 -0400
committerBenjamin Chausse <benjamin@chausse.xyz>2024-07-12 10:37:24 -0400
commit95552235594b15d74922e606d2a3c54f7e05224a (patch)
tree33e63873ab48c98579e2ee02c497898d77426835 /internal/render/renderer.go
parent8512948bf500a47e78bc5d4e92cb56fc6a692d7d (diff)
nil pointer managementHEADmaster
Diffstat (limited to 'internal/render/renderer.go')
-rw-r--r--internal/render/renderer.go14
1 files changed, 11 insertions, 3 deletions
diff --git a/internal/render/renderer.go b/internal/render/renderer.go
index 265c3ab..088134a 100644
--- a/internal/render/renderer.go
+++ b/internal/render/renderer.go
@@ -126,6 +126,7 @@ func (r *Renderer) DrawFrame() {
// Create buffers
drwBuf := r.bufferize(r.drwStack)
clrBuf := r.bufferize(r.clrStack)
+ var stack []Instruction
// fmt.Println(len(drwBuf))
// fmt.Println(len(clrBuf))
// squash overlapping clear instructions
@@ -164,10 +165,17 @@ func (r *Renderer) DrawFrame() {
}
}
// Draw
+ for _, clr := range clrBuf {
+ if clr != nil {
+ stack = append(stack, clr)
+ }
+ }
for _, drw := range drwBuf {
- drw.Write(r.stream)
+ if drw != nil {
+ stack = append(stack, drw)
+ }
}
- for _, clr := range clrBuf {
- clr.Write(r.stream)
+ for _, inst := range stack {
+ inst.Write(r.stream)
}
}