Example usage for org.lwjgl.opengl GL20 glGetShaderi

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

Introduction

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

Prototype

@NativeType("void")
public static int glGetShaderi(@NativeType("GLuint") int shader, @NativeType("GLenum") int pname) 

Source Link

Document

Returns a parameter from a shader object.

Usage

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

License:Open Source License

private boolean validateCompilation(GenericShader shader) {
    boolean retValue = true;
    int isCompiled = GL20.glGetShaderi(shader.getShaderId(), GL20.GL_COMPILE_STATUS);
    if (isCompiled == GL11.GL_FALSE) {
        int logLen = GL20.glGetShaderi(shader.getShaderId(), GL20.GL_INFO_LOG_LENGTH);
        String log = GL20.glGetShaderInfoLog(shader.getShaderId(), logLen);
        logger.log(Level.SEVERE, "Error compiling shader: {0}", shader.getSourceFileName());
        logger.log(Level.SEVERE, log);
        retValue = false;//from   www.  j av  a2 s .c  o m
    }
    return retValue;
}

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

License:Open Source License

public static int glGetShaderi(int a, int b) {
    return GL20.glGetShaderi(a, b);
}

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");
    }// www .  j a  v  a 2s  . co 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 v a2  s  .  c  om

    //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: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  va  2  s  . 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;
}