List of usage examples for org.lwjgl.opengl ARBShaderObjects glGetObjectParameteriARB
@NativeType("void") public static int glGetObjectParameteriARB(@NativeType("GLhandleARB") int obj, @NativeType("GLenum") int pname)
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; }