Text ausgeben mit DX9
-
m_pD3Device->SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR); m_pD3Device->SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR); m_pD3Device->SetSamplerState(1, D3DSAMP_MINFILTER, D3DTEXF_LINEAR); m_pD3Device->SetSamplerState(1, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR); m_pD3Device->SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0); m_pD3Device->SetTextureStageState(1, D3DTSS_TEXCOORDINDEX, 0); m_pD3Device->SetRenderState(D3DRS_CULLMODE, D3DCULL_CW); m_pD3Device->SetRenderState(D3DRS_DITHERENABLE, TRUE); m_pD3Device->SetRenderState(D3DRS_SPECULARENABLE, TRUE); m_pD3Device->SetRenderState(D3DRS_LIGHTING, TRUE); m_pD3Device->SetRenderState(D3DRS_ZENABLE, TRUE); D3DXMATRIX matView; D3DXMATRIX matProj; D3DXVECTOR3 PlayerPosition(0.0f, 0.0f, 0.0f); D3DXVECTOR3 PlayerVerschiebungsvektor(0.0f, 0.0f, 0.0f); D3DXVECTOR3 PlayerFlugrichtung (0.0f, 0.0f, 1.0f); D3DXVECTOR3 PlayerVertikale (0.0f, 1.0f, 0.0f); D3DXVECTOR3 PlayerHorizontale (1.0f, 0.0f, 0.0f); D3DXMatrixLookAtLH(&matView, &PlayerPosition, &PlayerFlugrichtung, &PlayerVertikale); m_pD3Device->SetTransform(D3DTS_VIEW, &matView); D3DXMatrixPerspectiveFovLH(&matProj, 45*D3DX_PI/180, 640/480, 1.0f, 1000.0f); m_pD3Device->SetTransform(D3DTS_PROJECTION, &matProj); m_Font =new CD3DFont(_T("Arial"),20,D3DFONT_BOLD); m_Font->InitDeviceObjects(pD3DDevice); m_Font->RestoreDeviceObjects();
so stelle ich das Device ein.
Danach versuche ich einen Text auszugeben.
m_pD3Device->Clear(0,NULL,D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER,D3DCOLOR_XRGB(128,128,128),1.0f,0); m_pD3Device->BeginScene(); m_Font->DrawTextScaled(-0.8f, -0.6f, 0.9f, 0.03f, 0.02f, D3DCOLOR_XRGB(0,0,0), "TEST", D3DFONT_FILTERED); m_pD3Device->EndScene(); m_pD3Device->Present(0,0,0,0);
Leider wird der Text nicht ausgegeben. Der Hintergrund wird gelöscht mit der richtigen Farbe. Es kommt keine Fehlermeldung oder so. Könnt ihr mir sagen woran es liegen könnte
Gibt es einen Fehler im Code? Ich finde den Fehler nicht.
-
Mag sein, daß es nicht daran liegt, aber du gibst hiermit deinen sichtbaren Bereich zwischen 1.0f und 1000.0f an:
D3DXMatrixPerspectiveFovLH(&matProj, 45*D3DX_PI/180, 640/480, 1.0f, 1000.0f); m_pD3Device->SetTransform(D3DTS_PROJECTION, &matProj);
Deinen Text zeichnest du aber an Z-Position 0.9f, also außerhalb des Sichtbereichs:
m_Font->DrawTextScaled(-0.8f, -0.6f, 0.9f, 0.03f, 0.02f, D3DCOLOR_XRGB(0,0,0), "TEST", D3DFONT_FILTERED);
-
IIRC arbeitet doch diese Funktion mit vortransformierten Vertizen, oder? Da wäre 0.9f evtl. schon korrekt.
Orientiere dich doch einfach mal an den SDK Samples, die sollten ja funktionieren.
Bye, TGGC