Example usage for org.lwjgl.opengl GL20 glCompileShader

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

Introduction

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

Prototype

public static void glCompileShader(@NativeType("GLuint") int shader) 

Source Link

Document

Compiles a shader object.

Usage

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

License:Open Source License

private void compileShader(int programId, GenericShader shader) throws IOException {
    GL20.glShaderSource(shader.getShaderId(), shader.getSource());
    GL20.glCompileShader(shader.getShaderId());
    if (!validateCompilation(shader)) {
        throw new IOException("Shader compilation failed, see log!");
    }/*from   w  w w.  java 2s.  c o m*/
    GL20.glAttachShader(programId, shader.getShaderId());
}

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

License:Open Source License

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

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

License:Open Source License

/**
 * Load and compile shader.//from   w  w  w.j  a  va  2s  .com
 */
public void load() {
    StringBuilder shaderSource = new StringBuilder();

    try {
        BufferedReader reader = new BufferedReader(new InputStreamReader(this.shaderStream));

        String line;
        while ((line = reader.readLine()) != null) {
            shaderSource.append(line).append("\n");
        }

        reader.close();
    } catch (FileNotFoundException e) {
        EngineLogger.error(new ShaderException("Shader file not found.", e));
    } catch (IOException e) {
        EngineLogger.error(new ShaderException("Couldn't read shader file.", e));
    }

    this.id = GL20.glCreateShader(GL20.GL_FRAGMENT_SHADER);
    GL20.glShaderSource(this.id, shaderSource);
    GL20.glCompileShader(this.id);
}

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

License:Open Source License

/**
 * Load and compile shader.//from ww  w.j a v  a2  s.  co m
 */
public void load() {
    StringBuilder shaderSource = new StringBuilder();

    try {
        BufferedReader reader = new BufferedReader(new InputStreamReader(this.shaderStream));

        String line;
        while ((line = reader.readLine()) != null) {
            shaderSource.append(line).append("\n");
        }

        reader.close();
    } catch (FileNotFoundException e) {
        EngineLogger.error(new ShaderException("Shader file not found.", e));
    } catch (IOException e) {
        EngineLogger.error(new ShaderException("Couldn't read shader file.", e));
    }

    this.id = GL20.glCreateShader(GL20.GL_VERTEX_SHADER);
    GL20.glShaderSource(this.id, shaderSource);
    GL20.glCompileShader(this.id);
}

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 ww  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:vertigo.graphics.lwjgl.ShaderUtils.java

License:Open Source License

private static int compileShader(String source, int type) throws Exception {
    String log = "";

    int shaderProgram = GL20.glCreateShader(type);
    GL20.glShaderSource(shaderProgram, source);
    GL20.glCompileShader(shaderProgram);

    //if info/warnings are found, append it to our shader log
    String infoLog = GL20.glGetShaderInfoLog(shaderProgram,
            GL20.glGetShaderi(shaderProgram, GL20.GL_INFO_LOG_LENGTH));
    if (infoLog != null && infoLog.trim().length() != 0) {
        log += "Vertex Shader : " + infoLog + "\n";
    }//from  ww  w  .  ja  va2 s.co  m

    //if the compiling was unsuccessful, throw an exception
    if (GL20.glGetShaderi(shaderProgram, GL20.GL_COMPILE_STATUS) == GL11.GL_FALSE) {
        throw new LWJGLException("Failure in compiling Vertex Shader. Error log:\n" + infoLog);
    }

    return shaderProgram;
}

From source file:view.util.Shader.java

public void createShader() {
    id = GL20.glCreateShader(type);
    GL20.glShaderSource(id, text);
    GL20.glCompileShader(id);
}

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   www  .  j a  va2 s  .c o  m
    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:voxicity.ChunkNode.java

License:Open Source License

int create_frag_shader(String filename) {
    int shader = GL20.glCreateShader(GL20.GL_FRAGMENT_SHADER);

    String code_text = "";
    String line;/*from  ww  w. j a v  a 2s  .  co m*/
    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);

    System.out.println("Compiling fragment shader: " + filename);
    GL20.glCompileShader(shader);

    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.
 *//*from   www  .  j  a  va  2 s .co  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;
}