代码之家  ›  专栏  ›  技术社区  ›  DJClayworth

使用JOGL在屏幕外绘制

  •  4
  • DJClayworth  · 技术社区  · 16 年前

    作为一个更大项目的一部分,我正在尝试使用JOGL实现一个工具,该工具将3D渲染导出为位图格式。我们通过创建一个GLJPanel并绘制我们想要的场景,然后提取位图来实现这一点。只要系统在屏幕上至少有一个可见窗口(不一定是包含我们正在绘制的面板的窗口),这一切都可以正常工作。

    LOCK_SURFACE_NOT_READY ,导致makeCurrent()失败。

    欢迎提供有关如何创建Java应用程序的任何帮助,该应用程序可以创建和导出3D场景,而无需使其窗口可见。

    2 回复  |  直到 16 年前
        1
  •  5
  •   DJClayworth    16 年前

    我不确定我是否应该回答我自己的问题,但我发现现在似乎有用。

    格普布弗 ,这是一个屏幕外的GlautDrawable,可以在没有可见组件继承权的情况下创建。

    This article

    我还应该说,答案来自 this forum ,而不是我自己贫乏的大脑。

        2
  •  0
  •   Paulo Lopes    16 年前

    您应该研究方法:glReadPixels()更多信息 here

    Init(); //doing some initializations in your JOGL app
    
    glDrawBuffer(GL_BACK);
    
    DrawGLScene(); //doing drawing here
    
    glReadBuffer(GL_BACK);
    
    //Copy the image to the array imageData
    glReadPixels(0, 0, WIDTH, HEIGHT, GL_RGBA, GL_UNSIGNED_BYTE, imageData);