openGL 函数能正常执行,但是没有结果,该怎么办?方法之一
来源:互联网 发布:mysql集群架构 编辑:程序博客网 时间:2024/05/22 11:57
在编写openGL函数时,由于不熟悉或者理解不深刻,导致很多莫名其妙的问题。
比如,当你经过千辛万苦,终于d编译成功以后,excute it!却发现会出现cannot read 内存什么什么的。很明显,指针越界了。
我们不甘心,但我们不能放弃。单步调试!
结果 发现利用openGL函数来获取某些函数或者字符串时出现了空指针的情形!
比如 glTexImage3D = (PFNGLTEXIMAGE3DPROC) ::wglGetProcAddress("glTexImage3D")时; 跟踪发现 glTexImage3D=Null;
比如 char* str1 = 0; str1 = (char*)glGetString(GL_VERSION); 时,跟踪发现 str1=Null;
哈哈,问题找到了 ,这样的话,访问glTexImage3D或者str1,那就肯定越界了哈。
但是原因是是什么?明明编译没错,明明能够往下正常执行,但就是没有正确结果输出?
在网上找了半天:在 http://tech.groups.yahoo.com/group/opengl-gamedev-l/message/10613里找到答案!
一句话:在你调用这些gl函数之前,你需要初始化渲染的上下文(rendering context)!!!
那么所以,当你在非MFC情况下(比如控制台程序时),先调用glutInit与glutCreateWindow进行初始化,然后调用相关gl函数,就可以返回正确的值了。
在MFC情况下,先调用wglMakeCurrent()进行初始化后,再调用就可以返回正确的值了。
OK!问题解决!
- openGL 函数能正常执行,但是没有结果,该怎么办?方法之一
- OpenGL 函数能正常执行,但是没有结果,该怎么办?方法之二
- 程序能正常下载,但是无法执行,卡在NVIC_Configuration
- 没有项目该怎么办
- 破解myeclipse但是在默认安装目录没有发现common文件夹,该怎么办?
- 破解myeclipse但是在默认安装目录没有发现common文件夹,该怎么办?
- 破解myeclipse但是在默认安装目录没有发现common文件夹,该怎么办?
- 如果父类中没有构造方法,该怎么办呢?
- Android之项目全部能正常登录但是部分资源没有显示成功的解决办法
- 谁能告诉我该怎么办?
- 在实现了AJAX功能后测试发现只能使用该方法6,7次,之后就不会执行了,但是回调函数能触发
- Page_Load函数执行后界面没有显示执行结果
- curl爬数据,返回页面结果,如果没有任何显示,该怎么办?
- AVAssetWriter finishWritingWithCompletionHandler函数没有正常执行的原因
- vs下执行OpenGl程序能运行成功但是不显示东西
- 谷歌能查到结果,但是跳转失败,怎么办
- oracle执行过程,但是没有结果生成,表空间不足问题
- 使用udhcpc能获取到DHCP自动分配的IP,但是该IP却没有设置到网卡上
- 使用JDK1.6编译器API动态编译java源代码实例
- 杭电2003 求绝对值
- 避免内存泄露, 有效利用内存 !
- 内核编译 & 模块编译
- hdu 2045 不容易系列之(3)—— LELE的RPG难题(递推)
- openGL 函数能正常执行,但是没有结果,该怎么办?方法之一
- 电影 《遗愿清单》
- 解决AcroPro缺少msi文件的错误方法
- Install Maven 3 on Ubuntu 11.04
- struts2文件下载bug
- Android屏幕元素层次结构
- onMeasure和onLayout
- android上一些方法的区别和用法的注意事项
- Android canvas的save restore translate rotate用法介绍