mapper un polygone avec une texture issue du RenderTarget
Bonjour à tout le monde,
je sollicite votre aide car j'ai un souci sur lequel je cale gravement:
j'utilise la portion de code suivante pour capturer l'ecran et le mettre dans une texture. Je compte utiliser cette texture pour mapper des polys ensuite.
Code:
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 29 30 31 32 33 34
|
IDirect3DSurface9* pTargetSurface=NULL;
_d3d9Device->GetRenderTarget(0,&pTargetSurface);
D3DSURFACE_DESC desc;
pTargetSurface->GetDesc(&desc);
IDirect3DTexture9* pTempTexture=NULL;
_d3d9Device->CreateTexture( desc.Width, desc.Height,
1,
D3DUSAGE_DYNAMIC,
desc.Format,
D3DPOOL_SYSTEMMEM,
&pTempTexture,
NULL);
IDirect3DSurface9* pTempSurface=NULL;
pTempTexture->GetSurfaceLevel(0,&pTempSurface);
_d3d9Device->GetRenderTargetData(pTargetSurface,pTempSurface);
_d3d9Device->CreateTexture( desc.Width, desc.Height,
1,
D3DUSAGE_DYNAMIC,
desc.Format ,
D3DPOOL_DEFAULT,
&_texture,
NULL);
// un update texture qui prend un pool_systemmem en source et un pool_default en destination.
_d3d9Device->UpdateTexture(pTempTexture, _texture);
pTargetSurface->Release();
pTempTexture->Release(); |
je sais qu'elle est bien recupéré car :
Code:
D3DXSaveTextureToFile("toto.png",D3DXIFF_PNG,_texture,NULL);
me donne un fichier toto.png qui contient une capture de l'ecran.
mais je veux reutiliser la texture avec avec un:
Code:
_d3d9Device->SetTexture( 0 ,_texture ) ;
le poly que j'affiche ensuite n'est pas texturé.
j'ai certainement negligé quelque chose : merci de me remettre dans le droit chemin.