Example usage for org.lwjgl.opengl ARBVertexShader GL_VERTEX_SHADER_ARB

List of usage examples for org.lwjgl.opengl ARBVertexShader GL_VERTEX_SHADER_ARB

Introduction

In this page you can find the example usage for org.lwjgl.opengl ARBVertexShader GL_VERTEX_SHADER_ARB.

Prototype

int GL_VERTEX_SHADER_ARB

To view the source code for org.lwjgl.opengl ARBVertexShader GL_VERTEX_SHADER_ARB.

Click Source Link

Document

Accepted by the shaderType argument of CreateShaderObjectARB and returned by the params parameter of GetObjectParameter{if}vARB.

Usage

From source file:sketchwars.graphics.Shader.java

private void loadShader(String vertexShaderFile, String fragmentShaderFile) throws Exception {
    int vertShader = createShaderFromFile(vertexShaderFile, ARBVertexShader.GL_VERTEX_SHADER_ARB);
    int fragShader = createShaderFromFile(fragmentShaderFile, ARBFragmentShader.GL_FRAGMENT_SHADER_ARB);

    int shaderProgram = ARBShaderObjects.glCreateProgramObjectARB();

    if (shaderProgram == 0) {
        throw new Exception("Error Creating shader program object.");
    }//from w w  w  . j  a v  a 2s . co m

    ARBShaderObjects.glAttachObjectARB(shaderProgram, vertShader);
    ARBShaderObjects.glAttachObjectARB(shaderProgram, fragShader);

    ARBShaderObjects.glLinkProgramARB(shaderProgram);
    if (ARBShaderObjects.glGetObjectParameteriARB(shaderProgram,
            ARBShaderObjects.GL_OBJECT_LINK_STATUS_ARB) == GL11.GL_FALSE) {
        throw new Exception(getLogInfo(shaderProgram));
    }

    ARBShaderObjects.glValidateProgramARB(shaderProgram);
    if (ARBShaderObjects.glGetObjectParameteriARB(shaderProgram,
            ARBShaderObjects.GL_OBJECT_VALIDATE_STATUS_ARB) == GL11.GL_FALSE) {
        throw new Exception(getLogInfo(shaderProgram));
    }

    program = shaderProgram;
}

From source file:taiga.code.opengl.shaders.ShaderProgram.java

License:Open Source License

@Override
public void load() {
    try {/*from w w w.j a v  a  2  s  .c  o m*/
        shaderprog = ARBShaderObjects.glCreateProgramObjectARB();

        if (!fragsrc.isEmpty()) {
            String[] src = new String[fragsrc.size()];
            fragsrc.toArray(src);

            attachShader(shaderprog, ARBFragmentShader.GL_FRAGMENT_SHADER_ARB, src);
        }

        if (!vertsrc.isEmpty()) {
            String[] src = new String[vertsrc.size()];
            vertsrc.toArray(src);

            attachShader(shaderprog, ARBVertexShader.GL_VERTEX_SHADER_ARB, src);
        }

        if (!geomsrc.isEmpty()) {
            String[] src = new String[geomsrc.size()];
            geomsrc.toArray(src);

            attachShader(shaderprog, ARBGeometryShader4.GL_GEOMETRY_SHADER_ARB, src);
        }

        ARBShaderObjects.glLinkProgramARB(shaderprog);
        if (ARBShaderObjects.glGetObjectParameteriARB(shaderprog,
                ARBShaderObjects.GL_OBJECT_LINK_STATUS_ARB) == GL11.GL_FALSE) {
            throw new RuntimeException(getLog(shaderprog));
        }

        ARBShaderObjects.glValidateProgramARB(shaderprog);
        if (ARBShaderObjects.glGetObjectParameteriARB(shaderprog,
                ARBShaderObjects.GL_OBJECT_VALIDATE_STATUS_ARB) == GL11.GL_FALSE) {
            throw new RuntimeException(getLog(shaderprog));
        }
    } catch (RuntimeException ex) {
        ARBShaderObjects.glDeleteObjectARB(shaderprog);

        throw ex;
    }

    for (Location loc : locations.values()) {
        if (loc.uniform)
            loc.index = ARBShaderObjects.glGetUniformLocationARB(shaderprog, loc.name);
        else
            loc.index = ARBVertexShader.glGetAttribLocationARB(shaderprog, loc.name);
    }
}

From source file:utils.ShaderHelper.java

static public void setupShaders(String vertShaderName, String fragShaderName) {
    int vertShader = 0, fragShader = 0;

    try {//from www  .jav a  2s.co m
        vertShader = createShader("shaders/" + vertShaderName, ARBVertexShader.GL_VERTEX_SHADER_ARB);
        fragShader = createShader("shaders/" + fragShaderName, ARBFragmentShader.GL_FRAGMENT_SHADER_ARB);
    } catch (Exception exc) {
        exc.printStackTrace();
        return;
    } finally {
        if (vertShader == 0 || fragShader == 0)
            return;
    }

    program = ARBShaderObjects.glCreateProgramObjectARB();

    if (program == 0)
        return;

    /*
    * if the vertex and fragment shaders setup sucessfully,
    * attach them to the shader program, link the sahder program
    * (into the GL context I suppose), and validate
    */
    ARBShaderObjects.glAttachObjectARB(program, vertShader);
    ARBShaderObjects.glAttachObjectARB(program, fragShader);

    ARBShaderObjects.glLinkProgramARB(program);
    if (ARBShaderObjects.glGetObjectParameteriARB(program,
            ARBShaderObjects.GL_OBJECT_LINK_STATUS_ARB) == GL11.GL_FALSE) {
        System.err.println(getLogInfo(program));
        return;
    }

    ARBShaderObjects.glValidateProgramARB(program);
    if (ARBShaderObjects.glGetObjectParameteriARB(program,
            ARBShaderObjects.GL_OBJECT_VALIDATE_STATUS_ARB) == GL11.GL_FALSE) {
        System.err.println(getLogInfo(program));
        return;
    }

    useShader = true;
}

