Archive

Archive for the ‘编程技术’ Category

Windows字体为什么那么难看?

September 6th, 2011 No comments

1)很多字库比如宋体,12号以下都是点阵字体。

2)GDI太老了,只有5级灰度,而且AA是横向的,Y轴方向没有AA。

3)雅黑又不能通用,且小字号时高低不平。

 

改进:

1)字体SuperSample。

2)勾边。

image_thumb8

image_thumb13

image_thumb15

image_thumb17

Categories: 图形编程, 编程技术 Tags:

【原创】快速除以255的方法

August 31st, 2011 No comments

经过若干次试验修改,研究出下面这个快速/255的宏,可以在 X属于[0,65536]的范围内误差为零:

#define div_255_fast(x)    (((x) + (((x) + 257) >> 8)) >> 8)

传统来说,人们习惯于将 /255改为 >> 8,但是这样误差挺大的,比如先乘以255再除以255,连续做十次,如果用>>8来代替除法,那么十次之后,误差为10. 另外一种常见的近似法是((x) + 255) >> 8,这种累积误差也挺厉害的。

因此>>8代替/255结果是比较粗糙的。而这个宏的开销比起>>8来说成本大12%。

经过测试65536000次计算中,使用/255的时间是325ms, 使用div_255_fast的时间是70ms,使用>>8的时间是62ms,div_255_fast的时间代价属于可以接受的范围。

下面是测试程序(点击more展开):

Read more…

Categories: 编程技术 Tags:

[转载] Why I Love Python – Thinking in C++ 作者用Python后的想法

April 21st, 2011 1 comment

image image

他横向对比了: Perl, C++, Java, Python,然后给出了10大使用Python的理由,比较经典。

下载地址:http://www.joynb.net/wiki/images/c/c2/Why_I_Love_Python.rar

Categories: 编程技术 Tags:

[讲义] 游戏客户端十二小时入门

April 9th, 2011 No comments

PPT1

这是我2005-2007年在公司培训时候的讲义,当时现场效果相当热烈:

可以到下面地址下载:

Read more…

内存拷贝优化(1)-小内存拷贝优化

March 5th, 2011 3 comments

相信大家代码里有很多地方用到memcpy这个函数,相信这个函数的占用是不小的,有时优化了memcpy,能使整个项目的运行效率提升。通过适当的编码技巧,让我们的内存拷贝速度超过memcpy两倍,是可以实现的。

Read more…

Categories: 编程技术 Tags:

[业余土制] 简易网络库 easenet

December 12th, 2010 No comments

1. 跨平台网络库
2. 异步事件:kevent, iocp, epoll, poll, select封装
3. 内存管理:SlabPlus
4. 可靠协议:类tcp纯协议实现,包括重传机制,窗口管理,流量控制,拥塞处理。
5. 多种工具:缓存池,环状缓存,高性能hashmap等。

代码贴上:
Read more…

[业余土制] Python P2P模块

December 10th, 2010 No comments

[业余土制] Build工具 EasyMake

July 24th, 2010 No comments

用最简单的方法描述工程信息,简化gnumake的繁琐操作,让不会用gnumake的同学们彻底解脱:

项目地址:http://code.google.com/p/easymake/