Join Date: Jul 2012
How to rotate surface and display? i am using direct3D9
I wand to rotate my surface and display . i am using direcr3D9.
i succeed to display yuv images using CreteOffscreenPlainSurface and StretchRect methods.
and then i have to rotate these images... so i desided on using D3DXSprite interpace. and Draw method( this is possible rotating images)
So i need to create texture and surface.
i crated texture using D3DCreateTexture and i got surface using GetSurfaceLevel method.
and then i tried to wirte my image data this buffer using LockRect.
but it filed. it seems like that buffer size is different.
pitch value between the surface1 using CreateOffscreenPlainSurface and the other surface2 using GetSurfaceLevel are different.
surface2 is multiple4 than surface1... why???
So i don't know how handle this situation....
please help me out if you know any other idea to rotate surface...and display ...
Join Date: Jul 2012
This is my code ..
I used sprite interface and draw method to display images
//ready to draw
hr = g_lpD3DDevice->CreateTexture(640, 480, 1, D3DUSAGE_RENDERTARGET,
D3DFMT_X8R8G8B8, D3DPOOL_DEFAULT, &g_lpTexture, NULL)
hr = g_lpTexture->GetSurfaceLevel(0,&g_lpTextureSur);
HRESULT hr = g_lpD3DDevice->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,0), 0, 0 );
hr = g_lpD3DDevice->StretchRect( g_lpSurface, 0, g_lpTextureSur, 0, D3DTEXF_NONE ); // copy from my specific surface to texture
D3DXVECTOR3 vec = D3DXVECTOR3(0,0,0);
hr = g_lpSprite->Draw(g_lpTexture,&rc,NULL,&vec,0);
g_lpD3DDevice->Present( NULL, NULL, NULL,NULL );
this is not work ..
i tried to check my texture surface.
hr = g_lpD3DDevice->StretchRect( g_lpTextureSur, 0,g_lpBackbuffer , 0, D3DTEXF_NONE );
texture is working. I think texture was created successfully. i don't know what is wrong part in my code... pleas help me out ! Thank you!
Join Date: Jun 2004
I'm sure someone will have an answer for you, thee are some clever people on here:
keep checking back
Guardian of the Most holy Two Terabytes of Gaming Goodness™