Example usage for org.lwjgl.opengl ARBShaderObjects glGetObjectParameteriARB

List of usage examples for org.lwjgl.opengl ARBShaderObjects glGetObjectParameteriARB

Introduction

In this page you can find the example usage for org.lwjgl.opengl ARBShaderObjects glGetObjectParameteriARB.

Prototype

@NativeType("void")
public static int glGetObjectParameteriARB(@NativeType("GLhandleARB") int obj,
        @NativeType("GLenum") int pname) 

Source Link

Document

Returns object specific parameter values.

Usage

From source file:com.a2client.corex.Shader.java

License:Open Source License

public Shader(String name, List<String> defines) {
    String defstr = "";
    for (String s : defines)
        defstr += s;//from w ww .  j  a v a 2s  . c om
    this.name = name + Const.EXT_SHADER + "*" + defstr;
    MyInputStream in = FileSys.getStream(name + Const.EXT_SHADER);
    Log.debug("load shader: " + name);
    Log.debug("defines: " + defines.toString());
    String DEFINE = "#define";

    String define_str = DEFINE;
    for (String s : defines) {
        define_str += " " + s + CRLF + DEFINE;
    }

    try {
        shaders.clear();
        String source = readStreamAsString(in);
        // vertex
        String csource = define_str + " VERTEX" + CRLF + source;
        attach(ARBVertexShader.GL_VERTEX_SHADER_ARB, csource);
        // fragment
        csource = define_str + " FRAGMENT" + CRLF + source;
        attach(ARBFragmentShader.GL_FRAGMENT_SHADER_ARB, csource);
        // geometry
        if (source.contains("#ifdef GEOMETRY")) {
            csource = define_str + " GEOMETRY" + CRLF + source;
            attach(ARBGeometryShader4.GL_GEOMETRY_SHADER_ARB, csource);
            // may be need fix
            ARBGetProgramBinary.glProgramParameteri(ID, ARBGeometryShader4.GL_GEOMETRY_VERTICES_OUT_ARB, 3);
            ARBGetProgramBinary.glProgramParameteri(ID, ARBGeometryShader4.GL_GEOMETRY_INPUT_TYPE_ARB,
                    GL11.GL_TRIANGLES);
            ARBGetProgramBinary.glProgramParameteri(ID, ARBGeometryShader4.GL_GEOMETRY_VERTICES_OUT_ARB,
                    GL11.GL_TRIANGLE_STRIP);
        }

        ID = ARBShaderObjects.glCreateProgramObjectARB();
        Log.debug("shader id: " + ID);
        for (int obj : shaders) {
            ARBShaderObjects.glAttachObjectARB(ID, obj);
        }

        ARBShaderObjects.glLinkProgramARB(ID);
        if (ARBShaderObjects.glGetObjectParameteriARB(ID,
                ARBShaderObjects.GL_OBJECT_LINK_STATUS_ARB) == GL11.GL_FALSE) {
            Log.error(getLogInfo(ID));
            ID = 0;
            return;
        }

        ARBShaderObjects.glValidateProgramARB(ID);
        if (ARBShaderObjects.glGetObjectParameteriARB(ID,
                ARBShaderObjects.GL_OBJECT_VALIDATE_STATUS_ARB) == GL11.GL_FALSE) {
            Log.error(getLogInfo(ID));
            ID = 0;
        }

    } catch (Exception e) {
        e.printStackTrace();
    }
}

From source file:com.a2client.corex.Shader.java

License:Open Source License

public void attach(int shader_type, String src) {
    int obj = ARBShaderObjects.glCreateShaderObjectARB(shader_type);
    ARBShaderObjects.glShaderSourceARB(obj, src);
    ARBShaderObjects.glCompileShaderARB(obj);

    if (ARBShaderObjects.glGetObjectParameteriARB(obj,
            ARBShaderObjects.GL_OBJECT_COMPILE_STATUS_ARB) == GL11.GL_FALSE)
        throw new RuntimeException("Error creating shader: " + getLogInfo(obj));

    shaders.add(obj);/*from www .j a  v a 2s  . c om*/
}

