List of usage examples for org.lwjgl.opengl GL20 glCompileShader
public static void glCompileShader(@NativeType("GLuint") int shader)
From source file:com.timvisee.voxeltex.module.shader.raw.RawShader.java
License:Open Source License
@Override public int compile() { // Show a status message System.out.print("Compiling shader... "); // Create a new OpenGL shader program int program = GL20.glCreateProgram(); // Shader IDs int vertexId = 0; int fragmentId = 0; // Compile the vertex shader if available if (hasVertexShader()) { // Create the vertex shader vertexId = GL20.glCreateShader(GL20.GL_VERTEX_SHADER); // Attach the vertex shader source and compile it GL20.glShaderSource(vertexId, vertexSource); GL20.glCompileShader(vertexId); // Check for compiling errors if (GL20.glGetShaderi(vertexId, GL20.GL_COMPILE_STATUS) == GL11.GL_FALSE) { // Show an error message System.out.println("FAIL\nFailed to compile the vertex shader"); System.out.println(GL20.glGetShaderInfoLog(vertexId)); // Delete the shader before returning GL20.glDeleteShader(vertexId); throw new RuntimeException("Failed to compile the vertex shader"); }/*from w w w.j av a 2 s .com*/ } // Compile the fragment shader if available if (hasFragmentShader()) { // Create the fragment shader fragmentId = GL20.glCreateShader(GL20.GL_FRAGMENT_SHADER); // Attach the fragment shader source and compile it GL20.glShaderSource(fragmentId, fragmentSource); GL20.glCompileShader(fragmentId); // Check for compiling errors if (GL20.glGetShaderi(fragmentId, GL20.GL_COMPILE_STATUS) == GL11.GL_FALSE) { // Show an error message System.out.println("FAIL\nFailed to compile the fragment shader"); System.out.println(GL20.glGetShaderInfoLog(fragmentId)); // Delete the shader before returning GL20.glDeleteShader(fragmentId); throw new RuntimeException("Failed to compile the vertex shader"); } } // Attach all compiled shaders if (hasVertexShader()) GL20.glAttachShader(program, vertexId); if (hasFragmentShader()) GL20.glAttachShader(program, fragmentId); // Link the shader program to OpenGL and link it GL20.glLinkProgram(program); GL20.glValidateProgram(program); // Shaders have been attached to the program, delete their compiled sources to save memory if (hasVertexShader()) GL20.glDeleteShader(vertexId); if (hasFragmentShader()) GL20.glDeleteShader(fragmentId); // Show a status message System.out.println("OK"); // Return the created OpenGL shader program return program; }
From source file:com.voxelplugineering.voxelsniper.util.GLSLUtilities.java
License:Open Source License
public static int loadShader(String filename, int type) { StringBuilder shaderSource = new StringBuilder(); int shaderID = 0; try {//from w w w . j a v a 2s. c o m BufferedReader reader = new BufferedReader(new FileReader(filename)); String line; while ((line = reader.readLine()) != null) { shaderSource.append(line).append("\n"); } reader.close(); } catch (IOException e) { System.err.println("Could not read file."); e.printStackTrace(); System.exit(-1); } shaderID = GL20.glCreateShader(type); GL20.glShaderSource(shaderID, shaderSource); GL20.glCompileShader(shaderID); if (GL20.glGetShaderi(shaderID, GL20.GL_COMPILE_STATUS) == GL11.GL_FALSE) { System.err.println("Could not compile shader."); System.err.println(GL20.glGetShaderInfoLog(shaderID, 1024)); System.exit(-1); } OpenGLUtilities.checkGLError("loadShader"); return shaderID; }
From source file:com.wicpar.sinkingsimulatorclassic.graphics.Shader.java
License:Open Source License
public Shader compile() { if (ID == null) { delete();//ww w . j av a2 s . c o m ID = GL20.glCreateShader(type); } GL20.glShaderSource(ID, source); GL20.glCompileShader(ID); if (GL20.glGetShaderi(ID, GL20.GL_COMPILE_STATUS) != GL11.GL_TRUE) { logger.error("failed to compile shader: \n" + GL20.glGetShaderInfoLog(ID)); } return this; }
From source file:com.xrbpowered.gl.res.shaders.Shader.java
License:Open Source License
public static int loadShader(String path, int type) { if (path == null) return 0; int shaderId = 0; String shaderSource;/*from w w w . j a v a 2 s.c om*/ try { shaderSource = AssetManager.defaultAssets.loadString(path); } catch (IOException e) { throw new RuntimeException(e); } shaderId = GL20.glCreateShader(type); GL20.glShaderSource(shaderId, shaderSource); GL20.glCompileShader(shaderId); if (GL20.glGetShaderi(shaderId, GL20.GL_COMPILE_STATUS) == GL11.GL_FALSE) { System.err.println("Could not compile shader " + path); System.err.println(GL20.glGetShaderInfoLog(shaderId, 8000)); System.exit(-1); // FIXME handle this exception!! } return shaderId; }
From source file:cuchaz.jfxgl.prism.JFXGLContext.java
License:Open Source License
@Override public int compileShader(String source, boolean isVertex) { int type;//from w ww .j a v a2 s . co m if (isVertex) { type = GL20.GL_VERTEX_SHADER; } else { type = GL20.GL_FRAGMENT_SHADER; } int id = GL20.glCreateShader(type); GL20.glShaderSource(id, source); GL20.glCompileShader(id); boolean isSuccess = GL20.glGetShaderi(id, GL20.GL_COMPILE_STATUS) != GL11.GL_FALSE; if (!isSuccess) { // get debug info StringBuilder buf = new StringBuilder(); buf.append("Shader did not compile\n"); // show the compiler log buf.append("\nCOMPILER LOG:\n"); buf.append(GL20.glGetShaderInfoLog(id, 4096)); // show the source with correct line numbering buf.append("\nSOURCE:\n"); String[] lines = source.split("\\n"); for (int i = 0; i < lines.length; i++) { buf.append(String.format("%4d: ", i + 1)); buf.append(lines[i]); buf.append("\n"); } throw new RuntimeException(buf.toString()); } return id; }
From source file:de.ikosa.mars.viewer.glviewer.engine.GLHardcodedShader.java
License:Open Source License
private static int compileShader(String source, int shaderType) { int vertexShaderId = GL20.glCreateShader(shaderType); GL20.glShaderSource(vertexShaderId, source); GL20.glCompileShader(vertexShaderId); validateCompilation(vertexShaderId); return vertexShaderId; }
From source file:de.ikosa.mars.viewer.glviewer.engine.GLShaderBuilder.java
License:Open Source License
private int compileShader(String source, int shaderType) { int vertexShaderId = GL20.glCreateShader(shaderType); GL20.glShaderSource(vertexShaderId, source); GL20.glCompileShader(vertexShaderId); validateCompilation(vertexShaderId); return vertexShaderId; }
From source file:eu.over9000.veya.rendering.Program.java
License:Open Source License
private static int loadShader(final InputStream inputStream, final int type) { final StringBuilder builder = new StringBuilder(); try (BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream))) { String line;// w ww. java2 s . c om while ((line = reader.readLine()) != null) { builder.append(line).append("\n"); } reader.close(); } catch (final IOException e) { e.printStackTrace(); System.exit(2); } final int shaderID = GL20.glCreateShader(type); GL20.glShaderSource(shaderID, builder); GL20.glCompileShader(shaderID); Program.checkCompilation(shaderID); return shaderID; }
From source file:fr.guillaume.prive.viper.core.graphic.GraphicMotor.java
private static int loadShader(String filename, int type) { StringBuilder shaderSource = new StringBuilder(); try (BufferedReader reader = new BufferedReader(new FileReader(filename))) { String line;//w ww . ja v a2 s . c o m while ((line = reader.readLine()) != null) { shaderSource.append(line).append("\n"); } } catch (IOException e) { throw new IllegalStateException("Shader file i/o error", e); } int shaderID = GL20.glCreateShader(type); GL20.glShaderSource(shaderID, shaderSource); GL20.glCompileShader(shaderID); return shaderID; }
From source file:io.root.gfx.glutils.GL.java
License:Apache License
public static void glCompileShader(int shader) { GL20.glCompileShader(shader); }