List of usage examples for org.lwjgl.opengl GL20 glAttachShader
public static void glAttachShader(@NativeType("GLuint") int program, @NativeType("GLuint") int shader)
From source file:uk.co.ifs_studios.engine.shader.ShaderProgram.java
License:Open Source License
/** * Add VertexShader to program.//from w ww. j a v a2 s. co m * * @param shader * - Loaded VertexShader. */ public void addVertexShader(VertexShader shader) { GL20.glAttachShader(this.id, shader.getID()); }
From source file:uk.co.ifs_studios.engine.shader.ShaderProgram.java
License:Open Source License
/** * Add FragmentShader to program./* w ww. j a va2s .co m*/ * * @param shader * - Loaded FragmentShader. */ public void addFragmentShader(FragmentShader shader) { GL20.glAttachShader(this.id, shader.getID()); }
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);//from ww w .j a va2 s.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 w ww .j ava 2s . c o 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:view.util.ShaderProgram.java
public void create() { program = GL20.glCreateProgram(); GL20.glAttachShader(program, s0.getID()); GL20.glAttachShader(program, s1.getID()); GL20.glLinkProgram(program); }
From source file:voxicity.ChunkNode.java
License:Open Source License
void create_shader_prog() { shader_prog = GL20.glCreateProgram(); int vert_shader = create_vert_shader("shader/block.vert"); int frag_shader = create_frag_shader("shader/block.frag"); GL20.glAttachShader(shader_prog, vert_shader); GL20.glAttachShader(shader_prog, frag_shader); GL20.glLinkProgram(shader_prog);//from w ww . j a va2 s.c o m if (check_shader_error(shader_prog)) { GL20.glDeleteProgram(shader_prog); shader_prog = 0; } GL20.glUseProgram(shader_prog); int uniform; if ((uniform = GL20.glGetUniformLocation(shader_prog, "textures")) != -1) { GL20.glUniform1i(uniform, 0); } System.out.println("Textures at: " + GL20.glGetUniformLocation(shader_prog, "textures")); GL20.glUseProgram(0); }
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 www .j a va 2s . 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; }