diff --git a/opengl/src/main/java/org/osm2world/core/target/jogl/BackgroundShader.java b/opengl/src/main/java/org/osm2world/core/target/jogl/BackgroundShader.java index 6fb215f56..642bbad50 100644 --- a/opengl/src/main/java/org/osm2world/core/target/jogl/BackgroundShader.java +++ b/opengl/src/main/java/org/osm2world/core/target/jogl/BackgroundShader.java @@ -17,7 +17,7 @@ public class BackgroundShader extends AbstractShader { private int textureID; public BackgroundShader(GL3 gl) { - super(gl, "/shaders/background"); + super(gl, "shaders/background"); // get indices of named attributes vertexPositionID = gl.glGetAttribLocation(shaderProgram, "VertexPosition"); diff --git a/opengl/src/main/java/org/osm2world/core/target/jogl/DefaultShader.java b/opengl/src/main/java/org/osm2world/core/target/jogl/DefaultShader.java index 0ffa25745..e81bc7d9a 100644 --- a/opengl/src/main/java/org/osm2world/core/target/jogl/DefaultShader.java +++ b/opengl/src/main/java/org/osm2world/core/target/jogl/DefaultShader.java @@ -70,7 +70,7 @@ public class DefaultShader extends AbstractPrimitiveShader { private int vertexTangentID; public DefaultShader(GL3 gl) { - super(gl, "/shaders/default"); + super(gl, "shaders/default"); // get indices of named attributes vertexPositionID = gl.glGetAttribLocation(shaderProgram, "VertexPosition"); diff --git a/opengl/src/main/java/org/osm2world/core/target/jogl/DepthBufferShader.java b/opengl/src/main/java/org/osm2world/core/target/jogl/DepthBufferShader.java index 185e56618..cbf43afde 100644 --- a/opengl/src/main/java/org/osm2world/core/target/jogl/DepthBufferShader.java +++ b/opengl/src/main/java/org/osm2world/core/target/jogl/DepthBufferShader.java @@ -30,7 +30,7 @@ public class DepthBufferShader extends AbstractPrimitiveShader { private int[] vertexTexCoordID = new int[DefaultShader.MAX_TEXTURE_LAYERS]; public DepthBufferShader(GL3 gl) { - super(gl, "/shaders/shadowmap"); + super(gl, "shaders/shadowmap"); // get indices of named attributes vertexPositionID = gl.glGetAttribLocation(shaderProgram, "VertexPosition"); diff --git a/opengl/src/main/java/org/osm2world/core/target/jogl/NonAreaShader.java b/opengl/src/main/java/org/osm2world/core/target/jogl/NonAreaShader.java index 6a10aa10e..014e06f02 100644 --- a/opengl/src/main/java/org/osm2world/core/target/jogl/NonAreaShader.java +++ b/opengl/src/main/java/org/osm2world/core/target/jogl/NonAreaShader.java @@ -16,7 +16,7 @@ public class NonAreaShader extends AbstractShader { private int vertexColorID; public NonAreaShader(GL3 gl) { - super(gl, "/shaders/nonarea"); + super(gl, "shaders/nonarea"); // get indices of named attributes vertexPositionID = gl.glGetAttribLocation(shaderProgram, "VertexPosition"); diff --git a/opengl/src/main/java/org/osm2world/core/target/jogl/ShaderManager.java b/opengl/src/main/java/org/osm2world/core/target/jogl/ShaderManager.java index 08388cb05..383d6739b 100644 --- a/opengl/src/main/java/org/osm2world/core/target/jogl/ShaderManager.java +++ b/opengl/src/main/java/org/osm2world/core/target/jogl/ShaderManager.java @@ -2,13 +2,7 @@ import java.awt.image.BufferedImage; import java.awt.image.WritableRaster; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; +import java.io.*; import java.nio.ByteBuffer; import java.nio.FloatBuffer; import java.nio.IntBuffer; @@ -26,10 +20,10 @@ public class ShaderManager { /** * Loads the vertex shader from a resource file, compiles it and does error checking. - * @param filename path to the resource containing the shader code + * @param resourceName path to the resource containing the shader code * @return handle of the created vertex shader */ - public static int createVertexShader(GL3 gl, String filename) { + public static int createVertexShader(GL3 gl, String resourceName) { // get the unique id int vertShader = gl.glCreateShader(GL3.GL_VERTEX_SHADER); @@ -42,9 +36,9 @@ public static int createVertexShader(GL3 gl, String filename) { String line; // open the file and read the contents into the String array. - InputStream stream = loadShaderFile(filename); + InputStream stream = loadShaderFile(resourceName); if (stream == null) { - throw new RuntimeException("Vertex shader not found in classpath: \""+ filename +"\""); + throw new RuntimeException("Vertex shader not found in classpath: \""+ resourceName +"\""); } try (BufferedReader reader = new BufferedReader(new InputStreamReader(stream))) { @@ -65,7 +59,7 @@ public static int createVertexShader(GL3 gl, String filename) { // check whether compilation was successful if (shaderStatus.get() == GL.GL_FALSE) { printShaderInfoLog(gl, vertShader); - throw new IllegalStateException("compilation error for shader [" + filename + "]."); + throw new IllegalStateException("compilation error for shader [" + resourceName + "]."); } printShaderInfoLog(gl, vertShader); @@ -73,7 +67,7 @@ public static int createVertexShader(GL3 gl, String filename) { return vertShader; } catch (IOException e) { - throw new RuntimeException("Failed reading vertex shader \"" + filename + "\".",e); + throw new RuntimeException("Failed reading vertex shader \"" + resourceName + "\".",e); } } @@ -230,10 +224,10 @@ public static void saveDepthBuffer(File file, int depthBufferHandle, int width, * load from resources folder in filesystem. If also unsuccessful return * null. */ - private static InputStream loadShaderFile(String filename) { - InputStream stream = System.class.getResourceAsStream(filename); + private static InputStream loadShaderFile(String resourceName) { + InputStream stream = Thread.currentThread().getContextClassLoader().getResourceAsStream(resourceName); if (stream == null) { - File file = new File("resources/" + (filename.charAt(0) == '/' ? filename.substring(1) : filename)); + File file = new File("resources/" + (resourceName.charAt(0) == '/' ? resourceName.substring(1) : resourceName)); try { stream = new FileInputStream(file); } catch (FileNotFoundException e) { diff --git a/opengl/src/main/java/org/osm2world/core/target/jogl/ShadowVolumeShader.java b/opengl/src/main/java/org/osm2world/core/target/jogl/ShadowVolumeShader.java index 357742f92..670bf78a2 100644 --- a/opengl/src/main/java/org/osm2world/core/target/jogl/ShadowVolumeShader.java +++ b/opengl/src/main/java/org/osm2world/core/target/jogl/ShadowVolumeShader.java @@ -16,7 +16,7 @@ public class ShadowVolumeShader extends AbstractPrimitiveShader { private int vertexPositionID; public ShadowVolumeShader(GL3 gl) { - super(gl, "/shaders/shadowvolume"); + super(gl, "shaders/shadowvolume"); // get indices of named attributes vertexPositionID = gl.glGetAttribLocation(shaderProgram, "VertexPosition"); diff --git a/resources/shaders/background.fragment b/opengl/src/main/resources/shaders/background.fragment similarity index 100% rename from resources/shaders/background.fragment rename to opengl/src/main/resources/shaders/background.fragment diff --git a/resources/shaders/background.vertex b/opengl/src/main/resources/shaders/background.vertex similarity index 100% rename from resources/shaders/background.vertex rename to opengl/src/main/resources/shaders/background.vertex diff --git a/resources/shaders/default.fragment b/opengl/src/main/resources/shaders/default.fragment similarity index 100% rename from resources/shaders/default.fragment rename to opengl/src/main/resources/shaders/default.fragment diff --git a/resources/shaders/default.vertex b/opengl/src/main/resources/shaders/default.vertex similarity index 100% rename from resources/shaders/default.vertex rename to opengl/src/main/resources/shaders/default.vertex diff --git a/resources/shaders/nonarea.fragment b/opengl/src/main/resources/shaders/nonarea.fragment similarity index 100% rename from resources/shaders/nonarea.fragment rename to opengl/src/main/resources/shaders/nonarea.fragment diff --git a/resources/shaders/nonarea.vertex b/opengl/src/main/resources/shaders/nonarea.vertex similarity index 100% rename from resources/shaders/nonarea.vertex rename to opengl/src/main/resources/shaders/nonarea.vertex diff --git a/resources/shaders/shadowmap.fragment b/opengl/src/main/resources/shaders/shadowmap.fragment similarity index 100% rename from resources/shaders/shadowmap.fragment rename to opengl/src/main/resources/shaders/shadowmap.fragment diff --git a/resources/shaders/shadowmap.vertex b/opengl/src/main/resources/shaders/shadowmap.vertex similarity index 100% rename from resources/shaders/shadowmap.vertex rename to opengl/src/main/resources/shaders/shadowmap.vertex diff --git a/resources/shaders/shadowvolume.fragment b/opengl/src/main/resources/shaders/shadowvolume.fragment similarity index 100% rename from resources/shaders/shadowvolume.fragment rename to opengl/src/main/resources/shaders/shadowvolume.fragment diff --git a/resources/shaders/shadowvolume.vertex b/opengl/src/main/resources/shaders/shadowvolume.vertex similarity index 100% rename from resources/shaders/shadowvolume.vertex rename to opengl/src/main/resources/shaders/shadowvolume.vertex