质地
因此,正如我们在评论中所讨论的,您可以使用 2D 纹理:
concurrency::graphics::texture<float_4, 2> tex(1920, 1200);
设备,然后是加速器
然后,要继续使用 DirectX 11,您必须拥有ID3D11Device
和ID3D11DeviceContext
. 最好手动创建,ID3D11Device
然后根据您的设备ID3D11DeviceContext
创建对象。accelerator_view
来自 Julia2D 示例的示例代码:
accelerator_view av=concurrency::direct3d::create_accelerator_view(g_pd3dDevice);
texture<unorm4, 2> tex = make_texture<unorm4, 2>(av, pTexture);
加速器,然后设备
或者,您可以获取指向ID3D11Device
和ID3D11DeviceContext
来自现有accelerator_view
对象的指针:
最后,渲染
使用ID3D11Device
并且ID3D11DeviceContext
您可以继续渲染(以DirectXTK 为例):
SpriteBatch* spriteBatch(new SpriteBatch(context));
spriteBatch->Begin();
spriteBatch->Draw(texture, XMFLOAT2(x, y));
spriteBatch->End();
另外,我发现这两个示例涉及 C++Amp/DirectX 互操作,这对您很有用:一、二。
希望能帮助到你。