Example usage for com.badlogic.gdx.graphics GL20 GL_FRAGMENT_SHADER

List of usage examples for com.badlogic.gdx.graphics GL20 GL_FRAGMENT_SHADER

Introduction

In this page you can find the example usage for com.badlogic.gdx.graphics GL20 GL_FRAGMENT_SHADER.

Prototype

int GL_FRAGMENT_SHADER

To view the source code for com.badlogic.gdx.graphics GL20 GL_FRAGMENT_SHADER.

Click Source Link

Usage

From source file:net.mgsx.game.examples.gpu.utils.ShaderProgramEx.java

License:Apache License

/** Loads and compiles the shaders, creates a new program and links the shaders.
 * /*from w ww. j a  v  a 2 s.  c o m*/
 * @param vertexShader
 * @param fragmentShader */
private void compileShaders(String vertexShader, String tcs, String tes, String geometryShader,
        String fragmentShader) {
    vertexShaderHandle = loadShader(GL20.GL_VERTEX_SHADER, vertexShader);
    fragmentShaderHandle = loadShader(GL20.GL_FRAGMENT_SHADER, fragmentShader);
    geometryShaderHandle = geometryShader == null ? -3 : loadShader(GL_GEOMETRY_SHADER, geometryShader);
    tcsHandle = tcs == null ? -3 : loadShader(GL_TESS_CONTROL_SHADER, tcs);
    tesHandle = tes == null ? -3 : loadShader(GL_TESS_EVALUATION_SHADER, tes);

    if (vertexShaderHandle == -1 || fragmentShaderHandle == -1
            || (geometryShader != null && geometryShaderHandle == -1) || (tcs != null && tcsHandle == -1)
            || (tes != null && tesHandle == -1)) {
        isCompiled = false;
        return;
    }

    program = linkProgram(createProgram());
    if (program == -1) {
        isCompiled = false;
        return;
    }

    isCompiled = true;
}

From source file:net.mgsx.game.examples.gpu.utils.ShaderProgramEx.java

License:Apache License

private int loadShader(int type, String source) {
    GL20 gl = Gdx.gl20;/*from   www  .  jav a2s .  c  o m*/
    IntBuffer intbuf = BufferUtils.newIntBuffer(1);

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

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

    int compiled = intbuf.get(0);
    if (compiled == 0) {
        // gl.glGetShaderiv(shader, GL20.GL_INFO_LOG_LENGTH, intbuf);
        // int infoLogLength = intbuf.get(0);
        // if (infoLogLength > 1) {
        String infoLog = gl.glGetShaderInfoLog(shader);

        IntMap<String> typeString = new IntMap<String>();
        typeString.put(GL20.GL_VERTEX_SHADER, "Vertex shader");
        typeString.put(GL20.GL_FRAGMENT_SHADER, "Vertex shader");
        typeString.put(GL_GEOMETRY_SHADER, "Geometry shader");
        typeString.put(GL_TESS_CONTROL_SHADER, "Tess control shader");
        typeString.put(GL_TESS_EVALUATION_SHADER, "Tess evaluation shader");

        log += typeString.get(type) + "\n";
        log += infoLog;
        // }
        return -1;
    }

    return shader;
}