Stop Frame Function

Is it any easy way to stop render?
I mean to stop low level driver sending data out.
I did not find any but I could be missing something

This function easily could be implemented in a buffered version just by stopping updating buffer.
Render still will be cycling indefinitely but pattern will be frozen/stopped because render will
process unmodified buffer.

However each LED itself is buffered and will retain indefinitely whatever last data it got.
So, frame could be freeze/stopped just by stopping sending data out.

Here is my use case.
I am actively working on Scrolling Text pattern using “Text Scrolling Marquee”
code as a reference designed by @jeff
This code is using multiple buffers, so it is easy to add “Freeze Frame” function.
I am not sure if “Freeze Frame” function may have any value for none buffered
patterns. But this should be relatively easy implemented by adding freezeFrame
global variable which will control low level driver.
Just an idea.

I think someone was talking about this here.

I am/was talking about stopping frame on a physical level.
Each LED has built-in memory and will display previous value indefinitely
until it will get new data. Frame will be stopped/frozen if you simply
stop sending data, i.e. Data/Clock lines will become quiet.

This is different from using a buffer and simply stop updating this buffer.
Visual result will be the same however low level driver still will be
refreshing this buffer over and over, i. e. Data/Clock lines always will
be active.

When I want to freeze frame, I usually do something like this in beforeRender()

if (running) { t1 = time(.15) }

And if I need it to be continuous:

if (running) { t1 += delta/1000; t1 %= 1 }
1 Like