首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用WPF和SlimDx (DirectX 10/11)

使用WPF和SlimDx (DirectX 10/11)
EN

Stack Overflow用户
提问于 2010-03-19 01:18:36
回答 3查看 6.7K关注 0票数 2

我现在在WinForms中使用SlimDX有一段时间了,但是现在我想切换到WPF。然而,我不知道如何让DX10/11与WPF一起工作。二月份发布的SlimDX提供了一个WPF示例,但它只适用于DX9。我找到了以下解决方案:http://jmorrill.hjtcentral.com/Home/tabid/428/EntryId/437/Direct3D-10-11-Direct2D-in-WPF.aspx,但无法使其与SlimDX一起工作。我的主要问题是共享资源句柄,因为我不知道如何从SlimDX纹理检索共享句柄。我找不到任何关于这个话题的信息。

在C++中,代码如下所示:

代码语言:javascript
复制
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;
}

基本上,我想要做的(因为我认为这是解决方案),是在Direct3d9DeviceEx (用于渲染WPF D3DImage)和Direct3d10Device (用于我的场景的纹理渲染目标)之间共享纹理。

任何在正确方向上的指针都是非常感谢的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-06-10 21:55:33

他们发布了一些关于如何在WPF中使用slimdx/directx10的示例代码。这是link

票数 2
EN

Stack Overflow用户

发布于 2010-03-30 04:40:58

有一个名为WindowsFormsHost的控件,也许你可以用这种方式集成你当前的WinForm控件?

票数 0
EN

Stack Overflow用户

发布于 2010-06-09 04:02:57

看看D3DImageEx吧。共享您提供了对rendertarget的引用,但它必须使用http://jmorrill.hjtcentral.com/Home/tabid/428/EntryId/437/Direct3D-10-11-Direct2D-in-WPF.aspx标志创建。不过,我不能以这种方式使用交换链。

代码语言:javascript
复制
let renderTargetDescription = Texture2DDescription(     Width=width,
                                                        Height=height,
                                                        MipLevels=1,
                                                        ArraySize=1,
                                                        Format = Format.B8G8R8A8_UNorm,
                                                        SampleDescription = SampleDescription(Count = 1),
                                                        BindFlags = (BindFlags.RenderTarget ||| BindFlags.ShaderResource),
                                                        OptionFlags = ResourceOptionFlags.Shared)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2471939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档