DELAYDRAWSYM details?
WizardOfFrobozz
Newcomer
I've been using an RGB Matrix effect on a parchment-style map that I'm working on to recolor the B&W vector symbols to a consistent, brownish ink color. In order to see the sheet effect applied to all of my symbols, I need to turn off delayed drawing of symbols (DELAYDRAWSYM = 0). So far so good, except...
When DELAYDRAWSYM=0, I also see that PNG symbols with an alpha channel are not being rendered as expected. It's almost as if the 0-255 alpha channel values are getting converted to a 0/1 transparency bitmask.
Can anyone shed some technical light on what exactly is different about the rendering path when DELAYDRAWSYM=1 vs. DELAYDRAWSYM=0?
Comments
When drawing a sheet and DELAYDRAWSYM=1, the system draws symbols twice: once as part of the normal drawing operations, and once again (in reverse order) after any effects for the sheet are applied. This second redraw is why effects appear not to work on symbols.
When drawing a sheet and DELAYDRAWSYM=0, the system draws symbols only once: during normal drawing operations. The second drawing described previously never occurs.
For purposes of effects, the rendering system makes a copy of the current accumulated drawing image at the start of drawing each sheet. Things on the sheet are then drawn and any change in the value of a pixel during drawing the sheet is treated as opaque for the purposes of applying effects. This behavior can result in the appearance of unexpected halo areas around symbols with semi-transparent areas.
Thanks for the quick reply! So if I understand correctly, if I create a new topmost sheet with no effects on it, symbols on that sheet should render identically whether DELAYDRAWSYM is 0 or 1 ?
They should sort of draw the same. It won't be exact because any semi-transparent areas will be drawn on the background twice in the one case, which is not quite the same as drawing it once.