有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使用LWJGL创建隐藏画布

我开始编写一个特殊用途的绘图程序,我倾向于使用OpenGL生成图形。最终的目标是一个体系结构,该体系结构可以容纳具有基本框架的二维和三维图形

将生成的图形导出为图像是一个关键功能,最终我将编写代码来生成图形二维投影的矢量图像。然而,与此同时,我希望能够将图形导出为高分辨率图像——图像明显大于应用程序窗口

我正在用Java编写这个应用程序,并使用LWJGL OpenGL包装器。我已经知道如何拍摄显示窗口的截图,但我还没有成功地创建更大的图像。我试着做一些看不见的画布,但我做不到

文档中说hereCanvas的isDisplayable()方法必须返回true,为此,我重写了isDisplayable()方法以始终返回true,因此它不应该关心它是否在帧中,但这不起作用。相反,它会抛出以下错误:

java.lang.RuntimeException: No OpenGL context found in the current thread.
        at org.lwjgl.opengl.GLContext.getCapabilities(GLContext.java:124)
        at org.lwjgl.opengl.GL20.glDeleteProgram(GL20.java:311)

问题似乎是,它还需要来自顶层窗口的一些属性,但即使我创建了一个虚拟框架类,我也会得到与之前相同的错误,直到我在框架上调用setVisible(true)

有人知道如何伪造这些图形属性,使其认为它有一个可见的顶层窗口吗?有人知道更简单的方法吗


共 (1) 个答案

  1. # 1 楼答案

    或者,可以使用帧缓冲区对象(FBO)渲染到纹理中。 看看这个例子