List of usage examples for org.lwjgl.opengl ARBShaderObjects glValidateProgramARB
public static native void glValidateProgramARB(@NativeType("GLhandleARB") int programObj);
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;//w w w . j a v a 2 s. c o m 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.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 av a 2 s. co 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.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 a 2s .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 . j av a 2 s . c om 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; }
From source file:de.sanandrew.mods.turretmod.client.util.ShaderHelper.java
License:Open Source License
private static int createProgram(ResourceLocation vert, ResourceLocation frag) { int vertId = 0; int fragId = 0; int program;/* ww w . j a va2 s . co m*/ 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) { TmrConstants.LOG.log(Level.ERROR, getLogInfo(program)); return 0; } ARBShaderObjects.glValidateProgramARB(program); if (ARBShaderObjects.glGetObjectParameteriARB(program, ARBShaderObjects.GL_OBJECT_VALIDATE_STATUS_ARB) == GL11.GL_FALSE) { TmrConstants.LOG.log(Level.ERROR, getLogInfo(program)); return 0; } return program; }
From source file:elucent.roots.render.ShaderHandler.java
License:Open Source License
private static int createProgram(String vert, String frag) { int vertId = 0, fragId = 0; if (vert != null) vertId = createShader(vert, VERT_ST); if (frag != null) fragId = createShader(frag, FRAG_ST); int 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) { FMLLog.log(Level.ERROR, getLogInfo(program)); return 0; }/* ww w . j a v a 2 s. c o m*/ ARBShaderObjects.glValidateProgramARB(program); if (ARBShaderObjects.glGetObjectParameteriARB(program, ARBShaderObjects.GL_OBJECT_VALIDATE_STATUS_ARB) == GL11.GL_FALSE) { FMLLog.log(Level.ERROR, getLogInfo(program)); return 0; } return program; }
From source file:fox.spiteful.ridiculous.client.shaders.ShaderHelper.java
License:Creative Commons License
private static int createProgram(String vert, String frag) { int vertId = 0, fragId = 0, program = 0; 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) { FMLLog.log(Level.ERROR, getLogInfo(program)); return 0; }/* w w w . jav a 2 s . com*/ ARBShaderObjects.glValidateProgramARB(program); if (ARBShaderObjects.glGetObjectParameteriARB(program, ARBShaderObjects.GL_OBJECT_VALIDATE_STATUS_ARB) == GL11.GL_FALSE) { FMLLog.log(Level.ERROR, getLogInfo(program)); return 0; } return program; }
From source file:game.map.Shader.java
public Shader() { int vertShader = 0, fragShader = 0; try {//from w w w. ja va 2s .co m vertShader = createShader("src/Terrain/shaders/screen.vert", ARBVertexShader.GL_VERTEX_SHADER_ARB); fragShader = createShader("src/Terrain/shaders/screen.frag", 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:ivorius.ivtoolkit.rendering.IvOpenGLHelper.java
License:Apache License
public static void glValidateProgram(int program) { Field useARBField = ReflectionHelper.findField(OpenGlHelper.class, "field_153214_y"); useARBField.setAccessible(true);/*from w ww. ja v a2 s.c o m*/ boolean useARB = false; try { useARB = useARBField.getBoolean(null); } catch (IllegalAccessException e) { e.printStackTrace(); } if (useARB) ARBShaderObjects.glValidateProgramARB(program); else GL20.glValidateProgram(program); }
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."); }/* ww w. j a va 2 s . c o 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; }