Example usage for org.lwjgl.opengl GL20 glGetShaderInfoLog

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

Introduction

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

Prototype

@NativeType("void")
public static String glGetShaderInfoLog(@NativeType("GLuint") int shader) 

Source Link

Document

Returns the information log for a shader object.

Usage

From source file:com.badlogic.gdx.backends.jglfw.JglfwGL20.java

License:Apache License

public String glGetShaderInfoLog(int shader) {
    return GL20.glGetShaderInfoLog(shader);
}

From source file:com.google.gapid.glviewer.gl.Shader.java

License:Apache License

private static int createShader(int type, String source) {
    int shader = GL20.glCreateShader(type);
    GL20.glShaderSource(shader, source);
    GL20.glCompileShader(shader);/*from   w  w  w  . j  a v  a 2  s .  c om*/
    if (GL20.glGetShaderi(shader, GL20.GL_COMPILE_STATUS) != GL11.GL_TRUE) {
        LOG.log(WARNING,
                "Failed to compile shader:\n" + GL20.glGetShaderInfoLog(shader) + "\n\nSource:\n" + source);
        GL20.glDeleteShader(shader);
        return -1;
    }
    return shader;
}

From source file:com.google.gapid.glviewer.gl.Util.java

License:Apache License

public static String getShaderInfoLog(int shader) {
    return GL20.glGetShaderInfoLog(shader);
}

From source file:com.timvisee.voxeltex.module.shader.raw.RawShader.java

License:Open Source License

@Override
public int compile() {
    // Show a status message
    System.out.print("Compiling shader... ");

    // Create a new OpenGL shader program
    int program = GL20.glCreateProgram();

    // Shader IDs
    int vertexId = 0;
    int fragmentId = 0;

    // Compile the vertex shader if available
    if (hasVertexShader()) {
        // Create the vertex shader
        vertexId = GL20.glCreateShader(GL20.GL_VERTEX_SHADER);

        // Attach the vertex shader source and compile it
        GL20.glShaderSource(vertexId, vertexSource);
        GL20.glCompileShader(vertexId);//w  w w. ja  v  a 2  s.co  m

        // Check for compiling errors
        if (GL20.glGetShaderi(vertexId, GL20.GL_COMPILE_STATUS) == GL11.GL_FALSE) {
            // Show an error message
            System.out.println("FAIL\nFailed to compile the vertex shader");
            System.out.println(GL20.glGetShaderInfoLog(vertexId));

            // Delete the shader before returning
            GL20.glDeleteShader(vertexId);
            throw new RuntimeException("Failed to compile the vertex shader");
        }
    }

    // Compile the fragment shader if available
    if (hasFragmentShader()) {
        // Create the fragment shader
        fragmentId = GL20.glCreateShader(GL20.GL_FRAGMENT_SHADER);

        // Attach the fragment shader source and compile it
        GL20.glShaderSource(fragmentId, fragmentSource);
        GL20.glCompileShader(fragmentId);

        // Check for compiling errors
        if (GL20.glGetShaderi(fragmentId, GL20.GL_COMPILE_STATUS) == GL11.GL_FALSE) {
            // Show an error message
            System.out.println("FAIL\nFailed to compile the fragment shader");
            System.out.println(GL20.glGetShaderInfoLog(fragmentId));

            // Delete the shader before returning
            GL20.glDeleteShader(fragmentId);
            throw new RuntimeException("Failed to compile the vertex shader");
        }
    }

    // Attach all compiled shaders
    if (hasVertexShader())
        GL20.glAttachShader(program, vertexId);
    if (hasFragmentShader())
        GL20.glAttachShader(program, fragmentId);

    // Link the shader program to OpenGL and link it
    GL20.glLinkProgram(program);
    GL20.glValidateProgram(program);

    // Shaders have been attached to the program, delete their compiled sources to save memory
    if (hasVertexShader())
        GL20.glDeleteShader(vertexId);
    if (hasFragmentShader())
        GL20.glDeleteShader(fragmentId);

    // Show a status message
    System.out.println("OK");

    // Return the created OpenGL shader program
    return program;
}

From source file:com.wicpar.sinkingsimulatorclassic.graphics.Shader.java

License:Open Source License

public Shader compile() {
    if (ID == null) {
        delete();/*from   www  . j a  v a2s  . c o m*/
        ID = GL20.glCreateShader(type);
    }
    GL20.glShaderSource(ID, source);
    GL20.glCompileShader(ID);
    if (GL20.glGetShaderi(ID, GL20.GL_COMPILE_STATUS) != GL11.GL_TRUE) {
        logger.error("failed to compile shader: \n" + GL20.glGetShaderInfoLog(ID));
    }
    return this;
}

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.
 *///w  w w.  j  av  a  2s.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;
}