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:ar.com.quark.backend.lwjgl.opengl.DesktopGLES20.java

License:Apache License

/**
 * {@inheritDoc}
 */
@Override
public void glShaderSource(int name, String source) {
    GL20.glShaderSource(name, source);
}

From source file:br.com.perin.shaders.ShaderProgram.java

private static int loadShader(String file, int type) {
    StringBuilder shaderSource = new StringBuilder();
    try (BufferedReader reader = new BufferedReader(new FileReader(file))) {
        String line;/*from   www  .  ja v a  2 s.  c o  m*/
        while ((line = reader.readLine()) != null) {
            shaderSource.append(line).append("//\n");
        }
    } catch (IOException e) {
        e.printStackTrace();
        System.exit(-1);
    }
    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.glGetShaderInfoLog(shaderID, 500));
        System.err.println("Could not compile shader!");
        System.exit(-1);
    }
    return shaderID;
}

From source file:com.adavr.player.globjects.Shader.java

License:Open Source License

public static Shader compile(CharSequence source, int type) {
    int id = GL20.glCreateShader(type);
    GL20.glShaderSource(id, source);
    GL20.glCompileShader(id);/*w  w w.j a v  a2 s  .  c o  m*/
    return new Shader(id);
}

From source file:com.auroraengine.opengl.shaders.GLShader.java

License:Open Source License

private void compile() throws GLException {
    try {/*from w w  w .  j a  va  2 s  .  com*/
        GL20.glShaderSource(index, code);
        GLException.checkGL("Sourcing Shader");
        GL20.glCompileShader(index);
        GLException.checkGL("Compiling Shader");
    } catch (GLException ex) {
        GL20.glDeleteShader(index);
        throw ex;
    }
    uniforms.clear();
    Matcher m = UNIFORM_PATTERN.matcher(code);
    while (m.find()) {

    }
}

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

License:Apache License

public void glShaderSource(int shader, String string) {
    GL20.glShaderSource(shader, string);
}

From source file:com.flowpowered.caustic.lwjgl.gl20.GL20Shader.java

License:MIT License

@Override
public void setSource(ShaderSource source) {
    checkCreated();/*w w  w .  j  a v  a2  s  .c  o  m*/
    if (source == null) {
        throw new IllegalArgumentException("Shader source cannot be null");
    }
    if (!source.isComplete()) {
        throw new IllegalArgumentException("Shader source isn't complete");
    }
    // If we don't have a previous shader or the type isn't the same, we need to create a new one
    final ShaderType type = source.getType();
    if (id == 0 || this.type != type) {
        // Delete the old shader
        GL20.glDeleteShader(id);
        // Create a shader of the correct type
        id = GL20.glCreateShader(type.getGLConstant());
        // Store the current type
        this.type = type;
    }
    // Upload the new source
    GL20.glShaderSource(id, source.getSource());
    // Set the layouts from the source
    attributeLayouts.clear();
    attributeLayouts.putAll(source.getAttributeLayouts());
    textureLayouts.clear();
    textureLayouts.putAll(source.getTextureLayouts());
    // Check for errors
    LWJGLUtil.checkForGLError();
}

From source file:com.geekyaubergine.geekyjgameutil.shader.ShaderProgram.java

License:Open Source License

/**
 * Loads shader program from file and returns the shader ID
 * @param file File to read/*  w w  w  . j  a v a2s .  c  o  m*/
 * @param type Type of shader
 * @return Shader ID
 * @throws IOException
 */
private int loadShaderFile(File file, int type) throws IOException {
    List<String> lines = FileUtil.readLinesFromFile(file, false, true);
    StringBuilder shaderSource = new StringBuilder();
    for (String line : lines) {
        shaderSource.append(line).append("\n");
    }

    int shaderID = GL20.glCreateShader(type);
    GL20.glShaderSource(shaderID, shaderSource);
    GL20.glCompileShader(shaderID);
    if (GL20.glGetShaderi(shaderID, GL20.GL_COMPILE_STATUS) == GL11.GL_FALSE) {
        Log.error("Could not complile shader");
        Log.error(GL20.glGetShaderInfoLog(shaderID, 500));
    }
    return shaderID;
}

