我需要将一些C++应用程序移植到Windows phone8(它已经在安卓、iOS、WinCE和Win32上)。目前我需要解决如何显示图形。我可以从核心应用程序中获得渲染的位图,并且在成功初始化DirectXTK之后,我能够渲染一些DDS纹理(DirectXTK::SpriteBatch)。现在我需要将我的位图转换为纹理,然后渲染它。你能帮我解决这个问题吗?或者,有没有什么方法可以直接把位图放到后台缓冲区中,并在没有SpriteBatch的情况下显示出来?
非常感谢
托马斯
发布于 2013-03-27 04:41:00
DirectX工具包有WICTextureLoader。在加载.bmp(位图)文件时,可以使用它代替DDSTextureLoader。希望这对你有所帮助!
http://directxtk.codeplex.com/wikipage?title=WICTextureLoader&referringTitle=DirectXTK
发布于 2014-01-30 22:29:10
由于Windows phone8不支持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);
}https://stackoverflow.com/questions/15226154
复制相似问题