List of usage examples for org.lwjgl.opengl GL20 glBindAttribLocation
public static void glBindAttribLocation(@NativeType("GLuint") int program, @NativeType("GLuint") int index, @NativeType("GLchar const *") CharSequence name)
From source file:com.redthirddivision.quad.rendering.shaders.Shader.java
License:Apache License
protected void bindAttribute(int attribute, String name) { GL20.glBindAttribLocation(programID, attribute, name); }
From source file:com.rfdickerson.openworld.CubeGeometry.java
@Override void draw(SceneNode node) { if (!this.isLoaded) { this.init(); } else {/*ww w . j a v a 2 s. c om*/ GLSLShaderService shaderService = GLSLShaderService.getInstance(); // use shader Shader basic = shaderService.findShader("basic"); if (basic == null) { log.error("Could not find shader"); } else { //shaderService.useShader(basic); //basic.setUniform4f("projectionMatrix", c.getProjectionMatrix()); //basic.setUniform4f("viewMatrix", c.getViewMatrix()); //basic.setUniform4f("modelMatrix", t); basic.setUniform4f("MVPMatrix", node.getMVPMatrix()); basic.setUniform4f("MVMatrix", node.getMVMatrix()); basic.setUniform3f("NormalMatrix", node.getNormalMatrix()); shaderService.useShader(basic); GL20.glBindAttribLocation(basic.getProgramID(), 0, "in_Position"); } GL30.glBindVertexArray(vaoId); GL20.glEnableVertexAttribArray(0); GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, vboiId); GL11.glDrawElements(GL11.GL_TRIANGLE_FAN, indicesCount, GL11.GL_UNSIGNED_BYTE, 0); GL20.glDisableVertexAttribArray(0); GL30.glBindVertexArray(0); } exitOnGLError("draw terrain patch"); }
From source file:com.rfdickerson.openworld.RenderSurface.java
@Override void draw(SceneNode node) { if (!this.isLoaded) { this.init(); } else {//from www . j a v a 2 s . c om GLSLShaderService shaderService = GLSLShaderService.getInstance(); // use shader Shader basic = shaderService.findShader("basic"); if (basic == null) { log.error("Could not find shader"); } else { //shaderService.useShader(basic); //basic.setUniform4f("projectionMatrix", c.getProjectionMatrix()); //basic.setUniform4f("viewMatrix", c.getViewMatrix()); //basic.setUniform4f("modelMatrix", t); shaderService.useShader(basic); GL20.glBindAttribLocation(basic.getProgramID(), 0, "in_Position"); } GL30.glBindVertexArray(vaoId); GL20.glEnableVertexAttribArray(0); GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, vboiId); GL11.glDrawElements(GL11.GL_TRIANGLES, indicesCount, GL11.GL_UNSIGNED_BYTE, 0); GL20.glDisableVertexAttribArray(0); GL30.glBindVertexArray(0); } exitOnGLError("draw terrain patch"); }
From source file:com.voxelplugineering.voxelsniper.render.RenderMain.java
License:Open Source License
private void setupShaders() { // Load the vertex shader int vsId = GLSLUtilities.loadShader("assets/shaders/vertex.glsl", GL20.GL_VERTEX_SHADER); // Load the fragment shader int fsId = GLSLUtilities.loadShader("assets/shaders/fragment.glsl", GL20.GL_FRAGMENT_SHADER); // Create a new shader program that links both shaders pId = GL20.glCreateProgram();/* ww w . jav a 2 s.co m*/ GL20.glAttachShader(pId, vsId); GL20.glAttachShader(pId, fsId); GL20.glBindAttribLocation(pId, 0, "in_Position"); GL20.glBindAttribLocation(pId, 1, "in_Color"); GL20.glBindAttribLocation(pId, 2, "in_TextureCoord"); GL20.glLinkProgram(pId); GL20.glValidateProgram(pId); // Get matrices uniform locations projectionMatrixLocation = GL20.glGetUniformLocation(pId, "projectionMatrix"); viewMatrixLocation = GL20.glGetUniformLocation(pId, "viewMatrix"); modelMatrixLocation = GL20.glGetUniformLocation(pId, "modelMatrix"); OpenGLUtilities.checkGLError("setupShaders"); }
From source file:com.xrbpowered.gl.res.shaders.InstanceBuffer.java
License:Open Source License
public static int bindAttribLocations(Shader shader, int startIndex, String[] names) { for (int i = 0; i < names.length; i++) GL20.glBindAttribLocation(shader.pId, i + startIndex, names[i]); return startIndex + names.length; }
From source file:com.xrbpowered.gl.res.shaders.VertexInfo.java
License:Open Source License
public int bindAttribLocations(int programId) { for (int i = 0; i < getAttributeCount(); i++) { Attribute a = attribs.get(i); if (a.name != null) GL20.glBindAttribLocation(programId, i, a.name); }//w w w .j a v a2 s . c o m return getAttributeCount(); }
From source file:cuchaz.jfxgl.prism.JFXGLContext.java
License:Open Source License
@Override public int createProgram(int vertexShaderId, int[] fragmentShaderIds, String[] attrs, int[] indices) { // build the shader program int id = GL20.glCreateProgram(); GL20.glAttachShader(id, vertexShaderId); for (int fragmentShaderId : fragmentShaderIds) { GL20.glAttachShader(id, fragmentShaderId); }// ww w . j a v a2 s .c om assert (attrs.length == indices.length); for (int i = 0; i < attrs.length; i++) { GL20.glBindAttribLocation(id, indices[i], attrs[i]); } GL20.glLinkProgram(id); boolean isSuccess = GL20.glGetProgrami(id, GL20.GL_LINK_STATUS) == GL11.GL_TRUE; if (!isSuccess) { throw new RuntimeException("Shader program did not link:\n" + GL20.glGetProgramInfoLog(id, 4096)); } GL20.glValidateProgram(id); isSuccess = GL20.glGetProgrami(id, GL20.GL_VALIDATE_STATUS) == GL11.GL_TRUE; if (!isSuccess) { throw new RuntimeException("Shader program did not validate:\n" + GL20.glGetProgramInfoLog(id, 4096)); } return id; }
From source file:de.ikosa.mars.viewer.glviewer.engine.GLHardcodedShader.java
License:Open Source License
private static GLShader createTexturedShader() { int vertexShaderId = compileShader(texturedVertexShaderSource, GL20.GL_VERTEX_SHADER); int fragmentShaderId = compileShader(texturedFragmentShaderSource, GL20.GL_FRAGMENT_SHADER); int programId = GL20.glCreateProgram(); GL20.glAttachShader(programId, vertexShaderId); GL20.glAttachShader(programId, fragmentShaderId); // Bind Attrib Location... GL20.glBindAttribLocation(programId, 0, "in_Position"); GL20.glBindAttribLocation(programId, 1, "in_Normal"); GL20.glBindAttribLocation(programId, 2, "in_TexCoord"); GL20.glLinkProgram(programId);//from ww w .j a v a 2s .com validateLinkage(programId); GL20.glValidateProgram(programId); return new GLShader(programId, vertexShaderId, fragmentShaderId); }
From source file:de.ikosa.mars.viewer.glviewer.engine.GLHardcodedShader.java
License:Open Source License
private static GLShader createFlatShader() { int vertexShaderId = compileShader(flatVertexShaderSource, GL20.GL_VERTEX_SHADER); int fragmentShaderId = compileShader(flatFragmentShaderSource, GL20.GL_FRAGMENT_SHADER); int programId = GL20.glCreateProgram(); GL20.glAttachShader(programId, vertexShaderId); GL20.glAttachShader(programId, fragmentShaderId); // Bind Attrib Location... GL20.glBindAttribLocation(programId, 0, "in_Position"); GL20.glBindAttribLocation(programId, 1, "in_Normal"); GL20.glLinkProgram(programId);//from w w w. ja v a 2s. c om validateLinkage(programId); GL20.glValidateProgram(programId); return new GLShader(programId, vertexShaderId, fragmentShaderId); }
From source file:de.ikosa.mars.viewer.glviewer.engine.GLShaderBuilder.java
License:Open Source License
public GLShader createShader(GLResources resourceManager) { int vertexShaderId = compileShader(vertexSource, GL20.GL_VERTEX_SHADER); int fragmentShaderId = compileShader(fragmentSource, GL20.GL_FRAGMENT_SHADER); int programId = GL20.glCreateProgram(); GL20.glAttachShader(programId, vertexShaderId); GL20.glAttachShader(programId, fragmentShaderId); // Bind attribute locations GL20.glBindAttribLocation(programId, 0, "in_Position"); if (vertexSource.contains("in_Normal")) GL20.glBindAttribLocation(programId, 1, "in_Normal"); if (vertexSource.contains("in_TexCoord")) GL20.glBindAttribLocation(programId, 2, "in_TexCoord"); GL20.glLinkProgram(programId);//www . ja v a2 s.c o m validateLinkage(programId); GL20.glValidateProgram(programId); return new GLShader(programId, vertexShaderId, fragmentShaderId); }