Example usage for org.lwjgl.opengl GL20 glCreateShader

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

Introduction

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

Prototype

@NativeType("GLuint")
public static int glCreateShader(@NativeType("GLenum") int type) 

Source Link

Document

Creates a shader object.

Usage

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

License:Open Source License

public static int glCreateShader(int a) {
    return GL20.glCreateShader(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  av 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_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.// w  ww . j  a v  a2s .c  o  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");
    }/*  w w  w .  j av  a 2 s.  c  om*/

    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. j  a v a 2  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   w ww  .  ja va 2  s.  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);

    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  w  w  w  .j  av  a2  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);

    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  ww  w.j av  a2  s. com*/
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;
}