作者HZYSoft (pcman.ptt.cc)
看板PCman
标题Re: [建议] 填色方块
时间Tue Mar 23 15:14:17 2004
※ 引述《weisor (=.=)》之铭言:
: ※ 引述《HZYSoft (pcman.ptt.cc)》之铭言:
: : 这没什麽好冒犯的,不过...我是真的不知道这要怎麽做哩...
: : 正确的说,我不知道有什麽比较"快速输出"的方法可以这麽做
: : 把文字当图形做黑白Mask然後背景图BitBlt几次其实可以,有点小题大作
: : 这不是不可能做到,但是只为了要输出个纯文字BBS画面居然动用到这种技巧
: : 的话我会觉得颇为夸张,因为"理论上"这要慢了不少,当然实际上可能没差很多
: : 我不知道KKman是用什麽方法达成的,但我能想到的目前只有这个方法
: : 就设计的原理上PCMan和KKman用的方式本来就是不同的,KKman很明显是
: : double buffer,所以画面输出较为平顺但是速度当然也较慢,
: : PCMan没有采用double buffer的方式(平滑绘图模式可以算,但没有最佳化)
: : 这就是为什麽在等级低的电脑上PCMan的画面输出速度一定会比KKman快
: : 但要做出像KKman那样的画面,没有double buffer(PCMan的现有架构)应该不是很好完成
: : 很容易有闪烁,至少就我个人的了解是这样,当然我也不是专家所以也很难说,
: : 也许真的有好方法,但是我现在只能说我不知道,如果哪天我有想到好方法
: : 那有可能会改,不过现阶段没办法提供这种支援,……
: 的确,把文字当图形做黑白Mask然後背景图BitBlt几次,是有点小题大做
: 对於 double buffer 的运作,我也不是很了解
: 不知您有没有试过 CDC::SetBkMode(TRANSPARENT) & CDC::TextOut()
: 个人觉得这应该满有效率的
: 不过我不是很清楚pcman的设计方式 不知道这样可不可行 ^^"
都不可行,因为transparent是背景透明,输出前景,但在这种情况
应该要透明的是前景,反倒是背景要填色,正好相反,没有这种Win 32 API
其实我後来有想到一个作法,先xor一次,输出黑白文字,然後再次xor
只是这样每次输出文字都要做额外的检查,相当麻烦速度也慢,而重点是...
在没有double buffer的情况下,会有闪烁现象发生,所以...反正影响不会太大
不是很想改...^^" 满累的其实...真要改的话那很多地方都要改,改不完罗~~ @@
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.129.59.3
1F:→ NelsonT:收入->说明 推 140.113.95.89 03/23