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:renderEngine.ShaderProgram.java

/**
 * Loads the shader given its content and type.
 *
 * @param file The content of the shader file.
 * @param type The type of shader (lwjgl!).
 * @return The shader ID.//from w w  w .  j av  a 2 s . c om
 */
private static int loadShader(String file, int type) {
    StringBuilder shaderSource = new StringBuilder();

    try {
        BufferedReader reader = new BufferedReader(new FileReader(file));
        String line;
        while ((line = reader.readLine()) != null) {
            shaderSource.append(line).append("\n");
        }
        reader.close();
    } catch (IOException ex) {
        Logger.getLogger(ShaderProgram.class.getName()).log(Level.SEVERE, null, ex);
    }
    int shaderID = GL20.glCreateShader(type);
    GL20.glShaderSource(shaderID, shaderSource);
    GL20.glCompileShader(shaderID);
    if (GL20.glGetShaderi(shaderID, GL20.GL_COMPILE_STATUS) == GL11.GL_FALSE) {
        System.out.println(GL20.GL_COMPILE_STATUS);
        System.out.println("Shader of type: " + type + " did not compile!");
    }
    return shaderID;

}

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

License:Apache License

private ShaderProgram addShader(String code, int type) {
    int shader = GL20.glCreateShader(type);
    GL20.glShaderSource(shader, code);
    GL20.glCompileShader(shader);/*from ww  w  .ja v a  2s .c  o  m*/

    if (type == GL20.GL_VERTEX_SHADER) {
        vertexShader = shader;
    }

    else if (type == GL20.GL_FRAGMENT_SHADER) {
        fragmentShader = shader;
    }

    else if (type == GL32.GL_GEOMETRY_SHADER) {
        geometryShader = shader;
    }

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

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

    GL20.glAttachShader(program, shader);
    return this;
}

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 .j  a  va2  s  .c  o  m
    GL20.glAttachShader(programId, shader.getShaderId());
}

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

License:Open Source License

public static void glShaderSource(int a, CharSequence b) {
    GL20.glShaderSource(a, b);
}

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

License:Open Source License

public static void glShaderSource(int a, ByteBuffer b) {
    GL20.glShaderSource(a, b);
}

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

License:Open Source License

public static void glShaderSource(int a, CharSequence[] b) {
    GL20.glShaderSource(a, b);
}

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

License:Open Source License

/**
 * Load and compile shader./*from  ww  w . j a v a  2  s.c om*/
 */
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.// www. jav  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");
    }// w w w . j av  a 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 w w w. j  a va  2 s  .c o 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;
}