MCPcopy Create free account
hub / github.com/Aleksoid1978/VideoRenderer / DeviceThreadFunc

Method DeviceThreadFunc

Source/DX9VideoProcessor.cpp:351–375  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

349}
350
351void CDX9VideoProcessor::DeviceThreadFunc()
352{
353 HANDLE hEvts[] = { m_evInit, m_evResize, m_evReset, m_evQuit };
354
355 for (;;) {
356 const auto dwObject = WaitForMultipleObjects(std::size(hEvts), hEvts, FALSE, INFINITE);
357 m_hrThread = E_FAIL;
358 switch (dwObject) {
359 case WAIT_OBJECT_0: // Init
360 m_hrThread = InitInternal(false, &m_bChangeDeviceThread);
361 m_evThreadFinishJob.Set();
362 break;
363 case WAIT_OBJECT_0 + 1: // Resize
364 ResizeInternal();
365 m_evThreadFinishJob.Set();
366 break;
367 case WAIT_OBJECT_0 + 2: // Reset
368 m_hrThread = ResetInternal();
369 m_evThreadFinishJob.Set();
370 break;
371 default: // Quit
372 return;
373 }
374 }
375}
376
377HRESULT CDX9VideoProcessor::InitInternal(bool bFullCreate, bool* pChangeDevice)
378{

Callers

nothing calls this directly

Calls 1

SetMethod · 0.45

Tested by

no test coverage detected