List of usage examples for org.lwjgl.opengl GL20 glCreateProgram
@NativeType("GLuint") public static int glCreateProgram()
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(); GL20.glAttachShader(pId, vsId);/* ww w. j a v a 2s. c o m*/ 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.wicpar.sinkingsimulatorclassic.graphics.ShaderProgram.java
License:Open Source License
public ShaderProgram create() { delete(); ID = GL20.glCreateProgram(); return this; }
From source file:com.xrbpowered.gl.res.shaders.Shader.java
License:Open Source License
public Shader(VertexInfo info, String pathVS, String pathFS) { // System.out.println("Compile: "+pathVS+", "+pathFS); this.info = info; int vsId = loadShader(pathVS, GL20.GL_VERTEX_SHADER); int fsId = loadShader(pathFS, GL20.GL_FRAGMENT_SHADER); pId = GL20.glCreateProgram(); if (vsId > 0) GL20.glAttachShader(pId, vsId);/*from www . ja v a 2 s . c om*/ if (fsId > 0) GL20.glAttachShader(pId, fsId); bindAttribLocations(); // System.out.println("Link: "+pathVS+", "+pathFS); GL20.glLinkProgram(pId); if (GL20.glGetProgrami(pId, GL20.GL_LINK_STATUS) == GL11.GL_FALSE) { System.err.println("Could not link program " + pathVS + ", " + pathFS); System.err.println(GL20.glGetProgramInfoLog(pId, 8000)); System.exit(-1); } GL20.glValidateProgram(pId); storeUniformLocations(); Client.checkError(); // System.out.println("Done: "+pathVS+", "+pathFS+"\n"); }
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); }/*w ww . ja v a 2s . 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);/*w w w. j a v a 2 s . 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);/* www . j a v a2s.c o m*/ 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);//from ww w . j a v a 2 s.com validateLinkage(programId); GL20.glValidateProgram(programId); return new GLShader(programId, vertexShaderId, fragmentShaderId); }
From source file:engine.render.Shader.AbstractShader.java
private void createProgram(String VertexShaderFilePath, String fragmenShaderFilePath) { programID = GL20.glCreateProgram(); vsid = loadShader(VertexShaderFilePath, GL20.GL_VERTEX_SHADER); fsid = loadShader(fragmenShaderFilePath, GL20.GL_FRAGMENT_SHADER); }
From source file:engine.render.Shader.AbstractShader.java
public void createProgram() { programID = GL20.glCreateProgram(); }
From source file:eu.over9000.veya.rendering.Program.java
License:Open Source License
public Program(final String shaderName, final String[] uniformNames) { final int vsID = Program.loadShader( Program.class.getResourceAsStream("/shaders/" + shaderName + "/vertex.glsl"), GL20.GL_VERTEX_SHADER);//from w w w . j a v a 2 s . c o m final int fsID = Program.loadShader( Program.class.getResourceAsStream("/shaders/" + shaderName + "/fragment.glsl"), GL20.GL_FRAGMENT_SHADER); this.id = GL20.glCreateProgram(); GL20.glAttachShader(this.id, vsID); GL20.glAttachShader(this.id, fsID); GL20.glLinkProgram(this.id); Program.checkLinkage(this.id); //GL20.glValidateProgram(this.id); //Program.checkValidation(this.id); GL20.glDetachShader(this.id, vsID); GL20.glDetachShader(this.id, fsID); GL20.glDeleteShader(vsID); GL20.glDeleteShader(fsID); this.uniformLocations = new HashMap<>(uniformNames.length + 1, 1); for (final String name : uniformNames) { final int loc = GL20.glGetUniformLocation(this.id, name); this.uniformLocations.put(name, loc); System.out.println("UniformLoc for " + name + "=" + loc); } Util.checkGLError(); }