Example usage for org.lwjgl.opengl GL20 glCompileShader

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

Introduction

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

Prototype

public static void glCompileShader(@NativeType("GLuint") int shader) 

Source Link

Document

Compiles a shader object.

Usage

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);

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

    // 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.voxelplugineering.voxelsniper.util.GLSLUtilities.java

License:Open Source License

public static int loadShader(String filename, int type) {
    StringBuilder shaderSource = new StringBuilder();
    int shaderID = 0;

    try {//from  w  w w . j a v  a  2s. c  o  m
        BufferedReader reader = new BufferedReader(new FileReader(filename));
        String line;
        while ((line = reader.readLine()) != null) {
            shaderSource.append(line).append("\n");
        }
        reader.close();
    } catch (IOException e) {
        System.err.println("Could not read file.");
        e.printStackTrace();
        System.exit(-1);
    }

    shaderID = GL20.glCreateShader(type);
    GL20.glShaderSource(shaderID, shaderSource);
    GL20.glCompileShader(shaderID);

    if (GL20.glGetShaderi(shaderID, GL20.GL_COMPILE_STATUS) == GL11.GL_FALSE) {
        System.err.println("Could not compile shader.");
        System.err.println(GL20.glGetShaderInfoLog(shaderID, 1024));
        System.exit(-1);
    }

    OpenGLUtilities.checkGLError("loadShader");

    return shaderID;
}

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

License:Open Source License

public Shader compile() {
    if (ID == null) {
        delete();//ww  w  . j  av a2  s .  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:com.xrbpowered.gl.res.shaders.Shader.java

License:Open Source License

public static int loadShader(String path, int type) {
    if (path == null)
        return 0;
    int shaderId = 0;
    String shaderSource;/*from  w w w  .  j a  v  a  2  s.c  om*/
    try {
        shaderSource = AssetManager.defaultAssets.loadString(path);
    } catch (IOException e) {
        throw new RuntimeException(e);
    }

    shaderId = GL20.glCreateShader(type);
    GL20.glShaderSource(shaderId, shaderSource);
    GL20.glCompileShader(shaderId);

    if (GL20.glGetShaderi(shaderId, GL20.GL_COMPILE_STATUS) == GL11.GL_FALSE) {
        System.err.println("Could not compile shader " + path);
        System.err.println(GL20.glGetShaderInfoLog(shaderId, 8000));
        System.exit(-1); // FIXME handle this exception!!
    }

    return shaderId;
}

From source file:cuchaz.jfxgl.prism.JFXGLContext.java

License:Open Source License

@Override
public int compileShader(String source, boolean isVertex) {

    int type;//from  w ww  .j a v a2 s . co  m
    if (isVertex) {
        type = GL20.GL_VERTEX_SHADER;
    } else {
        type = GL20.GL_FRAGMENT_SHADER;
    }

    int id = GL20.glCreateShader(type);
    GL20.glShaderSource(id, source);
    GL20.glCompileShader(id);

    boolean isSuccess = GL20.glGetShaderi(id, GL20.GL_COMPILE_STATUS) != GL11.GL_FALSE;
    if (!isSuccess) {

        // get debug info
        StringBuilder buf = new StringBuilder();
        buf.append("Shader did not compile\n");

        // show the compiler log
        buf.append("\nCOMPILER LOG:\n");
        buf.append(GL20.glGetShaderInfoLog(id, 4096));

        // show the source with correct line numbering
        buf.append("\nSOURCE:\n");
        String[] lines = source.split("\\n");
        for (int i = 0; i < lines.length; i++) {
            buf.append(String.format("%4d: ", i + 1));
            buf.append(lines[i]);
            buf.append("\n");
        }

        throw new RuntimeException(buf.toString());
    }

    return id;
}

From source file:de.ikosa.mars.viewer.glviewer.engine.GLHardcodedShader.java

License:Open Source License

private static int compileShader(String source, int shaderType) {
    int vertexShaderId = GL20.glCreateShader(shaderType);
    GL20.glShaderSource(vertexShaderId, source);
    GL20.glCompileShader(vertexShaderId);

    validateCompilation(vertexShaderId);
    return vertexShaderId;
}

From source file:de.ikosa.mars.viewer.glviewer.engine.GLShaderBuilder.java

License:Open Source License

private int compileShader(String source, int shaderType) {
    int vertexShaderId = GL20.glCreateShader(shaderType);
    GL20.glShaderSource(vertexShaderId, source);
    GL20.glCompileShader(vertexShaderId);

    validateCompilation(vertexShaderId);
    return vertexShaderId;
}

From source file:eu.over9000.veya.rendering.Program.java

License:Open Source License

private static int loadShader(final InputStream inputStream, final int type) {
    final StringBuilder builder = new StringBuilder();

    try (BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream))) {
        String line;//  w  ww.  java2  s .  c  om
        while ((line = reader.readLine()) != null) {
            builder.append(line).append("\n");
        }
        reader.close();
    } catch (final IOException e) {
        e.printStackTrace();
        System.exit(2);
    }

    final int shaderID = GL20.glCreateShader(type);
    GL20.glShaderSource(shaderID, builder);
    GL20.glCompileShader(shaderID);

    Program.checkCompilation(shaderID);

    return shaderID;
}

From source file:fr.guillaume.prive.viper.core.graphic.GraphicMotor.java

private static int loadShader(String filename, int type) {
    StringBuilder shaderSource = new StringBuilder();
    try (BufferedReader reader = new BufferedReader(new FileReader(filename))) {
        String line;//w  ww .  ja  v a2 s . c o m
        while ((line = reader.readLine()) != null) {
            shaderSource.append(line).append("\n");
        }
    } catch (IOException e) {
        throw new IllegalStateException("Shader file i/o error", e);
    }

    int shaderID = GL20.glCreateShader(type);
    GL20.glShaderSource(shaderID, shaderSource);
    GL20.glCompileShader(shaderID);

    return shaderID;
}

From source file:io.root.gfx.glutils.GL.java

License:Apache License

public static void glCompileShader(int shader) {
    GL20.glCompileShader(shader);
}