From ec5c500b8fc7798ca8f2d38a61480ec4beb4653a Mon Sep 17 00:00:00 2001 From: kevlahnota Date: Fri, 15 Sep 2017 20:53:46 +0000 Subject: [PATCH] Fix lag I introduced. Just learned that we should never create an instance of a new object inside the render call, because it will create a new instance every draw call. --- .../src/forge/card/CardImageRenderer.java | 14 +++++--------- forge-gui-mobile/src/forge/card/CardRenderer.java | 9 ++------- 2 files changed, 7 insertions(+), 16 deletions(-) diff --git a/forge-gui-mobile/src/forge/card/CardImageRenderer.java b/forge-gui-mobile/src/forge/card/CardImageRenderer.java index 614b256eff1..2863382717d 100644 --- a/forge-gui-mobile/src/forge/card/CardImageRenderer.java +++ b/forge-gui-mobile/src/forge/card/CardImageRenderer.java @@ -3,6 +3,7 @@ package forge.card; import java.util.ArrayList; import java.util.List; +import forge.model.FModel; import forge.properties.ForgeConstants; import forge.properties.ForgePreferences; import org.apache.commons.lang3.StringUtils; @@ -327,18 +328,12 @@ public class CardImageRenderer { public static void drawZoom(Graphics g, CardView card, GameView gameView, boolean altState, float x, float y, float w, float h, float dispW, float dispH, boolean isCurrentCard) { final Texture image = ImageCache.getImage(card.getState(altState).getImageKey(MatchController.instance.getLocalPlayers()), true); - ForgePreferences prefs = new ForgePreferences(); - //rotate plane or phenomenon... - boolean rotateZoomDisplay = prefs != null - && prefs.getPrefBoolean(ForgePreferences.FPref.UI_ROTATE_PLANE_OR_PHENOMENON) - && (card.getCurrentState().isPhenomenon() || card.getCurrentState().isPlane()); - boolean hideEffectCardImage = prefs != null - && prefs.getPrefBoolean(ForgePreferences.FPref.UI_DISABLE_IMAGES_EFFECT_CARDS); if (image == null) { //draw details if can't draw zoom drawDetails(g, card, gameView, altState, x, y, w, h); return; } - if(card.isToken() && card.getCurrentState().getType().hasSubtype("Effect") && hideEffectCardImage){ + if(card.isToken() && card.getCurrentState().getType().hasSubtype("Effect") + && FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.UI_DISABLE_IMAGES_EFFECT_CARDS)){ drawDetails(g, card, gameView, altState, x, y, w, h); return; } @@ -351,7 +346,8 @@ public class CardImageRenderer { float new_h = h*wh_Adj; float new_x = ForgeConstants.isGdxPortLandscape && isCurrentCard ? (dispW - new_w) / 2:x; float new_y = ForgeConstants.isGdxPortLandscape && isCurrentCard ? (dispH - new_h) / 2:y; - if(rotateZoomDisplay) + if(FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.UI_ROTATE_PLANE_OR_PHENOMENON) + && (card.getCurrentState().isPhenomenon() || card.getCurrentState().isPlane())) g.drawRotatedImage(image, new_x, new_y, new_w, new_h, new_x + new_w / 2, new_y + new_h / 2, -90); else g.drawImage(image, x, y, w, h); diff --git a/forge-gui-mobile/src/forge/card/CardRenderer.java b/forge-gui-mobile/src/forge/card/CardRenderer.java index 60b197513b6..c67da0a85f2 100644 --- a/forge-gui-mobile/src/forge/card/CardRenderer.java +++ b/forge-gui-mobile/src/forge/card/CardRenderer.java @@ -364,19 +364,14 @@ public class CardRenderer { } public static void drawCard(Graphics g, CardView card, float x, float y, float w, float h, CardStackPosition pos, boolean rotate) { - ForgePreferences prefs = new ForgePreferences(); - //rotate plane or phenomenon... - boolean rotateDisplay = prefs != null - && prefs.getPrefBoolean(ForgePreferences.FPref.UI_ROTATE_PLANE_OR_PHENOMENON) - && (card.getCurrentState().isPhenomenon() || card.getCurrentState().isPlane()); - Texture image = ImageCache.getImage(card); if (image != null) { if (image == ImageCache.defaultImage) { CardImageRenderer.drawCardImage(g, card, false, x, y, w, h, pos); } else { - if(rotateDisplay && rotate) + if(FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.UI_ROTATE_PLANE_OR_PHENOMENON) + && (card.getCurrentState().isPhenomenon() || card.getCurrentState().isPlane()) && rotate) g.drawRotatedImage(image, x, y, w, h, x + w / 2, y + h / 2, -90); else g.drawImage(image, x, y, w, h);