Example usage for org.lwjgl.opengl GL20 GL_VERTEX_SHADER

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

Introduction

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

Prototype

int GL_VERTEX_SHADER

To view the source code for org.lwjgl.opengl GL20 GL_VERTEX_SHADER.

Click Source Link

Document

Accepted by the type argument of CreateShader and returned by the params parameter of GetShaderiv.

Usage

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 w w w.ja va 2 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");
    }/*w  w w . j  a va 2 s .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:voxicity.ChunkNode.java

License:Open Source License

int create_vert_shader(String filename) {
    int shader = GL20.glCreateShader(GL20.GL_VERTEX_SHADER);

    String code_text = "";
    String line;//from   w w  w . jav a 2 s.  c om
    try {
        BufferedReader reader = new BufferedReader(new FileReader(filename));
        while ((line = reader.readLine()) != null) {
            code_text += line + "\n";
        }
    } catch (Exception e) {
        System.out.println("Reading vertex shader code failed");
        e.printStackTrace();
    }

    GL20.glShaderSource(shader, code_text);

    GL20.glCompileShader(shader);

    System.out.println("Compiling vertex shader: " + filename);
    if (GL20.glGetShader(shader, GL20.GL_COMPILE_STATUS) == GL11.GL_FALSE) {
        print_shader_log(shader);
    }

    if (check_shader_error(shader)) {
        GL20.glDeleteShader(shader);
        shader = 0;
    }

    return shader;
}

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.
 *//*w ww.j a v a  2s.c  om*/
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;
}

From source file:za.co.sourlemon.acropolis.athens.shader.VertexShader.java

License:Open Source License

public VertexShader(File file) {
    super(file, GL20.GL_VERTEX_SHADER);
}