List of usage examples for org.lwjgl.opengl ARBVertexShader GL_VERTEX_SHADER_ARB
int GL_VERTEX_SHADER_ARB
To view the source code for org.lwjgl.opengl ARBVertexShader GL_VERTEX_SHADER_ARB.
Click Source Link
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; }