GMS Попытка использовать один и тот же ударно-волновой шейдер дважды при отрисовке GUI не работает

Я создаю поверхность, применяя ее к view_surface_id в объекте контроллера, который затем я могу ссылаться на поверхность в объекте shockwave в событии GUI рисования. Проблема в том, что первая shcokwave не рисуется, несмотря на свою активность, и когда я создаю другую ударную волну, если первая заканчивается, то и вторая.

   /// Controller Draw Event
    if !surface_exists(surf)
   {
    surf=surface_create(view_wview,view_hview)
    surface_set_target(surf);
    draw_clear_alpha(c_black,0);
    surface_reset_target();
    view_surface_id[0]=surf
    }

Это мой графический интерфейс Shockwave Draw

///Shockwave Draw GUI
cont = obj_surf_controller
if instance_exists(cont)
{
surface_set_target(cont.surf)

shader_set(shd_shockwave);
var_time_var+=0.010;
shader_set_uniform_f(uni_time, var_time_var);
shader_set_uniform_f(uni_mouse_pos, var_mouse_pos_x, var_mouse_pos_y);
shader_set_uniform_f(uni_resolution, var_resolution_x, var_resolution_y);
shader_set_uniform_f(uni_shock_amplitude, var_shock_amplitude);
shader_set_uniform_f(uni_shock_refraction, var_shock_refraction );
shader_set_uniform_f(uni_shock_width, var_shock_width);


draw_surface(cont.surf,0,0)

shader_reset();
surface_reset_target();
}

draw_surface(cont.surf,0,0)

0 ответов

Другие вопросы по тегам