Skip to content

Commit

Permalink
Fix for laggy UI when no GPU available
Browse files Browse the repository at this point in the history
  • Loading branch information
Axle1975 committed Dec 2, 2021
1 parent fbc3a48 commit 87d69a3
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 17 deletions.
3 changes: 2 additions & 1 deletion src/main/java/com/faforever/client/theme/UiService.java
Original file line number Diff line number Diff line change
Expand Up @@ -370,7 +370,8 @@ private void registerScene(Scene scene) {
public String[] getStylesheets() {
return new String[]{
FxStage.BASE_CSS.toExternalForm(),
FxStage.UNDECORATED_CSS.toExternalForm(),
//FxStage.UNDECORATED_CSS.toExternalForm(), # massive performance issue for VM's without GPU
getThemeFile("theme/fxstage-undecorated.css"),
WaitomoTheme.WAITOMO_CSS.toExternalForm(),
getThemeFile("theme/colors.css"),
getThemeFile("theme/icons.css"),
Expand Down
34 changes: 18 additions & 16 deletions src/main/java/com/faforever/client/ui/effects/DepthManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,15 @@ public class DepthManager {
* use {@link #createMaterialNode(Node, int)} instead to generate a real shadow
*/
public static void setDepth(Node control, int level) {
level = level < 0 ? 0 : level;
level = level > 5 ? 5 : level;
control.setEffect(new DropShadow(BlurType.GAUSSIAN,
depth[level].getColor(),
depth[level].getRadius(),
depth[level].getSpread(),
depth[level].getOffsetX(),
depth[level].getOffsetY()));
// disabled due to performance issues when no GPU available
// level = level < 0 ? 0 : level;
// level = level > 5 ? 5 : level;
// control.setEffect(new DropShadow(BlurType.GAUSSIAN,
// depth[level].getColor(),
// depth[level].getRadius(),
// depth[level].getSpread(),
// depth[level].getOffsetX(),
// depth[level].getOffsetY()));
}

public static int getLevels() {
Expand Down Expand Up @@ -74,14 +75,15 @@ protected double computePrefHeight(double width) {
};
container.getStyleClass().add("depth-container");
container.setPickOnBounds(false);
level = level < 0 ? 0 : level;
level = level > 5 ? 5 : level;
container.setEffect(new DropShadow(BlurType.GAUSSIAN,
depth[level].getColor(),
depth[level].getRadius(),
depth[level].getSpread(),
depth[level].getOffsetX(),
depth[level].getOffsetY()));
// disabled due to performance issues when no GPU available
// level = level < 0 ? 0 : level;
// level = level > 5 ? 5 : level;
// container.setEffect(new DropShadow(BlurType.GAUSSIAN,
// depth[level].getColor(),
// depth[level].getRadius(),
// depth[level].getSpread(),
// depth[level].getOffsetX(),
// depth[level].getOffsetY()));
return container;
}

Expand Down
14 changes: 14 additions & 0 deletions src/main/resources/theme/fxstage-undecorated.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#backdrop {
-fx-background-color: transparent;
-fx-padding: 10;
}

.fxwindow {
-fx-background-color: white;
/* disabled due to performance issues when no GPU available */
/*-fx-effect: dropshadow(three-pass-box, rgba(0,0,0,0.3), 10, 0.2, 0, 0);*/
}

#backdrop:maximized {
-fx-padding: 0;
}

0 comments on commit 87d69a3

Please sign in to comment.