Just wondering if this is a "It must be this way because..." thing, but I notice that Mushclient actually draws all incoming text to the screen (renders all the text on-screen including the newly received lines), THEN lets triggers do all their re-colouring, then will re-render the screen again with any new styles/re-colourings set by triggers. I know SOMETHING like this must be happening as when a lot of text is incoming I will see flashes of the original (bright) colours of lines sent by the mud for a tiny moment before it gets re-coloured.
So just wondering - does it have to be this way? Or is there a potential optimisation where Mushclient could hold the styles until all triggers have set their re-colourings, then only finally render the line to output afterwards?
Rendering every line of text twice if there's a lot of re-colouring going on just feels like it could be causing unnecessary slowdown (especially on my VERY old machine).
Edit: I also see "omit from output" gets rendered to screen briefly, then deleted from the screen (screen re-rendered without it and text jumping back down again). Perhaps Mushclient should "hold" the current line, let all triggers set their omit flags, re-colouring flags, then when all triggers have been processed, only *THEN* render the line?
So just wondering - does it have to be this way? Or is there a potential optimisation where Mushclient could hold the styles until all triggers have set their re-colourings, then only finally render the line to output afterwards?
Rendering every line of text twice if there's a lot of re-colouring going on just feels like it could be causing unnecessary slowdown (especially on my VERY old machine).
Edit: I also see "omit from output" gets rendered to screen briefly, then deleted from the screen (screen re-rendered without it and text jumping back down again). Perhaps Mushclient should "hold" the current line, let all triggers set their omit flags, re-colouring flags, then when all triggers have been processed, only *THEN* render the line?