diff --git a/desktop/src/zero1hd/rhythmbullet/desktop/audio/visualizer/HorizontalVisualizer.java b/desktop/src/zero1hd/rhythmbullet/desktop/audio/visualizer/HorizontalVisualizer.java index 009dd3b..cd60ac9 100755 --- a/desktop/src/zero1hd/rhythmbullet/desktop/audio/visualizer/HorizontalVisualizer.java +++ b/desktop/src/zero1hd/rhythmbullet/desktop/audio/visualizer/HorizontalVisualizer.java @@ -49,7 +49,7 @@ public class HorizontalVisualizer extends Visualizer { y = 0; - smoothRange = 3; + smoothRange = 2; angleRot = new Vector2(MathUtils.cosDeg(rotation), MathUtils.sinDeg(rotation)); bars = new Sprite[barCount]; barHeights = new float[barCount]; diff --git a/desktop/src/zero1hd/rhythmbullet/desktop/graphics/ui/components/GraphicsOptions.java b/desktop/src/zero1hd/rhythmbullet/desktop/graphics/ui/components/GraphicsOptions.java index e61ccb4..04938db 100755 --- a/desktop/src/zero1hd/rhythmbullet/desktop/graphics/ui/components/GraphicsOptions.java +++ b/desktop/src/zero1hd/rhythmbullet/desktop/graphics/ui/components/GraphicsOptions.java @@ -3,9 +3,9 @@ package zero1hd.rhythmbullet.desktop.graphics.ui.components; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Preferences; 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.Skin; +import com.badlogic.gdx.scenes.scene2d.ui.Slider; import com.badlogic.gdx.scenes.scene2d.ui.Table; import com.badlogic.gdx.scenes.scene2d.ui.TextButton; import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener; @@ -16,7 +16,7 @@ import zero1hd.rhythmbullet.desktop.screens.MainMenuScreen; public class GraphicsOptions extends Table { private Label resolutions, shaders; private Preferences prefs; - private CheckBox glowShader, enhancedGlow; + private Slider glowShaderLevel; private ResolutionButton _3840x2160, @@ -32,44 +32,20 @@ public class GraphicsOptions extends Table { align(Align.center); defaults().space(10f); this.prefs = prefs; - shaders = new Label("OpenGL Shaders", skin); + shaders = new Label("OpenGL Shader", skin); add(shaders).fillX(); row(); - glowShader = new CheckBox(" Glow Shader", skin); - glowShader.setChecked(prefs.getBoolean("glow shader", true)); - glowShader.addListener(new ChangeListener() { + glowShaderLevel = new Slider(0, 4, 1, false, skin); + glowShaderLevel.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { - save(); - if (glowShader.isChecked()) { - mainMenu.setBlurlvl(1); - enhancedGlow.setDisabled(false); - } else { - mainMenu.setBlurlvl(0); - enhancedGlow.setChecked(false); - enhancedGlow.setDisabled(true); - } + mainMenu.setGlowLevel((int) glowShaderLevel.getValue()); } }); - add(glowShader); - row(); + glowShaderLevel.setValue(prefs.getInteger("glow shader")); + 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(); resolutions = new Label("Resolutions: ", skin); @@ -124,7 +100,6 @@ public class GraphicsOptions extends Table { public void save() { Gdx.app.debug("Preferences", "Saved shading values values."); - prefs.putBoolean("glow shader", glowShader.isChecked()); - prefs.putBoolean("enhanced glow", enhancedGlow.isChecked()); + prefs.putInteger("glow shader", (int) glowShaderLevel.getValue()); } } diff --git a/desktop/src/zero1hd/rhythmbullet/desktop/graphics/ui/pages/VideoOptionsPage.java b/desktop/src/zero1hd/rhythmbullet/desktop/graphics/ui/pages/GraphicsOptionsPage.java similarity index 87% rename from desktop/src/zero1hd/rhythmbullet/desktop/graphics/ui/pages/VideoOptionsPage.java rename to desktop/src/zero1hd/rhythmbullet/desktop/graphics/ui/pages/GraphicsOptionsPage.java index f560a4d..9d35bd4 100755 --- a/desktop/src/zero1hd/rhythmbullet/desktop/graphics/ui/pages/VideoOptionsPage.java +++ b/desktop/src/zero1hd/rhythmbullet/desktop/graphics/ui/pages/GraphicsOptionsPage.java @@ -12,12 +12,12 @@ import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener; import zero1hd.rhythmbullet.desktop.graphics.ui.components.GraphicsOptions; import zero1hd.rhythmbullet.desktop.screens.MainMenuScreen; -public class VideoOptionsPage extends Page { +public class GraphicsOptionsPage extends Page { private ScrollPane scrollPane; private GraphicsOptions graphicsTable; 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); scrollPane = new ScrollPane(graphicsTable, skin); scrollPane.setFadeScrollBars(false); diff --git a/desktop/src/zero1hd/rhythmbullet/desktop/screens/MainMenuScreen.java b/desktop/src/zero1hd/rhythmbullet/desktop/screens/MainMenuScreen.java index 9f9bdef..afa44c7 100755 --- a/desktop/src/zero1hd/rhythmbullet/desktop/screens/MainMenuScreen.java +++ b/desktop/src/zero1hd/rhythmbullet/desktop/screens/MainMenuScreen.java @@ -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.MusicSelectionPage; 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; public class MainMenuScreen extends ScreenAdapter implements AdvancedResizeScreen { @@ -41,7 +41,7 @@ public class MainMenuScreen extends ScreenAdapter implements AdvancedResizeScree private OptionsPage optionsPage; private CreditsPage creditsPage; private KeybindOptionsPage keybindPage; - private VideoOptionsPage graphicsPage; + private GraphicsOptionsPage graphicsPage; private MusicSelectionPage musicSelectionPage; private AnalysisPage analysisPage; private RhythmBullet core; @@ -59,7 +59,7 @@ public class MainMenuScreen extends ScreenAdapter implements AdvancedResizeScree private FrameBuffer hBlur, vBlur; private TextureRegion fboRegion; private int fboSize; - private int blurlvl; + private int glowLevel; private Texture background; @@ -86,7 +86,7 @@ public class MainMenuScreen extends ScreenAdapter implements AdvancedResizeScree Gdx.gl.glClearColor(0f, 0f, 0f, 1f); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); stage.act(delta); - if (blurlvl > 0) { + if (glowLevel > 0) { // Begin drawing a normal version of screen normalBuffer.begin(); stage.getViewport().apply(); @@ -110,7 +110,7 @@ public class MainMenuScreen extends ScreenAdapter implements AdvancedResizeScree screenBatch.flush(); lightFilterBuffer.end(); - for (int i = 0; i < blurlvl; i++) { + for (int i = 0; i < glowLevel; i++) { // Horizontal gaussian blur hBlur.begin(); if (i > 0) { @@ -173,7 +173,7 @@ public class MainMenuScreen extends ScreenAdapter implements AdvancedResizeScree musicSelectionPage.dispose(); dismantleShaders(); - setBlurlvl(0); + setGlowLevel(0); background = null; } @@ -181,17 +181,8 @@ public class MainMenuScreen extends ScreenAdapter implements AdvancedResizeScree @Override public void postAssetLoad() { background = core.getAssetManager().get("backgrounds/mainBG.png", Texture.class); - - if (core.getPrefs().getBoolean("glow shader", true)) { - setupShaders(); - - if (core.getPrefs().getBoolean("enhanced glow", false)) { - setBlurlvl(1); - } else { - setBlurlvl(4); - } - } - + screenBatch = new SpriteBatch(); + mainPage = new MainPage(core, cameraPosition, mlc, this); mainPage.setPosition(0, 0); stage.addActor(mainPage); @@ -201,7 +192,7 @@ public class MainMenuScreen extends ScreenAdapter implements AdvancedResizeScree keybindPage.setPosition(-1f*Gdx.graphics.getWidth(), -1f*Gdx.graphics.getHeight()); 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()); stage.addActor(graphicsPage); @@ -287,14 +278,16 @@ public class MainMenuScreen extends ScreenAdapter implements AdvancedResizeScree @Override public void dispose() { stage.dispose(); - dismantleShaders(); + if (gaussianBlurShader != null) { + dismantleShaders(); + } mic.dispose(); + screenBatch.dispose(); super.dispose(); } public void setupShaders() { Gdx.app.debug("Shader", "Loading glow shaders."); - screenBatch = new SpriteBatch(); screenViewport = new ScreenViewport(); screenViewport.update(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() { - if (core.getPrefs().getBoolean("glow shader")) { - brightFilterShader.dispose(); - combineShader.dispose(); - gaussianBlurShader.dispose(); - normalBuffer.dispose(); - lightFilterBuffer.dispose(); - vBlur.dispose(); - hBlur.dispose(); - } + brightFilterShader.dispose(); + combineShader.dispose(); + gaussianBlurShader.dispose(); + normalBuffer.dispose(); + lightFilterBuffer.dispose(); + vBlur.dispose(); + hBlur.dispose(); brightFilterShader = null; combineShader = null; @@ -373,11 +364,21 @@ public class MainMenuScreen extends ScreenAdapter implements AdvancedResizeScree vBlur = null; hBlur = null; - setBlurlvl(0); + setGlowLevel(0); } - public void setBlurlvl(int blurlvl) { - this.blurlvl = blurlvl; + public void setGlowLevel(int glowLevel) { + if (glowLevel > 0) { + if (gaussianBlurShader == null) { + setupShaders(); + } + } else { + if (gaussianBlurShader != null) { + dismantleShaders(); + } + } + + this.glowLevel = glowLevel; } public Vector3 getCameraPosition() { @@ -388,7 +389,7 @@ public class MainMenuScreen extends ScreenAdapter implements AdvancedResizeScree return creditsPage; } - public VideoOptionsPage getGraphicsPage() { + public GraphicsOptionsPage getGraphicsPage() { return graphicsPage; }