【问题标题】:GLFW window flickers despite blitting to it immediately after resizing it尽管 GLFW 窗口在调整大小后立即闪烁,但仍会闪烁
【发布时间】:2019-12-06 06:49:49
【问题描述】:

调整大小后,我在下一行的窗口中快速移动。它只设置一次窗口大小。它不需要由用户拖动。它会在添加到窗口的部分上闪烁,并且在某些情况下,整个窗口会闪烁某种内容的反转图像。它在 Windows 7 上测试并使用 Java。调整大小的时间有什么可做的吗?它使用在程序打开时开始运行的锁定帧速率。

while (!glfwWindowShouldClose(window)) {
render(window, buffer.get(1), framebuffer);

            lasttime = time;
            Thread.sleep(max(0, 1000/60 - ((long) glfwGetTime() - lasttime)*1000));
            time = time + 1/60;
}

public static void render(long win, int rb, int fb) {
glfwSetWindowSize(
            win, 320, windowheight
        );
        glBindFramebuffer(GL_READ_BUFFER, fb);
        glBindFramebuffer(GL_DRAW_BUFFER, 0);
        glReadBuffer(GL_COLOR_ATTACHMENT0);
        glDrawBuffer(GL_BACK_LEFT);
        glBlitFramebuffer(0,0,319,windowheight-1,0,0,319,windowheight-1,GL_COLOR_BUFFER_BIT,GL_NEAREST);
}

【问题讨论】:

    标签: java windows opengl glfw


    【解决方案1】:

    要进行全面分析,您需要发布代码。

    鉴于提供的信息有限,我猜如果您要增加窗口的大小并且添加的窗口部分会闪烁,那是因为在调整窗口大小时使用了相同的 FrameBuffer 和上下文,但是颜色信息不会从较小的窗口存在到扩展部分中,并且在计算新颜色信息并将其从帧缓冲区渲染到渲染调用的屏幕扩展部分时会出现闪烁。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-09
      • 2015-08-29
      • 2014-12-29
      • 2016-03-19
      • 2012-05-29
      • 2018-07-27
      • 2022-10-13
      • 2014-01-24
      相关资源
      最近更新 更多