// Construction Renderer::Renderer() { _SetupLayersAndExtensions(); _SetupDebug(); _InitInstance(); _InitDebug(); _InitDevice(); }
/** * 函数: getCardDevice * 参数: * * 返回值: * 成功: 返回抽象卡设备 * 失败: NULL */ struct CardDevice *getCardDevice(const char *System) { DllProbe FunProbe; struct CardDevice *result = NULL; WIN32_FIND_DATA FindFileData; HANDLE hFind; char Pattern[MAX_PATH]; int nProbe = 0; // 开始查找 strcpy(Pattern, System); strcat(Pattern, "BHGX_CARD_*"); hFind = FindFirstFile(Pattern, &FindFileData); while (hFind != INVALID_HANDLE_VALUE) { HINSTANCE hInstLibrary; hInstLibrary = LoadLibrary(FindFileData.cFileName); if (hInstLibrary != NULL) { FunProbe = (DllProbe)GetProcAddress(hInstLibrary, "bProbe"); printf("%s:Probe函数地址:%ll\n", FindFileData.cFileName, &FunProbe); nProbe = FunProbe(); printf("bProbe:%d\n",nProbe); if((FunProbe != NULL) && nProbe) { result = _InitDevice(hInstLibrary); break; } FreeLibrary(hInstLibrary); } if (0 == FindNextFile(hFind, &FindFileData)) break; } FindClose(hFind); /** * 如果设备找到,就打开并且嗡鸣一下 */ if(result) { int ret = result->iOpen(); } return result; }
Renderer::Renderer() { _InitInstance(); _InitDevice(); }