/** * @param program * @see com.jogamp.opengl.GL2ES2#glLinkProgram(int) */ public void glLinkProgram(int program) { try{delegate.glLinkProgram(program);} catch(GLException e){glException(e); throw e;} } /**
public GLProgram link() { gl.glLinkProgram(programID); if (!validate()) { validationHandler.invalidProgram(this); } return this; }//end link()
@Override public void glLinkProgram(int program) { GLContext.getCurrentGL().getGL3().glLinkProgram(program); }
/** * Links this program. */ public void link() { if(programHandle == 0) { throw new RuntimeException("Program not created!"); } gl.glLinkProgram(this.programHandle); String linkageInfo = getProgramInfoLog(gl, this.programHandle); //throw exception if linking failed int[] linkageStatus = new int[1]; gl.glGetProgramiv(this.programHandle, gl.GL_LINK_STATUS, linkageStatus, 0); if (linkageStatus[0] == gl.GL_FALSE) { throw new RuntimeException(linkageInfo); } gl.glValidateProgram(this.programHandle); String validationInfo = getProgramInfoLog(gl, this.programHandle); //throw exception if validation failed int[] validationStatus = new int[1]; gl.glGetProgramiv(this.programHandle, gl.GL_LINK_STATUS, validationStatus, 0); if (validationStatus[0] == gl.GL_FALSE) { throw new RuntimeException(validationInfo); } }
public GLProgram(final GL pGL, final HashMap<GLShaderType, GLShader> pipeline) { super(); mGL = pGL; mProgramId = mGL.getGL3().glCreateProgram(); mShaders = pipeline; for (final GLShader shader : pipeline.values()) { mGL.getGL3().glAttachShader(mProgramId, shader.getId()); } mGL.getGL3().glLinkProgram(mProgramId); }
public GLProgram(final GL pGL, final HashMap<GLShaderType, GLShader> pipeline, final HashMap<String, String> parameters) { super(); mGL = pGL; this.parameters = parameters; mProgramId = mGL.getGL3().glCreateProgram(); mShaders = pipeline; for (final GLShader shader : pipeline.values()) { mGL.getGL3().glAttachShader(mProgramId, shader.getId()); } mGL.getGL3().glLinkProgram(mProgramId); }
public void recompileProgram(final GL pGL) { final long start = System.nanoTime(); pGL.getGL3().glDeleteProgram(mProgramId); mProgramId = mGL.getGL3().glCreateProgram(); for (final GLShader shader : mShaders.values()) { shader.setParameters(parameters); shader.recompile(pGL); mGL.getGL3().glAttachShader(mProgramId, shader.getId()); } mGL.getGL3().glLinkProgram(mProgramId); final long diff = System.nanoTime() - start; stale = false; }
private static int createProgram( final GL3 g, final int vs, final int fs, final IntBuffer status) { final int id = g.glCreateProgram(); if (id == 0) { throw new GLException("glCreateProgram failed"); } g.glAttachShader(id, vs); g.glAttachShader(id, fs); g.glLinkProgram(id); g.glGetProgramiv(id, GL2ES2.GL_LINK_STATUS, status); if (status.get(0) == GL.GL_FALSE) { final ByteBuffer buffer = Buffers.newDirectByteBuffer(8192); final IntBuffer buffer_length = Buffers.newDirectIntBuffer(1); g.glGetProgramInfoLog(id, 8192, buffer_length, buffer); final byte[] raw = new byte[buffer.remaining()]; buffer.get(raw); final String tt = new String(raw); throw new GLException("compile: program: " + tt); } return id; }
gl.glDeleteShader(glFragmentShader); gl.glLinkProgram(glProgram); gl.glValidateProgram(glProgram);
public GLProgram(final GLShader pVerteShader, final GLShader pFragmentShader) { super(); mVertexShader = pVerteShader; mFragmentShader = pFragmentShader; mShaders.put(GLShaderType.VertexShader, pVerteShader); mShaders.put(GLShaderType.FragmentShader, pFragmentShader); mGL = pVerteShader.getGL(); final int lVertexShaderId = mVertexShader.getId(); final int lFragmentShaderId = mFragmentShader.getId(); mProgramId = mGL.getGL3().glCreateProgram(); mGL.getGL3().glAttachShader(mProgramId, lVertexShaderId); mGL.getGL3().glAttachShader(mProgramId, lFragmentShaderId); mGL.getGL3().glLinkProgram(mProgramId); mGL.getGL3().glBindFragDataLocation(mProgramId, 0, "outColor"); }