From source file:com.a2client.corex.Shader.java

License:Open Source License

private static String getLogInfo(int obj) {
    return ARBShaderObjects.glGetInfoLogARB(obj,
            ARBShaderObjects.glGetObjectParameteriARB(obj, ARBShaderObjects.GL_OBJECT_INFO_LOG_LENGTH_ARB));
}

From source file:com.drazisil.opengl3demo.OpenGL3Demo.java

License:Apache License

private int createShader(String filename, int shaderType) throws Exception {
    int shader = 0;
    try {//from w  ww.  ja  v a 2s  .  com
        shader = ARBShaderObjects.glCreateShaderObjectARB(shaderType);

        if (shader == 0)
            return 0;

        ARBShaderObjects.glShaderSourceARB(shader, readFileAsString(filename));
        ARBShaderObjects.glCompileShaderARB(shader);

        if (ARBShaderObjects.glGetObjectParameteriARB(shader,
                ARBShaderObjects.GL_OBJECT_COMPILE_STATUS_ARB) == GL11.GL_FALSE)
            throw new RuntimeException("Error creating shader: " + getLogInfo(shader));

        return shader;
    } catch (Exception exc) {
        ARBShaderObjects.glDeleteObjectARB(shader);
        throw exc;
    }
}

From source file:com.github.atomicblom.nullplayerexception.client.render.ShaderHelper.java

License:Open Source License

private static int createProgram(String vert, String frag) {
    int vertId = 0, fragId = 0, program;
    if (vert != null)
        vertId = createShader(vert, VERT);
    if (frag != null)
        fragId = createShader(frag, FRAG);

    program = ARBShaderObjects.glCreateProgramObjectARB();
    if (program == 0)
        return 0;

    if (vert != null)
        ARBShaderObjects.glAttachObjectARB(program, vertId);
    if (frag != null)
        ARBShaderObjects.glAttachObjectARB(program, fragId);

    ARBShaderObjects.glLinkProgramARB(program);
    if (ARBShaderObjects.glGetObjectParameteriARB(program,
            ARBShaderObjects.GL_OBJECT_LINK_STATUS_ARB) == GL11.GL_FALSE) {
        Logger.severe(getLogInfo(program));
        return 0;
    }/*from   w  w  w  .  j a  v a2  s.c  o m*/

    ARBShaderObjects.glValidateProgramARB(program);
    if (ARBShaderObjects.glGetObjectParameteriARB(program,
            ARBShaderObjects.GL_OBJECT_VALIDATE_STATUS_ARB) == GL11.GL_FALSE) {
        Logger.severe(getLogInfo(program));
        return 0;
    }

    return program;
}

From source file:com.github.atomicblom.nullplayerexception.client.render.ShaderHelper.java

License:Open Source License

private static int createShader(String filename, int shaderType) {
    int shader = 0;
    try {/* ww  w .ja v a2  s .c  om*/
        shader = ARBShaderObjects.glCreateShaderObjectARB(shaderType);

        if (shader == 0)
            return 0;

        ARBShaderObjects.glShaderSourceARB(shader, readFileAsString(filename));
        ARBShaderObjects.glCompileShaderARB(shader);

        if (ARBShaderObjects.glGetObjectParameteriARB(shader,
                ARBShaderObjects.GL_OBJECT_COMPILE_STATUS_ARB) == GL11.GL_FALSE)
            throw new RuntimeException("Error creating shader: " + getLogInfo(shader));

        return shader;
    } catch (Exception e) {
        ARBShaderObjects.glDeleteObjectARB(shader);
        e.printStackTrace();
        return -1;
    }
}

From source file:com.runescape.client.revised.editor.modelviewer.Viewport.java

License:Open Source License

