0

我需要将一些 C++ 应用程序移植到 Windows Phone 8(它已经在 Android、iOS、WinCE 和 Win32 上)。目前我需要解决如何显示图形。我可以从核心应用程序获取渲染位图,并且在成功初始化 DirectXTK 后,我可以渲染一些 DDS 纹理(DirectXTK::SpriteBatch)。现在我需要将我的位图转换为纹理然后渲染它。你能帮我解决这个问题吗?或者有什么方法可以将位图直接放入后备缓冲区并在没有 SpriteBatch 的情况下将其显示在显示器上?

非常感谢

托马斯

4

2 回答 2

0

由于 Windows Phone 8 不支持 WICTextureLoader,将位图渲染到纹理的唯一方法是将纹理映射到 CPU 并将位图资源复制到映射纹理的资源上。

ID3D11DeviceContext::Map() http://msdn.microsoft.com/en-us/library/windows/desktop/ff476457(v=vs.85).aspx

D3D11_MAPPED_SUBRESOURCE mappedBuffer;
HRESULT hr = pContext->Map(pTexture, 0, D3D11_MAP_WRITE_DISCARD, 0, &mappedBuffer);

if(hr == S_OK)
{
    // copy your bitmap onto mappedBuffer.pData
    ...

    pContext->Unmap(pTex, 0);
}
于 2014-01-30T14:29:10.413 回答
0

DirectX 工具包具有 WICTextureLoader。您可以使用它代替 DDSTextureLoader 来加载 .bmp(bitmap) 文件。希望这有帮助!

http://directxtk.codeplex.com/wikipage?title=WICTextureLoader&referringTitle=DirectXTK

于 2013-03-26T20:40:59.720 回答