List of usage examples for org.lwjgl.opengl GL20 glLinkProgram
public static void glLinkProgram(@NativeType("GLuint") int program)
From source file:org.jogamp.glg2d.impl.shader.AbstractShaderPipeline.java
License:Apache License
protected void createProgramAndAttach() { if (GL20.glIsProgram(programId)) { delete();/*from w w w . jav a 2s. c om*/ } programId = GL20.glCreateProgram(); attachShaders(); GL20.glLinkProgram(programId); checkProgramThrowException(programId, GL20.GL_LINK_STATUS); }
From source file:org.oscim.gdx.LwjglGL20.java
License:Apache License
public void linkProgram(int program) { GL20.glLinkProgram(program); }
From source file:org.spout.engine.renderer.shader.ClientShader.java
License:Open Source License
private void doCompileShader(String vsource, String fsource) { if (((Client) Spout.getEngine()).getRenderMode() == RenderMode.GL11) { return;/*from w w w .jav a2 s.co m*/ } //Create a new Shader object on the GPU program = GL20.glCreateProgram(); int vShader = ShaderHelper.compileShader(vsource, GL20.GL_VERTEX_SHADER); GL20.glAttachShader(program, vShader); int fShader = ShaderHelper.compileShader(fsource, GL20.GL_FRAGMENT_SHADER); GL20.glAttachShader(program, fShader); GL20.glLinkProgram(program); int status = GL20.glGetProgram(program, GL20.GL_LINK_STATUS); if (status != GL11.GL_TRUE) { String error = GL20.glGetProgramInfoLog(program, 255); throw new ShaderCompileException("Link Error: " + error); } if (validateShader) { GL20.glValidateProgram(this.program); if (GL20.glGetProgram(program, GL20.GL_VALIDATE_STATUS) != GL11.GL_TRUE) { String info = GL20.glGetProgramInfoLog(program, 255); System.out.println("Validate Log: \n" + info); } System.out.println("Attached Shaders: " + GL20.glGetProgram(program, GL20.GL_ATTACHED_SHADERS)); int activeAttributes = GL20.glGetProgram(program, GL20.GL_ACTIVE_ATTRIBUTES); System.out.println("Active Attributes: " + activeAttributes); int maxAttributeLength = GL20.glGetProgram(program, GL20.GL_ACTIVE_ATTRIBUTE_MAX_LENGTH); for (int i = 0; i < activeAttributes; i++) { System.out.println("\t" + GL20.glGetActiveAttrib(program, i, maxAttributeLength)); } int activeUniforms = GL20.glGetProgram(program, GL20.GL_ACTIVE_UNIFORMS); System.out.println("Active Uniforms: " + activeUniforms); int maxUniformLength = GL20.glGetProgram(program, GL20.GL_ACTIVE_UNIFORM_MAX_LENGTH); for (int i = 0; i < activeUniforms; i++) { System.out.println("\t" + GL20.glGetActiveUniform(program, i, maxUniformLength)); } } System.out.println("Compiled Shader with id: " + program); }
From source file:org.spout.renderer.lwjgl.gl20.GL20Program.java
License:Open Source License
@Override public void link() { checkCreated();/*from w ww. j a v a 2 s . co m*/ // Add the attribute layouts to the program state final TObjectIntIterator<String> iterator = attributeLayouts.iterator(); while (iterator.hasNext()) { iterator.advance(); // Bind the index to the name GL20.glBindAttribLocation(id, iterator.value(), iterator.key()); } // Link program GL20.glLinkProgram(id); // Check program link status if (GL20.glGetProgrami(id, GL20.GL_LINK_STATUS) == GL11.GL_FALSE) { throw new IllegalStateException("Program could not be linked\n" + GL20.glGetProgramInfoLog(id, 1000)); } if (CausticUtil.isDebugEnabled()) { // Validate program GL20.glValidateProgram(id); // Check program validation status if (GL20.glGetProgrami(id, GL20.GL_VALIDATE_STATUS) == GL11.GL_FALSE) { final Logger logger = CausticUtil.getCausticLogger(); logger.log(Level.WARNING, "Program validation failed. This doesn''t mean it won''t work, so you maybe able to ignore it\n{0}", GL20.glGetProgramInfoLog(id, 1000)); } } // Load uniforms uniforms.clear(); final int uniformCount = GL20.glGetProgrami(id, GL20.GL_ACTIVE_UNIFORMS); for (int i = 0; i < uniformCount; i++) { final ByteBuffer nameBuffer = CausticUtil.createByteBuffer(256); GL20.glGetActiveUniform(id, i, CausticUtil.createIntBuffer(1), CausticUtil.createIntBuffer(1), CausticUtil.createIntBuffer(1), nameBuffer); nameBuffer.rewind(); final byte[] nameBytes = new byte[256]; nameBuffer.get(nameBytes); // Simplify array names final String name = new String(nameBytes).trim().replaceFirst("\\[\\d+\\]", ""); uniforms.put(name, GL20.glGetUniformLocation(id, name)); } // Check for errors LWJGLUtil.checkForGLError(); }
From source file:org.terasology.rendering.assets.GLSLShaderProgramInstance.java
License:Apache License
private void compileShaderProgram(int featureHash) { compileShader(GL20.GL_FRAGMENT_SHADER, featureHash); compileShader(GL20.GL_VERTEX_SHADER, featureHash); int shaderProgram = GL20.glCreateProgram(); shaderPrograms.put(featureHash, shaderProgram); GL20.glAttachShader(shaderProgram, fragmentPrograms.get(featureHash)); GL20.glAttachShader(shaderProgram, vertexPrograms.get(featureHash)); GL20.glLinkProgram(shaderProgram); GL20.glValidateProgram(shaderProgram); }
From source file:org.terasology.rendering.assets.MaterialShader.java
License:Apache License
public int generateShaderInstance() { int shaderProgram = GL20.glCreateProgram(); GL20.glAttachShader(shaderProgram, fragmentProgram); GL20.glAttachShader(shaderProgram, vertexProgram); GL20.glLinkProgram(shaderProgram); if (GL20.glGetProgram(shaderProgram, GL20.GL_LINK_STATUS) == GL11.GL_FALSE) { logger.error("Failed to link shader {}.", GL20.glGetProgramInfoLog(shaderProgram, GL20.GL_LINK_STATUS)); GL20.glDeleteProgram(shaderProgram); return 0; }/*from w ww . j a v a 2 s.c o m*/ GL20.glValidateProgram(shaderProgram); if (GL20.glGetProgram(shaderProgram, GL20.GL_VALIDATE_STATUS) == GL11.GL_FALSE) { logger.error("Failed to validate shader {}.", GL20.glGetProgramInfoLog(shaderProgram, GL20.GL_VALIDATE_STATUS)); GL20.glDeleteProgram(shaderProgram); return 0; } return shaderProgram; }
From source file:org.terasology.rendering.opengl.GLSLShader.java
License:Apache License
public int linkShaderProgram(int featureHash) { int shaderProgram = GL20.glCreateProgram(); GL20.glAttachShader(shaderProgram, fragmentPrograms.get(featureHash)); GL20.glAttachShader(shaderProgram, vertexPrograms.get(featureHash)); GL20.glLinkProgram(shaderProgram); GL20.glValidateProgram(shaderProgram); return shaderProgram; }
From source file:org.terasology.rendering.shader.ShaderProgram.java
License:Apache License
private void compileShaderProgram() { compileShader(GL20.GL_FRAGMENT_SHADER); compileShader(GL20.GL_VERTEX_SHADER); shaderProgram = GL20.glCreateProgram(); GL20.glAttachShader(shaderProgram, fragmentProgram); GL20.glAttachShader(shaderProgram, vertexProgram); GL20.glLinkProgram(shaderProgram); GL20.glValidateProgram(shaderProgram); }
From source file:ovh.tgrhavoc.gameengine.core.Shader.java
License:Open Source License
public void compileShader() { GL20.glLinkProgram(pointer); if (GL20.glGetProgrami(pointer, GL20.GL_LINK_STATUS) == 0) { System.err.println(GL20.glGetShaderInfoLog(pointer, 1024)); System.exit(-1);//from ww w . ja va 2s. c o m } GL20.glValidateProgram(pointer); if (GL20.glGetProgrami(pointer, GL20.GL_VALIDATE_STATUS) == 0) { System.err.println(GL20.glGetShaderInfoLog(pointer, 1024)); System.exit(-1); } }
From source file:playn.java.JavaGL20.java
License:Apache License
@Override public void glLinkProgram(int program) { GL20.glLinkProgram(program); }