Example usage for org.lwjgl.opengl GL20 glShaderSource

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

Introduction

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

Prototype

public static void glShaderSource(@NativeType("GLuint") int shader,
        @NativeType("GLchar const **") CharSequence string) 

Source Link

Document

Sets the source code in shader to the source code in the array of strings specified by strings .

Usage

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

    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  w  w  w .ja  v  a  2s  . c o  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;
}