Refine search
@Override public void glBindVertexArray (int array) { GL30.glBindVertexArray(array); }
@Override public void glGenVertexArrays (int n, int[] arrays, int offset) { for(int i = offset; i < offset + n; i++) { arrays[i] = GL30.glGenVertexArrays(); } }
@Override public void glDeleteVertexArrays (int n, int[] arrays, int offset) { for(int i = offset; i < offset + n; i++) { GL30.glDeleteVertexArrays(arrays[i]); } }
vertexCount = indices.length; vaoId = glGenVertexArrays(); glBindVertexArray(vaoId); posVboId = glGenBuffers(); posBuffer = MemoryUtil.memAllocFloat(positions.length); posBuffer.put(positions).flip(); glBindBuffer(GL_ARRAY_BUFFER, posVboId); glBufferData(GL_ARRAY_BUFFER, posBuffer, GL_STATIC_DRAW); glVertexAttribPointer(0, 3, GL_FLOAT, false, 0, 0); idxVboId = glGenBuffers(); indicesBuffer = MemoryUtil.memAllocInt(indices.length); indicesBuffer.put(indices).flip(); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, idxVboId); glBufferData(GL_ELEMENT_ARRAY_BUFFER, indicesBuffer, GL_STATIC_DRAW); glBindBuffer(GL_ARRAY_BUFFER, 0); glBindVertexArray(0); } finally { if (posBuffer != null) {
fbo = glGenFramebuffers(); int depth = glGenRenderbuffers(); int color = glGenRenderbuffers(); glBindFramebuffer(GL_FRAMEBUFFER, fbo); glBindRenderbuffer(GL_RENDERBUFFER, depth); glRenderbufferStorageMultisample(GL_RENDERBUFFER, 8, GL_DEPTH_COMPONENT24, CANVAS_WIDTH, CANVAS_HEIGHT); glBindRenderbuffer(GL_RENDERBUFFER, color); glRenderbufferStorageMultisample(GL_RENDERBUFFER, 8, GL_RGBA8, CANVAS_WIDTH, CANVAS_HEIGHT); glFramebufferRenderbuffer(GL_DRAW_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, depth); glFramebufferRenderbuffer(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, color); checkFramebufferStatus(); skinFbo = glGenFramebuffers(); glBindFramebuffer(GL_FRAMEBUFFER, skinFbo); glDrawBuffer(GL_COLOR_ATTACHMENT0); glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, skinFboTex, 0); checkFramebufferStatus(); glBindFramebuffer(GL_FRAMEBUFFER, 0); swapFbo = glGenFramebuffers(); glBindFramebuffer(GL_FRAMEBUFFER, swapFbo);
glBindVertexArray(axisVaoId); glBindBuffer(GL_ARRAY_BUFFER, axisVboId); vertexFloatBuffer.put(axisData); vertexFloatBuffer.flip(); glBufferData(GL_ARRAY_BUFFER, vertexFloatBuffer, GL_DYNAMIC_DRAW); mvpMatrixFB.put( mvpMatrix.toArray() ); mvpMatrixFB.flip(); glUniformMatrix4fv(axisShaderProgram.uniform("mvpMatrix"), false, mvpMatrixFB); glGetFloatv(GL_LINE_WIDTH, currentLineWidthFB); glLineWidth(mAxisLineWidth); glDrawArrays(GL_LINES, 0, NUM_VERTICES); glBindBuffer(GL_ARRAY_BUFFER, 0); glBindVertexArray(0);
public Texture(ByteBuffer imageData) { try (MemoryStack stack = stackPush()) { IntBuffer w = stack.mallocInt(1); IntBuffer h = stack.mallocInt(1); IntBuffer avChannels = stack.mallocInt(1); // Decode texture image into a byte buffer ByteBuffer decodedImage = stbi_load_from_memory(imageData, w, h, avChannels, 4); this.width = w.get(); this.height = h.get(); // Create a new OpenGL texture this.id = glGenTextures(); // Bind the texture glBindTexture(GL_TEXTURE_2D, this.id); // Tell OpenGL how to unpack the RGBA bytes. Each component is 1 byte size glPixelStorei(GL_UNPACK_ALIGNMENT, 1); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); // Upload the texture data glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, this.width, this.height, 0, GL_RGBA, GL_UNSIGNED_BYTE, decodedImage); // Generate Mip Map glGenerateMipmap(GL_TEXTURE_2D); } }
public void deleteBuffers() { glDisableVertexAttribArray(0); // Delete the VBOs glBindBuffer(GL_ARRAY_BUFFER, 0); for (int vboId : vboIdList) { glDeleteBuffers(vboId); } // Delete the VAO glBindVertexArray(0); glDeleteVertexArrays(vaoId); }
public LwjglFrameBufferObject(ResourceUrn urn, BaseVector2i size) { this.size = ImmutableVector2i.createOrUse(size); IntBuffer fboId = BufferUtils.createIntBuffer(1); GL30.glGenFramebuffers(fboId); frame = fboId.get(0); Texture texture = generateTexture(urn); GL30.glBindFramebuffer(GL30.GL_FRAMEBUFFER, frame); GL30.glFramebufferTexture2D(GL30.GL_FRAMEBUFFER, GL30.GL_COLOR_ATTACHMENT0, GL11.GL_TEXTURE_2D, texture.getId(), 0); int result = GL30.glCheckFramebufferStatus(GL30.GL_FRAMEBUFFER); if (result != GL30.GL_FRAMEBUFFER_COMPLETE) { throw new IllegalStateException("Something went wrong with framebuffer! " + result); } GL30.glBindFramebuffer(GL30.GL_FRAMEBUFFER, 0); }
@Override public void unbindFrame() { GL30.glBindFramebuffer(GL30.GL_FRAMEBUFFER, 0); GL11.glViewport(vp.get(0), vp.get(1), vp.get(2), vp.get(3)); glMatrixMode(GL_TEXTURE); glLoadIdentity(); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0, Display.getWidth(), Display.getHeight(), 0, 0, 2048f); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); }
IntBuffer temp = BufferUtils.createIntBuffer(16); GL11.glGetIntegerv(GL11.GL_MAX_TEXTURE_SIZE, temp); checkGLError(); int max = temp.get(0); if ((width > max) || (height > max)) { throw new Exception("Attempt to allocate a texture to big for the current hardware"); GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, minFilter); GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, magFilter); checkGLError(); GL30.glGenerateMipmap(GL11.GL_TEXTURE_2D);
private void endRender() { // Restore state glDisableVertexAttribArray(0); glDisableVertexAttribArray(1); glDisableVertexAttribArray(2); glBindVertexArray(0); glBindTexture(GL_TEXTURE_2D, 0); }
@Override public void bindFrame() { vp = BufferUtils.createIntBuffer(16); GL11.glGetInteger(GL11.GL_VIEWPORT, vp); GL30.glBindFramebuffer(GL30.GL_FRAMEBUFFER, frame); GL11.glViewport(0, 0, size.x(), size.y()); glMatrixMode(GL_TEXTURE); glLoadIdentity(); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0, size.x(), size.y(), 0, 0, 2048f); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); } }
@Override public void glGenerateMipmap (int target) { GL30.glGenerateMipmap(target); }
public void trilinearFilter(){ glTexParameteri(target, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glGenerateMipmap(target); glTexParameteri(target, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); }
@Override public int glGenFramebuffer () { return GL30.glGenFramebuffers(); }
@Override public void glDeleteFramebuffer (int framebuffer) { GL30.glDeleteFramebuffers(framebuffer); }
@Override public void glFramebufferTexture2D (int target, int attachment, int textarget, int texture, int level) { GL30.glFramebufferTexture2D(target, attachment, textarget, texture, level); }
@Override public int glCheckFramebufferStatus (int target) { return GL30.glCheckFramebufferStatus(target); }
@Override public void glBindFramebuffer (int target, int framebuffer) { GL30.glBindFramebuffer(target, framebuffer); }