diff --git a/engine/src/lwjgl/com/jme3/renderer/lwjgl/LwjglRenderer.java b/engine/src/lwjgl/com/jme3/renderer/lwjgl/LwjglRenderer.java index b9b06973f..2a1531564 100644 --- a/engine/src/lwjgl/com/jme3/renderer/lwjgl/LwjglRenderer.java +++ b/engine/src/lwjgl/com/jme3/renderer/lwjgl/LwjglRenderer.java @@ -387,7 +387,7 @@ public class LwjglRenderer implements Renderer { logger.log(Level.INFO, "Caps: {0}", caps); } - + public void invalidateState() { context.reset(); boundShader = null; @@ -1145,15 +1145,15 @@ public class LwjglRenderer implements Renderer { public void copyFrameBuffer(FrameBuffer src, FrameBuffer dst, boolean copyDepth) { if (GLContext.getCapabilities().GL_EXT_framebuffer_blit) { - int srcX = 0; - int srcY = 0; - int srcW = 0; - int srcH = 0; + int srcX0 = 0; + int srcY0 = 0; + int srcX1 = 0; + int srcY1 = 0; - int dstX = 0; - int dstY = 0; - int dstW = 0; - int dstH = 0; + int dstX0 = 0; + int dstY0 = 0; + int dstX1 = 0; + int dstY1 = 0; int prevFBO = context.boundFBO; @@ -1176,32 +1176,32 @@ public class LwjglRenderer implements Renderer { if (src == null) { glBindFramebufferEXT(GL_READ_FRAMEBUFFER_EXT, 0); - srcX = vpX; - srcY = vpY; - srcW = vpW; - srcH = vpH; + srcX0 = vpX; + srcY0 = vpY; + srcX1 = vpX + vpW; + srcY1 = vpY + vpH; } else { glBindFramebufferEXT(GL_READ_FRAMEBUFFER_EXT, src.getId()); - srcW = src.getWidth(); - srcH = src.getHeight(); + srcX1 = src.getWidth(); + srcY1 = src.getHeight(); } if (dst == null) { glBindFramebufferEXT(GL_DRAW_FRAMEBUFFER_EXT, 0); - dstX = vpX; - dstY = vpY; - dstW = vpW - 1; - dstH = vpH - 1; + dstX0 = vpX; + dstY0 = vpY; + dstX1 = vpX + vpW; + dstY1 = vpY + vpH; } else { glBindFramebufferEXT(GL_DRAW_FRAMEBUFFER_EXT, dst.getId()); - dstW = dst.getWidth() - 1; - dstH = dst.getHeight() - 1; + dstX1 = dst.getWidth(); + dstY1 = dst.getHeight(); } int mask = GL_COLOR_BUFFER_BIT; if (copyDepth) { mask |= GL_DEPTH_BUFFER_BIT; } - glBlitFramebufferEXT(0, 0, srcW, srcH, - 0, 0, dstW, dstH, mask, + glBlitFramebufferEXT(srcX0, srcY0, srcX1, srcY1, + dstX0, dstY0, dstX1, dstY1, mask, GL_NEAREST);