DirectX 10.1 / C++:如何在 ID3D10Resource* 纹理上渲染精灵上的文本



在 DirectX 10/10.1 中,我想在多个显示器的所有四个角上呈现文本,这些显示器显示一个纹理,每个纹理都由ID3D10Resource* prcST组成,在我的函数HRESULT OnD3D10CreateDevice( DEVICE_OBJECT* pDeviceObj, WINDOW_OBJECT* pWindowObj )中使用D3DX10CreateTextureFromFile()

D3DX10CreateTextureFromFile ( pDeviceObj->pDevice, L"tile1.jpg", NULL, NULL, &prcST, &hr );

当我在OnD3D10rameRender()函数中使用如下所示的东西时,使用精灵来渲染文本,我的纹理不会渲染,而只会使用黑色背景渲染文本。(黑色背景上的文字。

在 3 个显示器的每个左上角呈现的文本是"一些要渲染的文本"
https://plus.google.com/u/0/+AnandMuglikar/posts/XLNnBRCtTfa

hr = pDeviceObj->pSprite->Begin(0);
std::wstring left = L"Some text to render";
RECT r;
r.top = 0;
r.bottom = pWindowObj->Height;
r.left = 0;
r.right = pWindowObj->Width;
hr = pDeviceObj->pFont->DrawTextW(pDeviceObj->pSprite, left.c_str(), -1, &r, DT_LEFT | DT_TOP | DT_CALCRECT | DT_NOCLIP, D3DXCOLOR(0.0f, 1.0f, 0.0f, .5f));
hr = pDeviceObj->pSprite->Flush();
hr = pDeviceObj->pSprite->End();
pDeviceObj->pDevice->OMSetBlendState(NULL, 0, 0x0000ffff);

如何在 alpha 混合ID3D10Resource*纹理上渲染精灵上的文本?

3 台

显示器上的 3 种边缘融合纹理如下所示:
https://plus.google.com/u/0/+AnandMuglikar/posts/MSVdrfFpAuW

在屏幕上呈现文本做得很好。 您是否使用四边形作为纹理? 纹理需要一组顶点才能显示。 创建纹理函数仅将图像数据加载到纹理对象中。 然后,您必须传递纹理对象以及一组有序的顶点,以形成将用于显示纹理的网格。

最新更新