06 2013 档案

摘要:简介signal是为了解决类之间通信的问题而出现的,更深入的原因是面向对象讲究封装,但是封装必然导致类之间沟通困难,但是使用接口的方式又太重量级--需要写很多代码,而且会导致接口爆炸比如你需要把一个接口拆分为两个时,你得做很多工作,这个时候signal的好处就出现了signal库signal库主要有QT的signal,boost的signal与signalslot(http://sigslot.sourceforge.net/)这里谈谈signalslot使用它需要定义signal,然后将成员函数绑定到signal上面,实现方法不外是functor带槽的类需要继承一个has_slot,可以猜到 阅读全文
posted @ 2013-06-28 17:55 mightofcode 阅读(5927) 评论(0) 推荐(0)
摘要:本着复用轮子的精神,我把POCO库加到了我的项目里面POCO库包含了许多实用工具,可以让你免去寻找其他第三方库的的麻烦,目前我用到了里面的log,xml,format模块但是我今天却被POCO坑了因为我今天加了一些代码之后发现程序的速度变慢了,慢到不能忍的地步花了6个小时我终于找到原因了(我的上VS不是旗舰版,没有profiler,花了很长时间找问题),原来poco打一条log需要30-40ms,当你频繁打log的时候会形成严重的性能瓶颈于是我果断自己实现了一个小型的log模块替换掉POCO的log,然后世界清净了从这件事得到一个教训,使用第三方库时(特别是比较冷门的库)必须谨慎,如果要使用, 阅读全文
posted @ 2013-06-12 19:27 mightofcode 阅读(235) 评论(0) 推荐(0)
摘要:在D3D中渲染2D图像经常要遇到一个问题:尽管渲染出来的大小严格等于图像本身的大小,但是显示出来的图像变模糊了网上搜索一下可以找到这个问题的答案,MSDN也有这个问题的详细解释,我在这里做下总结为什么会出现这个问题?这个问题的关键是:D3D在光栅化的时候是取像素中点作为取样点,也就是说窗口坐标(0,0)处的颜色等于窗口空间(0.5,0.5)处的颜色,而不是直觉上认为的(0.0,0.0)处,据说DX10已经修改为后者,但是DX9仍然有这个问题这样在进行线性采样的时候就会去取周围四个像素的均值作为最终颜色,所以结果是模糊的如何解决:进行线性采样(或者复杂的采样)时将坐标(0.5,0.5),这是wi 阅读全文
posted @ 2013-06-08 16:18 mightofcode 阅读(911) 评论(0) 推荐(0)