Example usage for org.lwjgl.opengl GL20 glLinkProgram

List of usage examples for org.lwjgl.opengl GL20 glLinkProgram

Introduction

In this page you can find the example usage for org.lwjgl.opengl GL20 glLinkProgram.

Prototype

public static void glLinkProgram(@NativeType("GLuint") int program) 

Source Link

Document

Links a program object.

Usage

From source file:processing.lwjgl.PGL.java

License:Open Source License

public void linkProgram(int prog) {
    GL20.glLinkProgram(prog);
}

From source file:processing.opengl.PLWJGL.java

License:Open Source License

@Override
public void linkProgram(int program) {
    GL20.glLinkProgram(program);
}

From source file:renderEngine.ShaderProgram.java

/**
 * Binds the <b>in</b> variables of the vertex shader, the uniform
 * variables, and links and validates both shaders.
 *//*from   w  w  w .j a  v a  2s .  c o  m*/
private void bindVariablesAndValidate() {
    bindAttributes();
    GL20.glLinkProgram(programID);
    GL20.glValidateProgram(programID);
    getAllUniformLocations();
}

From source file:se.angergard.engine.graphics.ShaderProgram.java

License:Apache License

/** Links the program and validates it
 * @return This ShaderProgram *///from  w  w  w. j  a  va  2 s  . co m
public ShaderProgram compileProgram() {
    GL20.glLinkProgram(program);

    if (program == -1) {
        System.err.println("ShaderProgram wasn't succsessfully created");
    }

    String error = GL20.glGetProgramInfoLog(program, GL20.GL_INFO_LOG_LENGTH);
    if (!error.equals("")) {
        System.out.println(error);
    }

    GL20.glValidateProgram(program);

    if (vertexShader != -1) {
        GL20.glDetachShader(program, vertexShader);
        GL20.glDeleteShader(vertexShader);
    }
    if (fragmentShader != -1) {
        GL20.glDetachShader(program, fragmentShader);
        GL20.glDeleteShader(fragmentShader);
    }
    if (geometryShader != -1) {
        GL20.glDetachShader(program, geometryShader);
        GL20.glDeleteShader(geometryShader);
    }
    return this;
}

From source file:thebounzer.org.lwgldemo.glutils.ShaderProgram.java

License:Open Source License

private boolean validateProgram(int programId) {
    GL20.glLinkProgram(programId);
    GL20.glValidateProgram(programId);//from w  ww  .j ava 2  s .c o  m
    boolean result = true;
    int errorCheckValue = GL11.glGetError();
    if (errorCheckValue != GL11.GL_NO_ERROR) {
        logger.log(Level.SEVERE, "ERROR - Could not create the shaders:{0}",
                GLU.gluErrorString(errorCheckValue));
        result = false;
    }
    return result;
}

From source file:tk.ivybits.engine.gl.GL.java

License:Open Source License

public static void glLinkProgram(int a) {
    GL20.glLinkProgram(a);
}

From source file:uk.co.ifs_studios.engine.shader.ShaderProgram.java

License:Open Source License

/**
 * Link and validate shader program./*from www .  j av  a  2  s  . c om*/
 */
public void link() {
    GL20.glLinkProgram(this.id);
    GL20.glValidateProgram(this.id);

    int error = GL11.glGetError();
    if (error != GL11.GL_NO_ERROR) {
        EngineLogger.error(new ShaderException("Couldn't link and validate shader program.", null));
    }
}

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);

    //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;//  w w w  .j  a  va2s. c  o m

    //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   www  .  ja va  2  s.  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:view.util.ShaderProgram.java

public void create() {
    program = GL20.glCreateProgram();
    GL20.glAttachShader(program, s0.getID());
    GL20.glAttachShader(program, s1.getID());
    GL20.glLinkProgram(program);
}