Vil*_*nde 3 opengl textures direct3d
我知道不建议混合使用OpenGL和DirectX,但我正在尝试在使用单独图形API的两个不同应用程序之间建立桥梁:我希望有一种共享数据的技术,特别是纹理.
我有一个在Direct3D中创建的纹理,如下所示:
d3_device-> CreateTexture(width, height,
  1, D3DUSAGE_RENDERTARGET, D3DFMT_A8R8G8B8, D3DPOOL_DEFAULT,
  &texture, NULL);
有没有什么办法可以在不通过系统内存往返的情况下使用OpenGL的这种纹理?
是.如前所述(见下文),应该至少存在一种解决方案.我发现了两种可能的解决方
1)在nvidia卡上,256个驱动器中集成了一个新的扩展.请参阅http://developer.download.nvidia.com/opengl/specs/WGL_NV_DX_interop.txt
2)DXGI是组合Vista和Windows 7中所有窗口的驱动力.请参阅msdn.microsoft.com/en-us/library/ee913554.aspx
我还没有获得任何解决方案的经验,但我希望我会找一些时间来测试其中一个.但对我来说,第一个似乎更容易.
[我认为这应该是可能的.在最近的Windows版本(Vista和7)中,可以看到任务栏中任何窗口内容的预览(无论是GDI,Direct3D还是OpenGL).据我所知,早期的Windows版本不支持OpenGL预览.因此,至少在较新的版本中,即使在不同的进程之间也应该有耦合或共享渲染上下文的可能性......对于在系统范围内共享渲染上下文以产生不同渲染效果的其他现代平台也是如此.