如何计算设备的Adapter数?
主要参考MSDN: EnumAdapters
在d3dApp.cpp文件InitDirect3D()接口中:
HR(dxgiFactory->CreateSwapChain(md3dDevice, &sd, &mSwapChain)); //begin 检测本设备有几个图形卡 UINT myAdapterNums = 0; IDXGIAdapter *pAdapter; std::vector<IDXGIAdapter* > vAdapters;//adapter容器 while (dxgiFactory->EnumAdapters(myAdapterNums,&pAdapter)!=DXGI_ERROR_NOT_FOUND)//获取所有的 { vAdapters.push_back(pAdapter); ++myAdapterNums;//计数 } char szBuf[10]; //memset(szBuf,_T(‘\0‘),sizeof(szBuf)); //sprintf_s(szBuf,"%d",myAdapterNums); _itoa_s(myAdapterNums,szBuf,10);//int --> char* int begIndex = strlen(szBuf); //计算这个整数有多少位,即在char数组中有几个元素? for (int i=begIndex;i<=9;i++) //对其后的元素全部赋为空, 避免的乱码问题。 { szBuf[i] = ‘\0‘; } OutputDebugString(L"Testtttttttttttt:"); OutputDebugString((LPCTSTR)szBuf); //end 检测本设备有几个图形卡
按键F5,调试模式下,可以通过 OutputDebugString在输出栏显示Testttttt:2,也就是我设备两个图形卡
时间: 2024-10-15 12:22:45