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:jpcsp.graphics.RE.RenderingEngineLwjgl.java

License:Open Source License

@Override
public boolean compilerShader(int shader, String source) {
    GL20.glShaderSource(shader, source);
    GL20.glCompileShader(shader);
    return GL20.glGetShader(shader, GL20.GL_COMPILE_STATUS) == GL11.GL_TRUE;
}

From source file:lessur.util.shader.ShaderManager.java

License:GNU General Public License

/**
 * Fetches a shader id for a given fragment shader, generating
 * a new id if necessary//w w w .j a  v  a 2 s  . c  o m
 * @param fragmentShaderFilePath The path to the fragment shader
 * @returns shaderID for a given fragment shader
 */
public int getFragmentShaderID(String fragmentShaderFilePath) throws Exception {
    Integer id = shaderMap.get(fragmentShaderFilePath);
    if (id == null) {
        if (has_opengl2) {
            id = GL20.glCreateShader(GL20.GL_FRAGMENT_SHADER);
            GL20.glShaderSource(id, getProgramCode(fragmentShaderFilePath));
            GL20.glCompileShader(id);
            shaderMap.put(fragmentShaderFilePath, id);
        } else if (has_arb) {
            id = ARBShaderObjects.glCreateShaderObjectARB(ARBFragmentShader.GL_FRAGMENT_SHADER_ARB);
            ARBShaderObjects.glShaderSourceARB(id, getProgramCode(fragmentShaderFilePath));
            ARBShaderObjects.glCompileShaderARB(id);
            shaderMap.put(fragmentShaderFilePath, id);
        }
        StringBuilder errorMessage = new StringBuilder();
        //Check for errors with shader
        if (!compiledSuccessfully(id)) {
            errorMessage.append("Fragment Shader ");
            errorMessage.append(fragmentShaderFilePath);
            errorMessage.append(" failed to compile.\n");
            errorMessage.append(getShaderInfoLog(id));
            errorMessage.append("\n\n");
            errorMessage.insert(0, "Could not compile shader.\n");
            throw new Exception(errorMessage.toString());
        }
    }
    return id;
}

From source file:lessur.util.shader.ShaderManager.java

License:GNU General Public License

/**
 * Fetches a shader id for a given vertex shader, generating
 * a new id if necessary.//  w w  w. jav a  2s . c  om
 * @param fragmentFileName The path to the vertex shader
 * @returns shaderID The shader ID of the [new] fragment shader
 */
public int getVertexShaderID(String vertexShaderFilePath) throws Exception {
    Integer id = shaderMap.get(vertexShaderFilePath);
    if (id == null) {
        if (has_opengl2) {
            id = GL20.glCreateShader(GL20.GL_VERTEX_SHADER);
            GL20.glShaderSource(id, getProgramCode(vertexShaderFilePath));
            GL20.glCompileShader(id);
            shaderMap.put(vertexShaderFilePath, id);
        } else if (has_arb) {
            id = ARBShaderObjects.glCreateShaderObjectARB(ARBVertexShader.GL_VERTEX_SHADER_ARB);
            ARBShaderObjects.glShaderSourceARB(id, getProgramCode(vertexShaderFilePath));
            ARBShaderObjects.glCompileShaderARB(id);
            shaderMap.put(vertexShaderFilePath, id);
        }
        StringBuilder errorMessage = new StringBuilder();
        //Check for errors with shader
        if (!compiledSuccessfully(id)) {
            errorMessage.append("Vertex Shader ");
            errorMessage.append(vertexShaderFilePath);
            errorMessage.append(" failed to compile.\n");
            errorMessage.append(getShaderInfoLog(id));
            errorMessage.append("\n\n");
            errorMessage.insert(0, "Could not compile shader.\n");
            throw new Exception(errorMessage.toString());
        }
    }
    return id;
}

From source file:main.java.com.YeAJG.game.io.FileIOHandler.java

License:Open Source License

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

    try {//from  ww  w  .j ava2 s  .  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) {
        throw new IOException(e.getMessage());
    }

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

    if (GL20.glGetShader(shaderID, GL20.GL_COMPILE_STATUS) == GL11.GL_FALSE) {
        throw new IOException("Could not compile shader.");
    }

    Game.exitOnGLError("loadShader");
    return shaderID;
}

