Direct3D 응용 프로그램의 여러 스레드와 개체간에 하나의 Direct3D 장치를 공유하고 싶습니다.Direct3D 장치 관리자는 어떻게 사용합니까?
// Create the device manager
UINT resetToken = 0;
IDirect3DDeviceManager9* deviceManager = NULL;
if (FAILED(DXVA2CreateDirect3DDeviceManager9(&resetToken, &deviceManager)))
return false;
// Add the device to the device manager
if (FAILED(deviceManager->ResetDevice(device, resetToken)))
return false;
deviceManager->AddRef();
: 나는 다음과 같은 일을 해요 내 코드에서
http://msdn.microsoft.com/en-us/library/windows/desktop/aa965267(v=vs.85).aspx
: 어떤 비디오 프로세싱이나 비디오 가속을하고 있지 않다하더라도 나는, 내가 원하는처럼 보이는 Direct3D를 장치 관리자를 건너 왔어요
Direct3D 장치 관리자를 만든 후에는 장치 관리자에 대한 포인터를 전달하지 않고 direct3d 장치 관리자를 다른 개체와 어떻게 공유합니까? 마이크로 소프트는 특히 다음을 수행 말했다,하지만 난 정말 다음 무엇을 의미하는지 단서가 없다 :
장치 소유자가 다른 개체가 IDirect3DDeviceManager9 인터페이스에 대한 포인터 을 얻을 수있는 방법을 제공해야합니다. 표준 메커니즘은 IMFGetService 인터페이스를 구현하는 것입니다. 서비스 GUID는 MR_VIDEO_ACCELERATION_SERVICE입니다.
누군가 IMFGetService 인터페이스를 사용하여 장치 관리자를 공유하는 방법을 보여줄 수 있습니까?