安装好cuda相关工具后发现原来基于mfc平台的opengl程序出现闪烁,最终解决
2012-02-17 18:46
351 查看
修改前,会闪烁,一开始以为是窗体view的OnEraseBkgnd函数无法禁止造成的,其实是像素格式的参数设置问题
修改前,会闪烁的设置:
修改后,不在闪烁的设置:
对比可知,红色部分代码不一样引起的,也即是颜色位分配大小的设置
修改前,会闪烁的设置:
// static PIXELFORMATDESCRIPTOR pfd={ // sizeof(PIXELFORMATDESCRIPTOR), // 1, // PFD_DRAW_TO_WINDOW|PFD_SUPPORT_OPENGL|PFD_DOUBLEBUFFER|PFD_SUPPORT_GDI| // PFD_TYPE_RGBA, // 24, // 0, 0, 0, 0, 0, 0, // 0, // 0, // 0, // 0, 0, 0, 0, // 32, // 0, // 0, // PFD_MAIN_PLANE, // 0, // 0,0,0 // }; // int pixelformat; // if ((pixelformat=ChoosePixelFormat(pDC->GetSafeHdc(),&pfd))==0) // { // MessageBox(_T("choose pixelformat erro"),_T("erro"),MB_SYSTEMMODAL); // return FALSE; // } // if (SetPixelFormat(pDC->GetSafeHdc(),pixelformat,&pfd)==0) // { // MessageBox(_T("setpixelformat failed"),_T("failed"),MB_SYSTEMMODAL); // return FALSE; // }
修改后,不在闪烁的设置:
PIXELFORMATDESCRIPTOR pfd = { sizeof(PIXELFORMATDESCRIPTOR), 1 , PFD_DRAW_TO_WINDOW | //PFD_GENERIC_ACCELERATED| PFD_DOUBLEBUFFER | PFD_SUPPORT_OPENGL, PFD_TYPE_RGBA, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, PFD_MAIN_PLANE, 0, 0, 0, 0 }; int nPixelFormat = ChoosePixelFormat(m_pDc->GetSafeHdc(), &pfd); //返回最匹配的像素格式 if( nPixelFormat == 0 ){ TRACE(" Fail to choose pixel format!\n"); return false; } //设置像素格式 if( SetPixelFormat(m_pDc->GetSafeHdc(), nPixelFormat,&pfd) == FALSE ){ TRACE(" Fail to set pixel format!\n"); return false; } m_hRC = wglCreateContext( m_pDc->GetSafeHdc());
对比可知,红色部分代码不一样引起的,也即是颜色位分配大小的设置
相关文章推荐
- CUDA的MFC程序框架中编译出现nafxcw.lib与LIBCMT.lib链接重定义的解决
- 帮您安装调试成功VS2008平台下的Directshow 及基于directshow的相关项目基础配置错误解决
- 关于web程序调试相关工具谷歌访问助手,和测试 POST 请求客户端工具,Advanced REST Client的下载和安装
- [Error]Win8安装程序出现2502、2503错误解决方法
- 在GHOST的WINXPSP2安装SQL SERVER2000个人版时出现“以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装之前,必须重新启动计算机。”错误的解决方法
- windows8安装VC++6.0, 弹出"没有发现Acme安装程序",解决方法
- 解决vmware tools工具安装时出现的the path“”is not a valid问题
- 安装交叉编译工具,执行arm-linux-gcc –v命令出现提示找不到该文件或目录?解决方法
- 解决双硬盘安装windows出现“安装程序无法定位现有系统分区,也无法创建新的系统分区”错误
- 关于Visual Studio 2013 编译 multi-byte character set MFC程序出现 MSB8031 错误的解决办法
- 打开rational rose时出现: 无法启动此程序,因为计算机中丢失suite objects.dll。尝试重新安装该程序解决此问题现象
- MATLAB 2012 "查找安装程序类时出错,查找类时出现异常"的解决方法
- 关于Visual Studio 2013 编译 multi-byte character set MFC程序出现 MSB8031 错误的解决办法
- MSSQL安装出现 “运行安装程序之前必须重新启动计算机” 的解决办法
- 安装交叉编译工具,执行arm-linux-gcc–v命令出现提示找不到该文件或目录?解决方法
- sql2005升级出现安装程序支持文件失败的解决办法
- 安装IIS时出现"安装程序无法复制文件zClientm.exe"解决办法
- VC++ 6.0编写MFC程序经常出现的问题及解决方法
- 安装IE11出现 安装程序无法启动http://go.Microsoft.com/fwlink/?LinkId=299206解决办法
- win7安装QT时出现"无法定位程序输入点_except1于动态链接库MSVCR120.dll"时的解决办法