⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 calpha.h

📁 成熟的RPG引擎,Flysky发布. 斜视角引擎.
💻 H
字号:
//阿尔法混合 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两个函数请不要使用BackBuffer
//而使用无后缓
//两个点的ALPHA混合(内联版) By Flysky
//注意:Sour目标表面,Dest为Alpha通道。
//无汇编
inline WORD AlphaP(WORD Sour,WORD Dest,int aValue)
{
	//Release 版本达到 111Fps
	//目前应该够了.
		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); //两个点的ALPHA混合(内联版)
bool AlphaSR(LPDIRECTDRAWSURFACE7 Sour,LPDIRECTDRAWSURFACE7 Dest,RECT rect,int aValue,COLORREF *colorkey);//两个表面的一部分的ALPHA混合(内联版)
bool AlphaSRP(LPDIRECTDRAWSURFACE7 Sour,int x,int y,LPDIRECTDRAWSURFACE7 Dest,RECT rect,int aValue,COLORREF *colorkey); //最高级的Alpha混合方法
bool AlphaSRP(LPDIRECTDRAWSURFACE7 Sour,int x,int y,LPDIRECTDRAWSURFACE7 Dest,RECT rect,int aValue,WORD colorkey);//最高级的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); //淡出

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -