Pixel-Composer/scripts/panel_display_additional/panel_display_additional.gml

57 lines
No EOL
1.6 KiB
Text

globalvar FOCUSING_PANEL, FOCUSING_AREA;
function panelDisplayInit() {
FOCUSING_PANEL = noone;
FOCUSING_AREA = noone;
focusing_prog = 0;
focusing_draw = [ 0, 0, WIN_W, WIN_H ];
focusing_targ = [ 0, 0, WIN_W, WIN_H ];
focusing_surface = surface_create(1, 1);
}
function panelDisplayDraw() {
if(FOCUSING_PANEL != noone && is_instanceof(FOCUSING_PANEL, PanelContent)) {
var _p = FOCUSING_PANEL;
FOCUSING_AREA = [ _p.x,
_p.y,
_p.w,
_p.h ];
}
if(FOCUSING_AREA != noone) {
focusing_prog = lerp_float(focusing_prog, 1, 6);
focusing_targ = [ FOCUSING_AREA[0], FOCUSING_AREA[1], FOCUSING_AREA[2], FOCUSING_AREA[3] ];
} else {
focusing_prog = lerp_float(focusing_prog, 0, 6);
}
focusing_draw[0] = lerp(0, focusing_targ[0], focusing_prog);
focusing_draw[1] = lerp(0, focusing_targ[1], focusing_prog);
focusing_draw[2] = lerp(WIN_W, focusing_targ[2], focusing_prog);
focusing_draw[3] = lerp(WIN_H, focusing_targ[3], focusing_prog);
if(focusing_prog > 0) {
var x0 = focusing_draw[0]
var y0 = focusing_draw[1]
var ww = focusing_draw[2]
var hh = focusing_draw[3]
var x1 = x0 + ww;
var y1 = y0 + hh;
focusing_surface = surface_verify(focusing_surface, WIN_W, WIN_H);
surface_set_target(focusing_surface);
draw_clear_alpha(c_black, focusing_prog * 0.6);
BLEND_SUBTRACT
draw_sprite_stretched(THEME.ui_panel_bg, 1, x0, y0, ww, hh);
BLEND_NORMAL
surface_reset_target();
draw_surface_safe(focusing_surface);
draw_sprite_stretched_ext(THEME.ui_panel_active, 1, x0, y0, ww, hh, COLORS._main_accent, 1);
}
FOCUSING_PANEL = noone;
FOCUSING_AREA = noone;
}