花了n个礼拜,解决了一个原本只需几秒钟的事(opengl)
2007-07-29 14:00
375 查看
几个礼拜,一直间隙地在弄那个透明贴图,可是就是不出来。
一行行,一个顺序一个顺序地对比,感觉和别人的一模一样啊,咋就不出效果呢,是在郁闷。
后来做了个3D面板,也使用到透明贴图,发现是可以的,然后觉得奇怪,同一个系统为什么那边不可以,这边可以?于是开始了最低级的debug:注释掉一些,然后重新编译,重新运行;然后是第二次,第三次,……,调啊调,好像应该在接近目标,但却越来越糊涂,咋的一模一样还不对呢?
目标在一步步接近,应该是这样,我更自己说。
我甚至开始在查看内存,一点一点地对比,不停地换着可能的方式,不停地设置断点,任何可能,任何结果,都不放过。……,终于:啊,这个地方怎么可能运行到啊,应该不会啊?于是,在错误出现的瞬间,我开始清楚,看来又是自己编码时的疏忽了,一步步倒退,终于在一个地方发现了幼稚的不能再幼稚的代码:
if(bUseBlack != TEX_INVALID) ……
bUseBlack是一个bool型变量,TEX_INVALID是-1,能不成立么,苦笑,真是幼稚到极点了。
然后一修改,哇,想想中的效果!yeah,好几个礼拜来的郁闷竟来自这么个表达式,真是哭笑不得哦。
在解决问题过程中也发现,自己的确是缺乏测试的能力哦:没能有迅速抓住问题本质的能力,没能采用尽可能简单有效的比较方式(比如使用已经成立的一个例子来测试你不肯定的部分),没能设计一个比较完整有效的测试方案,更不用说知道什么测试工具,……,学习ing,求知ing,请教ing……
一行行,一个顺序一个顺序地对比,感觉和别人的一模一样啊,咋就不出效果呢,是在郁闷。
后来做了个3D面板,也使用到透明贴图,发现是可以的,然后觉得奇怪,同一个系统为什么那边不可以,这边可以?于是开始了最低级的debug:注释掉一些,然后重新编译,重新运行;然后是第二次,第三次,……,调啊调,好像应该在接近目标,但却越来越糊涂,咋的一模一样还不对呢?
目标在一步步接近,应该是这样,我更自己说。
我甚至开始在查看内存,一点一点地对比,不停地换着可能的方式,不停地设置断点,任何可能,任何结果,都不放过。……,终于:啊,这个地方怎么可能运行到啊,应该不会啊?于是,在错误出现的瞬间,我开始清楚,看来又是自己编码时的疏忽了,一步步倒退,终于在一个地方发现了幼稚的不能再幼稚的代码:
if(bUseBlack != TEX_INVALID) ……
bUseBlack是一个bool型变量,TEX_INVALID是-1,能不成立么,苦笑,真是幼稚到极点了。
然后一修改,哇,想想中的效果!yeah,好几个礼拜来的郁闷竟来自这么个表达式,真是哭笑不得哦。
在解决问题过程中也发现,自己的确是缺乏测试的能力哦:没能有迅速抓住问题本质的能力,没能采用尽可能简单有效的比较方式(比如使用已经成立的一个例子来测试你不肯定的部分),没能设计一个比较完整有效的测试方案,更不用说知道什么测试工具,……,学习ing,求知ing,请教ing……
相关文章推荐
- 一个很难很难解决的问题:在linux下编译arm嵌入式的qt时加入opengl es1 选项就会编译不过
- opengl中的Floatbuffer和IntBuffer与java中数据的存储方式不同的解决方法,编辑一个自己的BufferUtil工具类
- java.lang.NoClassDefFoundError: javax/transaction/TransactionManager 解决 只需一个jta.jar文件
- java.lang.NoClassDefFoundError: javax/transaction/TransactionManager 解决 只需一个jta.jar文件
- 轮播图封装,使用时只需调用一个方法解决
- 不了心修改了/etc/sudoers原本的权限0777,进不去root,现在提供一个良好的解决办法~
- “fatal error C1859: “Release\XXXX.pch”意外的预编译头错误,只需重新运行编译器就可能修复此问题”的一个解决办法
- 一个朋友js图表开发遇到的问题 解决思路c和js
- 解决嵌套ListView只显示一个item
- eWebEditor 请选择一个有效的文件的解决方法
- 一个小错误在解决
- 打开虚拟机时因出现一个VMware Autheffication选择框而打不开的解决方法
- loadrunner中错误为27796的一个解决方法
- 一个关于NTFS权限/DTS/ASP.Net的问题解决过程
- 未能加载文件或程序集“System.Web.Http, Version=5.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)解决办法
- 开源项目XRecyclerView的一个bug的解决
- 用Apache解决多个域名指向一个主机的多个网站应用
- OpenGL编程轻松入门之一个简单的例子
- ORACLE RAC中一个实例不能随crs自动启动的解决
- 判断一个点是否在矩形内PtInRegion-解决PtInRect不能正确判断不同形式TRent的情况