From source file:v9t9.gui.client.swt.SwtLwjglVideoRenderer.java

License:Open Source License

private synchronized void compileLinkShaders() {
    if (!supportsShaders)
        return;//from  ww  w  .  ja v a  2s . c  o m

    try {
        if (programObject != 0)
            ARBShaderObjects.glDeleteObjectARB(programObject);
        programObject = ARBShaderObjects.glCreateProgramObjectARB();

        IGLMonitorEffect effect = getEffect();
        String base = effect.getParams().getShaderBase();
        vertexShader = compileShader(vertexShader, ARBVertexShader.GL_VERTEX_SHADER_ARB, base + ".vert");
        fragShader = compileShader(fragShader, ARBFragmentShader.GL_FRAGMENT_SHADER_ARB, base + ".frag");

        linkShaders(programObject, vertexShader, fragShader);

        updateProgramVariables();

    } catch (GLShaderException e) {
        ARBShaderObjects.glDeleteObjectARB(programObject);
        ARBShaderObjects.glDeleteObjectARB(fragShader);
        ARBShaderObjects.glDeleteObjectARB(vertexShader);
        programObject = fragShader = vertexShader = 0;
        e.printStackTrace();
    }
}

From source file:volpes.ldk.client.opengl.Shader.java

License:Open Source License

public Shader(String src, int type) {
    if (type == ARBVertexShader.GL_VERTEX_SHADER_ARB || type == ARBFragmentShader.GL_FRAGMENT_SHADER_ARB) {
        id = ARBShaderObjects.glCreateShaderObjectARB(type);

        if (id == 0) {
            throw new LDKException(
                    "Unable to allocate shader. Something fishy going on. Glad im not to debug this");
        }//from   ww  w .  j a  v  a2  s .co  m
        ARBShaderObjects.glShaderSourceARB(id, src);
        ARBShaderObjects.glCompileShaderARB(id);
        if (ARBShaderObjects.glGetObjectParameteriARB(id,
                ARBShaderObjects.GL_OBJECT_COMPILE_STATUS_ARB) == GL11.GL_FALSE) {
            String log = ARBShaderObjects.glGetInfoLogARB(id, ARBShaderObjects.glGetObjectParameteriARB(id,
                    ARBShaderObjects.GL_OBJECT_INFO_LOG_LENGTH_ARB));
            throw new LDKException("Unable to compile shader " + log);
        }

    }

}

From source file:volpes.ldk.client.resourceloaders.ShaderLoader.java

License:Open Source License

@Override
public void load(Element xmlElement) {
    String id = xmlElement.getAttribute("id");
    String path = xmlElement.getTextContent();
    if (path == null || path.length() == 0) {
        System.err.println("Shader [" + id + "] has invalid path");
        return;/*  w  w w .j av a 2 s .  co m*/
    }
    StringBuilder src = new StringBuilder();
    InputStreamReader in = null;
    BufferedReader reader = null;
    try {
        in = new InputStreamReader(VFS.getFile(path));
        reader = new BufferedReader(in);
        String line;
        while ((line = reader.readLine()) != null) {
            src.append(line).append('\n');
        }
        reader.close();
        in.close();
    } catch (Exception e) {
        System.err.println("Unable to open file " + id + " at " + path);
        return;
    }

    int type;
    if (xmlElement.getAttribute("type").equalsIgnoreCase("fragment")) {
        type = ARBFragmentShader.GL_FRAGMENT_SHADER_ARB;
    } else if (xmlElement.getAttribute("type").equalsIgnoreCase("vertex")) {
        type = ARBVertexShader.GL_VERTEX_SHADER_ARB;
    } else {
        System.err.println("Shader must either be a fragment or vertex");
        return;
    }

    Shader shader = new Shader(src.toString(), type);

    numberOfLoadedObjects++;
    shaderMap.put(id, shader);

}

From source file:zildo.platform.opengl.LwjglPixelShaders.java

License:Open Source License

@Override
protected int doCreateShader(String strData, boolean pixel) {

    ByteBuffer shaderPro = transformStringIntoByteBuffer(strData);

    // Create pixel shader
    int type = ARBFragmentShader.GL_FRAGMENT_SHADER_ARB;
    if (!pixel) {
        type = ARBVertexShader.GL_VERTEX_SHADER_ARB;
    }/*from   w  ww . j a  v a  2  s.c  o  m*/
    int vertexShader = ARBShaderObjects.glCreateShaderObjectARB(type);
    ARBShaderObjects.glShaderSourceARB(vertexShader, shaderPro);

    // Compile, link, validate
    ARBShaderObjects.glCompileShaderARB(vertexShader);

    int programObject = ARBShaderObjects.glCreateProgramObjectARB();
    ARBShaderObjects.glAttachObjectARB(programObject, vertexShader);

    ARBShaderObjects.glLinkProgramARB(programObject);
    ARBShaderObjects.glValidateProgramARB(programObject);

    printLogInfo(vertexShader);

    return programObject;
}