在DirectX 10 / 10.1中,我希望在多个显示的所有四个角上渲染文字,这些四个角在我的函数ID3D10Resource* prcST
中使用D3DX10CreateTextureFromFile()
显示每个由HRESULT OnD3D10CreateDevice( DEVICE_OBJECT* pDeviceObj, WINDOW_OBJECT* pWindowObj )
组成的纹理/ p>
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
答案 0 :(得分:1)
很棒的工作是在屏幕上呈现文字。你是否使用四边形纹理?纹理需要一组顶点才能显示。 createtexture函数仅将图像数据加载到纹理对象中。然后,您必须传递纹理对象以及一组有序的顶点,以形成将用于显示纹理的网格。