Certain some widgets can be set to different drawing colours, it should be practical to reflect those colours in the icons as well. The current approach of using hue-rotate doesn't seem to be completely accurate so some colours don't look consistent with the actual render colour, but it's close enough.
Rendering
Turns out that now that most visualizers transform the messages they get to the fixed frame, we can skip redrawing them on every tf frame change (since fixed_frame rarely changes) for a massive rendering speed boost.
Folders
A prototype implementation for folders that have to be created separately via the add widget menu for now, but that has a neat side effect that any widgets inside them get loaded later than the folder, which makes infinite folder recursion possible without any specific handling. Currently showing the first two widget icons inside.
Icon colours
Certain some widgets can be set to different drawing colours, it should be practical to reflect those colours in the icons as well. The current approach of using hue-rotate doesn't seem to be completely accurate so some colours don't look consistent with the actual render colour, but it's close enough.
Rendering
Turns out that now that most visualizers transform the messages they get to the fixed frame, we can skip redrawing them on every tf frame change (since fixed_frame rarely changes) for a massive rendering speed boost.
Folders
A prototype implementation for folders that have to be created separately via the add widget menu for now, but that has a neat side effect that any widgets inside them get loaded later than the folder, which makes infinite folder recursion possible without any specific handling. Currently showing the first two widget icons inside.