|
|
发表于 2004-12-10 19:04:00
|
显示全部楼层
Re:终结软2D问题的测试器
?α
?榱?MX一次算4??像?, ?加上水平?像?垂直?像的?理
所以我把MMX的部份??成
if (水平正像)
{
if (??度??的倍??
{
//MMX程式?1 (???只要??1份)
}
else
{
//MMX程式?2(???要??2份, 包含零歧?理)
}
}
else
{
//MMX程式?3(???要??2份, 包含零歧?理)
}
所以同一??MMX的?算
至少要??5份
??硬还苄?D??度是否??的倍?? 也不管是否?樗?界R像
通通都用MMX算
因?槲沂前?碓吹?D?^分?橛?]有Alpha的
以及如果?]有Alpha的?是否有用ColorKey透空
再加上一?始就?Q定只?出成HiColor?面
所以
?成?碓吹?D一?始就用GDI+?????成HiColor16bits或ARGB 32bits??煞N
因此?我坏囊环N秀?D功能必?要用MMX??15份
(5???理不透空的HiColor, 5???理透空的hiColor, 5???理ARGB?HiColor)
目前我只??了
Blt
BltAlpha (指定Alpha值 0~255)
BltAdd (加算)
BltSub (?p算)
BltHarf (半透明, 相?於 Alpha值??28的BltAlpha....但比?快)
BltGlyph (灰?)
本?硐胗?SE2????一次?理8??像?的
不?以SSE2去算8??ARGB像?的方法
我??]想出?
所以SSE2的部份都先?R置(相?於再把 MMX的部份全部再??一份)
目前只差在D3D9?出?淼母≡?D上
??]解?Q
?不知道?不?把3D都先?R置
先用GDI去把?放?旋?的部份?上
我原本???o?放??o旋??理,??想是
if (IsSSE2)
{
//SSE2程式
} else if (IsMMX)
{
//MMX2程式
}
else
{
//一般C++的Code
}
??映淌骄涂梢宰?右?使用者的CPU能支援到哪一?程度
自?邮褂幂^快的程式?了 |
|