decent bloom system

This commit is contained in:
2018-09-03 23:54:23 -05:00
parent 3c3d925e5a
commit 24dcabfb51
6 changed files with 25 additions and 93 deletions

View File

@@ -5,16 +5,13 @@ import com.badlogic.gdx.Preferences;
import com.badlogic.gdx.scenes.scene2d.Actor;
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;
import com.badlogic.gdx.utils.Align;
public class GraphicsOptions extends Table {
private Label resolutions, shaders;
private Preferences prefs;
private Slider glowShaderLevel;
private Label resolutions;
private ResolutionButton
_3840x2160,
@@ -26,21 +23,9 @@ public class GraphicsOptions extends Table {
_1366x768;
public GraphicsOptions(Skin skin, final Preferences prefs, ChangeListener bloomLevelSliderListener) {
public GraphicsOptions(Skin skin, final Preferences prefs) {
align(Align.center);
defaults().space(10f);
this.prefs = prefs;
shaders = new Label("OpenGL Shader", skin);
add(shaders).fillX();
row();
glowShaderLevel = new Slider(0, 4, 1, false, skin);
add(glowShaderLevel).fillX();
glowShaderLevel.addListener(bloomLevelSliderListener);
glowShaderLevel.setValue(prefs.getInteger("glow shader"));
row();
resolutions = new Label("Resolutions: ", skin);
add(resolutions).left();
row();
@@ -90,14 +75,4 @@ public class GraphicsOptions extends Table {
row();
pack();
}
public void saveOptions() {
Gdx.app.debug("Preferences", "Saved shading values values.");
prefs.putInteger("glow shader", (int) glowShaderLevel.getValue());
}
public int getBloomShaderLevel() {
return (int) glowShaderLevel.getValue();
}
}

View File

@@ -15,9 +15,9 @@ public class GraphicsPage extends Page {
private GraphicsOptions graphicsTable;
private TextButton backButton;
public GraphicsPage(Skin skin, Preferences preferences, ChangeListener backButtonListener, ChangeListener bloomLevelSliderListener) {
public GraphicsPage(Skin skin, Preferences preferences, ChangeListener backButtonListener) {
super(-1, 1);
graphicsTable = new GraphicsOptions(skin, preferences, bloomLevelSliderListener);
graphicsTable = new GraphicsOptions(skin, preferences);
scrollPane = new ScrollPane(graphicsTable, skin);
scrollPane.setFadeScrollBars(false);
scrollPane.setFillParent(true);
@@ -40,12 +40,4 @@ public class GraphicsPage extends Page {
public void act(float delta) {
super.act(delta);
}
public void saveOptions() {
graphicsTable.saveOptions();
}
public int getBloomLevel() {
return graphicsTable.getBloomShaderLevel();
}
}

View File

@@ -22,8 +22,6 @@ import zero1hd.rhythmbullet.graphics.ui.Page;
import zero1hd.rhythmbullet.util.ResizeReadyScreen;
public class MainScreen extends ScreenAdapter implements ResizeReadyScreen {
private boolean resizing;
private Stage stage;
private Vector3 cameraPosition;
private Listeners listeners;
@@ -84,18 +82,15 @@ public class MainScreen extends ScreenAdapter implements ResizeReadyScreen {
}
private void draw() {
if (!resizing) {
stage.getViewport().apply();
screenBatch.begin();
screenBatch.draw(background, 0, 0, stage.getViewport().getScreenWidth(), stage.getViewport().getScreenHeight());
screenBatch.end();
stage.draw();
}
stage.getViewport().apply();
screenBatch.begin();
screenBatch.draw(background, 0, 0, stage.getViewport().getScreenWidth(), stage.getViewport().getScreenHeight());
screenBatch.end();
stage.draw();
}
@Override
public void preAssetLoad() {
resizing = true;
stage.clear();
if (bloomShader != null) {
bloomShader.dispose();
@@ -109,6 +104,8 @@ public class MainScreen extends ScreenAdapter implements ResizeReadyScreen {
@Override
public void postAssetLoad() {
bloomShader = new BloomShader(screenBatch);
background = rhythmBullet.getAssetManager().get("backgrounds/mainBG.png", Texture.class);
mainPage = new MainPage(musicController, musicMetadataController, rhythmBullet.getAssetManager(), rhythmBullet.getSkin(), rhythmBullet.getScreenConfiguration(), listeners.musicSelectionPageButtonListener, listeners.optionsPageButtonListener);
@@ -121,7 +118,7 @@ public class MainScreen extends ScreenAdapter implements ResizeReadyScreen {
keybindPage = new KeybindPage(rhythmBullet.getAssetManager(), rhythmBullet.getSkin(), listeners.optionsPageButtonListener);
stage.addActor(keybindPage);
graphicsPage = new GraphicsPage(rhythmBullet.getSkin(), rhythmBullet.getPreferences(), listeners.optionsPageButtonListener, listeners.bloomLevelShaderListener);
graphicsPage = new GraphicsPage(rhythmBullet.getSkin(), rhythmBullet.getPreferences(), listeners.optionsPageButtonListener);
stage.addActor(graphicsPage);
creditsPage = new CreditsPage(rhythmBullet.getSkin());
@@ -134,7 +131,6 @@ public class MainScreen extends ScreenAdapter implements ResizeReadyScreen {
stage.addActor(analysisPage);
musicController.getMusicList().asyncSearch(false);
resizing = false;
}
@Override
@@ -152,7 +148,6 @@ public class MainScreen extends ScreenAdapter implements ResizeReadyScreen {
public void saveAll() {
if (optionsPage != null) {
optionsPage.saveOptions();
graphicsPage.saveOptions();
rhythmBullet.getPreferences().flush();
}
}
@@ -228,25 +223,6 @@ public class MainScreen extends ScreenAdapter implements ResizeReadyScreen {
}
};
ChangeListener bloomLevelShaderListener = new ChangeListener() {
@Override
public void changed(ChangeEvent event, Actor actor) {
int bloomLevel = 0;
if (graphicsPage != null) {
bloomLevel = graphicsPage.getBloomLevel();
} else {
bloomLevel = rhythmBullet.getPreferences().getInteger("glow shader");
}
if (bloomLevel > 0) {
if (bloomShader == null) bloomShader = new BloomShader(screenBatch);
bloomShader.setBloomLevel((bloomLevel-1));
} else if (bloomShader != null) {
bloomShader.dispose();
bloomShader = null;
}
}
};
ChangeListener confirmedSongListener = new ChangeListener() {
@Override
public void changed(ChangeEvent event, Actor actor) {