List of usage examples for org.lwjgl.opengl GL20 glValidateProgram
public static void glValidateProgram(@NativeType("GLuint") int program)
From source file:vertigo.graphics.lwjgl.ShaderUtils.java
License:Open Source License
public static int attachShaders(String vertexCode, String fragmentCode) throws Exception { int vertexShaderProgram; int fragmentShaderProgram; int shaderprogram; String log = ""; vertexShaderProgram = compileShader(vertexCode, GL20.GL_VERTEX_SHADER); fragmentShaderProgram = compileShader(fragmentCode, GL20.GL_FRAGMENT_SHADER); shaderprogram = GL20.glCreateProgram(); GL20.glAttachShader(shaderprogram, vertexShaderProgram); GL20.glAttachShader(shaderprogram, fragmentShaderProgram); GL20.glLinkProgram(shaderprogram);/* w w w . j a v a 2s.c o m*/ //grab our info log String infoLog = GL20.glGetProgramInfoLog(shaderprogram, GL20.glGetProgrami(shaderprogram, GL20.GL_INFO_LOG_LENGTH)); //if some log exists, append it if (infoLog != null && infoLog.trim().length() != 0) log += infoLog; //if the link failed, throw some sort of exception if (GL20.glGetProgrami(shaderprogram, GL20.GL_LINK_STATUS) == GL11.GL_FALSE) throw new LWJGLException("Failure in linking program. Error log:\n" + infoLog); //detach and delete the shaders which are no longer needed GL20.glDetachShader(shaderprogram, vertexShaderProgram); GL20.glDetachShader(shaderprogram, fragmentShaderProgram); GL20.glDeleteShader(vertexShaderProgram); GL20.glDeleteShader(fragmentShaderProgram); GL20.glValidateProgram(shaderprogram); return shaderprogram; }
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"); }//from ww w . j a v a2 s .com 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:wrath.client.graphics.ShaderProgram.java
License:Open Source License
/** * Finalizes the shader and prepares it for rendering. * This is called automatically!//from ww w . j a va 2 s.c om */ public void finish() { GL20.glUseProgram(programID); GL20.glLinkProgram(programID); GL20.glValidateProgram(programID); setProjectionMatrix(Game.getCurrentInstance().getRenderer().getProjectionMatrix()); finalized = true; }