我正在尝试将新的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
对于模糊的解释我感到非常抱歉,但请记住;
我真的很高兴我已经可以得到健康通知来吸引眼球。
它只是我似乎无法转换任何东西。我尝试过纹理,交换链,渲染设备 - 但我一直都会遇到错误。我看错了方向吗?
如果有人可以帮助我,我甚至愿意付钱。
干杯, 罗布