glCreateShader通过远程连接失败

时间:2014-05-15 21:03:09

标签: opengl

我试图在Amazon EC2实例上运行OpenGl程序。在本地计算机上运行时,它可以正常工作,但是当通过远程桌面运行时程序崩溃,我将其缩小到glCreateShader(GL_VERTEX_SHADER)调用。

我之前在本地网络中的计算机上运行远程桌面时研究了这个问题,我找到的解决方案是使用断开会话并启动OpenGL exe的批处理脚本。然后,当你重新登录它很好。 tscon 1 /dest:console

不幸的是,当尝试在Amazon实例上运行时,这似乎不起作用。有没有人通过远程连接有任何OpenGL问题的经验?

1 个答案:

答案 0 :(得分:2)

glCreateShader是必须在运行时使用…gl…GetProcAddress调用获取位置的函数之一。仅当安装的OpenGL驱动程序实际支持该功能时,此调用才会提供有效指针。此外,即使驱动程序支持该功能,您正在使用的设备/ OpenGL上下文可能不支持该功能访问的实际功能。

您必须检查函数地址assert(glCreateShader);的有效性,并且实际支持该函数(OpenGL版本> = OpenGL-2.0或GL_ARB_vertex_shaderGL_ARB_fragment_shader扩展名列表。)

  

我正在尝试在Amazon EC2实例上运行OpenGl程序。

虚拟机通常没有可用的GPU。如果没有标准Windows安装中的GPU,则无法使用您要求的功能。作为一种解决方法,但是性能大大降低,您可以build并在程序的opengl32.dll旁边安装Mesa3D .exe软件光栅化器(不要安装在系统路径中!)。