Very cool BloodRed! The only problem is how long it takes to grab the screen.
You can scale the panels instead of using all the different sizes. Heres how I
implemented your idea;
Code:
 
bmap white_flash = <white.pcx>; //64x64 white pcx
bmap screen_shot_map = <emptypnl.pcx>;// A 640x480 empty PCX

panel respawn_flash
{
bmap = white_flash;
pos_X = 0; pos_y = 0;
layer = 4;
flags = transparent;
}

panel respawn_burn
{
bmap = screen_shot_map;
pos_X = 0; pos_y = 0;
layer = 3;
flags = transparent;
}

function flash()
{
bmap_for_screen (screen_shot_map, 1, 0);
wait (1); // wait 1 frame until the bitmap can be saved
respawn_burn.bmap = screen_shot_map;

respawn_burn.scale_x = screen_size.x / bmap_width(screen_shot_map);
respawn_burn.scale_y = screen_size.y / bmap_height(screen_shot_map);
respawn_burn.visible = on;
respawn_burn.alpha = 100;

respawn_flash.scale_x = screen_size.x / bmap_width(white_flash);
respawn_flash.scale_y = screen_size.y / bmap_height(white_flash);
respawn_flash.visible = on;
respawn_flash.alpha = 100;

while(respawn_burn.alpha > 0 || respawn_flash.alpha > 0)
{
if(respawn_burn.alpha > 0){respawn_burn.alpha -= time*2;}
if(respawn_flash.alpha > 0){respawn_flash.alpha -= time*3;}
wait(1);
}
respawn_burn.alpha = 0;
respawn_burn.visible = off;
respawn_flash.alpha = 0;
respawn_flash.visible = off;
}

on_f flash;




Scaling the panels this way seems to work fine!
Rhuarc, a backbuffer.dll would be nice! could be used for all sorts of things,
I hope you can find the time to follow up on it!

Thanks again for sharing your idea and code BloodRed, very cool effect!


Not two, not one.