st/scroll-view-fade: Simplify shader a bit
The shader was using too many ALU instructions for Intel 945GM hardware, so simplify it a bit. The resulting math is the same, but a few redundant operations have been removed. Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4883 Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2072>
This commit is contained in:
parent
1807be1277
commit
7e0c6dc2c1
@ -44,29 +44,25 @@ void main ()
|
|||||||
if (x > fade_area_topleft[0] && x < fade_area_bottomright[0] &&
|
if (x > fade_area_topleft[0] && x < fade_area_bottomright[0] &&
|
||||||
y > fade_area_topleft[1] && y < fade_area_bottomright[1])
|
y > fade_area_topleft[1] && y < fade_area_bottomright[1])
|
||||||
{
|
{
|
||||||
float fade_top_start = fade_area_topleft[1] + fade_offset_top;
|
float after_left = x - fade_area_topleft[0];
|
||||||
float fade_left_start = fade_area_topleft[0] + fade_offset_left;
|
float before_right = fade_area_bottomright[0] - x;
|
||||||
float fade_bottom_start = fade_area_bottomright[1] - fade_offset_bottom;
|
float after_top = y - fade_area_topleft[1];
|
||||||
float fade_right_start = fade_area_bottomright[0] - fade_offset_right;
|
float before_bottom = fade_area_bottomright[1] - y;
|
||||||
bool fade_top = y < fade_top_start && fade_edges_top;
|
|
||||||
bool fade_bottom = y > fade_bottom_start && fade_edges_bottom;
|
|
||||||
bool fade_left = x < fade_left_start && fade_edges_left;
|
|
||||||
bool fade_right = x > fade_right_start && fade_edges_right;
|
|
||||||
|
|
||||||
if (fade_top) {
|
if (after_top < fade_offset_top && fade_edges_top) {
|
||||||
ratio *= (fade_area_topleft[1] - y) / (fade_area_topleft[1] - fade_top_start);
|
ratio *= after_top / fade_offset_top;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fade_bottom) {
|
if (before_bottom < fade_offset_bottom && fade_edges_bottom) {
|
||||||
ratio *= (fade_area_bottomright[1] - y) / (fade_area_bottomright[1] - fade_bottom_start);
|
ratio *= before_bottom / fade_offset_bottom;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fade_left) {
|
if (after_left < fade_offset_left && fade_edges_left) {
|
||||||
ratio *= (fade_area_topleft[0] - x) / (fade_area_topleft[0] - fade_left_start);
|
ratio *= after_left / fade_offset_left;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fade_right) {
|
if (before_right < fade_offset_right && fade_edges_right) {
|
||||||
ratio *= (fade_area_bottomright[0] - x) / (fade_area_bottomright[0] - fade_right_start);
|
ratio *= before_right / fade_offset_right;
|
||||||
}
|
}
|
||||||
} else if (extend_fade_area) {
|
} else if (extend_fade_area) {
|
||||||
if (x <= fade_area_topleft[0] && fade_edges_left ||
|
if (x <= fade_area_topleft[0] && fade_edges_left ||
|
||||||
|
Loading…
Reference in New Issue
Block a user