From 9beb37bfa788308409fd39211af50b06ccb7889e Mon Sep 17 00:00:00 2001 From: fgnm Date: Thu, 7 Apr 2022 18:13:13 +0200 Subject: [PATCH] Create a Shader Compiler for better shader management --- hyperlap2d-runtime-libgdx | 2 +- .../java/games/rednblack/editor/proxy/ResourceManager.java | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/hyperlap2d-runtime-libgdx b/hyperlap2d-runtime-libgdx index 4a65f23e..ef0ce9ce 160000 --- a/hyperlap2d-runtime-libgdx +++ b/hyperlap2d-runtime-libgdx @@ -1 +1 @@ -Subproject commit 4a65f23e43b26c6642c42c1f0e5ea660df04c64c +Subproject commit ef0ce9ce8d7c2a935430855e129fbeeb68bda94c diff --git a/src/main/java/games/rednblack/editor/proxy/ResourceManager.java b/src/main/java/games/rednblack/editor/proxy/ResourceManager.java index f40f5d5e..87f10cf7 100644 --- a/src/main/java/games/rednblack/editor/proxy/ResourceManager.java +++ b/src/main/java/games/rednblack/editor/proxy/ResourceManager.java @@ -24,6 +24,7 @@ import games.rednblack.editor.renderer.resources.IResourceRetriever; import games.rednblack.editor.renderer.utils.H2DSkinLoader; import games.rednblack.editor.renderer.utils.HyperJson; import games.rednblack.editor.renderer.utils.ShadedDistanceFieldFont; +import games.rednblack.editor.renderer.utils.ShaderCompiler; import games.rednblack.editor.view.stage.Sandbox; import games.rednblack.editor.view.ui.widget.actors.basic.WhitePixel; import games.rednblack.h2d.extension.spine.ResourceRetrieverAttachmentLoader; @@ -409,7 +410,7 @@ public class ResourceManager extends Proxy implements IResourceRetriever { if (file.isDirectory() || filename.endsWith(".DS_Store") || shaderPrograms.containsKey(filename)) continue; // check if pair exists. if(Gdx.files.internal(path + filename + ".vert").exists() && Gdx.files.internal(path + filename + ".frag").exists()) { - ShaderProgram shaderProgram = new ShaderProgram(Gdx.files.internal(path + filename + ".vert"), Gdx.files.internal(path + filename + ".frag")); + ShaderProgram shaderProgram = ShaderCompiler.compileShader(Gdx.files.internal(path + filename + ".vert"), Gdx.files.internal(path + filename + ".frag")); if (!shaderProgram.isCompiled()) { System.out.println("Error compiling shader: " + shaderProgram.getLog()); } @@ -425,7 +426,7 @@ public class ResourceManager extends Proxy implements IResourceRetriever { + ProjectManager.SHADER_DIR_PATH + File.separator + shaderName; if(Gdx.files.internal(shader + ".vert").exists() && Gdx.files.internal(shader + ".frag").exists()) { - ShaderProgram shaderProgram = new ShaderProgram(Gdx.files.internal(shader + ".vert"), Gdx.files.internal(shader + ".frag")); + ShaderProgram shaderProgram = ShaderCompiler.compileShader(Gdx.files.internal(shader + ".vert"), Gdx.files.internal(shader + ".frag")); if (shaderProgram.isCompiled()) { shaderPrograms.remove(shaderName); shaderPrograms.put(shaderName, shaderProgram);