// 检查显卡加速方式
// iPixelFormat: 像素格式代号(ChoosePixelFormat的返回值)
// 返回值:
// 0 = 失败
// 1 = 全硬件加速模式(ICD)
// 2 = 半硬件加速模式(MCD)
// 3 = 全软件渲染模式
int CheckAccelerated(HDC hDC, int iPixelFormat)
{
PIXELFORMATDESCRIPTOR pfd = {0};
int iMaxPixelFormat = DescribePixelFormat(hDC, iPixelFormat, sizeof(PIXELFORMATDESCRIPTOR), &pfd);
if(iMaxPixelFormat == 0)
{
// 获取显卡加速方式失败
return 0;
}
bool bSoft = ((pfd.dwFlags & PFD_GENERIC_FORMAT) != 0);
if(bSoft)
{
bool bAcce = ((pfd.dwFlags & PFD_GENERIC_ACCELERATED) != 0);
if(bAcce)
{
// 半硬件加速, MCD模式
return 2;
}
else
{
// 全软件渲染模式
return 3;
}
}
// 全硬件加速, ICD模式
return 1;
}