DWORD dwThreadid; g_hRenderMutex = CreateMutex(NULL, FALSE, NULL); g_hShadowThread = (HANDLE) _beginthreadex(NULL, 0, GenerateShadowMap,(void*) pd3dDevice, 0, (unsigned int*)&dwThreadid );
unsigned __stdcall GenerateShadowMap(void* pd3dDevice) { while (pd3dDevice) { // 在深度创建阴影贴图前, // 获取锁。 DWORD dwResult = WaitForSingleObject(g_hRenderMutex, INFINITE); // 此处创建阴影贴图。 // 完成阴影贴图后,释放锁。 ReleaseMutex(g_hRenderMutex); // 在必须更新阴影贴图之前,让该线程 // 休眠。指定的休眠时间以毫秒为 // 单位。 Sleep(g_iShadowMapUpdateMS); } _endthread(); return 0; }