List of usage examples for org.lwjgl.opengl GL20 glGetShaderi
@NativeType("void") public static int glGetShaderi(@NativeType("GLuint") int shader, @NativeType("GLenum") int pname)
From source file:thebounzer.org.lwgldemo.glutils.ShaderProgram.java
License:Open Source License
private boolean validateCompilation(GenericShader shader) { boolean retValue = true; int isCompiled = GL20.glGetShaderi(shader.getShaderId(), GL20.GL_COMPILE_STATUS); if (isCompiled == GL11.GL_FALSE) { int logLen = GL20.glGetShaderi(shader.getShaderId(), GL20.GL_INFO_LOG_LENGTH); String log = GL20.glGetShaderInfoLog(shader.getShaderId(), logLen); logger.log(Level.SEVERE, "Error compiling shader: {0}", shader.getSourceFileName()); logger.log(Level.SEVERE, log); retValue = false;//from www. j av a2 s .c o m } return retValue; }
From source file:tk.ivybits.engine.gl.GL.java
License:Open Source License
public static int glGetShaderi(int a, int b) { return GL20.glGetShaderi(a, b); }
From source file:vertigo.graphics.lwjgl.ShaderUtils.java
License:Open Source License
private static int attachVFShaders(ShaderProg prog) throws Exception { System.out.println("attachVFShader"); int vertexShaderProgram; int fragmentShaderProgram; int shaderprogram; vertexShaderProgram = GL20.glCreateShader(GL20.GL_VERTEX_SHADER); fragmentShaderProgram = GL20.glCreateShader(GL20.GL_FRAGMENT_SHADER); GL20.glShaderSource(vertexShaderProgram, prog.getVertexSource()); GL20.glCompileShader(vertexShaderProgram); if (GL20.glGetShaderi(vertexShaderProgram, GL20.GL_COMPILE_STATUS) == GL11.GL_FALSE) { System.err.println("Compile error of vertexshader"); }// www . j a v a 2s . co m GL20.glShaderSource(fragmentShaderProgram, prog.getFragmentSource()); GL20.glCompileShader(fragmentShaderProgram); if (GL20.glGetShaderi(fragmentShaderProgram, GL20.GL_COMPILE_STATUS) == GL11.GL_FALSE) { System.err.println("Compile error of fragmentshader"); } // shaderprogram = GL20.glCreateProgram(); GL20.glAttachShader(shaderprogram, vertexShaderProgram); GL20.glAttachShader(shaderprogram, fragmentShaderProgram); GL20.glLinkProgram(shaderprogram); GL20.glValidateProgram(shaderprogram); if (GL20.glGetProgrami(shaderprogram, GL20.GL_LINK_STATUS) == GL11.GL_FALSE) { IntBuffer intBuffer = BufferTools.newIntBuffer(1); GL20.glGetProgram(shaderprogram, GL20.GL_INFO_LOG_LENGTH, intBuffer); int size = intBuffer.get(0); System.err.println("Program link error: " + size); if (size > 0) { ByteBuffer byteBuffer = BufferTools.newByteBuffer(size); GL20.glGetProgramInfoLog(shaderprogram, intBuffer, byteBuffer); byteBuffer.rewind(); byte[] bytearray = new byte[byteBuffer.remaining()]; byteBuffer.get(bytearray); System.err.println(bytearray.length); String s = new String(bytearray, 0, bytearray.length - 1, Charset.forName("UTF-8")); System.err.print("<<" + s + ">>"); /** * * * for (byte b : bytearray) { System.err.print(b+";"); } * */ System.err.println(" - End"); } else { System.out.println("Unknown"); } System.exit(1); } System.out.println("End of attachVFShader"); return shaderprogram; }
From source file:vertigo.graphics.lwjgl.ShaderUtils.java
License:Open Source License
private static int compileShader(String source, int type) throws Exception { String log = ""; int shaderProgram = GL20.glCreateShader(type); GL20.glShaderSource(shaderProgram, source); GL20.glCompileShader(shaderProgram); //if info/warnings are found, append it to our shader log String infoLog = GL20.glGetShaderInfoLog(shaderProgram, GL20.glGetShaderi(shaderProgram, GL20.GL_INFO_LOG_LENGTH)); if (infoLog != null && infoLog.trim().length() != 0) { log += "Vertex Shader : " + infoLog + "\n"; }//from w w w .j a v a2 s . c om //if the compiling was unsuccessful, throw an exception if (GL20.glGetShaderi(shaderProgram, GL20.GL_COMPILE_STATUS) == GL11.GL_FALSE) { throw new LWJGLException("Failure in compiling Vertex Shader. Error log:\n" + infoLog); } return shaderProgram; }
From source file:wrath.client.graphics.ShaderProgram.java
License:Open Source License
/** * Reads the two specified shader files and compiles the shaders into an OpenGL program format. * It is recommended that shaders be stored in the 'assets/shaders' directory (which is not present by default). * @param vertFile The {@link java.io.File} to read the vert shader from. * @param fragFile The {@link java.io.File} to read the frag shader from. * @return Returns the ShaderProgram object. *//*from w w w . ja va 2 s . c o m*/ public static ShaderProgram loadShaderProgram(File vertFile, File fragFile) { if (!vertFile.exists()) { System.err.println( "Could not load shader from file '" + vertFile.getAbsolutePath() + "'! File not found!"); return null; } if (!fragFile.exists()) { System.err.println( "Could not load shader from file '" + fragFile.getAbsolutePath() + "'! File not found!"); return null; } String vsrc = ""; try { String inp; try (BufferedReader read = new BufferedReader(new FileReader(vertFile))) { while ((inp = read.readLine()) != null) vsrc = vsrc + inp + '\n'; } } catch (IOException e) { System.err.println("Could not load shader from file '" + vertFile.getAbsolutePath() + "'! I/O Error!"); return null; } String fsrc = ""; try { String inp; try (BufferedReader read = new BufferedReader(new FileReader(fragFile))) { while ((inp = read.readLine()) != null) fsrc = fsrc + inp + '\n'; } } catch (IOException e) { System.err.println("Could not load shader from file '" + fragFile.getAbsolutePath() + "'! I/O Error!"); return null; } int prog = GL20.glCreateProgram(); int vert = GL20.glCreateShader(GL20.GL_VERTEX_SHADER); int frag = GL20.glCreateShader(GL20.GL_FRAGMENT_SHADER); GL20.glShaderSource(vert, vsrc); GL20.glShaderSource(frag, fsrc); GL20.glCompileShader(vert); if (GL20.glGetShaderi(vert, GL20.GL_COMPILE_STATUS) == GL11.GL_FALSE) { System.err.println( "Could not load shader from file '" + vertFile.getAbsolutePath() + "'! Compile Error:"); System.err.println(GL20.glGetShaderInfoLog(vert)); return null; } GL20.glCompileShader(frag); if (GL20.glGetShaderi(frag, GL20.GL_COMPILE_STATUS) == GL11.GL_FALSE) { System.err.println( "Could not load shader from file '" + fragFile.getAbsolutePath() + "'! Compile Error:"); System.err.println(GL20.glGetShaderInfoLog(frag)); return null; } GL20.glAttachShader(prog, vert); GL20.glAttachShader(prog, frag); ShaderProgram ret = new ShaderProgram(prog, vert, frag); Game.getCurrentInstance().addToTrashCleanup(ret); return ret; }