我正在为使用LWJGL制作的OpenGL库添加AWT支持,因为LWJGL 3不再支持它了。 我这样做的方法是使用glReadPixels获取屏幕像素,然后将它们作为BufferedImage绘制到画布上。
现在我的问题是我需要每帧更新GLFW窗口。在一个小程序中,是否有一个我可以覆盖的方法,每个帧都被调用,有点像游戏循环?或者我是否必须为此创建一个自定义线程(这会使事情过于复杂,因为我需要为此创建一个新的OpenGL上下文)?
到目前为止我的applet的代码:
package net.rabbit;
import java.applet.Applet;
import java.awt.Graphics;
import xyz.rabbit.lib.framework.Window;
public class Main extends Applet {
private static final long serialVersionUID = 6092259155082054438L;
private Window window;
@Override
public void init() {
super.init();
window = new Window();
window.setParent(this);
window.open();
}
@Override
public void paint(Graphics g) {
System.out.println("Paint");
window.update();
}
}
Window类是我自己的类,它处理GLFW和OpenGL特定的东西,但我还是不想绘制任何东西。 window.update()需要尽可能频繁地调用,因为它处理系统事件。
"油漆与#34;运行应用程序时,它只会打印两次到控制台。
我感谢任何帮助,或者就如何以其他方式解决问题提出意见。