adjust blur divisor

This commit is contained in:
Anthony Calosa
2024-08-26 20:27:47 +08:00
parent c212c41a30
commit 2442883501
3 changed files with 28 additions and 3 deletions

View File

@@ -139,6 +139,30 @@ public class Config {
return configData;
}
public int getBlurDivisor() {
int val = 1;
try {
switch(settingsData.videomode) {
case "720p":
case "768p":
val = 8;
break;
case "900p":
case "1080p":
val = 16;
break;
case "1440p":
case "2160p":
val = 32;
break;
default:
break;
}
} catch (Exception e) {
return val;
}
return val;
}
public String getPrefix() {
return prefix;
}

View File

@@ -7,6 +7,7 @@ import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.graphics.glutils.FrameBuffer;
import com.badlogic.gdx.math.Matrix4;
import com.badlogic.gdx.utils.Disposable;
import forge.adventure.util.Config;
import forge.util.BlurUtils;
import forge.Forge;
import forge.Graphics;
@@ -63,7 +64,7 @@ public class WorldSaveHeader implements java.io.Serializable, Disposable {
Pixmap pixmap = Pixmap.createFromFrameBuffer(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
if (Forge.lastPreview != null)
Forge.lastPreview.dispose();
Pixmap blurred = BlurUtils.blur(pixmap, 4, 2, false, true);
Pixmap blurred = BlurUtils.blur(pixmap, 4, 2, false, Config.instance().getBlurDivisor());
Forge.lastPreview = new Texture(blurred);
Pixmap scaled = new Pixmap(WorldSaveHeader.previewImageWidth, (int) (WorldSaveHeader.previewImageWidth / (Scene.getIntendedWidth() / (float) Scene.getIntendedHeight())), Pixmap.Format.RGBA8888);
scaled.drawPixmap(pixmap,

View File

@@ -270,12 +270,12 @@ public class BlurUtils {
pixmap.getWidth(), pixmap.getHeight(), radius, iterations,
disposePixmap);
}
public static Pixmap blur(Pixmap pixmap, int radius, int iterations, boolean disposePixmap, boolean crop) {
public static Pixmap blur(Pixmap pixmap, int radius, int iterations, boolean disposePixmap, int div) {
int x = (int)(pixmap.getWidth()*0.35f);
int y = (int)(pixmap.getHeight()*0.35f);
int width = pixmap.getWidth()-x;
int height = pixmap.getHeight()-y;
return blur(pixmap, x/2, y/2, width, height, 0, 0, width/4, height/4, radius, iterations, disposePixmap);
return blur(pixmap, x/2, y/2, width, height, 0, 0, width/div, height/div, radius, iterations, disposePixmap);
}
/**