changed shader options to slider; did some cleaning;
This commit is contained in:
parent
f35691536b
commit
2aa498e292
@ -49,7 +49,7 @@ public class HorizontalVisualizer extends Visualizer {
|
|||||||
y = 0;
|
y = 0;
|
||||||
|
|
||||||
|
|
||||||
smoothRange = 3;
|
smoothRange = 2;
|
||||||
angleRot = new Vector2(MathUtils.cosDeg(rotation), MathUtils.sinDeg(rotation));
|
angleRot = new Vector2(MathUtils.cosDeg(rotation), MathUtils.sinDeg(rotation));
|
||||||
bars = new Sprite[barCount];
|
bars = new Sprite[barCount];
|
||||||
barHeights = new float[barCount];
|
barHeights = new float[barCount];
|
||||||
|
@ -3,9 +3,9 @@ package zero1hd.rhythmbullet.desktop.graphics.ui.components;
|
|||||||
import com.badlogic.gdx.Gdx;
|
import com.badlogic.gdx.Gdx;
|
||||||
import com.badlogic.gdx.Preferences;
|
import com.badlogic.gdx.Preferences;
|
||||||
import com.badlogic.gdx.scenes.scene2d.Actor;
|
import com.badlogic.gdx.scenes.scene2d.Actor;
|
||||||
import com.badlogic.gdx.scenes.scene2d.ui.CheckBox;
|
|
||||||
import com.badlogic.gdx.scenes.scene2d.ui.Label;
|
import com.badlogic.gdx.scenes.scene2d.ui.Label;
|
||||||
import com.badlogic.gdx.scenes.scene2d.ui.Skin;
|
import com.badlogic.gdx.scenes.scene2d.ui.Skin;
|
||||||
|
import com.badlogic.gdx.scenes.scene2d.ui.Slider;
|
||||||
import com.badlogic.gdx.scenes.scene2d.ui.Table;
|
import com.badlogic.gdx.scenes.scene2d.ui.Table;
|
||||||
import com.badlogic.gdx.scenes.scene2d.ui.TextButton;
|
import com.badlogic.gdx.scenes.scene2d.ui.TextButton;
|
||||||
import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener;
|
import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener;
|
||||||
@ -16,7 +16,7 @@ import zero1hd.rhythmbullet.desktop.screens.MainMenuScreen;
|
|||||||
public class GraphicsOptions extends Table {
|
public class GraphicsOptions extends Table {
|
||||||
private Label resolutions, shaders;
|
private Label resolutions, shaders;
|
||||||
private Preferences prefs;
|
private Preferences prefs;
|
||||||
private CheckBox glowShader, enhancedGlow;
|
private Slider glowShaderLevel;
|
||||||
|
|
||||||
private ResolutionButton
|
private ResolutionButton
|
||||||
_3840x2160,
|
_3840x2160,
|
||||||
@ -32,44 +32,20 @@ public class GraphicsOptions extends Table {
|
|||||||
align(Align.center);
|
align(Align.center);
|
||||||
defaults().space(10f);
|
defaults().space(10f);
|
||||||
this.prefs = prefs;
|
this.prefs = prefs;
|
||||||
shaders = new Label("OpenGL Shaders", skin);
|
shaders = new Label("OpenGL Shader", skin);
|
||||||
add(shaders).fillX();
|
add(shaders).fillX();
|
||||||
row();
|
row();
|
||||||
|
|
||||||
glowShader = new CheckBox(" Glow Shader", skin);
|
glowShaderLevel = new Slider(0, 4, 1, false, skin);
|
||||||
glowShader.setChecked(prefs.getBoolean("glow shader", true));
|
glowShaderLevel.addListener(new ChangeListener() {
|
||||||
glowShader.addListener(new ChangeListener() {
|
|
||||||
@Override
|
@Override
|
||||||
public void changed(ChangeEvent event, Actor actor) {
|
public void changed(ChangeEvent event, Actor actor) {
|
||||||
save();
|
mainMenu.setGlowLevel((int) glowShaderLevel.getValue());
|
||||||
if (glowShader.isChecked()) {
|
|
||||||
mainMenu.setBlurlvl(1);
|
|
||||||
enhancedGlow.setDisabled(false);
|
|
||||||
} else {
|
|
||||||
mainMenu.setBlurlvl(0);
|
|
||||||
enhancedGlow.setChecked(false);
|
|
||||||
enhancedGlow.setDisabled(true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
add(glowShader);
|
glowShaderLevel.setValue(prefs.getInteger("glow shader"));
|
||||||
row();
|
add(glowShaderLevel).fillX();
|
||||||
|
|
||||||
enhancedGlow = new CheckBox(" Enhanced Glow", skin);
|
|
||||||
enhancedGlow.setChecked(prefs.getBoolean("enhanced glow", false));
|
|
||||||
enhancedGlow.setDisabled(!prefs.getBoolean("glow shader", false));
|
|
||||||
enhancedGlow.addListener(new ChangeListener() {
|
|
||||||
@Override
|
|
||||||
public void changed(ChangeEvent event, Actor actor) {
|
|
||||||
save();
|
|
||||||
if (enhancedGlow.isChecked()) {
|
|
||||||
mainMenu.setBlurlvl(5);
|
|
||||||
} else {
|
|
||||||
mainMenu.setBlurlvl(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
add(enhancedGlow);
|
|
||||||
row();
|
row();
|
||||||
|
|
||||||
resolutions = new Label("Resolutions: ", skin);
|
resolutions = new Label("Resolutions: ", skin);
|
||||||
@ -124,7 +100,6 @@ public class GraphicsOptions extends Table {
|
|||||||
|
|
||||||
public void save() {
|
public void save() {
|
||||||
Gdx.app.debug("Preferences", "Saved shading values values.");
|
Gdx.app.debug("Preferences", "Saved shading values values.");
|
||||||
prefs.putBoolean("glow shader", glowShader.isChecked());
|
prefs.putInteger("glow shader", (int) glowShaderLevel.getValue());
|
||||||
prefs.putBoolean("enhanced glow", enhancedGlow.isChecked());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -12,12 +12,12 @@ import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener;
|
|||||||
import zero1hd.rhythmbullet.desktop.graphics.ui.components.GraphicsOptions;
|
import zero1hd.rhythmbullet.desktop.graphics.ui.components.GraphicsOptions;
|
||||||
import zero1hd.rhythmbullet.desktop.screens.MainMenuScreen;
|
import zero1hd.rhythmbullet.desktop.screens.MainMenuScreen;
|
||||||
|
|
||||||
public class VideoOptionsPage extends Page {
|
public class GraphicsOptionsPage extends Page {
|
||||||
private ScrollPane scrollPane;
|
private ScrollPane scrollPane;
|
||||||
private GraphicsOptions graphicsTable;
|
private GraphicsOptions graphicsTable;
|
||||||
private TextButton backButton;
|
private TextButton backButton;
|
||||||
|
|
||||||
public VideoOptionsPage(Skin skin, Preferences prefs, final MainMenuScreen menu, AssetManager assets) {
|
public GraphicsOptionsPage(Skin skin, Preferences prefs, final MainMenuScreen menu, AssetManager assets) {
|
||||||
graphicsTable = new GraphicsOptions(menu, skin, prefs);
|
graphicsTable = new GraphicsOptions(menu, skin, prefs);
|
||||||
scrollPane = new ScrollPane(graphicsTable, skin);
|
scrollPane = new ScrollPane(graphicsTable, skin);
|
||||||
scrollPane.setFadeScrollBars(false);
|
scrollPane.setFadeScrollBars(false);
|
@ -30,7 +30,7 @@ import zero1hd.rhythmbullet.desktop.graphics.ui.pages.KeybindOptionsPage;
|
|||||||
import zero1hd.rhythmbullet.desktop.graphics.ui.pages.MainPage;
|
import zero1hd.rhythmbullet.desktop.graphics.ui.pages.MainPage;
|
||||||
import zero1hd.rhythmbullet.desktop.graphics.ui.pages.MusicSelectionPage;
|
import zero1hd.rhythmbullet.desktop.graphics.ui.pages.MusicSelectionPage;
|
||||||
import zero1hd.rhythmbullet.desktop.graphics.ui.pages.OptionsPage;
|
import zero1hd.rhythmbullet.desktop.graphics.ui.pages.OptionsPage;
|
||||||
import zero1hd.rhythmbullet.desktop.graphics.ui.pages.VideoOptionsPage;
|
import zero1hd.rhythmbullet.desktop.graphics.ui.pages.GraphicsOptionsPage;
|
||||||
import zero1hd.rhythmbullet.util.AdvancedResizeScreen;
|
import zero1hd.rhythmbullet.util.AdvancedResizeScreen;
|
||||||
|
|
||||||
public class MainMenuScreen extends ScreenAdapter implements AdvancedResizeScreen {
|
public class MainMenuScreen extends ScreenAdapter implements AdvancedResizeScreen {
|
||||||
@ -41,7 +41,7 @@ public class MainMenuScreen extends ScreenAdapter implements AdvancedResizeScree
|
|||||||
private OptionsPage optionsPage;
|
private OptionsPage optionsPage;
|
||||||
private CreditsPage creditsPage;
|
private CreditsPage creditsPage;
|
||||||
private KeybindOptionsPage keybindPage;
|
private KeybindOptionsPage keybindPage;
|
||||||
private VideoOptionsPage graphicsPage;
|
private GraphicsOptionsPage graphicsPage;
|
||||||
private MusicSelectionPage musicSelectionPage;
|
private MusicSelectionPage musicSelectionPage;
|
||||||
private AnalysisPage analysisPage;
|
private AnalysisPage analysisPage;
|
||||||
private RhythmBullet core;
|
private RhythmBullet core;
|
||||||
@ -59,7 +59,7 @@ public class MainMenuScreen extends ScreenAdapter implements AdvancedResizeScree
|
|||||||
private FrameBuffer hBlur, vBlur;
|
private FrameBuffer hBlur, vBlur;
|
||||||
private TextureRegion fboRegion;
|
private TextureRegion fboRegion;
|
||||||
private int fboSize;
|
private int fboSize;
|
||||||
private int blurlvl;
|
private int glowLevel;
|
||||||
|
|
||||||
private Texture background;
|
private Texture background;
|
||||||
|
|
||||||
@ -86,7 +86,7 @@ public class MainMenuScreen extends ScreenAdapter implements AdvancedResizeScree
|
|||||||
Gdx.gl.glClearColor(0f, 0f, 0f, 1f);
|
Gdx.gl.glClearColor(0f, 0f, 0f, 1f);
|
||||||
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
|
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
|
||||||
stage.act(delta);
|
stage.act(delta);
|
||||||
if (blurlvl > 0) {
|
if (glowLevel > 0) {
|
||||||
// Begin drawing a normal version of screen
|
// Begin drawing a normal version of screen
|
||||||
normalBuffer.begin();
|
normalBuffer.begin();
|
||||||
stage.getViewport().apply();
|
stage.getViewport().apply();
|
||||||
@ -110,7 +110,7 @@ public class MainMenuScreen extends ScreenAdapter implements AdvancedResizeScree
|
|||||||
screenBatch.flush();
|
screenBatch.flush();
|
||||||
lightFilterBuffer.end();
|
lightFilterBuffer.end();
|
||||||
|
|
||||||
for (int i = 0; i < blurlvl; i++) {
|
for (int i = 0; i < glowLevel; i++) {
|
||||||
// Horizontal gaussian blur
|
// Horizontal gaussian blur
|
||||||
hBlur.begin();
|
hBlur.begin();
|
||||||
if (i > 0) {
|
if (i > 0) {
|
||||||
@ -173,7 +173,7 @@ public class MainMenuScreen extends ScreenAdapter implements AdvancedResizeScree
|
|||||||
musicSelectionPage.dispose();
|
musicSelectionPage.dispose();
|
||||||
|
|
||||||
dismantleShaders();
|
dismantleShaders();
|
||||||
setBlurlvl(0);
|
setGlowLevel(0);
|
||||||
|
|
||||||
background = null;
|
background = null;
|
||||||
}
|
}
|
||||||
@ -181,16 +181,7 @@ public class MainMenuScreen extends ScreenAdapter implements AdvancedResizeScree
|
|||||||
@Override
|
@Override
|
||||||
public void postAssetLoad() {
|
public void postAssetLoad() {
|
||||||
background = core.getAssetManager().get("backgrounds/mainBG.png", Texture.class);
|
background = core.getAssetManager().get("backgrounds/mainBG.png", Texture.class);
|
||||||
|
screenBatch = new SpriteBatch();
|
||||||
if (core.getPrefs().getBoolean("glow shader", true)) {
|
|
||||||
setupShaders();
|
|
||||||
|
|
||||||
if (core.getPrefs().getBoolean("enhanced glow", false)) {
|
|
||||||
setBlurlvl(1);
|
|
||||||
} else {
|
|
||||||
setBlurlvl(4);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
mainPage = new MainPage(core, cameraPosition, mlc, this);
|
mainPage = new MainPage(core, cameraPosition, mlc, this);
|
||||||
mainPage.setPosition(0, 0);
|
mainPage.setPosition(0, 0);
|
||||||
@ -201,7 +192,7 @@ public class MainMenuScreen extends ScreenAdapter implements AdvancedResizeScree
|
|||||||
keybindPage.setPosition(-1f*Gdx.graphics.getWidth(), -1f*Gdx.graphics.getHeight());
|
keybindPage.setPosition(-1f*Gdx.graphics.getWidth(), -1f*Gdx.graphics.getHeight());
|
||||||
stage.addActor(keybindPage);
|
stage.addActor(keybindPage);
|
||||||
|
|
||||||
graphicsPage = new VideoOptionsPage(core.getDefaultSkin(), core.getPrefs(), this, core.getAssetManager());
|
graphicsPage = new GraphicsOptionsPage(core.getDefaultSkin(), core.getPrefs(), this, core.getAssetManager());
|
||||||
|
|
||||||
graphicsPage.setPosition(-1f*Gdx.graphics.getWidth(), 1f*Gdx.graphics.getHeight());
|
graphicsPage.setPosition(-1f*Gdx.graphics.getWidth(), 1f*Gdx.graphics.getHeight());
|
||||||
stage.addActor(graphicsPage);
|
stage.addActor(graphicsPage);
|
||||||
@ -287,14 +278,16 @@ public class MainMenuScreen extends ScreenAdapter implements AdvancedResizeScree
|
|||||||
@Override
|
@Override
|
||||||
public void dispose() {
|
public void dispose() {
|
||||||
stage.dispose();
|
stage.dispose();
|
||||||
dismantleShaders();
|
if (gaussianBlurShader != null) {
|
||||||
|
dismantleShaders();
|
||||||
|
}
|
||||||
mic.dispose();
|
mic.dispose();
|
||||||
|
screenBatch.dispose();
|
||||||
super.dispose();
|
super.dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setupShaders() {
|
public void setupShaders() {
|
||||||
Gdx.app.debug("Shader", "Loading glow shaders.");
|
Gdx.app.debug("Shader", "Loading glow shaders.");
|
||||||
screenBatch = new SpriteBatch();
|
|
||||||
screenViewport = new ScreenViewport();
|
screenViewport = new ScreenViewport();
|
||||||
screenViewport.update(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
|
screenViewport.update(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
|
||||||
((OrthographicCamera) screenViewport.getCamera()).setToOrtho(false, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
|
((OrthographicCamera) screenViewport.getCamera()).setToOrtho(false, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
|
||||||
@ -355,15 +348,13 @@ public class MainMenuScreen extends ScreenAdapter implements AdvancedResizeScree
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void dismantleShaders() {
|
public void dismantleShaders() {
|
||||||
if (core.getPrefs().getBoolean("glow shader")) {
|
brightFilterShader.dispose();
|
||||||
brightFilterShader.dispose();
|
combineShader.dispose();
|
||||||
combineShader.dispose();
|
gaussianBlurShader.dispose();
|
||||||
gaussianBlurShader.dispose();
|
normalBuffer.dispose();
|
||||||
normalBuffer.dispose();
|
lightFilterBuffer.dispose();
|
||||||
lightFilterBuffer.dispose();
|
vBlur.dispose();
|
||||||
vBlur.dispose();
|
hBlur.dispose();
|
||||||
hBlur.dispose();
|
|
||||||
}
|
|
||||||
|
|
||||||
brightFilterShader = null;
|
brightFilterShader = null;
|
||||||
combineShader = null;
|
combineShader = null;
|
||||||
@ -373,11 +364,21 @@ public class MainMenuScreen extends ScreenAdapter implements AdvancedResizeScree
|
|||||||
vBlur = null;
|
vBlur = null;
|
||||||
hBlur = null;
|
hBlur = null;
|
||||||
|
|
||||||
setBlurlvl(0);
|
setGlowLevel(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setBlurlvl(int blurlvl) {
|
public void setGlowLevel(int glowLevel) {
|
||||||
this.blurlvl = blurlvl;
|
if (glowLevel > 0) {
|
||||||
|
if (gaussianBlurShader == null) {
|
||||||
|
setupShaders();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (gaussianBlurShader != null) {
|
||||||
|
dismantleShaders();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.glowLevel = glowLevel;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Vector3 getCameraPosition() {
|
public Vector3 getCameraPosition() {
|
||||||
@ -388,7 +389,7 @@ public class MainMenuScreen extends ScreenAdapter implements AdvancedResizeScree
|
|||||||
return creditsPage;
|
return creditsPage;
|
||||||
}
|
}
|
||||||
|
|
||||||
public VideoOptionsPage getGraphicsPage() {
|
public GraphicsOptionsPage getGraphicsPage() {
|
||||||
return graphicsPage;
|
return graphicsPage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user