[英]AMD OpenGL ES SDK setup
我安装了AMD OpenGL ES SDK以便能够开发ES2程序.SDK包含一个演示程序,我尝试运行该演示程序并在此处出现错误:
EGLDisplay eglDisplay;
eglDisplay = eglGetDisplay(nativeDisplay);
这是main.cpp中的第214行。错误是“访问冲突执行位置”。现在,nativeDisplay似乎未初始化。它的初始化发生在以下代码块的几行中:
EGLNativeDisplayType nativeDisplay;
if(!OpenNativeDisplay(&nativeDisplay))
{
printf("Could not get open native display\n");
return GL_FALSE;
}
确实,当我打开OpenNativeDisplay()方法时,我在里面看到的是:
bool OpenNativeDisplay(EGLNativeDisplayType* nativedisp_out)
{
*nativedisp_out = (EGLNativeDisplayType) NULL;
return true;
}
是SDK漏洞的一种还是应该是故意的? 我的系统是Windows 764bit,使用Visual Studio 2010 Express和VC10编译器,我的GPU是NVidia GeForce GT 630M
请勿在您遇到的情况下使用此SDK,因为它不适用于NV GPU。 AMD实际上是在驱动程序级别实现EGL(如果您查看atioglxx.dll的导出表,则可以看到此代码),而NV则没有。
对于NV解决方案,请考虑ES2配置文件扩展名: WGL_EXT_create_context_es2_profile
并使用传统的WGL窗口系统代替EGL。 无论如何,这都不是完美的匹配,但它是您在NV GPU上可以做到的最好的选择。
顺便说一句,如果您阅读了链接到AMD SDK的第一部分的底部,它基本上会告诉您我刚刚做了什么:
通常,在桌面环境中开发和执行OpenGL ES应用程序需要仿真器或转换层,但是通过此SDK,AMD在运行AMD Radeon™HD,AMD Mobility Radeon™HD,和AMD FirePro™图形卡。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.