From source file:com.github.begla.blockmania.rendering.manager.ShaderManager.java

License:Apache License

private int createShader(String filename, String title, int type) {
    Blockmania.getInstance().getLogger().log(Level.INFO, "Loading shader {0} ({1}, type = {2})",
            new String[] { title, filename, String.valueOf(type) });

    HashMap<String, Integer> shaders;

    if (type == GL20.GL_FRAGMENT_SHADER) {
        shaders = _fragmentShader;/*from   www . j  a  va2s .co m*/
    } else if (type == GL20.GL_VERTEX_SHADER) {
        shaders = _vertexShader;
    } else {
        return 0;
    }

    shaders.put(title, GL20.glCreateShader(type));

    if (shaders.get(title) == 0) {
        return 0;
    }

    String fragCode = _preProcessorPreamble + "\n";
    String line;
    try {
        BufferedReader reader = new BufferedReader(new InputStreamReader(ResourceLoader
                .getResource("com/github/begla/blockmania/data/shaders/" + filename).openStream()));
        while ((line = reader.readLine()) != null) {
            fragCode += line + "\n";
        }
    } catch (Exception e) {
        Blockmania.getInstance().getLogger().log(Level.SEVERE, "Failed to read shader.");
        return 0;
    }

    GL20.glShaderSource(shaders.get(title), fragCode);
    GL20.glCompileShader(shaders.get(title));

    printLogInfo(shaders.get(title));

    return shaders.get(title);
}

From source file:com.github.begla.blockmania.rendering.ShaderManager.java

License:Apache License

private int createFragShader(String filename, String title) {

    _fragmentShader.put(title, GL20.glCreateShader(GL20.GL_FRAGMENT_SHADER));

    if (_fragmentShader.get(title) == 0) {
        return 0;
    }//from   w w w.j a  v a 2 s  .  c  o  m

    String fragCode = "";
    String line;
    try {
        BufferedReader reader = new BufferedReader(new InputStreamReader(ResourceLoader
                .getResource("com/github/begla/blockmania/data/shaders/" + filename).openStream()));
        while ((line = reader.readLine()) != null) {
            fragCode += line + "\n";
        }
    } catch (Exception e) {
        Blockmania.getInstance().getLogger().log(Level.SEVERE, "Failed to read fragment shader.");
        return 0;
    }

    GL20.glShaderSource(_fragmentShader.get(title), fragCode);
    GL20.glCompileShader(_fragmentShader.get(title));

    printLogInfo(_fragmentShader.get(title));

    return _fragmentShader.get(title);
}

From source file:com.github.begla.blockmania.rendering.ShaderManager.java

License:Apache License

private int createVertexShader(String filename, String title) {

    _vertexShader.put(title, GL20.glCreateShader(GL20.GL_VERTEX_SHADER));

    if (_vertexShader.get(title) == 0) {
        return 0;
    }//from  w  w w .  j ava  2s . c  o m

    String fragCode = "";
    String line;
    try {
        BufferedReader reader = new BufferedReader(new InputStreamReader(ResourceLoader
                .getResource("com/github/begla/blockmania/data/shaders/" + filename).openStream()));
        while ((line = reader.readLine()) != null) {
            fragCode += line + "\n";
        }
    } catch (Exception e) {
        Blockmania.getInstance().getLogger().log(Level.SEVERE, "Failed to read vertex shader.");
        return 0;
    }

    GL20.glShaderSource(_vertexShader.get(title), fragCode);
    GL20.glCompileShader(_vertexShader.get(title));

    printLogInfo(_vertexShader.get(title));

    return _vertexShader.get(title);
}