/ / Criando uma tela oculta com LWJGL - java, opengl, awt, lwjgl

Criando uma tela oculta com LWJGL - java, opengl, awt, lwjgl

Eu estou começando a escrever um gráfico de uso especialEu estou inclinado a usar o OpenGL para gerar os gráficos. O objetivo final é uma arquitetura que acomoda gráficos 2D e 3D com a estrutura básica.

Exportar os gráficos gerados como imagens é umrecurso crítico, e, eventualmente, eu vou escrever o código para gerar imagens vetoriais dos gráficos "projeções 2D. No entanto, nesse meio tempo, eu quero poder exportar os gráficos como imagens de alta resolução - imagens significativamente maiores que a janela do aplicativo.

Eu estou escrevendo este aplicativo em Java e usandoo wrapper LWJGL OpenGL. Eu descobri como tirar screenshots da janela de exibição, mas não consegui criar imagens maiores. Eu tentei fazer telas invisíveis, mas não consigo fazer funcionar.

A documentação diz Aqui que o método Canvas is isDisplayable () devereturn true, e para esse fim eu substituí o método isDisplayable () para sempre retornar true, para que ele não se importe se está ou não em um Frame, mas isso não funciona. Em vez disso, ele lança o seguinte erro:

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)

O problema parece ser que também precisa depropriedades da janela de nível superior, mas, mesmo quando faço uma classe Frame fictícia, recebo o mesmo erro de antes, até que chamo setVisible (true) no quadro.

Alguém sabe como falsificar essas propriedades gráficas em pensar que tem uma janela de nível superior visível? Alguém sabe de uma maneira mais fácil?

Respostas:

1 para resposta № 1

Como alternativa, você poderia usar um objeto framebuffer (FBO) para renderizar em uma textura. Veja isso renderizar para textura exemplo.