Oculus SDK 0.4.2集成在现有DX应用程序中(渲染设备和所有)

时间:2014-09-27 14:22:13

标签: c++ windows dll directx oculus

我正在尝试将新的Oculus SDK(针对DK2)集成到Game Maker Studio中。 我这样做是通过创建一个与GM和新SDK通信的DLL。我已经到了一个我不知道该怎么办的地步。

目前,我可以打开眼睛,看到眼睛中显示的健康通知。健康显示似乎也被覆盖在GM应用程序窗口上 - 之后GM应用程序再次在窗口上绘制 - 就像2个应用程序在同一窗口中绘制一样。

问题是,我需要将应用程序显示输入到DLL中,通过那里解析(为oculus的镜头添加失真和一些过滤器),然后将其吐出到Oculus设备中。 GM表面和眼表面必须组合并放入眼设备中。

我有2种类型的指针可供使用 - 1表示应用程序的HWND(使用here)和1 DX设备指针(我认为,它的使用方式如下:

LPDIRECT3DDEVICE9 d3ddev;
GMEXPORT double LinkD3D( long POINTER ){
    d3ddev = (LPDIRECT3DDEVICE9)POINTER;

    // Enable 8x Anisotropic Filtering
    d3ddev->SetSamplerState(0, D3DSAMP_MAXANISOTROPY, 8);
    d3ddev->SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_ANISOTROPIC);

    // Enable Linear Filtering
    d3ddev->SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR);
    d3ddev->SetSamplerState(0, D3DSAMP_MIPFILTER, D3DTEXF_LINEAR);
    return 1;
}

现在我想知道,我怎样才能将LPDIRECT3DDEVICE9变成oculus SDK的DX11内容。

目前,我可以通过现有窗口获取健康警示。

我在想,也许我需要内部纹理(上面用的是d3ddev),并把它放在Ouculus pRender设备中,在这里的某个地方; https://github.com/RobQuistNL/GMOculus/blob/master/DLL/GMOculus/GMOculus/main.cpp#L223

项目的源代码可在此处找到; https://github.com/RobQuistNL/GMOculus/blob/master/DLL/GMOculus/GMOculus/main.cpp

对于模糊的解释我感到非常抱歉,但请记住;

  • 我实际上是一名webdeveloper
  • 我使用游戏制作者进行爱好游戏
  • 稍微了解C ++
  • 有DX经验

我真的很高兴我已经可以得到健康通知来吸引眼球。

它只是我似乎无法转换任何东西。我尝试过纹理,交换链,渲染设备 - 但我一直都会遇到错误。我看错了方向吗?

如果有人可以帮助我,我甚至愿意付钱。

干杯, 罗布

0 个答案:

没有答案