SlimDX를 사용하여 잠시 동안 WinForms에서 SlimDX를 사용하고 있지만 WPF로 전환하려고합니다. 그러나 WPF로 작업하는 DX10/11을 얻는 방법을 알 수는 없습니다. SlimDX의 2 월 릴리스에서는 DX 9에서만 작동하는 WPF 예제를 제공합니다. 다음 솔루션을 찾았습니다 : http://jmorrill.hjtcentral.com/Home/tabid/428/EntryId/437/Direct3D-10-11-Direct2D-in-WPF.aspx SlimDX에서 작동하지 않습니다. 내 주요 문제는 SlimDX 텍스처에서 공유 핸들을 검색하는 방법을 모르기 때문에 공유 리소스 핸들입니다. 이 주제에 대한 정보를 찾을 수 없습니다.WPF 및 SlimDx 사용 (DirectX 10/11)
C에서는 ++ 코드는 다음과 같습니다 : 기본적으로
HRESULT D3DImageEx::GetSharedHandle(IUnknown *pUnknown, HANDLE * pHandle)
{
HRESULT hr = S_OK;
*pHandle = NULL;
IDXGIResource* pSurface;
if (FAILED(hr = pUnknown->QueryInterface(__uuidof(IDXGIResource), (void**)&pSurface)))
return hr;
hr = pSurface->GetSharedHandle(pHandle);
pSurface->Release();
return hr;
}
, (나는이 해결책이라고 생각하기 때문에) 내가하고 싶은 것,되고 WPF 렌더링에 (A Direct3d9DeviceEx 사이의 텍스처를 공유 할 수 D3DImage) 및 Direct3d10Device (내 장면의 질감 렌더링 대상).
올바른 방향으로 어떤 포인터가 크게 감사하겠습니다.
하지만 작동하지만 WPF와 잘 통합되지는 않습니다. WinForms 컨트롤은 맨 위에 있어야하며 다른 WPF 컨트롤 등으로 오버레이 될 수 없습니다. 그러나 DX10/WPF가 제대로 실행되도록 관리했습니다. SlimDX에서 GetSharedHandle을 사용할 수 있는지 알 수 없기 때문에 소스 코드를 확인하고 C++ 코드를 추가하여 필요한 기능을 제공했습니다. 시간을 찾을 수 있으면 게시하고 업데이트하고 내 솔루션에 대해 자세히 설명합니다. – slurmomatic