Posted February 22, 20187 yr Hey there, I am trying to store the last 20 frames of the display using FrameBuffer currently I am storing them in a queue. if frame queue is more than 20, will remove first queue every tick and every tick it will add a FrameBuffer from (Minecraft#getFrameBuffer) When I want to get last second of footage, I render every FrameBuffer using this method private synchronized static BufferedImage getImageFromFrameBuffer(Framebuffer buffer, int width, int height) { int k = buffer.framebufferTextureWidth * buffer.framebufferTextureHeight; if (pixelBuffer == null || pixelBuffer.capacity() < k) { pixelBuffer = BufferUtils.createIntBuffer(k); pixelValues = new int[k]; } GL11.glPixelStorei(GL11.GL_PACK_ALIGNMENT, 1); GL11.glPixelStorei(GL11.GL_UNPACK_ALIGNMENT, 1); pixelBuffer.clear(); GlStateManager.bindTexture(buffer.framebufferTexture); GL11.glGetTexImage(GL11.GL_TEXTURE_2D, 0, GL12.GL_BGRA, GL12.GL_UNSIGNED_INT_8_8_8_8_REV, pixelBuffer); pixelBuffer.get(pixelValues); TextureUtil.processPixelValues(pixelValues, buffer.framebufferTextureWidth, buffer.framebufferTextureHeight); BufferedImage bufferedimage = new BufferedImage(width, height, BufferedImage.TYPE_4BYTE_ABGR); int l = buffer.framebufferTextureHeight - buffer.framebufferHeight; bufferedimage.setRGB(0, 0, width, height, pixelValues, l*buffer.framebufferTextureWidth, buffer.framebufferTextureWidth); return bufferedimage; } But the output frames is not the one I expected, it renders 20 seconds forward not backward that I stored in the queue, is this problem with how i render framebuffer or anything? Help would be appreciated SRC: https://github.com/HypixelCommunityClient/HCC/tree/master/src/main/java/com/hcc/mods/capturex (Licensed under GNU AGPLv3) - Cubxity
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.