List of usage examples for org.lwjgl.opengl GL20 glLinkProgram
public static void glLinkProgram(@NativeType("GLuint") int program)
From source file:ar.com.quark.backend.lwjgl.opengl.DesktopGLES20.java
License:Apache License
/** * {@inheritDoc} */ @Override public void glLinkProgram(int name) { GL20.glLinkProgram(name); }
From source file:br.com.perin.shaders.ShaderProgram.java
public ShaderProgram(String vertexFile, String fragmentFile) { vertexShaderId = loadShader(vertexFile, GL20.GL_VERTEX_SHADER); fragmentShaderId = loadShader(fragmentFile, GL20.GL_FRAGMENT_SHADER); programId = GL20.glCreateProgram();/*from www.ja v a 2 s. co m*/ GL20.glAttachShader(programId, vertexShaderId); GL20.glAttachShader(programId, fragmentShaderId); bindAttributes(); GL20.glLinkProgram(programId); GL20.glValidateProgram(programId); }
From source file:com.adavr.player.globjects.Program.java
License:Open Source License
public void link(boolean validate) { GL20.glLinkProgram(id); if (validate) { GL20.glValidateProgram(id); } }
From source file:com.auroraengine.opengl.shaders.GLProgram.java
License:Open Source License
@Override public void forceCreate() throws GLException { if (index != 0) { index = GL20.glCreateProgram();// ww w .j a v a 2 s. c o m if (index == 0) { throw new GLException("Couldn't create program object."); } try { vertex.create(this); fragment.create(this); } catch (GLException ex) { GL20.glDeleteProgram(index); throw ex; } GL20.glAttachShader(index, vertex.index); GL20.glAttachShader(index, fragment.index); GLException.checkGL("Attaching Shaders"); // glBindAttribLocation GL20.glLinkProgram(index); GLException.checkGL("Linking Program"); } }
From source file:com.badlogic.gdx.backends.jglfw.JglfwGL20.java
License:Apache License
public void glLinkProgram(int program) { GL20.glLinkProgram(program); }
From source file:com.flowpowered.caustic.lwjgl.gl20.GL20Program.java
License:MIT License
@Override public void link() { checkCreated();/*from w w w.ja va2 s .c o m*/ // Add the attribute layouts to the program state final TObjectIntIterator<String> iterator = attributeLayouts.iterator(); while (iterator.hasNext()) { iterator.advance(); // Bind the index to the name GL20.glBindAttribLocation(id, iterator.value(), iterator.key()); } // Link program GL20.glLinkProgram(id); // Check program link status if (GL20.glGetProgrami(id, GL20.GL_LINK_STATUS) == GL11.GL_FALSE) { throw new IllegalStateException("Program could not be linked\n" + GL20.glGetProgramInfoLog(id, 1000)); } if (CausticUtil.isDebugEnabled()) { // Validate program GL20.glValidateProgram(id); // Check program validation status if (GL20.glGetProgrami(id, GL20.GL_VALIDATE_STATUS) == GL11.GL_FALSE) { final Logger logger = CausticUtil.getCausticLogger(); logger.log(Level.WARNING, "Program validation failed. This doesn''t mean it won''t work, so you maybe able to ignore it\n{0}", GL20.glGetProgramInfoLog(id, 1000)); } } // Load uniforms uniforms.clear(); final int uniformCount = GL20.glGetProgrami(id, GL20.GL_ACTIVE_UNIFORMS); final int maxLength = GL20.glGetProgrami(id, GL20.GL_ACTIVE_UNIFORM_MAX_LENGTH); final IntBuffer lengthBuffer = CausticUtil.createIntBuffer(1); final IntBuffer ignored1 = CausticUtil.createIntBuffer(1); final IntBuffer ignored2 = CausticUtil.createIntBuffer(1); final ByteBuffer nameBuffer = CausticUtil.createByteBuffer(maxLength); final byte[] nameBytes = new byte[maxLength]; for (int i = 0; i < uniformCount; i++) { lengthBuffer.clear(); ignored1.clear(); ignored2.clear(); nameBuffer.clear(); GL20.glGetActiveUniform(id, i, lengthBuffer, ignored1, ignored2, nameBuffer); final int length = lengthBuffer.get(); nameBuffer.get(nameBytes, 0, length); // Simplify array names final String name = new String(nameBytes, 0, length).replaceFirst("\\[\\d+\\]", ""); uniforms.put(name, GL20.glGetUniformLocation(id, name)); uniformValues.put(name, UNSET); } // Check for errors LWJGLUtil.checkForGLError(); }
From source file:com.geekyaubergine.geekyjgameutil.shader.ShaderProgram.java
License:Open Source License
@Override public void loadResource() throws IOException { vertexShaderID = loadShaderFile(vertexShaderFile, GL20.GL_VERTEX_SHADER); fragmentShaderID = loadShaderFile(fragmentShaderFile, GL20.GL_FRAGMENT_SHADER); programID = GL20.glCreateProgram();// ww w . j a v a 2 s. co m GL20.glAttachShader(programID, vertexShaderID); GL20.glAttachShader(programID, fragmentShaderID); bindAttributes(); GL20.glLinkProgram(programID); GL20.glValidateProgram(programID); }
From source file:com.github.begla.blockmania.rendering.manager.ShaderManager.java
License:Apache License
private void initShaders() { _preProcessorPreamble += ((Boolean) ConfigurationManager.getInstance().getConfig() .get("Graphics.animatedWaterAndGrass")) ? "#define ANIMATED_WATER_AND_GRASS \n" : ""; _preProcessorPreamble += "#define GAMMA " + ConfigurationManager.getInstance().getConfig().get("Graphics.gamma").toString() + "\n"; createShader("sky_vert.glsl", "sky", GL20.GL_VERTEX_SHADER); createShader("sky_frag.glsl", "sky", GL20.GL_FRAGMENT_SHADER); createShader("chunk_vert.glsl", "chunk", GL20.GL_VERTEX_SHADER); createShader("chunk_frag.glsl", "chunk", GL20.GL_FRAGMENT_SHADER); createShader("particle_vert.glsl", "particle", GL20.GL_VERTEX_SHADER); createShader("particle_frag.glsl", "particle", GL20.GL_FRAGMENT_SHADER); createShader("block_vert.glsl", "block", GL20.GL_VERTEX_SHADER); createShader("block_frag.glsl", "block", GL20.GL_FRAGMENT_SHADER); createShader("gelatinousCube_vert.glsl", "gelatinousCube", GL20.GL_VERTEX_SHADER); createShader("gelatinousCube_frag.glsl", "gelatinousCube", GL20.GL_FRAGMENT_SHADER); createShader("clouds_vert.glsl", "clouds", GL20.GL_VERTEX_SHADER); createShader("clouds_frag.glsl", "clouds", GL20.GL_FRAGMENT_SHADER); for (String s : _fragmentShader.keySet()) { int shaderProgram = GL20.glCreateProgram(); GL20.glAttachShader(shaderProgram, _fragmentShader.get(s)); GL20.glAttachShader(shaderProgram, _vertexShader.get(s)); GL20.glLinkProgram(shaderProgram); GL20.glValidateProgram(shaderProgram); _shaderPrograms.put(s, shaderProgram); }/*from w ww . ja v a 2 s .c o m*/ }
From source file:com.github.begla.blockmania.rendering.ShaderManager.java
License:Apache License
private void initShaders() { createVertexShader("sky_vert.glsl", "sky"); createFragShader("sky_frag.glsl", "sky"); createVertexShader("chunk_vert.glsl", "chunk"); createFragShader("chunk_frag.glsl", "chunk"); createVertexShader("cloud_vert.glsl", "cloud"); createFragShader("cloud_frag.glsl", "cloud"); createVertexShader("particle_vert.glsl", "particle"); createFragShader("particle_frag.glsl", "particle"); for (FastMap.Entry<String, Integer> e = _fragmentShader.head(), end = _fragmentShader .tail(); (e = e.getNext()) != end;) { int shaderProgram = GL20.glCreateProgram(); GL20.glAttachShader(shaderProgram, _fragmentShader.get(e.getKey())); GL20.glAttachShader(shaderProgram, _vertexShader.get(e.getKey())); GL20.glLinkProgram(shaderProgram); GL20.glValidateProgram(shaderProgram); _shaderPrograms.put(e.getKey(), shaderProgram); }/*from w ww.j av a 2 s . c o m*/ }
From source file:com.github.kajdreef.mazerunnermvn.MazeRunner.ShaderProgram.java
public void newShaderProgram(String vertexShaderLocation, String fragmentShaderLocation) { // Initialize the vertex Shader vertexId = compileShader(GL20.GL_VERTEX_SHADER, vertexShaderLocation); // Initialize the fragment shader fragmentId = compileShader(GL20.GL_FRAGMENT_SHADER, fragmentShaderLocation); programId = GL20.glCreateProgram();/*w w w . j a v a 2s.com*/ GL20.glAttachShader(programId, vertexId); GL20.glAttachShader(programId, fragmentId); // Position information will be attribute 0 GL20.glBindAttribLocation(programId, 0, "in_Position"); // Color information will be attribute 1 GL20.glBindAttribLocation(programId, 1, "in_Color"); // Texture information will be attribute 2 GL20.glBindAttribLocation(programId, 2, "in_TextureCoord"); GL20.glLinkProgram(programId); GL20.glValidateProgram(programId); // Get matrices uniform locations projectionMatrixLocation = GL20.glGetUniformLocation(programId, "projectionMatrix"); viewMatrixLocation = GL20.glGetUniformLocation(programId, "viewMatrix"); modelMatrixLocation = GL20.glGetUniformLocation(programId, "modelMatrix"); }