I just tried your approach and I think it works suprisingly well!
I wouldnt think the re-evaluation of the panels alpha while the blur is
enabled would be much of a problem, in fact it seems a good idea.
I havent experimented with other panels that have transparency, but if it
causes a noticable, bothersome problem on a prominent semi-transparent panel,
perhaps the affected panels' alpha transparency could be adjusted while the
blur is active?
I changed the set_motion_blur function in mine to fade the blur out when
you "turn it off" instead of it just ending abrubtly like this;
Code:
function set_motion_blur(newval)
{
motion_blur=newval;
if(newval==0)
{
// No blur; shut off the panel:
while(panel_motion_blur.alpha < 100)
{
panel_motion_blur.alpha += 3*time_step;
wait(1);
}
panel_motion_blur.visible=0;
camera.bmap = 0;
}
else
{
// Blur is positive:
panel_motion_blur.visible=1;
camera.bmap = bitmap_motion_blur;
}
}
You always come up with the most amazing stuff Ichiro! Thanks for sharing this.