How to rotate surface and display? i am using direct3D9

Hi there,

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. :cry: 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 ...

Thank you!
 
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);

D3DXCreateSprite(g_lpD3DDevice,&g_lpSprite);


=============================================
//Draw

HRESULT hr = g_lpD3DDevice->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,0), 0, 0 );
g_lpD3DDevice->BeginScene();
g_lpSprite->Begin(D3DXSPRITE_ALPHABLEND);
hr = g_lpD3DDevice->StretchRect( g_lpSurface, 0, g_lpTextureSur, 0, D3DTEXF_NONE ); // copy from my specific surface to texture

RECT rc;
SetRect(&rc,0,0,640,480);
D3DXVECTOR3 vec = D3DXVECTOR3(0,0,0);

g_lpD3DDevice->SetRenderTarget(0, g_lpTextureSur);

hr = g_lpSprite->Draw(g_lpTexture,&rc,NULL,&vec,0);

g_lpSprite->End();
g_lpD3DDevice->EndScene();
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!
 
Back
Top