?? calpha.h
字號(hào):
//阿爾法混合 By Flysky
#pragma once
#define _ALPHA565RGBMASK 0x07e0f81f //0000,0111,1110,0000,1111,1000,0001,1111
#define _ALPHA555RGBMASK 0x03e07c1f //0000,0011,1110,0000,0111,1100,0001,1111
//淡入淡出的變量
extern DWORD s_dwAlphaMask; //Alpha MASK
//Alpha兩個(gè)函數(shù)請(qǐng)不要使用BackBuffer
//而使用無(wú)后緩
//兩個(gè)點(diǎn)的ALPHA混合(內(nèi)聯(lián)版) By Flysky
//注意:Sour目標(biāo)表面,Dest為Alpha通道。
//無(wú)匯編
inline WORD AlphaP(WORD Sour,WORD Dest,int aValue)
{
//Release 版本達(dá)到 111Fps
//目前應(yīng)該夠了.
DWORD value,dwDest,dwSour;
if (aValue>32) aValue=32;
dwDest=((Dest<<16)|Dest)&s_dwAlphaMask;
dwSour=((Sour<<16)|Sour)&s_dwAlphaMask;
//value=dwSour - dwSour/aValue + dwDest/aValue; //速度快
value=(((dwSour-dwDest)*aValue)>>5)+dwDest; //速度快
//value=(dwDest*(32-aValue)+dwSour*aValue)>>5; //速度慢
value&=s_dwAlphaMask;
value|=(value>>16);
return (WORD)value;
}
bool AlphaS(LPDIRECTDRAWSURFACE7 Dest,LPDIRECTDRAWSURFACE7 Sour,int aValue,COLORREF *colorkey); //兩個(gè)點(diǎn)的ALPHA混合(內(nèi)聯(lián)版)
bool AlphaSR(LPDIRECTDRAWSURFACE7 Sour,LPDIRECTDRAWSURFACE7 Dest,RECT rect,int aValue,COLORREF *colorkey);//兩個(gè)表面的一部分的ALPHA混合(內(nèi)聯(lián)版)
bool AlphaSRP(LPDIRECTDRAWSURFACE7 Sour,int x,int y,LPDIRECTDRAWSURFACE7 Dest,RECT rect,int aValue,COLORREF *colorkey); //最高級(jí)的Alpha混合方法
bool AlphaSRP(LPDIRECTDRAWSURFACE7 Sour,int x,int y,LPDIRECTDRAWSURFACE7 Dest,RECT rect,int aValue,WORD colorkey);//最高級(jí)的Alpha混合方法
void PixFormat(LPDIRECTDRAWSURFACE7 LpDD); //取得象素格式
bool NTLightTN(LPDIRECTDRAWSURFACE7 Sour,LPDIRECTDRAWSURFACE7 Dest,RECT *rt); //淡入淡出
bool NTLight(LPDIRECTDRAWSURFACE7 Sour,LPDIRECTDRAWSURFACE7 Dest,RECT *rt); //淡入
bool LightTN(LPDIRECTDRAWSURFACE7 Sour,LPDIRECTDRAWSURFACE7 Dest,RECT *rt); //淡出
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -