作者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