decent bloom system
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -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();
|
||||
}
|
||||
}
|
||||
|
@@ -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) {
|
||||
|
Reference in New Issue
Block a user