D
Deleted member 16767
Guest
It's a paid job. This is the code I'm using. I think maybe it could use a rework. Please contact me if you know how to make unlimited layer_sprite_create happen without making the software lag.
GML:
if !surface_exists(global.final_surf)
{
global.final_surf=surface_create(room_width,room_height);
}
surface_set_target(global.final_surf)
draw_clear_alpha(c_black,0)
var arr=layer_get_all()
for( m=array_length_1d(arr)-1;m>0;m--)
{
var lay=arr[m]
var elem_arr=layer_get_all_elements(lay)
var len=array_length_1d(elem_arr)
if len>0 && layer_get_element_type(elem_arr[0])==layerelementtype_sprite
{
var shd=layer_get_shader(lay)
if shd>-1
{
shader_set(shd)
}
var beg_script=layer_get_script_begin(lay)
if beg_script>-1
{
script_execute(beg_script)
}
for(jspr=0;jspr<len;jspr++)
{
var elem=elem_arr[jspr]
var xx=layer_sprite_get_x(elem)
var yy=layer_sprite_get_y(elem)
var spr=layer_sprite_get_sprite(elem)
var xscl=layer_sprite_get_xscale(elem)
var yscl=layer_sprite_get_yscale(elem)
var blend=layer_sprite_get_blend(elem)
var ang=layer_sprite_get_angle(elem)
var alpha=layer_sprite_get_alpha(elem)
draw_sprite_ext(spr,0,xx,yy,xscl,yscl,ang,blend,alpha)
}
var end_script=layer_get_script_end(lay)
if end_script>-1
{
script_execute(end_script)
}
if shd>-1
{
shader_reset()
}
}
}
surface_reset_target()