Create a Shader Compiler for better shader management

This commit is contained in:
fgnm
2022-04-07 18:13:13 +02:00
parent ce71e4a8df
commit 9beb37bfa7
2 changed files with 4 additions and 3 deletions
@@ -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);