【发布时间】:2015-11-20 02:30:51
【问题描述】:
以前在我用java编写的游戏引擎中,我使用了lwjgl 2.9.3。我遇到了一个问题。我希望 lwjgl 在另一张显卡上运行。所以我研究并很快发现,使用 lwjgl 2.9.3 是不可能的。因此,我阅读了有关 lwjgl 的开发人员是否会添加选择您要运行的显卡的选项。我发现 lwjgl 3 确实支持这一点。所以我切换到 lwjgl 3。
我让一切正常,并开始研究我切换的原因。我很快发现没有文档可以更改您使用的显卡。因此,经过数小时的测试,我发现您需要创建一个 WGLARB 上下文。
我知道你可以使用方法:wglCreateContextAttribsARB(long hdc, long sharedContext, Byte/IntBuffer attribList)。但目前尚不清楚如何使用这种方法。我不确定您是否使用 Windows DC Pointer 或其他东西。我知道您不必为“long sharedContext”输入任何内容,所以我输入了“MemoruUtil.NULL”。所以这是我的问题:
您如何创建 WGLARB 上下文,或者更具体地说,您具体传递了什么,例如您是放入一个空的 Int/Byte 缓冲区,还是在将数据作为范围。我不知道。
从那里你如何使用:
WGLNVGPUAffinity.getInstance().wglCreateAffinityDCNV(gpuList);GPU 列表是 PointBuffer 或 ByteBuffer 我如何让这些数据首先传入?
很抱歉这篇文章很长,但我对缺少文档感到非常沮丧,提前谢谢你!
【问题讨论】:
标签: java opengl lwjgl game-engine