Skip to content

Commit

Permalink
Post processing reload
Browse files Browse the repository at this point in the history
  • Loading branch information
macbury committed Aug 31, 2015
1 parent 6399dc3 commit dd1f391
Show file tree
Hide file tree
Showing 8 changed files with 81 additions and 27 deletions.
9 changes: 5 additions & 4 deletions core/assets/graphics/postprocessing/default.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
buffers: [
{ width: 512, height: 512, format: "RGBA8888", filter: "Linear", wrap: "MirroredRepeat", depth: false, name: "my:small-color" },
{ width: 512, height: 512, format: "RGBA8888", filter: "Linear", wrap: "ClampToEdge", depth: false, name: "my:blur" }
{ width: 512, height: 512, format: "RGB888", filter: "Linear", wrap: "MirroredRepeat", depth: false, name: "my:small-color" },
{ width: 512, height: 512, format: "RGB888", filter: "Linear", wrap: "ClampToEdge", depth: false, name: "my:blur" }
],

steps: [
Expand All @@ -11,7 +11,7 @@
fragment: "blur",
customUniforms: {
u_mainTexture: "my:small-color",
u_blurPower: 0.002
u_blurPower: 0.005
},
},
{
Expand All @@ -22,7 +22,8 @@
],
customUniforms: {
u_mainTexture: "forge:main-color",
u_blurTexture: "my:blur"
u_blurTexture: "my:blur",
u_blurMix: 0.25
}
}
]
Expand Down
2 changes: 1 addition & 1 deletion core/assets/graphics/postprocessing/final.frag.glsl
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@ void main() {
vec4 mainColor = texture2D(u_mainTexture, v_texCoords);
vec4 vignetteColor = texture2D(u_vignetteTexture, v_texCoords);
vec4 blurColor = texture2D(u_blurTexture, v_texCoords);
gl_FragColor = mix(mainColor, blurColor, 0.25f) * vignetteColor;
gl_FragColor = mix(mainColor, blurColor, u_blurMix) * vignetteColor;
}
3 changes: 2 additions & 1 deletion core/src/macbury/forge/assets/FileManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import com.badlogic.gdx.utils.Array;
import com.badlogic.gdx.utils.Disposable;
import macbury.forge.ForgE;
import macbury.forge.graphics.postprocessing.PostProcessingManager;
import macbury.forge.level.LevelState;

import java.io.File;
Expand Down Expand Up @@ -44,7 +45,7 @@ private void configureMappings() {
putMapping("textures", "graphics/textures/");
putMapping("skybox", "graphics/textures/skybox/");
putMapping("maps", LevelState.MAP_STORAGE_DIR);
putMapping("postprocessing", "graphics/postprocessing/");
putMapping("postprocessing", PostProcessingManager.STORAGE_DIR);
}

private String applyMapping(String path) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,21 +18,19 @@
*/
public class PostProcessingManager implements Disposable {
private static final String TAG = "PostProcessingManager";
public static final String STORAGE_DIR = "graphics/postprocessing/";
private FileHandle fileHandle;
private Array<PostProcessingStep> steps;
private ObjectMap<String, FrameBuffer> frameBuffers;
private PostProcessingFactory factory;

//public PostProcessingManager() {

//this.effects.add(new PostProcessBloomImage());
// this.effects.add(new PostProcessFinalImage());
//}

public PostProcessingManager(FileHandle internal) {
this.steps = new Array<PostProcessingStep>();
this.frameBuffers = new ObjectMap<String, FrameBuffer>();
this.frameBuffers = new ObjectMap<String, FrameBuffer>();
this.fileHandle = internal;
if (!fileHandle.exists()) {
throw new GdxRuntimeException("Could not find: " + fileHandle.path());
}
reload();
}

Expand Down
2 changes: 1 addition & 1 deletion core/src/macbury/forge/level/Level.java
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ public class Level implements Disposable {
public final TerrainEngine terrainEngine;
public final LevelEnv env;
public final Stage ui;
public final PostProcessingManager postProcessing;
public PostProcessingManager postProcessing;
public final TerrainGeometryProvider terrainGeometryProvider;

public Level(LevelState state, TerrainGeometryProvider geometryProvider) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
package macbury.forge.editor.controllers;

import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.files.FileHandle;
import macbury.forge.editor.controllers.listeners.OnMapChangeListener;
import macbury.forge.editor.reloader.DirectoryWatchJob;
import macbury.forge.editor.reloader.DirectoryWatcher;
import macbury.forge.editor.screens.LevelEditorScreen;
import macbury.forge.graphics.postprocessing.PostProcessingManager;
import macbury.forge.level.Level;

/**
* Created by macbury on 31.08.15.
*/
public class PostProcessingController implements OnMapChangeListener, DirectoryWatchJob.DirectoryWatchJobListener {
private Level currentLevel;

public PostProcessingController(DirectoryWatcher directoryWatcher) {
directoryWatcher.addListener(PostProcessingManager.STORAGE_DIR, this);
}

@Override
public void onCloseMap(ProjectController controller, LevelEditorScreen screen) {
currentLevel = null;
}

@Override
public void onNewMap(ProjectController controller, LevelEditorScreen screen) {
this.currentLevel = screen.level;
}

@Override
public void onProjectStructureChange(ProjectController controller) {

}

@Override
public void onMapSaved(ProjectController projectController, LevelEditorScreen levelEditorScreen) {

}

@Override
public void onFileInDirectoryChange(FileHandle handle) {
if (handle.extension().endsWith("glsl") || handle.extension().endsWith("json")) {
Gdx.app.postRunnable(new Runnable() {
@Override
public void run() {
reloadPostProcessing();
}
});
}
}

private void reloadPostProcessing() {
if (currentLevel != null) {
try {
currentLevel.postProcessing.reload();
System.gc();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}

This file was deleted.

4 changes: 3 additions & 1 deletion editor/src/macbury/forge/editor/windows/MainWindow.java
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ public class MainWindow extends JFrame implements ForgEBootListener, FocusListen
public final CodeEditorWindow codeEditorWindow;
private final CodeEditorController codeEditorController;
public final ResourcesController resourcesController;
private final PostProcessingController postProcessingController;
private LwjglAWTCanvas openGLCanvas;
private ForgE engine;
private ProjectController projectController;
Expand Down Expand Up @@ -113,6 +114,7 @@ public MainWindow() {
Config config = Config.load("editor");
engine = new ForgE(config);

postProcessingController = new PostProcessingController(directoryWatcher);
blocksController = new BlocksController(blockList, directoryWatcher, jobs, (ImagePanel) panelPrimaryBlock, (ImagePanel) panelSecondaryBlock);
this.progressTaskDialog = new ProgressTaskDialog();
projectController = new ProjectController();
Expand Down Expand Up @@ -148,7 +150,7 @@ public MainWindow() {
projectController.addOnMapChangeListener(terrainToolsController);
projectController.addOnMapChangeListener(mainMenu);
projectController.addOnMapChangeListener(mainToolbarController);

projectController.addOnMapChangeListener(postProcessingController);
projectController.addOnMapChangeListener(blocksController);
projectController.addOnMapChangeListener(mapTreeController);
projectController.addOnMapChangeListener(eventsToolsController);
Expand Down

0 comments on commit dd1f391

Please sign in to comment.