From source file:me.thehutch.fusion.engine.render.opengl.gl20.OpenGL20Program.java

License:Open Source License

@Override
public void attachShader(CharSequence source, int type) {
    ensureCreated("Program must be created to attach a shader.");
    // Generate a shader handle
    final int shaderId = GL20.glCreateShader(type);
    // Upload the shader's source to the GPU
    GL20.glShaderSource(shaderId, source);
    // Compile the shader
    GL20.glCompileShader(shaderId);
    // Check for a shader compile error
    if (GL20.glGetShaderi(shaderId, GL_COMPILE_STATUS) == GL_FALSE) {
        // Get the shader info log length
        final int logLength = GL20.glGetShaderi(shaderId, GL20.GL_INFO_LOG_LENGTH);
        throw new IllegalStateException(
                "OpenGL Error: Could not compile shader\n" + GL20.glGetShaderInfoLog(shaderId, logLength));
    }//from w  w w . j  a v  a  2s. c  o m
    // Attach the shader
    GL20.glAttachShader(id, shaderId);
    // Add the shader to the program
    this.shaders.add(shaderId);
    // Check for errors
    RenderUtil.checkGLError();
}

From source file:net.betabears.the2dlibrary.graphics.shader.Shader.java

public void createShader() {
    id = GL20.glCreateShader(type);//ww w  .  j  a v a  2  s  .co m
    GL20.glShaderSource(id, text);
    GL20.glCompileShader(id);

    int i;
    while ((i = GL11.glGetError()) != 0) {
        LOGGER.log(Level.WARNING, "Error happened during creation of ShaderProgram. GL error code: {0}", i);
    }
}

From source file:net.neilcsmith.praxis.video.opengl.internal.ShaderProgram.java

License:Apache License

private int loadShader(int type, String source) {
    //      GL20 gl = Gdx.graphics.getGL20();
    ByteBuffer tmp = ByteBuffer.allocateDirect(4);
    tmp.order(ByteOrder.nativeOrder());
    IntBuffer intbuf = tmp.asIntBuffer();

    int shader = GL20.glCreateShader(type);
    if (shader == 0)
        return -1;

    GL20.glShaderSource(shader, source);
    GL20.glCompileShader(shader);
    GL20.glGetShader(shader, GL20.GL_COMPILE_STATUS, intbuf);

    int compiled = intbuf.get(0);
    if (compiled == 0) {
        GL20.glGetShader(shader, GL20.GL_INFO_LOG_LENGTH, intbuf);
        int infoLogLength = intbuf.get(0);
        if (infoLogLength > 1) {
            String infoLog = getShaderInfoLog(shader);
            log += infoLog;// www .  j av a 2  s  . c om
        }
        return -1;
    }

    return shader;
}

From source file:net.smert.frameworkgl.opengl.helpers.ShaderHelper.java

License:Apache License

public void compile(int shaderID) {
    GL20.glCompileShader(shaderID);
}

From source file:opengl.test.object.object.java

protected final void vertexShader(String file) {
    this.vertexID = GL20.glCreateShader(GL20.GL_VERTEX_SHADER);
    GL20.glShaderSource(this.vertexID, object.sourceLoader(file));
    GL20.glCompileShader(this.vertexID);
    if (GL20.glGetShaderi(this.vertexID, GL20.GL_COMPILE_STATUS) != GL11.GL_TRUE) {
        throw new RuntimeException("Khong the compile vertexShader");
    }/*from  w  w  w  .j  a  va2s  .  c om*/
    GL20.glAttachShader(this.programID, this.vertexID);
}

From source file:opengl.test.object.object.java

protected final void fragmentShader(String file) {
    this.fragmentID = GL20.glCreateShader(GL20.GL_FRAGMENT_SHADER);
    GL20.glShaderSource(this.fragmentID, object.sourceLoader(file));
    GL20.glCompileShader(this.fragmentID);
    if (GL20.glGetShaderi(this.fragmentID, GL20.GL_COMPILE_STATUS) != GL11.GL_TRUE) {
        throw new RuntimeException("Khong the compile fragmentShader");
    }//from  ww  w  . ja v a 2  s . c  o m
    GL20.glAttachShader(this.programID, this.fragmentID);

}