Salut,

Je previens tout de suite, j'y connais rien en D3D mais un peu en Dshow

Mon probleme est que je voudrais afficher un texte en utilisant la fonction IVMRMixerBitmap9::SetAlphaBitmap(...) en passant par une surface 3D, et non pas par le GDI comme c'est fait dans les samples (et oui j'aime bien me compliquer le vie )

Pour l'instant j'ai reussi à "remplir" la surface avec une image, avec la fonction D3DXLoadSurfaceFromFile(...) et a l'afficher avec le VMR9.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
    hr = m_pD3DDevice->CreateOffscreenPlainSurface(	lWidth, lHeight,
													D3DFMT_X8R8G8B8,
													D3DPOOL_SYSTEMMEM,
													&m_pD3DSurface,
													NULL);
 
D3DXLoadSurfaceFromFile(m_pD3DSurface,
							NULL,					// palette
							NULL,					// entire surface - created to be the proper height
							pszBitmapFileName,
							NULL,					// entire image source
							D3DX_DEFAULT, 
							0,						// disable color key
							NULL					// source info
							);
	VMR9AlphaBitmap alphaBitmap;
    alphaBitmap.dwFlags			= VMR9AlphaBitmap_EntireDDS | VMR9AlphaBitmap_SrcColorKey;
    alphaBitmap.hdc				= NULL;
    alphaBitmap.pDDS			= m_pD3DSurface;
    alphaBitmap.clrSrcKey		= cTransColor;
    alphaBitmap.rDest.top		= 0.0f;
    alphaBitmap.rDest.left		= 0.0f;
    alphaBitmap.rDest.bottom	= 0.5f;
    alphaBitmap.rDest.right		= 0.5f;
    alphaBitmap.fAlpha			= nAlpha ;
 
	// show the bitmap
	hr = pVMRMixerBitmap9->SetAlphaBitmap(&alphaBitmap);

Mais pour ecrire du texte sur une surface aucune idee... J'ai regarde un peu l'interface ID3DXFont et la methode DrawText(...), mais je ne sais pas ou a lieu le dessin et comment le recuperer pour le mettre dans ma surface.
donc

@+