Job Offer - Programmer (Not looking anymore) Need unlimited layer_sprite_create on each layer for a painting software

  • Thread starter Deleted member 16767
  • Start date
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()
 
Top