private int createShader(final String filename, final int shaderType) throws Exception {
    int shader = 0;
    try {/*  w w w.ja va 2  s  .c  om*/
        shader = ARBShaderObjects.glCreateShaderObjectARB(shaderType);

        if (shader == 0) {
            return 0;
        }

        ARBShaderObjects.glShaderSourceARB(shader, this.readFileAsString(filename));
        ARBShaderObjects.glCompileShaderARB(shader);
        if (ARBShaderObjects.glGetObjectParameteriARB(shader,
                ARBShaderObjects.GL_OBJECT_COMPILE_STATUS_ARB) == GL11.GL_FALSE) {
            throw new RuntimeException("Error creating shader: " + this.getLogInfo(shader));
        }
        return shader;
    } catch (final Exception exc) {
        ARBShaderObjects.glDeleteObjectARB(shader);
        throw exc;
    }
}

From source file:com.runescape.client.revised.editor.modelviewer.Viewport.java

License:Open Source License

private String getLogInfo(final int obj) {
    return ARBShaderObjects.glGetInfoLogARB(obj,
            ARBShaderObjects.glGetObjectParameteriARB(obj, ARBShaderObjects.GL_OBJECT_INFO_LOG_LENGTH_ARB));
}

From source file:com.runescape.client.revised.editor.modelviewer.Viewport.java

License:Open Source License

public boolean initShader() {
    int vertShader = 0, fragShader = 0;
    try {/* w w w . j  a v a2s  .  c om*/
        vertShader = this.createShader("./shaders/screen.vert", ARBVertexShader.GL_VERTEX_SHADER_ARB);
        fragShader = this.createShader("./shaders/screen.frag", ARBFragmentShader.GL_FRAGMENT_SHADER_ARB);
    } catch (final Exception exc) {
        exc.printStackTrace();
        return false;
    } finally {
        if ((vertShader == 0) || (fragShader == 0)) {
            return false;
        }
    }
    this.program = ARBShaderObjects.glCreateProgramObjectARB();
    if (this.program == 0) {
        return false;
    }
    ARBShaderObjects.glAttachObjectARB(this.program, vertShader);
    ARBShaderObjects.glAttachObjectARB(this.program, fragShader);
    ARBShaderObjects.glLinkProgramARB(this.program);
    if (ARBShaderObjects.glGetObjectParameteriARB(this.program,
            ARBShaderObjects.GL_OBJECT_LINK_STATUS_ARB) == GL11.GL_FALSE) {
        System.err.println(this.getLogInfo(this.program));
        return false;
    }
    ARBShaderObjects.glValidateProgramARB(this.program);
    if (ARBShaderObjects.glGetObjectParameteriARB(this.program,
            ARBShaderObjects.GL_OBJECT_VALIDATE_STATUS_ARB) == GL11.GL_FALSE) {
        System.err.println(this.getLogInfo(this.program));
        return false;
    }
    return true;
}

From source file:com.wuest.prefab.Structures.Render.ShaderHelper.java

License:Open Source License

private static int createProgram(String vert, String frag) {
    int vertId = 0, fragId = 0, program;

    if (vert != null) {
        vertId = createShader(vert, VERT);
    }//  ww  w .java2s.c  o  m

    if (frag != null) {
        fragId = createShader(frag, FRAG);
    }

    program = ARBShaderObjects.glCreateProgramObjectARB();

    if (program == 0) {
        return 0;
    }

    if (vert != null) {
        ARBShaderObjects.glAttachObjectARB(program, vertId);
    }

    if (frag != null) {
        ARBShaderObjects.glAttachObjectARB(program, fragId);
    }

    ARBShaderObjects.glLinkProgramARB(program);

    if (ARBShaderObjects.glGetObjectParameteriARB(program,
            ARBShaderObjects.GL_OBJECT_LINK_STATUS_ARB) == GL11.GL_FALSE) {
        return 0;
    }

    ARBShaderObjects.glValidateProgramARB(program);

    if (ARBShaderObjects.glGetObjectParameteriARB(program,
            ARBShaderObjects.GL_OBJECT_VALIDATE_STATUS_ARB) == GL11.GL_FALSE) {
        return 0;
    }

    return program;
}