Affichage de texte sur une fenetre Direct3D.

Galmiza Messages postés 573 Date d'inscription samedi 16 novembre 2002 Statut Membre Dernière intervention 9 avril 2008 - 26 avril 2004 à 23:48
Galmiza Messages postés 573 Date d'inscription samedi 16 novembre 2002 Statut Membre Dernière intervention 9 avril 2008 - 27 avril 2004 à 13:14
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

Galmiza Messages postés 573 Date d'inscription samedi 16 novembre 2002 Statut Membre Dernière intervention 9 avril 2008 1
27 avril 2004 à 13:14
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;
0
Rejoignez-nous