Affichage de texte sur une fenetre Direct3D.

Signaler
Messages postés
573
Date d'inscription
samedi 16 novembre 2002
Statut
Membre
Dernière intervention
9 avril 2008
-
Messages postés
573
Date d'inscription
samedi 16 novembre 2002
Statut
Membre
Dernière intervention
9 avril 2008
-
Salut,

J'aimerai afficher sans me prendre la tete du texte sans police particuliere en 2D par dessus une fenetre Direct3D.
Par exemple pour afficher le FPS, des temps d'execution ...

Je recherche une methode ultra simple, sans avoir inclure des tonnes de fichiers et de variables dans mon projet.

Merci

1 réponse

Messages postés
573
Date d'inscription
samedi 16 novembre 2002
Statut
Membre
Dernière intervention
9 avril 2008
1
J'ai trouvé cette methode, mais j'ai un probleme avec la couleur du texte:

LPD3DXFONT pD3DXFont;
LOGFONT lf;

ZeroMemory (&lf, sizeof(LOGFONT));
lf.lfHeight = 20;
lf.lfWeight = 20;

RECT rct;
rct.left = 0;
rct.top = 0;
rct.bottom = 20;
rct.right = 100;

D3DXCreateFontIndirect(lpDirect3DDevice8, &lf, &pD3DXFont);

lpDirect3DDevice8->Clear( 0,
NULL, D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER,
D3DCOLOR_XRGB(255,255,255),
1.0f,
0 );

lpDirect3DDevice8->BeginScene();
pD3DXFont->DrawText(
TEXT("Essai"),
-1,
&rct,
DT_CENTER,//DT_LEFT | DT_TOP,
D3DCOLOR_XRGB(250, 235, 60)
//D3DCOLOR_XRGB(0, 0, 0)
);

lpDirect3DDevice8->EndScene();
lpDirect3DDevice8->Present( NULL, NULL, NULL, NULL );

Le probleme c'est que le texte s'affiche tout le temps en noir. Comment changer sa couleur? Il y a pourtant n parametre pour la couleur ! Il ne sert a rien ?

Si ca peut vous aider, il y a ces lignes dans l'initialisation de Direct3D:

displayMode.Format=D3DFMT_R5G6B5;
presentParameters.Windowed = TRUE;
presentParameters.EnableAutoDepthStencil = TRUE;
presentParameters.AutoDepthStencilFormat = D3DFMT_D16;